wp/wp-includes/js/dist/components.js
changeset 19 3d72ae0968f4
parent 18 be944660c56a
child 21 48c4eec2b7e6
--- a/wp/wp-includes/js/dist/components.js	Wed Sep 21 18:19:35 2022 +0200
+++ b/wp/wp-includes/js/dist/components.js	Tue Sep 27 16:37:53 2022 +0200
@@ -1,5512 +1,8 @@
-this["wp"] = this["wp"] || {}; this["wp"]["components"] =
-/******/ (function(modules) { // webpackBootstrap
-/******/ 	// The module cache
-/******/ 	var installedModules = {};
-/******/
-/******/ 	// The require function
-/******/ 	function __webpack_require__(moduleId) {
-/******/
-/******/ 		// Check if module is in cache
-/******/ 		if(installedModules[moduleId]) {
-/******/ 			return installedModules[moduleId].exports;
-/******/ 		}
-/******/ 		// Create a new module (and put it into the cache)
-/******/ 		var module = installedModules[moduleId] = {
-/******/ 			i: moduleId,
-/******/ 			l: false,
-/******/ 			exports: {}
-/******/ 		};
-/******/
-/******/ 		// Execute the module function
-/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-/******/
-/******/ 		// Flag the module as loaded
-/******/ 		module.l = true;
-/******/
-/******/ 		// Return the exports of the module
-/******/ 		return module.exports;
-/******/ 	}
-/******/
-/******/
-/******/ 	// expose the modules object (__webpack_modules__)
-/******/ 	__webpack_require__.m = modules;
-/******/
-/******/ 	// expose the module cache
-/******/ 	__webpack_require__.c = installedModules;
-/******/
-/******/ 	// define getter function for harmony exports
-/******/ 	__webpack_require__.d = function(exports, name, getter) {
-/******/ 		if(!__webpack_require__.o(exports, name)) {
-/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
-/******/ 		}
-/******/ 	};
-/******/
-/******/ 	// define __esModule on exports
-/******/ 	__webpack_require__.r = function(exports) {
-/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
-/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-/******/ 		}
-/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
-/******/ 	};
-/******/
-/******/ 	// create a fake namespace object
-/******/ 	// mode & 1: value is a module id, require it
-/******/ 	// mode & 2: merge all properties of value into the ns
-/******/ 	// mode & 4: return value when already ns object
-/******/ 	// mode & 8|1: behave like require
-/******/ 	__webpack_require__.t = function(value, mode) {
-/******/ 		if(mode & 1) value = __webpack_require__(value);
-/******/ 		if(mode & 8) return value;
-/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
-/******/ 		var ns = Object.create(null);
-/******/ 		__webpack_require__.r(ns);
-/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
-/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
-/******/ 		return ns;
-/******/ 	};
-/******/
-/******/ 	// getDefaultExport function for compatibility with non-harmony modules
-/******/ 	__webpack_require__.n = function(module) {
-/******/ 		var getter = module && module.__esModule ?
-/******/ 			function getDefault() { return module['default']; } :
-/******/ 			function getModuleExports() { return module; };
-/******/ 		__webpack_require__.d(getter, 'a', getter);
-/******/ 		return getter;
-/******/ 	};
-/******/
-/******/ 	// Object.prototype.hasOwnProperty.call
-/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
-/******/
-/******/ 	// __webpack_public_path__
-/******/ 	__webpack_require__.p = "";
-/******/
-/******/
-/******/ 	// Load entry module and return exports
-/******/ 	return __webpack_require__(__webpack_require__.s = "SB3u");
-/******/ })
-/************************************************************************/
-/******/ ({
-
-/***/ "+51k":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports['default'] = getActiveElement;
-function getActiveElement() {
-  return typeof document !== 'undefined' && document.activeElement;
-}
-
-/***/ }),
-
-/***/ "+WFq":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return useSlot; });
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _slot_fill_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("JYkG");
-/**
- * WordPress dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-function useSlot(name) {
-  const registry = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["useContext"])(_slot_fill_context__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"]);
-  const slot = registry.slots[name] || {};
-  const slotFills = registry.fills[name];
-  const fills = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["useMemo"])(() => slotFills || [], [slotFills]);
-  const updateSlot = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["useCallback"])(fillProps => {
-    registry.updateSlot(name, fillProps);
-  }, [name, registry.updateSlot]);
-  const unregisterSlot = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["useCallback"])(slotRef => {
-    registry.unregisterSlot(name, slotRef);
-  }, [name, registry.unregisterSlot]);
-  const registerFill = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["useCallback"])(fillRef => {
-    registry.registerFill(name, fillRef);
-  }, [name, registry.registerFill]);
-  const unregisterFill = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["useCallback"])(fillRef => {
-    registry.unregisterFill(name, fillRef);
-  }, [name, registry.unregisterFill]);
-  return { ...slot,
-    updateSlot,
-    unregisterSlot,
-    fills,
-    registerFill,
-    unregisterFill
-  };
-}
-
-
-/***/ }),
-
-/***/ "+ipW":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return canUseDOM; });
-/* harmony import */ var _getWindow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("SyVe");
-
-
-
-function checkIsBrowser() {
-  var _window = Object(_getWindow_js__WEBPACK_IMPORTED_MODULE_0__[/* getWindow */ "a"])();
-
-  return Boolean(typeof _window !== "undefined" && _window.document && _window.document.createElement);
-}
-/**
- * It's `true` if it is running in a browser environment or `false` if it is not (SSR).
- *
- * @example
- * import { canUseDOM } from "reakit-utils";
- *
- * const title = canUseDOM ? document.title : "";
- */
-
-
-var canUseDOM = checkIsBrowser();
-
-
-
-
-/***/ }),
-
-/***/ "/9aa":
-/***/ (function(module, exports, __webpack_require__) {
-
-var baseGetTag = __webpack_require__("NykK"),
-    isObjectLike = __webpack_require__("ExA7");
-
-/** `Object#toString` result references. */
-var symbolTag = '[object Symbol]';
-
-/**
- * Checks if `value` is classified as a `Symbol` primitive or object.
- *
- * @static
- * @memberOf _
- * @since 4.0.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
- * @example
- *
- * _.isSymbol(Symbol.iterator);
- * // => true
- *
- * _.isSymbol('abc');
- * // => false
- */
-function isSymbol(value) {
-  return typeof value == 'symbol' ||
-    (isObjectLike(value) && baseGetTag(value) == symbolTag);
-}
-
-module.exports = isSymbol;
-
-
-/***/ }),
-
-/***/ "/ZKw":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var define = __webpack_require__("82c2");
-var callBind = __webpack_require__("PrET");
-
-var implementation = __webpack_require__("yN6O");
-var getPolyfill = __webpack_require__("22yB");
-var polyfill = getPolyfill();
-var shim = __webpack_require__("v3P4");
-
-var boundFlat = callBind(polyfill);
-
-define(boundFlat, {
-	getPolyfill: getPolyfill,
-	implementation: implementation,
-	shim: shim
-});
-
-module.exports = boundFlat;
-
-
-/***/ }),
-
-/***/ "/sVA":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var toStr = Object.prototype.toString;
-var hasSymbols = __webpack_require__("UVaH")();
-
-if (hasSymbols) {
-	var symToStr = Symbol.prototype.toString;
-	var symStringRegex = /^Symbol\(.*\)$/;
-	var isSymbolObject = function isRealSymbolObject(value) {
-		if (typeof value.valueOf() !== 'symbol') {
-			return false;
-		}
-		return symStringRegex.test(symToStr.call(value));
-	};
-
-	module.exports = function isSymbol(value) {
-		if (typeof value === 'symbol') {
-			return true;
-		}
-		if (toStr.call(value) !== '[object Symbol]') {
-			return false;
-		}
-		try {
-			return isSymbolObject(value);
-		} catch (e) {
-			return false;
-		}
-	};
-} else {
-
-	module.exports = function isSymbol(value) {
-		// this environment does not support Symbols.
-		return  false && false;
-	};
-}
-
-
-/***/ }),
-
-/***/ 0:
-/***/ (function(module, exports) {
-
-/* (ignored) */
-
-/***/ }),
-
-/***/ "030x":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var styleInterface = void 0;
-var styleTheme = void 0;
-
-var START_MARK = 'react-with-styles.resolve.start';
-var END_MARK = 'react-with-styles.resolve.end';
-var MEASURE_MARK = '\uD83D\uDC69\u200D\uD83C\uDFA8 [resolve]';
-
-function registerTheme(theme) {
-  styleTheme = theme;
-}
-
-function registerInterface(interfaceToRegister) {
-  styleInterface = interfaceToRegister;
-}
-
-function create(makeFromTheme, createWithDirection) {
-  var styles = createWithDirection(makeFromTheme(styleTheme));
-  return function () {
-    return styles;
-  };
-}
-
-function createLTR(makeFromTheme) {
-  return create(makeFromTheme, styleInterface.createLTR || styleInterface.create);
-}
-
-function createRTL(makeFromTheme) {
-  return create(makeFromTheme, styleInterface.createRTL || styleInterface.create);
-}
-
-function get() {
-  return styleTheme;
-}
-
-function resolve() {
-  if (false) {}
-
-  for (var _len = arguments.length, styles = Array(_len), _key = 0; _key < _len; _key++) {
-    styles[_key] = arguments[_key];
-  }
-
-  var result = styleInterface.resolve(styles);
-
-  if (false) {}
-
-  return result;
-}
-
-function resolveLTR() {
-  for (var _len2 = arguments.length, styles = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
-    styles[_key2] = arguments[_key2];
-  }
-
-  if (styleInterface.resolveLTR) {
-    return styleInterface.resolveLTR(styles);
-  }
-
-  return resolve(styles);
-}
-
-function resolveRTL() {
-  for (var _len3 = arguments.length, styles = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
-    styles[_key3] = arguments[_key3];
-  }
-
-  if (styleInterface.resolveRTL) {
-    return styleInterface.resolveRTL(styles);
-  }
-
-  return resolve(styles);
-}
-
-function flush() {
-  if (styleInterface.flush) {
-    styleInterface.flush();
-  }
-}
-
-exports['default'] = {
-  registerTheme: registerTheme,
-  registerInterface: registerInterface,
-  create: createLTR,
-  createLTR: createLTR,
-  createRTL: createRTL,
-  get: get,
-  resolve: resolveLTR,
-  resolveLTR: resolveLTR,
-  resolveRTL: resolveRTL,
-  flush: flush
-};
-
-/***/ }),
-
-/***/ "0Dl3":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports['default'] = getNumberOfCalendarMonthWeeks;
-
-var _moment = __webpack_require__("wy2R");
-
-var _moment2 = _interopRequireDefault(_moment);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-function getBlankDaysBeforeFirstDay(firstDayOfMonth, firstDayOfWeek) {
-  var weekDayDiff = firstDayOfMonth.day() - firstDayOfWeek;
-  return (weekDayDiff + 7) % 7;
-}
-
-function getNumberOfCalendarMonthWeeks(month) {
-  var firstDayOfWeek = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _moment2['default'].localeData().firstDayOfWeek();
-
-  var firstDayOfMonth = month.clone().startOf('month');
-  var numBlankDays = getBlankDaysBeforeFirstDay(firstDayOfMonth, firstDayOfWeek);
-  return Math.ceil((numBlankDays + month.daysInMonth()) / 7);
-}
-
-/***/ }),
-
-/***/ "0HL0":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return setTextFieldValue; });
-/* harmony import */ var reakit_utils_fireEvent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("qOxZ");
-
-
-function setTextFieldValue(element, value) {
-  if (element instanceof HTMLInputElement || element instanceof HTMLTextAreaElement) {
-    var _Object$getOwnPropert;
-
-    var proto = Object.getPrototypeOf(element);
-    var setValue = (_Object$getOwnPropert = Object.getOwnPropertyDescriptor(proto, "value")) === null || _Object$getOwnPropert === void 0 ? void 0 : _Object$getOwnPropert.set;
-
-    if (setValue) {
-      setValue.call(element, value);
-      Object(reakit_utils_fireEvent__WEBPACK_IMPORTED_MODULE_0__[/* fireEvent */ "a"])(element, "input", {
-        bubbles: true
-      });
-    }
-  }
-}
-
-
-
-
-/***/ }),
-
-/***/ "0XP8":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _react = __webpack_require__("cDcd");
-
-var _react2 = _interopRequireDefault(_react);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-var LeftArrow = function () {
-  function LeftArrow(props) {
-    return _react2['default'].createElement(
-      'svg',
-      props,
-      _react2['default'].createElement('path', {
-        d: 'M336.2 274.5l-210.1 210h805.4c13 0 23 10 23 23s-10 23-23 23H126.1l210.1 210.1c11 11 11 21 0 32-5 5-10 7-16 7s-11-2-16-7l-249.1-249c-11-11-11-21 0-32l249.1-249.1c21-21.1 53 10.9 32 32z'
-      })
-    );
-  }
-
-  return LeftArrow;
-}();
-
-LeftArrow.defaultProps = {
-  viewBox: '0 0 1000 1000'
-};
-exports['default'] = LeftArrow;
-
-/***/ }),
-
-/***/ "1+Kn":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.BOTTOM_RIGHT = exports.TOP_RIGHT = exports.TOP_LEFT = undefined;
-
-var _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; };
-
-var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
-
-var _object = __webpack_require__("Koq/");
-
-var _object2 = _interopRequireDefault(_object);
-
-var _react = __webpack_require__("cDcd");
-
-var _react2 = _interopRequireDefault(_react);
-
-var _propTypes = __webpack_require__("17x9");
-
-var _propTypes2 = _interopRequireDefault(_propTypes);
-
-var _airbnbPropTypes = __webpack_require__("Hsqg");
-
-var _reactWithStyles = __webpack_require__("TG4+");
-
-var _defaultPhrases = __webpack_require__("vV+G");
-
-var _getPhrasePropTypes = __webpack_require__("yc2e");
-
-var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);
-
-var _KeyboardShortcutRow = __webpack_require__("zN8g");
-
-var _KeyboardShortcutRow2 = _interopRequireDefault(_KeyboardShortcutRow);
-
-var _CloseButton = __webpack_require__("xEte");
-
-var _CloseButton2 = _interopRequireDefault(_CloseButton);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
-
-function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
-
-function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-
-var TOP_LEFT = exports.TOP_LEFT = 'top-left';
-var TOP_RIGHT = exports.TOP_RIGHT = 'top-right';
-var BOTTOM_RIGHT = exports.BOTTOM_RIGHT = 'bottom-right';
-
-var propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, {
-  block: _propTypes2['default'].bool,
-  buttonLocation: _propTypes2['default'].oneOf([TOP_LEFT, TOP_RIGHT, BOTTOM_RIGHT]),
-  showKeyboardShortcutsPanel: _propTypes2['default'].bool,
-  openKeyboardShortcutsPanel: _propTypes2['default'].func,
-  closeKeyboardShortcutsPanel: _propTypes2['default'].func,
-  phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.DayPickerKeyboardShortcutsPhrases))
-}));
-
-var defaultProps = {
-  block: false,
-  buttonLocation: BOTTOM_RIGHT,
-  showKeyboardShortcutsPanel: false,
-  openKeyboardShortcutsPanel: function () {
-    function openKeyboardShortcutsPanel() {}
-
-    return openKeyboardShortcutsPanel;
-  }(),
-  closeKeyboardShortcutsPanel: function () {
-    function closeKeyboardShortcutsPanel() {}
-
-    return closeKeyboardShortcutsPanel;
-  }(),
-
-  phrases: _defaultPhrases.DayPickerKeyboardShortcutsPhrases
-};
-
-function getKeyboardShortcuts(phrases) {
-  return [{
-    unicode: '↵',
-    label: phrases.enterKey,
-    action: phrases.selectFocusedDate
-  }, {
-    unicode: '←/→',
-    label: phrases.leftArrowRightArrow,
-    action: phrases.moveFocusByOneDay
-  }, {
-    unicode: '↑/↓',
-    label: phrases.upArrowDownArrow,
-    action: phrases.moveFocusByOneWeek
-  }, {
-    unicode: 'PgUp/PgDn',
-    label: phrases.pageUpPageDown,
-    action: phrases.moveFocusByOneMonth
-  }, {
-    unicode: 'Home/End',
-    label: phrases.homeEnd,
-    action: phrases.moveFocustoStartAndEndOfWeek
-  }, {
-    unicode: 'Esc',
-    label: phrases.escape,
-    action: phrases.returnFocusToInput
-  }, {
-    unicode: '?',
-    label: phrases.questionMark,
-    action: phrases.openThisPanel
-  }];
-}
-
-var DayPickerKeyboardShortcuts = function (_React$Component) {
-  _inherits(DayPickerKeyboardShortcuts, _React$Component);
-
-  function DayPickerKeyboardShortcuts() {
-    var _ref;
-
-    _classCallCheck(this, DayPickerKeyboardShortcuts);
-
-    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
-      args[_key] = arguments[_key];
-    }
-
-    var _this = _possibleConstructorReturn(this, (_ref = DayPickerKeyboardShortcuts.__proto__ || Object.getPrototypeOf(DayPickerKeyboardShortcuts)).call.apply(_ref, [this].concat(args)));
-
-    var phrases = _this.props.phrases;
-
-    _this.keyboardShortcuts = getKeyboardShortcuts(phrases);
-
-    _this.onShowKeyboardShortcutsButtonClick = _this.onShowKeyboardShortcutsButtonClick.bind(_this);
-    _this.setShowKeyboardShortcutsButtonRef = _this.setShowKeyboardShortcutsButtonRef.bind(_this);
-    _this.setHideKeyboardShortcutsButtonRef = _this.setHideKeyboardShortcutsButtonRef.bind(_this);
-    _this.handleFocus = _this.handleFocus.bind(_this);
-    _this.onKeyDown = _this.onKeyDown.bind(_this);
-    return _this;
-  }
-
-  _createClass(DayPickerKeyboardShortcuts, [{
-    key: 'componentWillReceiveProps',
-    value: function () {
-      function componentWillReceiveProps(nextProps) {
-        var phrases = this.props.phrases;
-
-        if (nextProps.phrases !== phrases) {
-          this.keyboardShortcuts = getKeyboardShortcuts(nextProps.phrases);
-        }
-      }
-
-      return componentWillReceiveProps;
-    }()
-  }, {
-    key: 'componentDidUpdate',
-    value: function () {
-      function componentDidUpdate() {
-        this.handleFocus();
-      }
-
-      return componentDidUpdate;
-    }()
-  }, {
-    key: 'onKeyDown',
-    value: function () {
-      function onKeyDown(e) {
-        e.stopPropagation();
-
-        var closeKeyboardShortcutsPanel = this.props.closeKeyboardShortcutsPanel;
-        // Because the close button is the only focusable element inside of the panel, this
-        // amounts to a very basic focus trap. The user can exit the panel by "pressing" the
-        // close button or hitting escape
-
-        switch (e.key) {
-          case 'Enter':
-          case ' ':
-          case 'Spacebar': // for older browsers
-          case 'Escape':
-            closeKeyboardShortcutsPanel();
-            break;
-
-          // do nothing - this allows the up and down arrows continue their
-          // default behavior of scrolling the content of the Keyboard Shortcuts Panel
-          // which is needed when only a single month is shown for instance.
-          case 'ArrowUp':
-          case 'ArrowDown':
-            break;
-
-          // completely block the rest of the keys that have functionality outside of this panel
-          case 'Tab':
-          case 'Home':
-          case 'End':
-          case 'PageUp':
-          case 'PageDown':
-          case 'ArrowLeft':
-          case 'ArrowRight':
-            e.preventDefault();
-            break;
-
-          default:
-            break;
-        }
-      }
-
-      return onKeyDown;
-    }()
-  }, {
-    key: 'onShowKeyboardShortcutsButtonClick',
-    value: function () {
-      function onShowKeyboardShortcutsButtonClick() {
-        var _this2 = this;
-
-        var openKeyboardShortcutsPanel = this.props.openKeyboardShortcutsPanel;
-
-        // we want to return focus to this button after closing the keyboard shortcuts panel
-
-        openKeyboardShortcutsPanel(function () {
-          _this2.showKeyboardShortcutsButton.focus();
-        });
-      }
-
-      return onShowKeyboardShortcutsButtonClick;
-    }()
-  }, {
-    key: 'setShowKeyboardShortcutsButtonRef',
-    value: function () {
-      function setShowKeyboardShortcutsButtonRef(ref) {
-        this.showKeyboardShortcutsButton = ref;
-      }
-
-      return setShowKeyboardShortcutsButtonRef;
-    }()
-  }, {
-    key: 'setHideKeyboardShortcutsButtonRef',
-    value: function () {
-      function setHideKeyboardShortcutsButtonRef(ref) {
-        this.hideKeyboardShortcutsButton = ref;
-      }
-
-      return setHideKeyboardShortcutsButtonRef;
-    }()
-  }, {
-    key: 'handleFocus',
-    value: function () {
-      function handleFocus() {
-        if (this.hideKeyboardShortcutsButton) {
-          // automatically move focus into the dialog by moving
-          // to the only interactive element, the hide button
-          this.hideKeyboardShortcutsButton.focus();
-        }
-      }
-
-      return handleFocus;
-    }()
-  }, {
-    key: 'render',
-    value: function () {
-      function render() {
-        var _this3 = this;
-
-        var _props = this.props,
-            block = _props.block,
-            buttonLocation = _props.buttonLocation,
-            showKeyboardShortcutsPanel = _props.showKeyboardShortcutsPanel,
-            closeKeyboardShortcutsPanel = _props.closeKeyboardShortcutsPanel,
-            styles = _props.styles,
-            phrases = _props.phrases;
-
-
-        var toggleButtonText = showKeyboardShortcutsPanel ? phrases.hideKeyboardShortcutsPanel : phrases.showKeyboardShortcutsPanel;
-
-        var bottomRight = buttonLocation === BOTTOM_RIGHT;
-        var topRight = buttonLocation === TOP_RIGHT;
-        var topLeft = buttonLocation === TOP_LEFT;
-
-        return _react2['default'].createElement(
-          'div',
-          null,
-          _react2['default'].createElement(
-            'button',
-            _extends({
-              ref: this.setShowKeyboardShortcutsButtonRef
-            }, (0, _reactWithStyles.css)(styles.DayPickerKeyboardShortcuts_buttonReset, styles.DayPickerKeyboardShortcuts_show, bottomRight && styles.DayPickerKeyboardShortcuts_show__bottomRight, topRight && styles.DayPickerKeyboardShortcuts_show__topRight, topLeft && styles.DayPickerKeyboardShortcuts_show__topLeft), {
-              type: 'button',
-              'aria-label': toggleButtonText,
-              onClick: this.onShowKeyboardShortcutsButtonClick,
-              onKeyDown: function () {
-                function onKeyDown(e) {
-                  if (e.key === 'Enter') {
-                    e.preventDefault();
-                  } else if (e.key === 'Space') {
-                    _this3.onShowKeyboardShortcutsButtonClick(e);
-                  }
-                }
-
-                return onKeyDown;
-              }(),
-              onMouseUp: function () {
-                function onMouseUp(e) {
-                  e.currentTarget.blur();
-                }
-
-                return onMouseUp;
-              }()
-            }),
-            _react2['default'].createElement(
-              'span',
-              (0, _reactWithStyles.css)(styles.DayPickerKeyboardShortcuts_showSpan, bottomRight && styles.DayPickerKeyboardShortcuts_showSpan__bottomRight, topRight && styles.DayPickerKeyboardShortcuts_showSpan__topRight, topLeft && styles.DayPickerKeyboardShortcuts_showSpan__topLeft),
-              '?'
-            )
-          ),
-          showKeyboardShortcutsPanel && _react2['default'].createElement(
-            'div',
-            _extends({}, (0, _reactWithStyles.css)(styles.DayPickerKeyboardShortcuts_panel), {
-              role: 'dialog',
-              'aria-labelledby': 'DayPickerKeyboardShortcuts_title',
-              'aria-describedby': 'DayPickerKeyboardShortcuts_description'
-            }),
-            _react2['default'].createElement(
-              'div',
-              _extends({}, (0, _reactWithStyles.css)(styles.DayPickerKeyboardShortcuts_title), {
-                id: 'DayPickerKeyboardShortcuts_title'
-              }),
-              phrases.keyboardShortcuts
-            ),
-            _react2['default'].createElement(
-              'button',
-              _extends({
-                ref: this.setHideKeyboardShortcutsButtonRef
-              }, (0, _reactWithStyles.css)(styles.DayPickerKeyboardShortcuts_buttonReset, styles.DayPickerKeyboardShortcuts_close), {
-                type: 'button',
-                tabIndex: '0',
-                'aria-label': phrases.hideKeyboardShortcutsPanel,
-                onClick: closeKeyboardShortcutsPanel,
-                onKeyDown: this.onKeyDown
-              }),
-              _react2['default'].createElement(_CloseButton2['default'], (0, _reactWithStyles.css)(styles.DayPickerKeyboardShortcuts_closeSvg))
-            ),
-            _react2['default'].createElement(
-              'ul',
-              _extends({}, (0, _reactWithStyles.css)(styles.DayPickerKeyboardShortcuts_list), {
-                id: 'DayPickerKeyboardShortcuts_description'
-              }),
-              this.keyboardShortcuts.map(function (_ref2) {
-                var unicode = _ref2.unicode,
-                    label = _ref2.label,
-                    action = _ref2.action;
-                return _react2['default'].createElement(_KeyboardShortcutRow2['default'], {
-                  key: label,
-                  unicode: unicode,
-                  label: label,
-                  action: action,
-                  block: block
-                });
-              })
-            )
-          )
-        );
-      }
-
-      return render;
-    }()
-  }]);
-
-  return DayPickerKeyboardShortcuts;
-}(_react2['default'].Component);
-
-DayPickerKeyboardShortcuts.propTypes = propTypes;
-DayPickerKeyboardShortcuts.defaultProps = defaultProps;
-
-exports['default'] = (0, _reactWithStyles.withStyles)(function (_ref3) {
-  var _ref3$reactDates = _ref3.reactDates,
-      color = _ref3$reactDates.color,
-      font = _ref3$reactDates.font,
-      zIndex = _ref3$reactDates.zIndex;
-  return {
-    DayPickerKeyboardShortcuts_buttonReset: {
-      background: 'none',
-      border: 0,
-      borderRadius: 0,
-      color: 'inherit',
-      font: 'inherit',
-      lineHeight: 'normal',
-      overflow: 'visible',
-      padding: 0,
-      cursor: 'pointer',
-      fontSize: font.size,
-
-      ':active': {
-        outline: 'none'
-      }
-    },
-
-    DayPickerKeyboardShortcuts_show: {
-      width: 22,
-      position: 'absolute',
-      zIndex: zIndex + 2
-    },
-
-    DayPickerKeyboardShortcuts_show__bottomRight: {
-      borderTop: '26px solid transparent',
-      borderRight: '33px solid ' + String(color.core.primary),
-      bottom: 0,
-      right: 0,
-
-      ':hover': {
-        borderRight: '33px solid ' + String(color.core.primary_dark)
-      }
-    },
-
-    DayPickerKeyboardShortcuts_show__topRight: {
-      borderBottom: '26px solid transparent',
-      borderRight: '33px solid ' + String(color.core.primary),
-      top: 0,
-      right: 0,
-
-      ':hover': {
-        borderRight: '33px solid ' + String(color.core.primary_dark)
-      }
-    },
-
-    DayPickerKeyboardShortcuts_show__topLeft: {
-      borderBottom: '26px solid transparent',
-      borderLeft: '33px solid ' + String(color.core.primary),
-      top: 0,
-      left: 0,
-
-      ':hover': {
-        borderLeft: '33px solid ' + String(color.core.primary_dark)
-      }
-    },
-
-    DayPickerKeyboardShortcuts_showSpan: {
-      color: color.core.white,
-      position: 'absolute'
-    },
-
-    DayPickerKeyboardShortcuts_showSpan__bottomRight: {
-      bottom: 0,
-      right: -28
-    },
-
-    DayPickerKeyboardShortcuts_showSpan__topRight: {
-      top: 1,
-      right: -28
-    },
-
-    DayPickerKeyboardShortcuts_showSpan__topLeft: {
-      top: 1,
-      left: -28
-    },
-
-    DayPickerKeyboardShortcuts_panel: {
-      overflow: 'auto',
-      background: color.background,
-      border: '1px solid ' + String(color.core.border),
-      borderRadius: 2,
-      position: 'absolute',
-      top: 0,
-      bottom: 0,
-      right: 0,
-      left: 0,
-      zIndex: zIndex + 2,
-      padding: 22,
-      margin: 33
-    },
-
-    DayPickerKeyboardShortcuts_title: {
-      fontSize: 16,
-      fontWeight: 'bold',
-      margin: 0
-    },
-
-    DayPickerKeyboardShortcuts_list: {
-      listStyle: 'none',
-      padding: 0,
-      fontSize: font.size
-    },
-
-    DayPickerKeyboardShortcuts_close: {
-      position: 'absolute',
-      right: 22,
-      top: 22,
-      zIndex: zIndex + 2,
-
-      ':active': {
-        outline: 'none'
-      }
-    },
-
-    DayPickerKeyboardShortcuts_closeSvg: {
-      height: 15,
-      width: 15,
-      fill: color.core.grayLighter,
-
-      ':hover': {
-        fill: color.core.grayLight
-      },
-
-      ':focus': {
-        fill: color.core.grayLight
-      }
-    }
-  };
-})(DayPickerKeyboardShortcuts);
-
-/***/ }),
-
-/***/ "10Kj":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var GetIntrinsic = __webpack_require__("rZ7t");
-
-var $TypeError = GetIntrinsic('%TypeError%');
-var $SyntaxError = GetIntrinsic('%SyntaxError%');
-
-var has = __webpack_require__("oNNP");
-
-var predicates = {
-	// https://262.ecma-international.org/6.0/#sec-property-descriptor-specification-type
-	'Property Descriptor': function isPropertyDescriptor(Type, Desc) {
-		if (Type(Desc) !== 'Object') {
-			return false;
-		}
-		var allowed = {
-			'[[Configurable]]': true,
-			'[[Enumerable]]': true,
-			'[[Get]]': true,
-			'[[Set]]': true,
-			'[[Value]]': true,
-			'[[Writable]]': true
-		};
-
-		for (var key in Desc) { // eslint-disable-line
-			if (has(Desc, key) && !allowed[key]) {
-				return false;
-			}
-		}
-
-		var isData = has(Desc, '[[Value]]');
-		var IsAccessor = has(Desc, '[[Get]]') || has(Desc, '[[Set]]');
-		if (isData && IsAccessor) {
-			throw new $TypeError('Property Descriptors may not be both accessor and data descriptors');
-		}
-		return true;
-	}
-};
-
-module.exports = function assertRecord(Type, recordType, argumentName, value) {
-	var predicate = predicates[recordType];
-	if (typeof predicate !== 'function') {
-		throw new $SyntaxError('unknown record type: ' + recordType);
-	}
-	if (!predicate(Type, value)) {
-		throw new $TypeError(argumentName + ' must be a ' + recordType);
-	}
-};
-
-
-/***/ }),
-
-/***/ "16Al":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-/**
- * Copyright (c) 2013-present, Facebook, Inc.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-
-
-var ReactPropTypesSecret = __webpack_require__("WbBG");
-
-function emptyFunction() {}
-function emptyFunctionWithReset() {}
-emptyFunctionWithReset.resetWarningCache = emptyFunction;
-
-module.exports = function() {
-  function shim(props, propName, componentName, location, propFullName, secret) {
-    if (secret === ReactPropTypesSecret) {
-      // It is still safe when called from React.
-      return;
-    }
-    var err = new Error(
-      'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
-      'Use PropTypes.checkPropTypes() to call them. ' +
-      'Read more at http://fb.me/use-check-prop-types'
-    );
-    err.name = 'Invariant Violation';
-    throw err;
-  };
-  shim.isRequired = shim;
-  function getShim() {
-    return shim;
-  };
-  // Important!
-  // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.
-  var ReactPropTypes = {
-    array: shim,
-    bool: shim,
-    func: shim,
-    number: shim,
-    object: shim,
-    string: shim,
-    symbol: shim,
-
-    any: shim,
-    arrayOf: getShim,
-    element: shim,
-    elementType: shim,
-    instanceOf: getShim,
-    node: shim,
-    objectOf: getShim,
-    oneOf: getShim,
-    oneOfType: getShim,
-    shape: getShim,
-    exact: getShim,
-
-    checkPropTypes: emptyFunctionWithReset,
-    resetWarningCache: emptyFunction
-  };
-
-  ReactPropTypes.PropTypes = ReactPropTypes;
-
-  return ReactPropTypes;
-};
-
-
-/***/ }),
-
-/***/ "17x9":
-/***/ (function(module, exports, __webpack_require__) {
-
-/**
- * Copyright (c) 2013-present, Facebook, Inc.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-if (false) { var throwOnDirectAccess, ReactIs; } else {
-  // By explicitly using `prop-types` you are opting into new production behavior.
-  // http://fb.me/prop-types-in-prod
-  module.exports = __webpack_require__("16Al")();
-}
-
-
-/***/ }),
-
-/***/ "1CF3":
-/***/ (function(module, exports) {
-
-(function() { module.exports = window["wp"]["dom"]; }());
-
-/***/ }),
-
-/***/ "1KsK":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var toStr = Object.prototype.toString;
-
-module.exports = function isArguments(value) {
-	var str = toStr.call(value);
-	var isArgs = str === '[object Arguments]';
-	if (!isArgs) {
-		isArgs = str !== '[object Array]' &&
-			value !== null &&
-			typeof value === 'object' &&
-			typeof value.length === 'number' &&
-			value.length >= 0 &&
-			toStr.call(value.callee) === '[object Function]';
-	}
-	return isArgs;
-};
-
-
-/***/ }),
-
-/***/ "1LY1":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var bind = __webpack_require__("D3zA");
-var GetIntrinsic = __webpack_require__("rZ7t");
-
-var $apply = GetIntrinsic('%Function.prototype.apply%');
-var $call = GetIntrinsic('%Function.prototype.call%');
-var $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);
-
-var $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);
-var $defineProperty = GetIntrinsic('%Object.defineProperty%', true);
-var $max = GetIntrinsic('%Math.max%');
-
-if ($defineProperty) {
-	try {
-		$defineProperty({}, 'a', { value: 1 });
-	} catch (e) {
-		// IE 8 has a broken defineProperty
-		$defineProperty = null;
-	}
-}
-
-module.exports = function callBind(originalFunction) {
-	var func = $reflectApply(bind, $call, arguments);
-	if ($gOPD && $defineProperty) {
-		var desc = $gOPD(func, 'length');
-		if (desc.configurable) {
-			// original length, plus the receiver, minus any additional arguments (after the receiver)
-			$defineProperty(
-				func,
-				'length',
-				{ value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }
-			);
-		}
-	}
-	return func;
-};
-
-var applyBind = function applyBind() {
-	return $reflectApply(bind, $apply, arguments);
-};
-
-if ($defineProperty) {
-	$defineProperty(module.exports, 'apply', { value: applyBind });
-} else {
-	module.exports.apply = applyBind;
-}
-
-
-/***/ }),
-
-/***/ "1TsT":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addEventListener", function() { return addEventListener; });
-var CAN_USE_DOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);
-
-// Adapted from Modernizr
-// https://github.com/Modernizr/Modernizr/blob/acb3f0d9/feature-detects/dom/passiveeventlisteners.js#L26-L37
-function testPassiveEventListeners() {
-  if (!CAN_USE_DOM) {
-    return false;
-  }
-
-  if (!window.addEventListener || !window.removeEventListener || !Object.defineProperty) {
-    return false;
-  }
-
-  var supportsPassiveOption = false;
-  try {
-    var opts = Object.defineProperty({}, 'passive', {
-      // eslint-disable-next-line getter-return
-      get: function () {
-        function get() {
-          supportsPassiveOption = true;
-        }
-
-        return get;
-      }()
-    });
-    var noop = function noop() {};
-    window.addEventListener('testPassiveEventSupport', noop, opts);
-    window.removeEventListener('testPassiveEventSupport', noop, opts);
-  } catch (e) {
-    // do nothing
-  }
-
-  return supportsPassiveOption;
-}
-
-var memoized = void 0;
-
-function canUsePassiveEventListeners() {
-  if (memoized === undefined) {
-    memoized = testPassiveEventListeners();
-  }
-  return memoized;
-}
-
-function normalizeEventOptions(eventOptions) {
-  if (!eventOptions) {
-    return undefined;
-  }
-
-  if (!canUsePassiveEventListeners()) {
-    // If the browser does not support the passive option, then it is expecting
-    // a boolean for the options argument to specify whether it should use
-    // capture or not. In more modern browsers, this is passed via the `capture`
-    // option, so let's just hoist that value up.
-    return !!eventOptions.capture;
-  }
-
-  return eventOptions;
-}
-
-/* eslint-disable no-bitwise */
-
-/**
- * Generate a unique key for any set of event options
- */
-function eventOptionsKey(normalizedEventOptions) {
-  if (!normalizedEventOptions) {
-    return 0;
-  }
-
-  // If the browser does not support passive event listeners, the normalized
-  // event options will be a boolean.
-  if (normalizedEventOptions === true) {
-    return 100;
-  }
-
-  // At this point, the browser supports passive event listeners, so we expect
-  // the event options to be an object with possible properties of capture,
-  // passive, and once.
-  //
-  // We want to consistently return the same value, regardless of the order of
-  // these properties, so let's use binary maths to assign each property to a
-  // bit, and then add those together (with an offset to account for the
-  // booleans at the beginning of this function).
-  var capture = normalizedEventOptions.capture << 0;
-  var passive = normalizedEventOptions.passive << 1;
-  var once = normalizedEventOptions.once << 2;
-  return capture + passive + once;
-}
-
-function ensureCanMutateNextEventHandlers(eventHandlers) {
-  if (eventHandlers.handlers === eventHandlers.nextHandlers) {
-    // eslint-disable-next-line no-param-reassign
-    eventHandlers.nextHandlers = eventHandlers.handlers.slice();
-  }
-}
-
-function TargetEventHandlers(target) {
-  this.target = target;
-  this.events = {};
-}
-
-TargetEventHandlers.prototype.getEventHandlers = function () {
-  function getEventHandlers(eventName, options) {
-    var key = String(eventName) + ' ' + String(eventOptionsKey(options));
-
-    if (!this.events[key]) {
-      this.events[key] = {
-        handlers: [],
-        handleEvent: undefined
-      };
-      this.events[key].nextHandlers = this.events[key].handlers;
-    }
-
-    return this.events[key];
-  }
-
-  return getEventHandlers;
-}();
-
-TargetEventHandlers.prototype.handleEvent = function () {
-  function handleEvent(eventName, options, event) {
-    var eventHandlers = this.getEventHandlers(eventName, options);
-    eventHandlers.handlers = eventHandlers.nextHandlers;
-    eventHandlers.handlers.forEach(function (handler) {
-      if (handler) {
-        // We need to check for presence here because a handler function may
-        // cause later handlers to get removed. This can happen if you for
-        // instance have a waypoint that unmounts another waypoint as part of an
-        // onEnter/onLeave handler.
-        handler(event);
-      }
-    });
-  }
-
-  return handleEvent;
-}();
-
-TargetEventHandlers.prototype.add = function () {
-  function add(eventName, listener, options) {
-    var _this = this;
-
-    // options has already been normalized at this point.
-    var eventHandlers = this.getEventHandlers(eventName, options);
-
-    ensureCanMutateNextEventHandlers(eventHandlers);
-
-    if (eventHandlers.nextHandlers.length === 0) {
-      eventHandlers.handleEvent = this.handleEvent.bind(this, eventName, options);
-
-      this.target.addEventListener(eventName, eventHandlers.handleEvent, options);
-    }
-
-    eventHandlers.nextHandlers.push(listener);
-
-    var isSubscribed = true;
-    var unsubscribe = function () {
-      function unsubscribe() {
-        if (!isSubscribed) {
-          return;
-        }
-
-        isSubscribed = false;
-
-        ensureCanMutateNextEventHandlers(eventHandlers);
-        var index = eventHandlers.nextHandlers.indexOf(listener);
-        eventHandlers.nextHandlers.splice(index, 1);
-
-        if (eventHandlers.nextHandlers.length === 0) {
-          // All event handlers have been removed, so we want to remove the event
-          // listener from the target node.
-
-          if (_this.target) {
-            // There can be a race condition where the target may no longer exist
-            // when this function is called, e.g. when a React component is
-            // unmounting. Guarding against this prevents the following error:
-            //
-            //   Cannot read property 'removeEventListener' of undefined
-            _this.target.removeEventListener(eventName, eventHandlers.handleEvent, options);
-          }
-
-          eventHandlers.handleEvent = undefined;
-        }
-      }
-
-      return unsubscribe;
-    }();
-    return unsubscribe;
-  }
-
-  return add;
-}();
-
-var EVENT_HANDLERS_KEY = '__consolidated_events_handlers__';
-
-// eslint-disable-next-line import/prefer-default-export
-function addEventListener(target, eventName, listener, options) {
-  if (!target[EVENT_HANDLERS_KEY]) {
-    // eslint-disable-next-line no-param-reassign
-    target[EVENT_HANDLERS_KEY] = new TargetEventHandlers(target);
-  }
-  var normalizedEventOptions = normalizeEventOptions(options);
-  return target[EVENT_HANDLERS_KEY].add(eventName, listener, normalizedEventOptions);
-}
-
-
-
-
-/***/ }),
-
-/***/ "1iEr":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
-/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
-
-
-/**
- * WordPress dependencies
- */
-
-const chevronRight = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
-  xmlns: "http://www.w3.org/2000/svg",
-  viewBox: "0 0 24 24"
-}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
-  d: "M10.6 6L9.4 7l4.6 5-4.6 5 1.2 1 5.4-6z"
-}));
-/* harmony default export */ __webpack_exports__["a"] = (chevronRight);
-
-
-/***/ }),
-
-/***/ "1seS":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var slice = Array.prototype.slice;
-var isArgs = __webpack_require__("1KsK");
-
-var origKeys = Object.keys;
-var keysShim = origKeys ? function keys(o) { return origKeys(o); } : __webpack_require__("sYn3");
-
-var originalKeys = Object.keys;
-
-keysShim.shim = function shimObjectKeys() {
-	if (Object.keys) {
-		var keysWorksWithArguments = (function () {
-			// Safari 5.0 bug
-			var args = Object.keys(arguments);
-			return args && args.length === arguments.length;
-		}(1, 2));
-		if (!keysWorksWithArguments) {
-			Object.keys = function keys(object) { // eslint-disable-line func-name-matching
-				if (isArgs(object)) {
-					return originalKeys(slice.call(object));
-				}
-				return originalKeys(object);
-			};
-		}
-	} else {
-		Object.keys = keysShim;
-	}
-	return Object.keys || keysShim;
-};
-
-module.exports = keysShim;
-
-
-/***/ }),
-
-/***/ "22yB":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var implementation = __webpack_require__("yN6O");
-
-module.exports = function getPolyfill() {
-	return Array.prototype.flat || implementation;
-};
-
-
-/***/ }),
-
-/***/ "25kQ":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-module.exports = __webpack_require__("aUaa");
-
-
-/***/ }),
-
-/***/ "2Q00":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports['default'] = CalendarWeek;
-
-var _react = __webpack_require__("cDcd");
-
-var _react2 = _interopRequireDefault(_react);
-
-var _airbnbPropTypes = __webpack_require__("Hsqg");
-
-var _CalendarDay = __webpack_require__("N3k4");
-
-var _CalendarDay2 = _interopRequireDefault(_CalendarDay);
-
-var _CustomizableCalendarDay = __webpack_require__("GET3");
-
-var _CustomizableCalendarDay2 = _interopRequireDefault(_CustomizableCalendarDay);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-var propTypes = (0, _airbnbPropTypes.forbidExtraProps)({
-  children: (0, _airbnbPropTypes.or)([(0, _airbnbPropTypes.childrenOfType)(_CalendarDay2['default']), (0, _airbnbPropTypes.childrenOfType)(_CustomizableCalendarDay2['default'])]).isRequired
-});
-
-function CalendarWeek(_ref) {
-  var children = _ref.children;
-
-  return _react2['default'].createElement(
-    'tr',
-    null,
-    children
-  );
-}
-
-CalendarWeek.propTypes = propTypes;
-
-/***/ }),
-
-/***/ "2S2E":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _propTypes = __webpack_require__("17x9");
-
-var _propTypes2 = _interopRequireDefault(_propTypes);
-
-var _constants = __webpack_require__("Fv1B");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-exports['default'] = _propTypes2['default'].oneOf(_constants.WEEKDAYS);
-
-/***/ }),
-
-/***/ "2gm7":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
-/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
-
-
-/**
- * WordPress dependencies
- */
-
-const chevronLeft = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
-  xmlns: "http://www.w3.org/2000/svg",
-  viewBox: "0 0 24 24"
-}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
-  d: "M14.6 7l-1.2-1L8 12l5.4 6 1.2-1-4.6-5z"
-}));
-/* harmony default export */ __webpack_exports__["a"] = (chevronLeft);
-
-
-/***/ }),
-
-/***/ "2mql":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var reactIs = __webpack_require__("TOwV");
-
-/**
- * Copyright 2015, Yahoo! Inc.
- * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
- */
-var REACT_STATICS = {
-  childContextTypes: true,
-  contextType: true,
-  contextTypes: true,
-  defaultProps: true,
-  displayName: true,
-  getDefaultProps: true,
-  getDerivedStateFromError: true,
-  getDerivedStateFromProps: true,
-  mixins: true,
-  propTypes: true,
-  type: true
-};
-var KNOWN_STATICS = {
-  name: true,
-  length: true,
-  prototype: true,
-  caller: true,
-  callee: true,
-  arguments: true,
-  arity: true
-};
-var FORWARD_REF_STATICS = {
-  '$$typeof': true,
-  render: true,
-  defaultProps: true,
-  displayName: true,
-  propTypes: true
-};
-var MEMO_STATICS = {
-  '$$typeof': true,
-  compare: true,
-  defaultProps: true,
-  displayName: true,
-  propTypes: true,
-  type: true
-};
-var TYPE_STATICS = {};
-TYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;
-TYPE_STATICS[reactIs.Memo] = MEMO_STATICS;
-
-function getStatics(component) {
-  // React v16.11 and below
-  if (reactIs.isMemo(component)) {
-    return MEMO_STATICS;
-  } // React v16.12 and above
-
-
-  return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;
-}
-
-var defineProperty = Object.defineProperty;
-var getOwnPropertyNames = Object.getOwnPropertyNames;
-var getOwnPropertySymbols = Object.getOwnPropertySymbols;
-var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
-var getPrototypeOf = Object.getPrototypeOf;
-var objectPrototype = Object.prototype;
-function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {
-  if (typeof sourceComponent !== 'string') {
-    // don't hoist over string (html) components
-    if (objectPrototype) {
-      var inheritedComponent = getPrototypeOf(sourceComponent);
-
-      if (inheritedComponent && inheritedComponent !== objectPrototype) {
-        hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);
-      }
-    }
-
-    var keys = getOwnPropertyNames(sourceComponent);
-
-    if (getOwnPropertySymbols) {
-      keys = keys.concat(getOwnPropertySymbols(sourceComponent));
-    }
-
-    var targetStatics = getStatics(targetComponent);
-    var sourceStatics = getStatics(sourceComponent);
-
-    for (var i = 0; i < keys.length; ++i) {
-      var key = keys[i];
-
-      if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {
-        var descriptor = getOwnPropertyDescriptor(sourceComponent, key);
-
-        try {
-          // Avoid failures from read-only properties
-          defineProperty(targetComponent, key, descriptor);
-        } catch (e) {}
-      }
-    }
-  }
-
-  return targetComponent;
-}
-
-module.exports = hoistNonReactStatics;
-
-
-/***/ }),
-
-/***/ "3HjQ":
-/***/ (function(module, exports) {
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-// This function takes an array of styles and separates them into styles that
-// are handled by Aphrodite and inline styles.
-function separateStyles(stylesArray) {
-  var classNames = [];
-
-  // Since determining if an Object is empty requires collecting all of its
-  // keys, and we want the best performance in this code because we are in the
-  // render path, we are going to do a little bookkeeping ourselves.
-  var hasInlineStyles = false;
-  var inlineStyles = {};
-
-  // This is run on potentially every node in the tree when rendering, where
-  // performance is critical. Normally we would prefer using `forEach`, but
-  // old-fashioned for loops are faster so that's what we have chosen here.
-  for (var i = 0; i < stylesArray.length; i++) {
-    // eslint-disable-line no-plusplus
-    var style = stylesArray[i];
-
-    // If this  style is falsy, we just want to disregard it. This allows for
-    // syntax like:
-    //
-    //   css(isFoo && styles.foo)
-    if (style) {
-      if (typeof style === 'string') {
-        classNames.push(style);
-      } else {
-        Object.assign(inlineStyles, style);
-        hasInlineStyles = true;
-      }
-    }
-  }
-
-  return {
-    classNames: classNames,
-    hasInlineStyles: hasInlineStyles,
-    inlineStyles: inlineStyles
-  };
-}
-
-exports['default'] = separateStyles;
-
-/***/ }),
-
-/***/ "3aeR":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var GetIntrinsic = __webpack_require__("rZ7t");
-
-var $TypeError = GetIntrinsic('%TypeError%');
-
-var inspect = __webpack_require__("4qvr");
-
-var IsPropertyKey = __webpack_require__("i10q");
-var Type = __webpack_require__("V1cy");
-
-/**
- * 7.3.1 Get (O, P) - https://ecma-international.org/ecma-262/6.0/#sec-get-o-p
- * 1. Assert: Type(O) is Object.
- * 2. Assert: IsPropertyKey(P) is true.
- * 3. Return O.[[Get]](P, O).
- */
-
-module.exports = function Get(O, P) {
-	// 7.3.1.1
-	if (Type(O) !== 'Object') {
-		throw new $TypeError('Assertion failed: Type(O) is not Object');
-	}
-	// 7.3.1.2
-	if (!IsPropertyKey(P)) {
-		throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true, got ' + inspect(P));
-	}
-	// 7.3.1.3
-	return O[P];
-};
-
-
-/***/ }),
-
-/***/ "3gBW":
-/***/ (function(module, exports, __webpack_require__) {
-
-// eslint-disable-next-line import/no-unresolved
-module.exports = __webpack_require__("50qU");
-
-
-/***/ }),
-
-/***/ "4HRn":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-// var modulo = require('./modulo');
-var $floor = Math.floor;
-
-// http://262.ecma-international.org/5.1/#sec-5.2
-
-module.exports = function floor(x) {
-	// return x - modulo(x, 1);
-	return $floor(x);
-};
-
-
-/***/ }),
-
-/***/ "4cSd":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var define = __webpack_require__("82c2");
-var callBind = __webpack_require__("PrET");
-
-var implementation = __webpack_require__("rQy3");
-var getPolyfill = __webpack_require__("xoj2");
-var shim = __webpack_require__("ib7Q");
-
-var polyfill = callBind(getPolyfill(), Object);
-
-define(polyfill, {
-	getPolyfill: getPolyfill,
-	implementation: implementation,
-	shim: shim
-});
-
-module.exports = polyfill;
-
-
-/***/ }),
-
-/***/ "4eJC":
-/***/ (function(module, exports, __webpack_require__) {
-
-/**
- * Memize options object.
- *
- * @typedef MemizeOptions
- *
- * @property {number} [maxSize] Maximum size of the cache.
- */
-
-/**
- * Internal cache entry.
- *
- * @typedef MemizeCacheNode
- *
- * @property {?MemizeCacheNode|undefined} [prev] Previous node.
- * @property {?MemizeCacheNode|undefined} [next] Next node.
- * @property {Array<*>}                   args   Function arguments for cache
- *                                               entry.
- * @property {*}                          val    Function result.
- */
-
-/**
- * Properties of the enhanced function for controlling cache.
- *
- * @typedef MemizeMemoizedFunction
- *
- * @property {()=>void} clear Clear the cache.
- */
-
-/**
- * Accepts a function to be memoized, and returns a new memoized function, with
- * optional options.
- *
- * @template {Function} F
- *
- * @param {F}             fn        Function to memoize.
- * @param {MemizeOptions} [options] Options object.
- *
- * @return {F & MemizeMemoizedFunction} Memoized function.
- */
-function memize( fn, options ) {
-	var size = 0;
-
-	/** @type {?MemizeCacheNode|undefined} */
-	var head;
-
-	/** @type {?MemizeCacheNode|undefined} */
-	var tail;
-
-	options = options || {};
-
-	function memoized( /* ...args */ ) {
-		var node = head,
-			len = arguments.length,
-			args, i;
-
-		searchCache: while ( node ) {
-			// Perform a shallow equality test to confirm that whether the node
-			// under test is a candidate for the arguments passed. Two arrays
-			// are shallowly equal if their length matches and each entry is
-			// strictly equal between the two sets. Avoid abstracting to a
-			// function which could incur an arguments leaking deoptimization.
-
-			// Check whether node arguments match arguments length
-			if ( node.args.length !== arguments.length ) {
-				node = node.next;
-				continue;
-			}
-
-			// Check whether node arguments match arguments values
-			for ( i = 0; i < len; i++ ) {
-				if ( node.args[ i ] !== arguments[ i ] ) {
-					node = node.next;
-					continue searchCache;
-				}
-			}
-
-			// At this point we can assume we've found a match
-
-			// Surface matched node to head if not already
-			if ( node !== head ) {
-				// As tail, shift to previous. Must only shift if not also
-				// head, since if both head and tail, there is no previous.
-				if ( node === tail ) {
-					tail = node.prev;
-				}
-
-				// Adjust siblings to point to each other. If node was tail,
-				// this also handles new tail's empty `next` assignment.
-				/** @type {MemizeCacheNode} */ ( node.prev ).next = node.next;
-				if ( node.next ) {
-					node.next.prev = node.prev;
-				}
-
-				node.next = head;
-				node.prev = null;
-				/** @type {MemizeCacheNode} */ ( head ).prev = node;
-				head = node;
-			}
-
-			// Return immediately
-			return node.val;
-		}
-
-		// No cached value found. Continue to insertion phase:
-
-		// Create a copy of arguments (avoid leaking deoptimization)
-		args = new Array( len );
-		for ( i = 0; i < len; i++ ) {
-			args[ i ] = arguments[ i ];
-		}
-
-		node = {
-			args: args,
-
-			// Generate the result from original function
-			val: fn.apply( null, args ),
-		};
-
-		// Don't need to check whether node is already head, since it would
-		// have been returned above already if it was
-
-		// Shift existing head down list
-		if ( head ) {
-			head.prev = node;
-			node.next = head;
-		} else {
-			// If no head, follows that there's no tail (at initial or reset)
-			tail = node;
-		}
-
-		// Trim tail if we're reached max size and are pending cache insertion
-		if ( size === /** @type {MemizeOptions} */ ( options ).maxSize ) {
-			tail = /** @type {MemizeCacheNode} */ ( tail ).prev;
-			/** @type {MemizeCacheNode} */ ( tail ).next = null;
-		} else {
-			size++;
-		}
-
-		head = node;
-
-		return node.val;
-	}
-
-	memoized.clear = function() {
-		head = null;
-		tail = null;
-		size = 0;
-	};
-
-	if ( false ) {}
-
-	// Ignore reason: There's not a clear solution to create an intersection of
-	// the function with additional properties, where the goal is to retain the
-	// function signature of the incoming argument and add control properties
-	// on the return value.
-
-	// @ts-ignore
-	return memoized;
-}
-
-module.exports = memize;
-
-
-/***/ }),
-
-/***/ "4po3":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return isTextField; });
-/**
- * Check whether the given element is a text field, where text field is defined
- * by the ability to select within the input, or that it is contenteditable.
- *
- * @example
- * import { isTextField } from "reakit-utils";
- *
- * isTextField(document.querySelector("div")); // false
- * isTextField(document.querySelector("input")); // true
- * isTextField(document.querySelector("input[type='button']")); // false
- * isTextField(document.querySelector("textarea")); // true
- * isTextField(document.querySelector("div[contenteditable='true']")); // true
- */
-function isTextField(element) {
-  try {
-    var isTextInput = element instanceof HTMLInputElement && element.selectionStart !== null;
-    var isTextArea = element.tagName === "TEXTAREA";
-    var isContentEditable = element.contentEditable === "true";
-    return isTextInput || isTextArea || isContentEditable || false;
-  } catch (error) {
-    // Safari throws an exception when trying to get `selectionStart`
-    // on non-text <input> elements (which, understandably, don't
-    // have the text selection API). We catch this via a try/catch
-    // block, as opposed to a more explicit check of the element's
-    // input types, because of Safari's non-standard behavior. This
-    // also means we don't have to worry about the list of input
-    // types that support `selectionStart` changing as the HTML spec
-    // evolves over time.
-    return false;
-  }
-}
-
-
-
-
-/***/ }),
-
-/***/ "4qRI":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-function memoize(fn) {
-  var cache = {};
-  return function (arg) {
-    if (cache[arg] === undefined) cache[arg] = fn(arg);
-    return cache[arg];
-  };
-}
-
-/* harmony default export */ __webpack_exports__["a"] = (memoize);
-
-
-/***/ }),
-
-/***/ "4qvr":
-/***/ (function(module, exports, __webpack_require__) {
-
-var hasMap = typeof Map === 'function' && Map.prototype;
-var mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;
-var mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;
-var mapForEach = hasMap && Map.prototype.forEach;
-var hasSet = typeof Set === 'function' && Set.prototype;
-var setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;
-var setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;
-var setForEach = hasSet && Set.prototype.forEach;
-var hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;
-var weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;
-var hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;
-var weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;
-var hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;
-var weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;
-var booleanValueOf = Boolean.prototype.valueOf;
-var objectToString = Object.prototype.toString;
-var functionToString = Function.prototype.toString;
-var match = String.prototype.match;
-var bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;
-var gOPS = Object.getOwnPropertySymbols;
-var symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;
-var hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';
-var isEnumerable = Object.prototype.propertyIsEnumerable;
-
-var gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (
-    [].__proto__ === Array.prototype // eslint-disable-line no-proto
-        ? function (O) {
-            return O.__proto__; // eslint-disable-line no-proto
-        }
-        : null
-);
-
-var inspectCustom = __webpack_require__(0).custom;
-var inspectSymbol = inspectCustom && isSymbol(inspectCustom) ? inspectCustom : null;
-var toStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag !== 'undefined' ? Symbol.toStringTag : null;
-
-module.exports = function inspect_(obj, options, depth, seen) {
-    var opts = options || {};
-
-    if (has(opts, 'quoteStyle') && (opts.quoteStyle !== 'single' && opts.quoteStyle !== 'double')) {
-        throw new TypeError('option "quoteStyle" must be "single" or "double"');
-    }
-    if (
-        has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'
-            ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity
-            : opts.maxStringLength !== null
-        )
-    ) {
-        throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');
-    }
-    var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;
-    if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {
-        throw new TypeError('option "customInspect", if provided, must be `true`, `false`, or `\'symbol\'`');
-    }
-
-    if (
-        has(opts, 'indent')
-        && opts.indent !== null
-        && opts.indent !== '\t'
-        && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)
-    ) {
-        throw new TypeError('options "indent" must be "\\t", an integer > 0, or `null`');
-    }
-
-    if (typeof obj === 'undefined') {
-        return 'undefined';
-    }
-    if (obj === null) {
-        return 'null';
-    }
-    if (typeof obj === 'boolean') {
-        return obj ? 'true' : 'false';
-    }
-
-    if (typeof obj === 'string') {
-        return inspectString(obj, opts);
-    }
-    if (typeof obj === 'number') {
-        if (obj === 0) {
-            return Infinity / obj > 0 ? '0' : '-0';
-        }
-        return String(obj);
-    }
-    if (typeof obj === 'bigint') {
-        return String(obj) + 'n';
-    }
-
-    var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;
-    if (typeof depth === 'undefined') { depth = 0; }
-    if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {
-        return isArray(obj) ? '[Array]' : '[Object]';
-    }
-
-    var indent = getIndent(opts, depth);
-
-    if (typeof seen === 'undefined') {
-        seen = [];
-    } else if (indexOf(seen, obj) >= 0) {
-        return '[Circular]';
-    }
-
-    function inspect(value, from, noIndent) {
-        if (from) {
-            seen = seen.slice();
-            seen.push(from);
-        }
-        if (noIndent) {
-            var newOpts = {
-                depth: opts.depth
-            };
-            if (has(opts, 'quoteStyle')) {
-                newOpts.quoteStyle = opts.quoteStyle;
-            }
-            return inspect_(value, newOpts, depth + 1, seen);
-        }
-        return inspect_(value, opts, depth + 1, seen);
-    }
-
-    if (typeof obj === 'function') {
-        var name = nameOf(obj);
-        var keys = arrObjKeys(obj, inspect);
-        return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + keys.join(', ') + ' }' : '');
-    }
-    if (isSymbol(obj)) {
-        var symString = hasShammedSymbols ? String(obj).replace(/^(Symbol\(.*\))_[^)]*$/, '$1') : symToString.call(obj);
-        return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;
-    }
-    if (isElement(obj)) {
-        var s = '<' + String(obj.nodeName).toLowerCase();
-        var attrs = obj.attributes || [];
-        for (var i = 0; i < attrs.length; i++) {
-            s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);
-        }
-        s += '>';
-        if (obj.childNodes && obj.childNodes.length) { s += '...'; }
-        s += '</' + String(obj.nodeName).toLowerCase() + '>';
-        return s;
-    }
-    if (isArray(obj)) {
-        if (obj.length === 0) { return '[]'; }
-        var xs = arrObjKeys(obj, inspect);
-        if (indent && !singleLineValues(xs)) {
-            return '[' + indentedJoin(xs, indent) + ']';
-        }
-        return '[ ' + xs.join(', ') + ' ]';
-    }
-    if (isError(obj)) {
-        var parts = arrObjKeys(obj, inspect);
-        if (parts.length === 0) { return '[' + String(obj) + ']'; }
-        return '{ [' + String(obj) + '] ' + parts.join(', ') + ' }';
-    }
-    if (typeof obj === 'object' && customInspect) {
-        if (inspectSymbol && typeof obj[inspectSymbol] === 'function') {
-            return obj[inspectSymbol]();
-        } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {
-            return obj.inspect();
-        }
-    }
-    if (isMap(obj)) {
-        var mapParts = [];
-        mapForEach.call(obj, function (value, key) {
-            mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));
-        });
-        return collectionOf('Map', mapSize.call(obj), mapParts, indent);
-    }
-    if (isSet(obj)) {
-        var setParts = [];
-        setForEach.call(obj, function (value) {
-            setParts.push(inspect(value, obj));
-        });
-        return collectionOf('Set', setSize.call(obj), setParts, indent);
-    }
-    if (isWeakMap(obj)) {
-        return weakCollectionOf('WeakMap');
-    }
-    if (isWeakSet(obj)) {
-        return weakCollectionOf('WeakSet');
-    }
-    if (isWeakRef(obj)) {
-        return weakCollectionOf('WeakRef');
-    }
-    if (isNumber(obj)) {
-        return markBoxed(inspect(Number(obj)));
-    }
-    if (isBigInt(obj)) {
-        return markBoxed(inspect(bigIntValueOf.call(obj)));
-    }
-    if (isBoolean(obj)) {
-        return markBoxed(booleanValueOf.call(obj));
-    }
-    if (isString(obj)) {
-        return markBoxed(inspect(String(obj)));
-    }
-    if (!isDate(obj) && !isRegExp(obj)) {
-        var ys = arrObjKeys(obj, inspect);
-        var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;
-        var protoTag = obj instanceof Object ? '' : 'null prototype';
-        var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? toStr(obj).slice(8, -1) : protoTag ? 'Object' : '';
-        var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';
-        var tag = constructorTag + (stringTag || protoTag ? '[' + [].concat(stringTag || [], protoTag || []).join(': ') + '] ' : '');
-        if (ys.length === 0) { return tag + '{}'; }
-        if (indent) {
-            return tag + '{' + indentedJoin(ys, indent) + '}';
-        }
-        return tag + '{ ' + ys.join(', ') + ' }';
-    }
-    return String(obj);
-};
-
-function wrapQuotes(s, defaultStyle, opts) {
-    var quoteChar = (opts.quoteStyle || defaultStyle) === 'double' ? '"' : "'";
-    return quoteChar + s + quoteChar;
-}
-
-function quote(s) {
-    return String(s).replace(/"/g, '&quot;');
-}
-
-function isArray(obj) { return toStr(obj) === '[object Array]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }
-function isDate(obj) { return toStr(obj) === '[object Date]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }
-function isRegExp(obj) { return toStr(obj) === '[object RegExp]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }
-function isError(obj) { return toStr(obj) === '[object Error]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }
-function isString(obj) { return toStr(obj) === '[object String]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }
-function isNumber(obj) { return toStr(obj) === '[object Number]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }
-function isBoolean(obj) { return toStr(obj) === '[object Boolean]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }
-
-// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives
-function isSymbol(obj) {
-    if (hasShammedSymbols) {
-        return obj && typeof obj === 'object' && obj instanceof Symbol;
-    }
-    if (typeof obj === 'symbol') {
-        return true;
-    }
-    if (!obj || typeof obj !== 'object' || !symToString) {
-        return false;
-    }
-    try {
-        symToString.call(obj);
-        return true;
-    } catch (e) {}
-    return false;
-}
-
-function isBigInt(obj) {
-    if (!obj || typeof obj !== 'object' || !bigIntValueOf) {
-        return false;
-    }
-    try {
-        bigIntValueOf.call(obj);
-        return true;
-    } catch (e) {}
-    return false;
-}
-
-var hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };
-function has(obj, key) {
-    return hasOwn.call(obj, key);
-}
-
-function toStr(obj) {
-    return objectToString.call(obj);
-}
-
-function nameOf(f) {
-    if (f.name) { return f.name; }
-    var m = match.call(functionToString.call(f), /^function\s*([\w$]+)/);
-    if (m) { return m[1]; }
-    return null;
-}
-
-function indexOf(xs, x) {
-    if (xs.indexOf) { return xs.indexOf(x); }
-    for (var i = 0, l = xs.length; i < l; i++) {
-        if (xs[i] === x) { return i; }
-    }
-    return -1;
-}
-
-function isMap(x) {
-    if (!mapSize || !x || typeof x !== 'object') {
-        return false;
-    }
-    try {
-        mapSize.call(x);
-        try {
-            setSize.call(x);
-        } catch (s) {
-            return true;
-        }
-        return x instanceof Map; // core-js workaround, pre-v2.5.0
-    } catch (e) {}
-    return false;
-}
-
-function isWeakMap(x) {
-    if (!weakMapHas || !x || typeof x !== 'object') {
-        return false;
-    }
-    try {
-        weakMapHas.call(x, weakMapHas);
-        try {
-            weakSetHas.call(x, weakSetHas);
-        } catch (s) {
-            return true;
-        }
-        return x instanceof WeakMap; // core-js workaround, pre-v2.5.0
-    } catch (e) {}
-    return false;
-}
-
-function isWeakRef(x) {
-    if (!weakRefDeref || !x || typeof x !== 'object') {
-        return false;
-    }
-    try {
-        weakRefDeref.call(x);
-        return true;
-    } catch (e) {}
-    return false;
-}
-
-function isSet(x) {
-    if (!setSize || !x || typeof x !== 'object') {
-        return false;
-    }
-    try {
-        setSize.call(x);
-        try {
-            mapSize.call(x);
-        } catch (m) {
-            return true;
-        }
-        return x instanceof Set; // core-js workaround, pre-v2.5.0
-    } catch (e) {}
-    return false;
-}
-
-function isWeakSet(x) {
-    if (!weakSetHas || !x || typeof x !== 'object') {
-        return false;
-    }
-    try {
-        weakSetHas.call(x, weakSetHas);
-        try {
-            weakMapHas.call(x, weakMapHas);
-        } catch (s) {
-            return true;
-        }
-        return x instanceof WeakSet; // core-js workaround, pre-v2.5.0
-    } catch (e) {}
-    return false;
-}
-
-function isElement(x) {
-    if (!x || typeof x !== 'object') { return false; }
-    if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {
-        return true;
-    }
-    return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';
-}
-
-function inspectString(str, opts) {
-    if (str.length > opts.maxStringLength) {
-        var remaining = str.length - opts.maxStringLength;
-        var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');
-        return inspectString(str.slice(0, opts.maxStringLength), opts) + trailer;
-    }
-    // eslint-disable-next-line no-control-regex
-    var s = str.replace(/(['\\])/g, '\\$1').replace(/[\x00-\x1f]/g, lowbyte);
-    return wrapQuotes(s, 'single', opts);
-}
-
-function lowbyte(c) {
-    var n = c.charCodeAt(0);
-    var x = {
-        8: 'b',
-        9: 't',
-        10: 'n',
-        12: 'f',
-        13: 'r'
-    }[n];
-    if (x) { return '\\' + x; }
-    return '\\x' + (n < 0x10 ? '0' : '') + n.toString(16).toUpperCase();
-}
-
-function markBoxed(str) {
-    return 'Object(' + str + ')';
-}
-
-function weakCollectionOf(type) {
-    return type + ' { ? }';
-}
-
-function collectionOf(type, size, entries, indent) {
-    var joinedEntries = indent ? indentedJoin(entries, indent) : entries.join(', ');
-    return type + ' (' + size + ') {' + joinedEntries + '}';
-}
-
-function singleLineValues(xs) {
-    for (var i = 0; i < xs.length; i++) {
-        if (indexOf(xs[i], '\n') >= 0) {
-            return false;
-        }
-    }
-    return true;
-}
-
-function getIndent(opts, depth) {
-    var baseIndent;
-    if (opts.indent === '\t') {
-        baseIndent = '\t';
-    } else if (typeof opts.indent === 'number' && opts.indent > 0) {
-        baseIndent = Array(opts.indent + 1).join(' ');
-    } else {
-        return null;
-    }
-    return {
-        base: baseIndent,
-        prev: Array(depth + 1).join(baseIndent)
-    };
-}
-
-function indentedJoin(xs, indent) {
-    if (xs.length === 0) { return ''; }
-    var lineJoiner = '\n' + indent.prev + indent.base;
-    return lineJoiner + xs.join(',' + lineJoiner) + '\n' + indent.prev;
-}
-
-function arrObjKeys(obj, inspect) {
-    var isArr = isArray(obj);
-    var xs = [];
-    if (isArr) {
-        xs.length = obj.length;
-        for (var i = 0; i < obj.length; i++) {
-            xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';
-        }
-    }
-    var syms = typeof gOPS === 'function' ? gOPS(obj) : [];
-    var symMap;
-    if (hasShammedSymbols) {
-        symMap = {};
-        for (var k = 0; k < syms.length; k++) {
-            symMap['$' + syms[k]] = syms[k];
-        }
-    }
-
-    for (var key in obj) { // eslint-disable-line no-restricted-syntax
-        if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue
-        if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue
-        if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {
-            // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section
-            continue; // eslint-disable-line no-restricted-syntax, no-continue
-        } else if ((/[^\w$]/).test(key)) {
-            xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));
-        } else {
-            xs.push(key + ': ' + inspect(obj[key], obj));
-        }
-    }
-    if (typeof gOPS === 'function') {
-        for (var j = 0; j < syms.length; j++) {
-            if (isEnumerable.call(obj, syms[j])) {
-                xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));
-            }
-        }
-    }
-    return xs;
-}
-
-
-/***/ }),
-
-/***/ "50qU":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
-
-var _react = __webpack_require__("cDcd");
-
-var _react2 = _interopRequireDefault(_react);
-
-var _propTypes = __webpack_require__("17x9");
-
-var _propTypes2 = _interopRequireDefault(_propTypes);
-
-var _airbnbPropTypes = __webpack_require__("Hsqg");
-
-var _consolidatedEvents = __webpack_require__("1TsT");
-
-var _object = __webpack_require__("4cSd");
-
-var _object2 = _interopRequireDefault(_object);
-
-var _document = __webpack_require__("n1Y7");
-
-var _document2 = _interopRequireDefault(_document);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
-
-function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
-
-function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-
-var DISPLAY = {
-  BLOCK: 'block',
-  FLEX: 'flex',
-  INLINE: 'inline',
-  INLINE_BLOCK: 'inline-block',
-  CONTENTS: 'contents'
-};
-
-var propTypes = (0, _airbnbPropTypes.forbidExtraProps)({
-  children: _propTypes2['default'].node.isRequired,
-  onOutsideClick: _propTypes2['default'].func.isRequired,
-  disabled: _propTypes2['default'].bool,
-  useCapture: _propTypes2['default'].bool,
-  display: _propTypes2['default'].oneOf((0, _object2['default'])(DISPLAY))
-});
-
-var defaultProps = {
-  disabled: false,
-
-  // `useCapture` is set to true by default so that a `stopPropagation` in the
-  // children will not prevent all outside click handlers from firing - maja
-  useCapture: true,
-  display: DISPLAY.BLOCK
-};
-
-var OutsideClickHandler = function (_React$Component) {
-  _inherits(OutsideClickHandler, _React$Component);
-
-  function OutsideClickHandler() {
-    var _ref;
-
-    _classCallCheck(this, OutsideClickHandler);
-
-    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
-      args[_key] = arguments[_key];
-    }
-
-    var _this = _possibleConstructorReturn(this, (_ref = OutsideClickHandler.__proto__ || Object.getPrototypeOf(OutsideClickHandler)).call.apply(_ref, [this].concat(args)));
-
-    _this.onMouseDown = _this.onMouseDown.bind(_this);
-    _this.onMouseUp = _this.onMouseUp.bind(_this);
-    _this.setChildNodeRef = _this.setChildNodeRef.bind(_this);
-    return _this;
-  }
-
-  _createClass(OutsideClickHandler, [{
-    key: 'componentDidMount',
-    value: function () {
-      function componentDidMount() {
-        var _props = this.props,
-            disabled = _props.disabled,
-            useCapture = _props.useCapture;
-
-
-        if (!disabled) this.addMouseDownEventListener(useCapture);
-      }
-
-      return componentDidMount;
-    }()
-  }, {
-    key: 'componentDidUpdate',
-    value: function () {
-      function componentDidUpdate(_ref2) {
-        var prevDisabled = _ref2.disabled;
-        var _props2 = this.props,
-            disabled = _props2.disabled,
-            useCapture = _props2.useCapture;
-
-        if (prevDisabled !== disabled) {
-          if (disabled) {
-            this.removeEventListeners();
-          } else {
-            this.addMouseDownEventListener(useCapture);
-          }
-        }
-      }
-
-      return componentDidUpdate;
-    }()
-  }, {
-    key: 'componentWillUnmount',
-    value: function () {
-      function componentWillUnmount() {
-        this.removeEventListeners();
-      }
-
-      return componentWillUnmount;
-    }()
-
-    // Use mousedown/mouseup to enforce that clicks remain outside the root's
-    // descendant tree, even when dragged. This should also get triggered on
-    // touch devices.
-
-  }, {
-    key: 'onMouseDown',
-    value: function () {
-      function onMouseDown(e) {
-        var useCapture = this.props.useCapture;
-
-
-        var isDescendantOfRoot = this.childNode && (0, _document2['default'])(this.childNode, e.target);
-        if (!isDescendantOfRoot) {
-          if (this.removeMouseUp) {
-            this.removeMouseUp();
-            this.removeMouseUp = null;
-          }
-          this.removeMouseUp = (0, _consolidatedEvents.addEventListener)(document, 'mouseup', this.onMouseUp, { capture: useCapture });
-        }
-      }
-
-      return onMouseDown;
-    }()
-
-    // Use mousedown/mouseup to enforce that clicks remain outside the root's
-    // descendant tree, even when dragged. This should also get triggered on
-    // touch devices.
-
-  }, {
-    key: 'onMouseUp',
-    value: function () {
-      function onMouseUp(e) {
-        var onOutsideClick = this.props.onOutsideClick;
-
-
-        var isDescendantOfRoot = this.childNode && (0, _document2['default'])(this.childNode, e.target);
-        if (this.removeMouseUp) {
-          this.removeMouseUp();
-          this.removeMouseUp = null;
-        }
-
-        if (!isDescendantOfRoot) {
-          onOutsideClick(e);
-        }
-      }
-
-      return onMouseUp;
-    }()
-  }, {
-    key: 'setChildNodeRef',
-    value: function () {
-      function setChildNodeRef(ref) {
-        this.childNode = ref;
-      }
-
-      return setChildNodeRef;
-    }()
-  }, {
-    key: 'addMouseDownEventListener',
-    value: function () {
-      function addMouseDownEventListener(useCapture) {
-        this.removeMouseDown = (0, _consolidatedEvents.addEventListener)(document, 'mousedown', this.onMouseDown, { capture: useCapture });
-      }
-
-      return addMouseDownEventListener;
-    }()
-  }, {
-    key: 'removeEventListeners',
-    value: function () {
-      function removeEventListeners() {
-        if (this.removeMouseDown) this.removeMouseDown();
-        if (this.removeMouseUp) this.removeMouseUp();
-      }
-
-      return removeEventListeners;
-    }()
-  }, {
-    key: 'render',
-    value: function () {
-      function render() {
-        var _props3 = this.props,
-            children = _props3.children,
-            display = _props3.display;
-
-
-        return _react2['default'].createElement(
-          'div',
-          {
-            ref: this.setChildNodeRef,
-            style: display !== DISPLAY.BLOCK && (0, _object2['default'])(DISPLAY).includes(display) ? { display: display } : undefined
-          },
-          children
-        );
-      }
-
-      return render;
-    }()
-  }]);
-
-  return OutsideClickHandler;
-}(_react2['default'].Component);
-
-exports['default'] = OutsideClickHandler;
-
-
-OutsideClickHandler.propTypes = propTypes;
-OutsideClickHandler.defaultProps = defaultProps;
-
-/***/ }),
-
-/***/ "5V/u":
-/***/ (function(module, exports) {
-
-module.exports =
-/******/ (function(modules) { // webpackBootstrap
-/******/ 	// The module cache
-/******/ 	var installedModules = {};
-/******/
-/******/ 	// The require function
-/******/ 	function __webpack_require__(moduleId) {
-/******/
-/******/ 		// Check if module is in cache
-/******/ 		if(installedModules[moduleId])
-/******/ 			return installedModules[moduleId].exports;
-/******/
-/******/ 		// Create a new module (and put it into the cache)
-/******/ 		var module = installedModules[moduleId] = {
-/******/ 			exports: {},
-/******/ 			id: moduleId,
-/******/ 			loaded: false
-/******/ 		};
-/******/
-/******/ 		// Execute the module function
-/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-/******/
-/******/ 		// Flag the module as loaded
-/******/ 		module.loaded = true;
-/******/
-/******/ 		// Return the exports of the module
-/******/ 		return module.exports;
-/******/ 	}
-/******/
-/******/
-/******/ 	// expose the modules object (__webpack_modules__)
-/******/ 	__webpack_require__.m = modules;
-/******/
-/******/ 	// expose the module cache
-/******/ 	__webpack_require__.c = installedModules;
-/******/
-/******/ 	// __webpack_public_path__
-/******/ 	__webpack_require__.p = "";
-/******/
-/******/ 	// Load entry module and return exports
-/******/ 	return __webpack_require__(0);
-/******/ })
-/************************************************************************/
-/******/ ([
-/* 0 */
-/***/ (function(module, exports, __webpack_require__) {
-
-	module.exports = __webpack_require__(1);
-
-
-/***/ }),
-/* 1 */
-/***/ (function(module, exports, __webpack_require__) {
-
-	'use strict';
-	
-	Object.defineProperty(exports, "__esModule", {
-	  value: true
-	});
-	
-	var _utils = __webpack_require__(2);
-	
-	Object.defineProperty(exports, 'combineChunks', {
-	  enumerable: true,
-	  get: function get() {
-	    return _utils.combineChunks;
-	  }
-	});
-	Object.defineProperty(exports, 'fillInChunks', {
-	  enumerable: true,
-	  get: function get() {
-	    return _utils.fillInChunks;
-	  }
-	});
-	Object.defineProperty(exports, 'findAll', {
-	  enumerable: true,
-	  get: function get() {
-	    return _utils.findAll;
-	  }
-	});
-	Object.defineProperty(exports, 'findChunks', {
-	  enumerable: true,
-	  get: function get() {
-	    return _utils.findChunks;
-	  }
-	});
-
-/***/ }),
-/* 2 */
-/***/ (function(module, exports) {
-
-	'use strict';
-	
-	Object.defineProperty(exports, "__esModule", {
-	  value: true
-	});
-	
-	
-	/**
-	 * Creates an array of chunk objects representing both higlightable and non highlightable pieces of text that match each search word.
-	 * @return Array of "chunks" (where a Chunk is { start:number, end:number, highlight:boolean })
-	 */
-	var findAll = exports.findAll = function findAll(_ref) {
-	  var autoEscape = _ref.autoEscape,
-	      _ref$caseSensitive = _ref.caseSensitive,
-	      caseSensitive = _ref$caseSensitive === undefined ? false : _ref$caseSensitive,
-	      _ref$findChunks = _ref.findChunks,
-	      findChunks = _ref$findChunks === undefined ? defaultFindChunks : _ref$findChunks,
-	      sanitize = _ref.sanitize,
-	      searchWords = _ref.searchWords,
-	      textToHighlight = _ref.textToHighlight;
-	  return fillInChunks({
-	    chunksToHighlight: combineChunks({
-	      chunks: findChunks({
-	        autoEscape: autoEscape,
-	        caseSensitive: caseSensitive,
-	        sanitize: sanitize,
-	        searchWords: searchWords,
-	        textToHighlight: textToHighlight
-	      })
-	    }),
-	    totalLength: textToHighlight ? textToHighlight.length : 0
-	  });
-	};
-	
-	/**
-	 * Takes an array of {start:number, end:number} objects and combines chunks that overlap into single chunks.
-	 * @return {start:number, end:number}[]
-	 */
-	
-	
-	var combineChunks = exports.combineChunks = function combineChunks(_ref2) {
-	  var chunks = _ref2.chunks;
-	
-	  chunks = chunks.sort(function (first, second) {
-	    return first.start - second.start;
-	  }).reduce(function (processedChunks, nextChunk) {
-	    // First chunk just goes straight in the array...
-	    if (processedChunks.length === 0) {
-	      return [nextChunk];
-	    } else {
-	      // ... subsequent chunks get checked to see if they overlap...
-	      var prevChunk = processedChunks.pop();
-	      if (nextChunk.start <= prevChunk.end) {
-	        // It may be the case that prevChunk completely surrounds nextChunk, so take the
-	        // largest of the end indeces.
-	        var endIndex = Math.max(prevChunk.end, nextChunk.end);
-	        processedChunks.push({ highlight: false, start: prevChunk.start, end: endIndex });
-	      } else {
-	        processedChunks.push(prevChunk, nextChunk);
-	      }
-	      return processedChunks;
-	    }
-	  }, []);
-	
-	  return chunks;
-	};
-	
-	/**
-	 * Examine text for any matches.
-	 * If we find matches, add them to the returned array as a "chunk" object ({start:number, end:number}).
-	 * @return {start:number, end:number}[]
-	 */
-	var defaultFindChunks = function defaultFindChunks(_ref3) {
-	  var autoEscape = _ref3.autoEscape,
-	      caseSensitive = _ref3.caseSensitive,
-	      _ref3$sanitize = _ref3.sanitize,
-	      sanitize = _ref3$sanitize === undefined ? defaultSanitize : _ref3$sanitize,
-	      searchWords = _ref3.searchWords,
-	      textToHighlight = _ref3.textToHighlight;
-	
-	  textToHighlight = sanitize(textToHighlight);
-	
-	  return searchWords.filter(function (searchWord) {
-	    return searchWord;
-	  }) // Remove empty words
-	  .reduce(function (chunks, searchWord) {
-	    searchWord = sanitize(searchWord);
-	
-	    if (autoEscape) {
-	      searchWord = escapeRegExpFn(searchWord);
-	    }
-	
-	    var regex = new RegExp(searchWord, caseSensitive ? 'g' : 'gi');
-	
-	    var match = void 0;
-	    while (match = regex.exec(textToHighlight)) {
-	      var _start = match.index;
-	      var _end = regex.lastIndex;
-	      // We do not return zero-length matches
-	      if (_end > _start) {
-	        chunks.push({ highlight: false, start: _start, end: _end });
-	      }
-	
-	      // Prevent browsers like Firefox from getting stuck in an infinite loop
-	      // See http://www.regexguru.com/2008/04/watch-out-for-zero-length-matches/
-	      if (match.index === regex.lastIndex) {
-	        regex.lastIndex++;
-	      }
-	    }
-	
-	    return chunks;
-	  }, []);
-	};
-	// Allow the findChunks to be overridden in findAll,
-	// but for backwards compatibility we export as the old name
-	exports.findChunks = defaultFindChunks;
-	
-	/**
-	 * Given a set of chunks to highlight, create an additional set of chunks
-	 * to represent the bits of text between the highlighted text.
-	 * @param chunksToHighlight {start:number, end:number}[]
-	 * @param totalLength number
-	 * @return {start:number, end:number, highlight:boolean}[]
-	 */
-	
-	var fillInChunks = exports.fillInChunks = function fillInChunks(_ref4) {
-	  var chunksToHighlight = _ref4.chunksToHighlight,
-	      totalLength = _ref4.totalLength;
-	
-	  var allChunks = [];
-	  var append = function append(start, end, highlight) {
-	    if (end - start > 0) {
-	      allChunks.push({
-	        start: start,
-	        end: end,
-	        highlight: highlight
-	      });
-	    }
-	  };
-	
-	  if (chunksToHighlight.length === 0) {
-	    append(0, totalLength, false);
-	  } else {
-	    var lastIndex = 0;
-	    chunksToHighlight.forEach(function (chunk) {
-	      append(lastIndex, chunk.start, false);
-	      append(chunk.start, chunk.end, true);
-	      lastIndex = chunk.end;
-	    });
-	    append(lastIndex, totalLength, false);
-	  }
-	  return allChunks;
-	};
-	
-	function defaultSanitize(string) {
-	  return string;
-	}
-	
-	function escapeRegExpFn(string) {
-	  return string.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, '\\$&');
-	}
-
-/***/ })
-/******/ ]);
-
-
-/***/ }),
-
-/***/ "5aBA":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-/** @license React v17.0.2
- * react-is.production.min.js
- *
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-var b=60103,c=60106,d=60107,e=60108,f=60114,g=60109,h=60110,k=60112,l=60113,m=60120,n=60115,p=60116,q=60121,r=60122,u=60117,v=60129,w=60131;
-if("function"===typeof Symbol&&Symbol.for){var x=Symbol.for;b=x("react.element");c=x("react.portal");d=x("react.fragment");e=x("react.strict_mode");f=x("react.profiler");g=x("react.provider");h=x("react.context");k=x("react.forward_ref");l=x("react.suspense");m=x("react.suspense_list");n=x("react.memo");p=x("react.lazy");q=x("react.block");r=x("react.server.block");u=x("react.fundamental");v=x("react.debug_trace_mode");w=x("react.legacy_hidden")}
-function y(a){if("object"===typeof a&&null!==a){var t=a.$$typeof;switch(t){case b:switch(a=a.type,a){case d:case f:case e:case l:case m:return a;default:switch(a=a&&a.$$typeof,a){case h:case k:case p:case n:case g:return a;default:return t}}case c:return t}}}var z=g,A=b,B=k,C=d,D=p,E=n,F=c,G=f,H=e,I=l;exports.ContextConsumer=h;exports.ContextProvider=z;exports.Element=A;exports.ForwardRef=B;exports.Fragment=C;exports.Lazy=D;exports.Memo=E;exports.Portal=F;exports.Profiler=G;exports.StrictMode=H;
-exports.Suspense=I;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return y(a)===h};exports.isContextProvider=function(a){return y(a)===g};exports.isElement=function(a){return"object"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return y(a)===k};exports.isFragment=function(a){return y(a)===d};exports.isLazy=function(a){return y(a)===p};exports.isMemo=function(a){return y(a)===n};
-exports.isPortal=function(a){return y(a)===c};exports.isProfiler=function(a){return y(a)===f};exports.isStrictMode=function(a){return y(a)===e};exports.isSuspense=function(a){return y(a)===l};exports.isValidElementType=function(a){return"string"===typeof a||"function"===typeof a||a===d||a===f||a===v||a===e||a===l||a===m||a===w||"object"===typeof a&&null!==a&&(a.$$typeof===p||a.$$typeof===n||a.$$typeof===g||a.$$typeof===h||a.$$typeof===k||a.$$typeof===u||a.$$typeof===q||a[0]===r)?!0:!1};
-exports.typeOf=y;
-
-
-/***/ }),
-
-/***/ "5yQQ":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var implementation = __webpack_require__("nRDI");
-
-module.exports = function getPolyfill() {
-	if (typeof document !== 'undefined') {
-		if (document.contains) {
-			return document.contains;
-		}
-		if (document.body && document.body.contains) {
-			try {
-				if (typeof document.body.contains.call(document, '') === 'boolean') {
-					return document.body.contains;
-				}
-			} catch (e) { /**/ }
-		}
-	}
-	return implementation;
-};
-
-
-/***/ }),
-
-/***/ "60zJ":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-// https://262.ecma-international.org/5.1/#sec-8
-
-module.exports = function Type(x) {
-	if (x === null) {
-		return 'Null';
-	}
-	if (typeof x === 'undefined') {
-		return 'Undefined';
-	}
-	if (typeof x === 'function' || typeof x === 'object') {
-		return 'Object';
-	}
-	if (typeof x === 'number') {
-		return 'Number';
-	}
-	if (typeof x === 'boolean') {
-		return 'Boolean';
-	}
-	if (typeof x === 'string') {
-		return 'String';
-	}
-};
-
-
-/***/ }),
-
-/***/ "6HWY":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports['default'] = isNextMonth;
-
-var _moment = __webpack_require__("wy2R");
-
-var _moment2 = _interopRequireDefault(_moment);
-
-var _isSameMonth = __webpack_require__("ulUS");
-
-var _isSameMonth2 = _interopRequireDefault(_isSameMonth);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-function isNextMonth(a, b) {
-  if (!_moment2['default'].isMoment(a) || !_moment2['default'].isMoment(b)) return false;
-  return (0, _isSameMonth2['default'])(a.clone().add(1, 'month'), b);
-}
-
-/***/ }),
-
-/***/ "6I5v":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-module.exports = function sign(number) {
-	return number >= 0 ? 1 : -1;
-};
-
-
-/***/ }),
-
-/***/ "6ZB3":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var GetIntrinsic = __webpack_require__("rZ7t");
-
-var callBind = __webpack_require__("1LY1");
-
-var $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));
-
-module.exports = function callBoundIntrinsic(name, allowMissing) {
-	var intrinsic = GetIntrinsic(name, !!allowMissing);
-	if (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {
-		return callBind(intrinsic);
-	}
-	return intrinsic;
-};
-
-
-/***/ }),
-
-/***/ "6zzY":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-
-// EXPORTS
-__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ useComponentsContext; });
-
-// UNUSED EXPORTS: ComponentsContext, ContextSystemProvider
-
-// EXTERNAL MODULE: external ["wp","element"]
-var external_wp_element_ = __webpack_require__("GRId");
-
-// EXTERNAL MODULE: external "lodash"
-var external_lodash_ = __webpack_require__("YLtl");
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/ui/utils/use-isomorphic-layout-effect.js
-/**
- * WordPress dependencies
- */
-
-/**
- * Copied from `@wordpress/compose` in order for us to be able to maintain all the types for the ui folder
- */
-
-const useIsomorphicLayoutEffect = typeof window !== 'undefined' ? external_wp_element_["useLayoutEffect"] : external_wp_element_["useEffect"];
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/ui/context/context-system-provider.js
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-const ComponentsContext = Object(external_wp_element_["createContext"])(
-/** @type {Record<string, any>} */
-{});
-const useComponentsContext = () => Object(external_wp_element_["useContext"])(ComponentsContext);
-/**
- * Consolidates incoming ContextSystem values with a (potential) parent ContextSystem value.
- *
- * @param {Object} props
- * @param {Record<string, any>} props.value
- * @return {Record<string, any>} The consolidated value.
- */
-
-function useContextSystemBridge({
-  value
-}) {
-  const parentContext = useComponentsContext();
-  const parentContextRef = Object(external_wp_element_["useRef"])(parentContext);
-  const valueRef = Object(external_wp_element_["useRef"])(Object(external_lodash_["merge"])(parentContext, value));
-  const [config, setConfig] = Object(external_wp_element_["useState"])(valueRef.current);
-  useIsomorphicLayoutEffect(() => {
-    let hasChange = false;
-
-    if (!Object(external_lodash_["isEqual"])(value, valueRef.current)) {
-      valueRef.current = value;
-      hasChange = true;
-    }
-
-    if (!Object(external_lodash_["isEqual"])(parentContext, parentContextRef.current)) {
-      valueRef.current = Object(external_lodash_["merge"])(parentContext, valueRef.current);
-      parentContextRef.current = parentContext;
-      hasChange = true;
-    }
-
-    if (hasChange) {
-      setConfig(prev => ({ ...prev,
-        ...valueRef.current
-      }));
-    }
-  }, [value, parentContext]);
-  return config;
-}
-/**
- * A Provider component that can modify props for connected components within
- * the Context system.
- *
- * @example
- * ```jsx
- * <ContextSystemProvider value={{ Button: { size: 'small' }}}>
- *   <Button>...</Button>
- * </ContextSystemProvider>
- * ```
- *
- * @template {Record<string, any>} T
- * @param {Object} options
- * @param {import('react').ReactNode} options.children Children to render.
- * @param {T} options.value Props to render into connected components.
- * @return {JSX.Element} A Provider wrapped component.
- */
-
-
-const BaseContextSystemProvider = ({
-  children,
-  value
-}) => {
-  const contextValue = useContextSystemBridge({
-    value
-  });
-  return Object(external_wp_element_["createElement"])(ComponentsContext.Provider, {
-    value: contextValue
-  }, children);
-};
-
-const ContextSystemProvider = Object(external_wp_element_["memo"])(BaseContextSystemProvider);
-
-
-/***/ }),
-
-/***/ "71Og":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return isButton; });
-var buttonInputTypes = ["button", "color", "file", "image", "reset", "submit"];
-/**
- * Checks whether `element` is a native HTML button element.
- *
- * @example
- * import { isButton } from "reakit-utils";
- *
- * isButton(document.querySelector("button")); // true
- * isButton(document.querySelector("input[type='button']")); // true
- * isButton(document.querySelector("div")); // false
- * isButton(document.querySelector("input[type='text']")); // false
- * isButton(document.querySelector("div[role='button']")); // false
- *
- * @returns {boolean}
- */
-
-function isButton(element) {
-  if (element.tagName === "BUTTON") return true;
-
-  if (element.tagName === "INPUT") {
-    var input = element;
-    return buttonInputTypes.indexOf(input.type) !== -1;
-  }
-
-  return false;
-}
-
-
-
-
-/***/ }),
-
-/***/ "75pU":
-/***/ (function(module, exports) {
-
-//
-// Main
-//
-
-function memoize (fn, options) {
-  var cache = options && options.cache
-    ? options.cache
-    : cacheDefault
-
-  var serializer = options && options.serializer
-    ? options.serializer
-    : serializerDefault
-
-  var strategy = options && options.strategy
-    ? options.strategy
-    : strategyDefault
-
-  return strategy(fn, {
-    cache: cache,
-    serializer: serializer
-  })
-}
-
-//
-// Strategy
-//
-
-function isPrimitive (value) {
-  return value == null || typeof value === 'number' || typeof value === 'boolean' // || typeof value === "string" 'unsafe' primitive for our needs
-}
-
-function monadic (fn, cache, serializer, arg) {
-  var cacheKey = isPrimitive(arg) ? arg : serializer(arg)
-
-  var computedValue = cache.get(cacheKey)
-  if (typeof computedValue === 'undefined') {
-    computedValue = fn.call(this, arg)
-    cache.set(cacheKey, computedValue)
-  }
-
-  return computedValue
-}
-
-function variadic (fn, cache, serializer) {
-  var args = Array.prototype.slice.call(arguments, 3)
-  var cacheKey = serializer(args)
-
-  var computedValue = cache.get(cacheKey)
-  if (typeof computedValue === 'undefined') {
-    computedValue = fn.apply(this, args)
-    cache.set(cacheKey, computedValue)
-  }
-
-  return computedValue
-}
-
-function assemble (fn, context, strategy, cache, serialize) {
-  return strategy.bind(
-    context,
-    fn,
-    cache,
-    serialize
-  )
-}
-
-function strategyDefault (fn, options) {
-  var strategy = fn.length === 1 ? monadic : variadic
-
-  return assemble(
-    fn,
-    this,
-    strategy,
-    options.cache.create(),
-    options.serializer
-  )
-}
-
-function strategyVariadic (fn, options) {
-  var strategy = variadic
-
-  return assemble(
-    fn,
-    this,
-    strategy,
-    options.cache.create(),
-    options.serializer
-  )
-}
-
-function strategyMonadic (fn, options) {
-  var strategy = monadic
-
-  return assemble(
-    fn,
-    this,
-    strategy,
-    options.cache.create(),
-    options.serializer
-  )
-}
-
-//
-// Serializer
-//
-
-function serializerDefault () {
-  return JSON.stringify(arguments)
-}
-
-//
-// Cache
-//
-
-function ObjectWithoutPrototypeCache () {
-  this.cache = Object.create(null)
-}
-
-ObjectWithoutPrototypeCache.prototype.has = function (key) {
-  return (key in this.cache)
-}
-
-ObjectWithoutPrototypeCache.prototype.get = function (key) {
-  return this.cache[key]
-}
-
-ObjectWithoutPrototypeCache.prototype.set = function (key, value) {
-  this.cache[key] = value
-}
-
-var cacheDefault = {
-  create: function create () {
-    return new ObjectWithoutPrototypeCache()
-  }
-}
-
-//
-// API
-//
-
-module.exports = memoize
-module.exports.strategies = {
-  variadic: strategyVariadic,
-  monadic: strategyMonadic
-}
-
-
-/***/ }),
-
-/***/ "7Cbv":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-
-// CONCATENATED MODULE: ./node_modules/uuid/dist/esm-browser/rng.js
-// Unique ID creation requires a high quality random # generator. In the browser we therefore
-// require the crypto API and do not support built-in fallback to lower quality random number
-// generators (like Math.random()).
-var getRandomValues;
-var rnds8 = new Uint8Array(16);
-function rng() {
-  // lazy load so that environments that need to polyfill have a chance to do so
-  if (!getRandomValues) {
-    // getRandomValues needs to be invoked in a context where "this" is a Crypto implementation. Also,
-    // find the complete implementation of crypto (msCrypto) on IE11.
-    getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);
-
-    if (!getRandomValues) {
-      throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');
-    }
-  }
-
-  return getRandomValues(rnds8);
-}
-// CONCATENATED MODULE: ./node_modules/uuid/dist/esm-browser/regex.js
-/* harmony default export */ var regex = (/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i);
-// CONCATENATED MODULE: ./node_modules/uuid/dist/esm-browser/validate.js
-
-
-function validate(uuid) {
-  return typeof uuid === 'string' && regex.test(uuid);
-}
-
-/* harmony default export */ var esm_browser_validate = (validate);
-// CONCATENATED MODULE: ./node_modules/uuid/dist/esm-browser/stringify.js
-
-/**
- * Convert array of 16 byte values to UUID string format of the form:
- * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
- */
-
-var byteToHex = [];
-
-for (var stringify_i = 0; stringify_i < 256; ++stringify_i) {
-  byteToHex.push((stringify_i + 0x100).toString(16).substr(1));
-}
-
-function stringify(arr) {
-  var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
-  // Note: Be careful editing this code!  It's been tuned for performance
-  // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434
-  var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID.  If this throws, it's likely due to one
-  // of the following:
-  // - One or more input array values don't map to a hex octet (leading to
-  // "undefined" in the uuid)
-  // - Invalid input values for the RFC `version` or `variant` fields
-
-  if (!esm_browser_validate(uuid)) {
-    throw TypeError('Stringified UUID is invalid');
-  }
-
-  return uuid;
-}
-
-/* harmony default export */ var esm_browser_stringify = (stringify);
-// CONCATENATED MODULE: ./node_modules/uuid/dist/esm-browser/v4.js
-
-
-
-function v4(options, buf, offset) {
-  options = options || {};
-  var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
-
-  rnds[6] = rnds[6] & 0x0f | 0x40;
-  rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided
-
-  if (buf) {
-    offset = offset || 0;
-
-    for (var i = 0; i < 16; ++i) {
-      buf[offset + i] = rnds[i];
-    }
-
-    return buf;
-  }
-
-  return esm_browser_stringify(rnds);
-}
-
-/* harmony default export */ var esm_browser_v4 = __webpack_exports__["a"] = (v4);
-
-/***/ }),
-
-/***/ "7Ji+":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var GetIntrinsic = __webpack_require__("rZ7t");
-
-var $Array = GetIntrinsic('%Array%');
-var $species = GetIntrinsic('%Symbol.species%', true);
-var $TypeError = GetIntrinsic('%TypeError%');
-
-var Get = __webpack_require__("3aeR");
-var IsArray = __webpack_require__("9cOx");
-var IsConstructor = __webpack_require__("kuGu");
-var IsInteger = __webpack_require__("R/b7");
-var Type = __webpack_require__("V1cy");
-
-// https://ecma-international.org/ecma-262/6.0/#sec-arrayspeciescreate
-
-module.exports = function ArraySpeciesCreate(originalArray, length) {
-	if (!IsInteger(length) || length < 0) {
-		throw new $TypeError('Assertion failed: length must be an integer >= 0');
-	}
-	var len = length === 0 ? 0 : length;
-	var C;
-	var isArray = IsArray(originalArray);
-	if (isArray) {
-		C = Get(originalArray, 'constructor');
-		// TODO: figure out how to make a cross-realm normal Array, a same-realm Array
-		// if (IsConstructor(C)) {
-		// 	if C is another realm's Array, C = undefined
-		// 	Object.getPrototypeOf(Object.getPrototypeOf(Object.getPrototypeOf(Array))) === null ?
-		// }
-		if ($species && Type(C) === 'Object') {
-			C = Get(C, $species);
-			if (C === null) {
-				C = void 0;
-			}
-		}
-	}
-	if (typeof C === 'undefined') {
-		return $Array(len);
-	}
-	if (!IsConstructor(C)) {
-		throw new $TypeError('C must be a constructor');
-	}
-	return new C(len); // Construct(C, len);
-};
-
-
-
-/***/ }),
-
-/***/ "7Jlx":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* WEBPACK VAR INJECTION */(function(process) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return contextConnect; });
-/* unused harmony export getConnectNamespace */
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return hasConnectNamespace; });
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("YLtl");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("GRId");
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__);
-/* harmony import */ var _wordpress_warning__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("Z23Y");
-/* harmony import */ var _wordpress_warning__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_warning__WEBPACK_IMPORTED_MODULE_2__);
-/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("tQ+x");
-/* harmony import */ var _get_styled_class_name_from_key__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("UAm0");
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-/* eslint-disable jsdoc/valid-types */
-
-/**
- * Forwards ref (React.ForwardRef) and "Connects" (or registers) a component
- * within the Context system under a specified namespace.
- *
- * This is an (experimental) evolution of the initial connect() HOC.
- * The hope is that we can improve render performance by removing functional
- * component wrappers.
- *
- * @template {import('./polymorphic-component').ViewOwnProps<{}, any>} P
- * @param {(props: P, ref: import('react').Ref<any>) => JSX.Element | null} Component The component to register into the Context system.
- * @param {string} namespace The namespace to register the component under.
- * @param {Object} options
- * @param {boolean} [options.memo=false]
- * @return {import('./polymorphic-component').PolymorphicComponent<import('./polymorphic-component').ElementTypeFromViewOwnProps<P>, import('./polymorphic-component').PropsFromViewOwnProps<P>>} The connected PolymorphicComponent
- */
-
-function contextConnect(Component, namespace, options = {}) {
-  /* eslint-enable jsdoc/valid-types */
-  const {
-    memo: memoProp = false
-  } = options;
-  let WrappedComponent = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["forwardRef"])(Component);
-
-  if (memoProp) {
-    // @ts-ignore
-    WrappedComponent = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["memo"])(WrappedComponent);
-  }
-
-  if (typeof namespace === 'undefined') {
-    typeof process !== "undefined" && process.env && "production" !== "production" ? _wordpress_warning__WEBPACK_IMPORTED_MODULE_2___default()('contextConnect: Please provide a namespace') : void 0;
-  } // @ts-ignore internal property
-
-
-  let mergedNamespace = WrappedComponent[_constants__WEBPACK_IMPORTED_MODULE_3__[/* CONNECT_STATIC_NAMESPACE */ "c"]] || [namespace];
-  /**
-   * Consolidate (merge) namespaces before attaching it to the WrappedComponent.
-   */
-
-  if (Array.isArray(namespace)) {
-    mergedNamespace = [...mergedNamespace, ...namespace];
-  }
-
-  if (typeof namespace === 'string') {
-    mergedNamespace = [...mergedNamespace, namespace];
-  }
-
-  WrappedComponent.displayName = namespace; // @ts-ignore internal property
-
-  WrappedComponent[_constants__WEBPACK_IMPORTED_MODULE_3__[/* CONNECT_STATIC_NAMESPACE */ "c"]] = Object(lodash__WEBPACK_IMPORTED_MODULE_0__["uniq"])(mergedNamespace); // @ts-ignore PolymorphicComponent property
-
-  WrappedComponent.selector = `.${Object(_get_styled_class_name_from_key__WEBPACK_IMPORTED_MODULE_4__[/* getStyledClassNameFromKey */ "a"])(namespace)}`; // @ts-ignore
-
-  return WrappedComponent;
-}
-/**
- * Attempts to retrieve the connected namespace from a component.
- *
- * @param {import('react').ReactChild | undefined | {}} Component The component to retrieve a namespace from.
- * @return {Array<string>} The connected namespaces.
- */
-
-function getConnectNamespace(Component) {
-  if (!Component) return [];
-  let namespaces = []; // @ts-ignore internal property
-
-  if (Component[_constants__WEBPACK_IMPORTED_MODULE_3__[/* CONNECT_STATIC_NAMESPACE */ "c"]]) {
-    // @ts-ignore internal property
-    namespaces = Component[_constants__WEBPACK_IMPORTED_MODULE_3__[/* CONNECT_STATIC_NAMESPACE */ "c"]];
-  } // @ts-ignore
-
-
-  if (Component.type && Component.type[_constants__WEBPACK_IMPORTED_MODULE_3__[/* CONNECT_STATIC_NAMESPACE */ "c"]]) {
-    // @ts-ignore
-    namespaces = Component.type[_constants__WEBPACK_IMPORTED_MODULE_3__[/* CONNECT_STATIC_NAMESPACE */ "c"]];
-  }
-
-  return namespaces;
-}
-/**
- * Checks to see if a component is connected within the Context system.
- *
- * @param {import('react').ReactNode} Component The component to retrieve a namespace from.
- * @param {Array<string>|string} match The namespace to check.
- * @return {boolean} The result.
- */
-
-function hasConnectNamespace(Component, match) {
-  if (!Component) return false;
-
-  if (typeof match === 'string') {
-    return getConnectNamespace(Component).includes(match);
-  }
-
-  if (Array.isArray(match)) {
-    return match.some(result => getConnectNamespace(Component).includes(result));
-  }
-
-  return false;
-}
-
-/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("8oxB")))
-
-/***/ }),
-
-/***/ "82c2":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var keys = __webpack_require__("1seS");
-var hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';
-
-var toStr = Object.prototype.toString;
-var concat = Array.prototype.concat;
-var origDefineProperty = Object.defineProperty;
-
-var isFunction = function (fn) {
-	return typeof fn === 'function' && toStr.call(fn) === '[object Function]';
-};
-
-var arePropertyDescriptorsSupported = function () {
-	var obj = {};
-	try {
-		origDefineProperty(obj, 'x', { enumerable: false, value: obj });
-		// eslint-disable-next-line no-unused-vars, no-restricted-syntax
-		for (var _ in obj) { // jscs:ignore disallowUnusedVariables
-			return false;
-		}
-		return obj.x === obj;
-	} catch (e) { /* this is IE 8. */
-		return false;
-	}
-};
-var supportsDescriptors = origDefineProperty && arePropertyDescriptorsSupported();
-
-var defineProperty = function (object, name, value, predicate) {
-	if (name in object && (!isFunction(predicate) || !predicate())) {
-		return;
-	}
-	if (supportsDescriptors) {
-		origDefineProperty(object, name, {
-			configurable: true,
-			enumerable: false,
-			value: value,
-			writable: true
-		});
-	} else {
-		object[name] = value;
-	}
-};
-
-var defineProperties = function (object, map) {
-	var predicates = arguments.length > 2 ? arguments[2] : {};
-	var props = keys(map);
-	if (hasSymbols) {
-		props = concat.call(props, Object.getOwnPropertySymbols(map));
-	}
-	for (var i = 0; i < props.length; i += 1) {
-		defineProperty(object, props[i], map[props[i]], predicates[props[i]]);
-	}
-};
-
-defineProperties.supportsDescriptors = !!supportsDescriptors;
-
-module.exports = defineProperties;
-
-
-/***/ }),
-
-/***/ "8OQS":
-/***/ (function(module, exports) {
-
-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;
-}
-
-module.exports = _objectWithoutPropertiesLoose;
-module.exports["default"] = module.exports, module.exports.__esModule = true;
-
-/***/ }),
-
-/***/ "8R9v":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var define = __webpack_require__("82c2");
-var getPolyfill = __webpack_require__("yLpt");
-
-module.exports = function shimAssign() {
-	var polyfill = getPolyfill();
-	define(
-		Object,
-		{ assign: polyfill },
-		{ assign: function () { return Object.assign !== polyfill; } }
-	);
-	return polyfill;
-};
-
-
-/***/ }),
-
-/***/ "8oxB":
-/***/ (function(module, exports) {
-
-// shim for using process in browser
-var process = module.exports = {};
-
-// cached from whatever global is present so that test runners that stub it
-// don't break things.  But we need to wrap it in a try catch in case it is
-// wrapped in strict mode code which doesn't define any globals.  It's inside a
-// function because try/catches deoptimize in certain engines.
-
-var cachedSetTimeout;
-var cachedClearTimeout;
-
-function defaultSetTimout() {
-    throw new Error('setTimeout has not been defined');
-}
-function defaultClearTimeout () {
-    throw new Error('clearTimeout has not been defined');
-}
-(function () {
-    try {
-        if (typeof setTimeout === 'function') {
-            cachedSetTimeout = setTimeout;
-        } else {
-            cachedSetTimeout = defaultSetTimout;
-        }
-    } catch (e) {
-        cachedSetTimeout = defaultSetTimout;
-    }
-    try {
-        if (typeof clearTimeout === 'function') {
-            cachedClearTimeout = clearTimeout;
-        } else {
-            cachedClearTimeout = defaultClearTimeout;
-        }
-    } catch (e) {
-        cachedClearTimeout = defaultClearTimeout;
-    }
-} ())
-function runTimeout(fun) {
-    if (cachedSetTimeout === setTimeout) {
-        //normal enviroments in sane situations
-        return setTimeout(fun, 0);
-    }
-    // if setTimeout wasn't available but was latter defined
-    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
-        cachedSetTimeout = setTimeout;
-        return setTimeout(fun, 0);
-    }
-    try {
-        // when when somebody has screwed with setTimeout but no I.E. maddness
-        return cachedSetTimeout(fun, 0);
-    } catch(e){
-        try {
-            // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
-            return cachedSetTimeout.call(null, fun, 0);
-        } catch(e){
-            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
-            return cachedSetTimeout.call(this, fun, 0);
-        }
-    }
-
-
-}
-function runClearTimeout(marker) {
-    if (cachedClearTimeout === clearTimeout) {
-        //normal enviroments in sane situations
-        return clearTimeout(marker);
-    }
-    // if clearTimeout wasn't available but was latter defined
-    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
-        cachedClearTimeout = clearTimeout;
-        return clearTimeout(marker);
-    }
-    try {
-        // when when somebody has screwed with setTimeout but no I.E. maddness
-        return cachedClearTimeout(marker);
-    } catch (e){
-        try {
-            // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally
-            return cachedClearTimeout.call(null, marker);
-        } catch (e){
-            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
-            // Some versions of I.E. have different rules for clearTimeout vs setTimeout
-            return cachedClearTimeout.call(this, marker);
-        }
-    }
-
-
-
-}
-var queue = [];
-var draining = false;
-var currentQueue;
-var queueIndex = -1;
-
-function cleanUpNextTick() {
-    if (!draining || !currentQueue) {
-        return;
-    }
-    draining = false;
-    if (currentQueue.length) {
-        queue = currentQueue.concat(queue);
-    } else {
-        queueIndex = -1;
-    }
-    if (queue.length) {
-        drainQueue();
-    }
-}
-
-function drainQueue() {
-    if (draining) {
-        return;
-    }
-    var timeout = runTimeout(cleanUpNextTick);
-    draining = true;
-
-    var len = queue.length;
-    while(len) {
-        currentQueue = queue;
-        queue = [];
-        while (++queueIndex < len) {
-            if (currentQueue) {
-                currentQueue[queueIndex].run();
-            }
-        }
-        queueIndex = -1;
-        len = queue.length;
-    }
-    currentQueue = null;
-    draining = false;
-    runClearTimeout(timeout);
-}
-
-process.nextTick = function (fun) {
-    var args = new Array(arguments.length - 1);
-    if (arguments.length > 1) {
-        for (var i = 1; i < arguments.length; i++) {
-            args[i - 1] = arguments[i];
-        }
-    }
-    queue.push(new Item(fun, args));
-    if (queue.length === 1 && !draining) {
-        runTimeout(drainQueue);
-    }
-};
-
-// v8 likes predictible objects
-function Item(fun, array) {
-    this.fun = fun;
-    this.array = array;
-}
-Item.prototype.run = function () {
-    this.fun.apply(null, this.array);
-};
-process.title = 'browser';
-process.browser = true;
-process.env = {};
-process.argv = [];
-process.version = ''; // empty string to avoid regexp issues
-process.versions = {};
-
-function noop() {}
-
-process.on = noop;
-process.addListener = noop;
-process.once = noop;
-process.off = noop;
-process.removeListener = noop;
-process.removeAllListeners = noop;
-process.emit = noop;
-process.prependListener = noop;
-process.prependOnceListener = noop;
-
-process.listeners = function (name) { return [] }
-
-process.binding = function (name) {
-    throw new Error('process.binding is not supported');
-};
-
-process.cwd = function () { return '/' };
-process.chdir = function (dir) {
-    throw new Error('process.chdir is not supported');
-};
-process.umask = function() { return 0; };
-
-
-/***/ }),
-
-/***/ "9Do8":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-module.exports = __webpack_require__("zt9T");
-
-/***/ }),
-
-/***/ "9NHk":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return withNext; });
-/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("wx14");
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("GRId");
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__);
-
-
-
-/**
- * Internal dependencies
- */
-
-
-/**
- * @template {{}} TCurrentProps
- * @template {{}} TNextProps
- * @param {import('react').ForwardRefExoticComponent<TCurrentProps>} CurrentComponent
- * @param {import('react').ComponentType<TNextProps>} NextComponent
- * @param {string} namespace
- * @param {(props: TCurrentProps) => TNextProps} adapter
- */
-
-function withNext(CurrentComponent, NextComponent = () => null, namespace = 'Component', adapter = p =>
-/** @type {any} */
-p) {
-  if (false) {}
-
-  return CurrentComponent;
-}
-
-
-/***/ }),
-
-/***/ "9VDH":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("wx14");
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("GRId");
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__);
-/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("Tqx9");
-/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_2__);
-/* harmony import */ var _dashicon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("vUUf");
-
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-function Icon({
-  icon = null,
-  size,
-  ...additionalProps
-}) {
-  if ('string' === typeof icon) {
-    return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_dashicon__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({
-      icon: icon
-    }, additionalProps));
-  }
-
-  if (icon && _dashicon__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"] === icon.type) {
-    return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["cloneElement"])(icon, { ...additionalProps
-    });
-  } // Icons should be 24x24 by default.
-
-
-  const iconSize = size || 24;
-
-  if ('function' === typeof icon) {
-    if (icon.prototype instanceof _wordpress_element__WEBPACK_IMPORTED_MODULE_1__["Component"]) {
-      return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(icon, {
-        size: iconSize,
-        ...additionalProps
-      });
-    }
-
-    return icon({
-      size: iconSize,
-      ...additionalProps
-    });
-  }
-
-  if (icon && (icon.type === 'svg' || icon.type === _wordpress_primitives__WEBPACK_IMPORTED_MODULE_2__["SVG"])) {
-    const appliedProps = {
-      width: iconSize,
-      height: iconSize,
-      ...icon.props,
-      ...additionalProps
-    };
-    return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_2__["SVG"], appliedProps);
-  }
-
-  if (Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["isValidElement"])(icon)) {
-    return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["cloneElement"])(icon, {
-      size: iconSize,
-      ...additionalProps
-    });
-  }
-
-  return icon;
-}
-
-/* harmony default export */ __webpack_exports__["a"] = (Icon);
-
-
-/***/ }),
-
-/***/ "9cOx":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var GetIntrinsic = __webpack_require__("rZ7t");
-
-var $Array = GetIntrinsic('%Array%');
-
-// eslint-disable-next-line global-require
-var toStr = !$Array.isArray && __webpack_require__("EXo9")('Object.prototype.toString');
-
-// https://ecma-international.org/ecma-262/6.0/#sec-isarray
-
-module.exports = $Array.isArray || function IsArray(argument) {
-	return toStr(argument) === '[object Array]';
-};
-
-
-/***/ }),
-
-/***/ "9gmn":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _react = __webpack_require__("cDcd");
-
-var _react2 = _interopRequireDefault(_react);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-var ChevronUp = function () {
-  function ChevronUp(props) {
-    return _react2['default'].createElement(
-      'svg',
-      props,
-      _react2['default'].createElement('path', {
-        d: 'M32.1 712.6l453.2-452.2c11-11 21-11 32 0l453.2 452.2c4 5 6 10 6 16 0 13-10 23-22 23-7 0-12-2-16-7L501.3 308.5 64.1 744.7c-4 5-9 7-15 7-7 0-12-2-17-7-9-11-9-21 0-32.1z'
-      })
-    );
-  }
-
-  return ChevronUp;
-}();
-
-ChevronUp.defaultProps = {
-  viewBox: '0 0 1000 1000'
-};
-exports['default'] = ChevronUp;
-
-/***/ }),
-
-/***/ "9pTB":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-/* WEBPACK VAR INJECTION */(function(global) {
-
-var define = __webpack_require__("82c2");
-var isSymbol = __webpack_require__("/sVA");
-
-var globalKey = '__ global cache key __';
-/* istanbul ignore else */
-// eslint-disable-next-line no-restricted-properties
-if (typeof Symbol === 'function' && isSymbol(Symbol('foo')) && typeof Symbol['for'] === 'function') {
-	// eslint-disable-next-line no-restricted-properties
-	globalKey = Symbol['for'](globalKey);
-}
-
-var trueThunk = function () {
-	return true;
-};
-
-var ensureCache = function ensureCache() {
-	if (!global[globalKey]) {
-		var properties = {};
-		properties[globalKey] = {};
-		var predicates = {};
-		predicates[globalKey] = trueThunk;
-		define(global, properties, predicates);
-	}
-	return global[globalKey];
-};
-
-var cache = ensureCache();
-
-var isPrimitive = function isPrimitive(val) {
-	return val === null || (typeof val !== 'object' && typeof val !== 'function');
-};
-
-var getPrimitiveKey = function getPrimitiveKey(val) {
-	if (isSymbol(val)) {
-		return Symbol.prototype.valueOf.call(val);
-	}
-	return typeof val + ' | ' + String(val);
-};
-
-var requirePrimitiveKey = function requirePrimitiveKey(val) {
-	if (!isPrimitive(val)) {
-		throw new TypeError('key must not be an object');
-	}
-};
-
-var globalCache = {
-	clear: function clear() {
-		delete global[globalKey];
-		cache = ensureCache();
-	},
-
-	'delete': function deleteKey(key) {
-		requirePrimitiveKey(key);
-		delete cache[getPrimitiveKey(key)];
-		return !globalCache.has(key);
-	},
-
-	get: function get(key) {
-		requirePrimitiveKey(key);
-		return cache[getPrimitiveKey(key)];
-	},
-
-	has: function has(key) {
-		requirePrimitiveKey(key);
-		return getPrimitiveKey(key) in cache;
-	},
-
-	set: function set(key, value) {
-		requirePrimitiveKey(key);
-		var primitiveKey = getPrimitiveKey(key);
-		var props = {};
-		props[primitiveKey] = value;
-		var predicates = {};
-		predicates[primitiveKey] = trueThunk;
-		define(cache, props, predicates);
-		return globalCache.has(key);
-	},
-
-	setIfMissingThenGet: function setIfMissingThenGet(key, valueThunk) {
-		if (globalCache.has(key)) {
-			return globalCache.get(key);
-		}
-		var item = valueThunk();
-		globalCache.set(key, item);
-		return item;
-	}
-};
-
-module.exports = globalCache;
-
-/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("yLpj")))
-
-/***/ }),
-
-/***/ "9uj6":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _emotion_memoize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("4qRI");
-
-
-var reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|inert|itemProp|itemScope|itemType|itemID|itemRef|on|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23
-
-var index = Object(_emotion_memoize__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(function (prop) {
-  return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111
-  /* o */
-  && prop.charCodeAt(1) === 110
-  /* n */
-  && prop.charCodeAt(2) < 91;
-}
-/* Z+1 */
-);
-
-/* harmony default export */ __webpack_exports__["default"] = (index);
-
-
-/***/ }),
-
-/***/ "AClM":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-
-// EXPORTS
-__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ ensureFocus; });
-
-// EXTERNAL MODULE: ./node_modules/reakit-utils/es/getActiveElement.js
-var getActiveElement = __webpack_require__("Nym8");
-
-// CONCATENATED MODULE: ./node_modules/reakit-utils/es/hasFocus.js
-
-
-
-/**
- * Checks if `element` has focus. Elements that are referenced by
- * `aria-activedescendant` are also considered.
- *
- * @example
- * import { hasFocus } from "reakit-utils";
- *
- * hasFocus(document.getElementById("id"));
- */
-
-function hasFocus(element) {
-  var activeElement = Object(getActiveElement["a" /* getActiveElement */])(element);
-  if (!activeElement) return false;
-  if (activeElement === element) return true;
-  var activeDescendant = activeElement.getAttribute("aria-activedescendant");
-  if (!activeDescendant) return false;
-  return activeDescendant === element.id;
-}
-
-
-
-// CONCATENATED MODULE: ./node_modules/reakit-utils/es/ensureFocus.js
-
-
-
-
-/**
- * Ensures `element` will receive focus if it's not already.
- *
- * @example
- * import { ensureFocus } from "reakit-utils";
- *
- * ensureFocus(document.activeElement); // does nothing
- *
- * const element = document.querySelector("input");
- *
- * ensureFocus(element); // focuses element
- * ensureFocus(element, { preventScroll: true }); // focuses element preventing scroll jump
- *
- * function isActive(el) {
- *   return el.dataset.active === "true";
- * }
- *
- * ensureFocus(document.querySelector("[data-active='true']"), { isActive }); // does nothing
- *
- * @returns {number} `requestAnimationFrame` call ID so it can be passed to `cancelAnimationFrame` if needed.
- */
-function ensureFocus(element, _temp) {
-  var _ref = _temp === void 0 ? {} : _temp,
-      preventScroll = _ref.preventScroll,
-      _ref$isActive = _ref.isActive,
-      isActive = _ref$isActive === void 0 ? hasFocus : _ref$isActive;
-
-  if (isActive(element)) return -1;
-  element.focus({
-    preventScroll: preventScroll
-  });
-  if (isActive(element)) return -1;
-  return requestAnimationFrame(function () {
-    element.focus({
-      preventScroll: preventScroll
-    });
-  });
-}
-
-
-
-
-/***/ }),
-
-/***/ "AM7I":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-/* globals
-	AggregateError,
-	Atomics,
-	FinalizationRegistry,
-	SharedArrayBuffer,
-	WeakRef,
-*/
-
-var undefined;
-
-var $SyntaxError = SyntaxError;
-var $Function = Function;
-var $TypeError = TypeError;
-
-// eslint-disable-next-line consistent-return
-var getEvalledConstructor = function (expressionSyntax) {
-	try {
-		// eslint-disable-next-line no-new-func
-		return Function('"use strict"; return (' + expressionSyntax + ').constructor;')();
-	} catch (e) {}
-};
-
-var $gOPD = Object.getOwnPropertyDescriptor;
-if ($gOPD) {
-	try {
-		$gOPD({}, '');
-	} catch (e) {
-		$gOPD = null; // this is IE 8, which has a broken gOPD
-	}
-}
-
-var throwTypeError = function () {
-	throw new $TypeError();
-};
-var ThrowTypeError = $gOPD
-	? (function () {
-		try {
-			// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties
-			arguments.callee; // IE 8 does not throw here
-			return throwTypeError;
-		} catch (calleeThrows) {
-			try {
-				// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')
-				return $gOPD(arguments, 'callee').get;
-			} catch (gOPDthrows) {
-				return throwTypeError;
-			}
-		}
-	}())
-	: throwTypeError;
-
-var hasSymbols = __webpack_require__("UVaH")();
-
-var getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto
-
-var asyncGenFunction = getEvalledConstructor('async function* () {}');
-var asyncGenFunctionPrototype = asyncGenFunction ? asyncGenFunction.prototype : undefined;
-var asyncGenPrototype = asyncGenFunctionPrototype ? asyncGenFunctionPrototype.prototype : undefined;
-
-var TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);
-
-var INTRINSICS = {
-	'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,
-	'%Array%': Array,
-	'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,
-	'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,
-	'%AsyncFromSyncIteratorPrototype%': undefined,
-	'%AsyncFunction%': getEvalledConstructor('async function () {}'),
-	'%AsyncGenerator%': asyncGenFunctionPrototype,
-	'%AsyncGeneratorFunction%': asyncGenFunction,
-	'%AsyncIteratorPrototype%': asyncGenPrototype ? getProto(asyncGenPrototype) : undefined,
-	'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,
-	'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,
-	'%Boolean%': Boolean,
-	'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,
-	'%Date%': Date,
-	'%decodeURI%': decodeURI,
-	'%decodeURIComponent%': decodeURIComponent,
-	'%encodeURI%': encodeURI,
-	'%encodeURIComponent%': encodeURIComponent,
-	'%Error%': Error,
-	'%eval%': eval, // eslint-disable-line no-eval
-	'%EvalError%': EvalError,
-	'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,
-	'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,
-	'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,
-	'%Function%': $Function,
-	'%GeneratorFunction%': getEvalledConstructor('function* () {}'),
-	'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,
-	'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,
-	'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,
-	'%isFinite%': isFinite,
-	'%isNaN%': isNaN,
-	'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,
-	'%JSON%': typeof JSON === 'object' ? JSON : undefined,
-	'%Map%': typeof Map === 'undefined' ? undefined : Map,
-	'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),
-	'%Math%': Math,
-	'%Number%': Number,
-	'%Object%': Object,
-	'%parseFloat%': parseFloat,
-	'%parseInt%': parseInt,
-	'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,
-	'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,
-	'%RangeError%': RangeError,
-	'%ReferenceError%': ReferenceError,
-	'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,
-	'%RegExp%': RegExp,
-	'%Set%': typeof Set === 'undefined' ? undefined : Set,
-	'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),
-	'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,
-	'%String%': String,
-	'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,
-	'%Symbol%': hasSymbols ? Symbol : undefined,
-	'%SyntaxError%': $SyntaxError,
-	'%ThrowTypeError%': ThrowTypeError,
-	'%TypedArray%': TypedArray,
-	'%TypeError%': $TypeError,
-	'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,
-	'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,
-	'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,
-	'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,
-	'%URIError%': URIError,
-	'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,
-	'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,
-	'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet
-};
-
-var LEGACY_ALIASES = {
-	'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],
-	'%ArrayPrototype%': ['Array', 'prototype'],
-	'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],
-	'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],
-	'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],
-	'%ArrayProto_values%': ['Array', 'prototype', 'values'],
-	'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],
-	'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],
-	'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],
-	'%BooleanPrototype%': ['Boolean', 'prototype'],
-	'%DataViewPrototype%': ['DataView', 'prototype'],
-	'%DatePrototype%': ['Date', 'prototype'],
-	'%ErrorPrototype%': ['Error', 'prototype'],
-	'%EvalErrorPrototype%': ['EvalError', 'prototype'],
-	'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],
-	'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],
-	'%FunctionPrototype%': ['Function', 'prototype'],
-	'%Generator%': ['GeneratorFunction', 'prototype'],
-	'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],
-	'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],
-	'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],
-	'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],
-	'%JSONParse%': ['JSON', 'parse'],
-	'%JSONStringify%': ['JSON', 'stringify'],
-	'%MapPrototype%': ['Map', 'prototype'],
-	'%NumberPrototype%': ['Number', 'prototype'],
-	'%ObjectPrototype%': ['Object', 'prototype'],
-	'%ObjProto_toString%': ['Object', 'prototype', 'toString'],
-	'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],
-	'%PromisePrototype%': ['Promise', 'prototype'],
-	'%PromiseProto_then%': ['Promise', 'prototype', 'then'],
-	'%Promise_all%': ['Promise', 'all'],
-	'%Promise_reject%': ['Promise', 'reject'],
-	'%Promise_resolve%': ['Promise', 'resolve'],
-	'%RangeErrorPrototype%': ['RangeError', 'prototype'],
-	'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],
-	'%RegExpPrototype%': ['RegExp', 'prototype'],
-	'%SetPrototype%': ['Set', 'prototype'],
-	'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],
-	'%StringPrototype%': ['String', 'prototype'],
-	'%SymbolPrototype%': ['Symbol', 'prototype'],
-	'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],
-	'%TypedArrayPrototype%': ['TypedArray', 'prototype'],
-	'%TypeErrorPrototype%': ['TypeError', 'prototype'],
-	'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],
-	'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],
-	'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],
-	'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],
-	'%URIErrorPrototype%': ['URIError', 'prototype'],
-	'%WeakMapPrototype%': ['WeakMap', 'prototype'],
-	'%WeakSetPrototype%': ['WeakSet', 'prototype']
-};
-
-var bind = __webpack_require__("D3zA");
-var hasOwn = __webpack_require__("oNNP");
-var $concat = bind.call(Function.call, Array.prototype.concat);
-var $spliceApply = bind.call(Function.apply, Array.prototype.splice);
-var $replace = bind.call(Function.call, String.prototype.replace);
-var $strSlice = bind.call(Function.call, String.prototype.slice);
-
-/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */
-var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g;
-var reEscapeChar = /\\(\\)?/g; /** Used to match backslashes in property paths. */
-var stringToPath = function stringToPath(string) {
-	var first = $strSlice(string, 0, 1);
-	var last = $strSlice(string, -1);
-	if (first === '%' && last !== '%') {
-		throw new $SyntaxError('invalid intrinsic syntax, expected closing `%`');
-	} else if (last === '%' && first !== '%') {
-		throw new $SyntaxError('invalid intrinsic syntax, expected opening `%`');
-	}
-	var result = [];
-	$replace(string, rePropName, function (match, number, quote, subString) {
-		result[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;
-	});
-	return result;
-};
-/* end adaptation */
-
-var getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {
-	var intrinsicName = name;
-	var alias;
-	if (hasOwn(LEGACY_ALIASES, intrinsicName)) {
-		alias = LEGACY_ALIASES[intrinsicName];
-		intrinsicName = '%' + alias[0] + '%';
-	}
-
-	if (hasOwn(INTRINSICS, intrinsicName)) {
-		var value = INTRINSICS[intrinsicName];
-		if (typeof value === 'undefined' && !allowMissing) {
-			throw new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');
-		}
-
-		return {
-			alias: alias,
-			name: intrinsicName,
-			value: value
-		};
-	}
-
-	throw new $SyntaxError('intrinsic ' + name + ' does not exist!');
-};
-
-module.exports = function GetIntrinsic(name, allowMissing) {
-	if (typeof name !== 'string' || name.length === 0) {
-		throw new $TypeError('intrinsic name must be a non-empty string');
-	}
-	if (arguments.length > 1 && typeof allowMissing !== 'boolean') {
-		throw new $TypeError('"allowMissing" argument must be a boolean');
-	}
-
-	var parts = stringToPath(name);
-	var intrinsicBaseName = parts.length > 0 ? parts[0] : '';
-
-	var intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);
-	var intrinsicRealName = intrinsic.name;
-	var value = intrinsic.value;
-	var skipFurtherCaching = false;
-
-	var alias = intrinsic.alias;
-	if (alias) {
-		intrinsicBaseName = alias[0];
-		$spliceApply(parts, $concat([0, 1], alias));
-	}
-
-	for (var i = 1, isOwn = true; i < parts.length; i += 1) {
-		var part = parts[i];
-		var first = $strSlice(part, 0, 1);
-		var last = $strSlice(part, -1);
-		if (
-			(
-				(first === '"' || first === "'" || first === '`')
-				|| (last === '"' || last === "'" || last === '`')
-			)
-			&& first !== last
-		) {
-			throw new $SyntaxError('property names with quotes must have matching quotes');
-		}
-		if (part === 'constructor' || !isOwn) {
-			skipFurtherCaching = true;
-		}
-
-		intrinsicBaseName += '.' + part;
-		intrinsicRealName = '%' + intrinsicBaseName + '%';
-
-		if (hasOwn(INTRINSICS, intrinsicRealName)) {
-			value = INTRINSICS[intrinsicRealName];
-		} else if (value != null) {
-			if (!(part in value)) {
-				if (!allowMissing) {
-					throw new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');
-				}
-				return void undefined;
-			}
-			if ($gOPD && (i + 1) >= parts.length) {
-				var desc = $gOPD(value, part);
-				isOwn = !!desc;
-
-				// By convention, when a data property is converted to an accessor
-				// property to emulate a data property that does not suffer from
-				// the override mistake, that accessor's getter is marked with
-				// an `originalValue` property. Here, when we detect this, we
-				// uphold the illusion by pretending to see that original data
-				// property, i.e., returning the value rather than the getter
-				// itself.
-				if (isOwn && 'get' in desc && !('originalValue' in desc.get)) {
-					value = desc.get;
-				} else {
-					value = value[part];
-				}
-			} else {
-				isOwn = hasOwn(value, part);
-				value = value[part];
-			}
-
-			if (isOwn && !skipFurtherCaching) {
-				INTRINSICS[intrinsicRealName] = value;
-			}
-		}
-	}
-	return value;
-};
-
-
-/***/ }),
-
-/***/ "AP2z":
-/***/ (function(module, exports, __webpack_require__) {
-
-var Symbol = __webpack_require__("nmnc");
-
-/** Used for built-in method references. */
-var objectProto = Object.prototype;
-
-/** Used to check objects for own properties. */
-var hasOwnProperty = objectProto.hasOwnProperty;
-
-/**
- * Used to resolve the
- * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
- * of values.
- */
-var nativeObjectToString = objectProto.toString;
-
-/** Built-in value references. */
-var symToStringTag = Symbol ? Symbol.toStringTag : undefined;
-
-/**
- * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
- *
- * @private
- * @param {*} value The value to query.
- * @returns {string} Returns the raw `toStringTag`.
- */
-function getRawTag(value) {
-  var isOwn = hasOwnProperty.call(value, symToStringTag),
-      tag = value[symToStringTag];
-
-  try {
-    value[symToStringTag] = undefined;
-    var unmasked = true;
-  } catch (e) {}
-
-  var result = nativeObjectToString.call(value);
-  if (unmasked) {
-    if (isOwn) {
-      value[symToStringTag] = tag;
-    } else {
-      delete value[symToStringTag];
-    }
-  }
-  return result;
-}
-
-module.exports = getRawTag;
-
-
-/***/ }),
-
-/***/ "AXvK":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return useIsomorphicEffect; });
-/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("cDcd");
-/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _canUseDOM_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("+ipW");
-
-
-
-
-
-/**
- * `React.useLayoutEffect` that fallbacks to `React.useEffect` on server side
- * rendering.
- */
-
-var useIsomorphicEffect = !_canUseDOM_js__WEBPACK_IMPORTED_MODULE_1__[/* canUseDOM */ "a"] ? react__WEBPACK_IMPORTED_MODULE_0__["useEffect"] : react__WEBPACK_IMPORTED_MODULE_0__["useLayoutEffect"];
-
-
-
-
-/***/ }),
-
-/***/ "Ae65":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports['default'] = getCalendarDaySettings;
-
-var _getPhrase = __webpack_require__("oOcr");
-
-var _getPhrase2 = _interopRequireDefault(_getPhrase);
-
-var _constants = __webpack_require__("Fv1B");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-function getCalendarDaySettings(day, ariaLabelFormat, daySize, modifiers, phrases) {
-  var chooseAvailableDate = phrases.chooseAvailableDate,
-      dateIsUnavailable = phrases.dateIsUnavailable,
-      dateIsSelected = phrases.dateIsSelected;
-
-
-  var daySizeStyles = {
-    width: daySize,
-    height: daySize - 1
-  };
-
-  var useDefaultCursor = modifiers.has('blocked-minimum-nights') || modifiers.has('blocked-calendar') || modifiers.has('blocked-out-of-range');
-
-  var selected = modifiers.has('selected') || modifiers.has('selected-start') || modifiers.has('selected-end');
-
-  var hoveredSpan = !selected && (modifiers.has('hovered-span') || modifiers.has('after-hovered-start'));
-
-  var isOutsideRange = modifiers.has('blocked-out-of-range');
-
-  var formattedDate = { date: day.format(ariaLabelFormat) };
-
-  var ariaLabel = (0, _getPhrase2['default'])(chooseAvailableDate, formattedDate);
-  if (modifiers.has(_constants.BLOCKED_MODIFIER)) {
-    ariaLabel = (0, _getPhrase2['default'])(dateIsUnavailable, formattedDate);
-  } else if (selected) {
-    ariaLabel = (0, _getPhrase2['default'])(dateIsSelected, formattedDate);
-  }
-
-  return {
-    daySizeStyles: daySizeStyles,
-    useDefaultCursor: useDefaultCursor,
-    selected: selected,
-    hoveredSpan: hoveredSpan,
-    isOutsideRange: isOutsideRange,
-    ariaLabel: ariaLabel
-  };
-}
-
-/***/ }),
-
-/***/ "Asd8":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var fnToStr = Function.prototype.toString;
-var reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;
-var badArrayLike;
-var isCallableMarker;
-if (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {
-	try {
-		badArrayLike = Object.defineProperty({}, 'length', {
-			get: function () {
-				throw isCallableMarker;
-			}
-		});
-		isCallableMarker = {};
-		// eslint-disable-next-line no-throw-literal
-		reflectApply(function () { throw 42; }, null, badArrayLike);
-	} catch (_) {
-		if (_ !== isCallableMarker) {
-			reflectApply = null;
-		}
-	}
-} else {
-	reflectApply = null;
-}
-
-var constructorRegex = /^\s*class\b/;
-var isES6ClassFn = function isES6ClassFunction(value) {
-	try {
-		var fnStr = fnToStr.call(value);
-		return constructorRegex.test(fnStr);
-	} catch (e) {
-		return false; // not a function
-	}
-};
-
-var tryFunctionObject = function tryFunctionToStr(value) {
-	try {
-		if (isES6ClassFn(value)) { return false; }
-		fnToStr.call(value);
-		return true;
-	} catch (e) {
-		return false;
-	}
-};
-var toStr = Object.prototype.toString;
-var fnClass = '[object Function]';
-var genClass = '[object GeneratorFunction]';
-var hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; // better: use `has-tostringtag`
-/* globals document: false */
-var documentDotAll = typeof document === 'object' && typeof document.all === 'undefined' && document.all !== undefined ? document.all : {};
-
-module.exports = reflectApply
-	? function isCallable(value) {
-		if (value === documentDotAll) { return true; }
-		if (!value) { return false; }
-		if (typeof value !== 'function' && typeof value !== 'object') { return false; }
-		if (typeof value === 'function' && !value.prototype) { return true; }
-		try {
-			reflectApply(value, null, badArrayLike);
-		} catch (e) {
-			if (e !== isCallableMarker) { return false; }
-		}
-		return !isES6ClassFn(value);
-	}
-	: function isCallable(value) {
-		if (value === documentDotAll) { return true; }
-		if (!value) { return false; }
-		if (typeof value !== 'function' && typeof value !== 'object') { return false; }
-		if (typeof value === 'function' && !value.prototype) { return true; }
-		if (hasToStringTag) { return tryFunctionObject(value); }
-		if (isES6ClassFn(value)) { return false; }
-		var strClass = toStr.call(value);
-		return strClass === fnClass || strClass === genClass;
-	};
-
-
-/***/ }),
-
-/***/ "B6Q+":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var hasSymbols = __webpack_require__("qGip");
-
-module.exports = function hasToStringTagShams() {
-	return hasSymbols() && !!Symbol.toStringTag;
-};
-
-
-/***/ }),
-
-/***/ "B9Az":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-
-// EXTERNAL MODULE: external ["wp","element"]
-var external_wp_element_ = __webpack_require__("GRId");
-
-// EXTERNAL MODULE: external ["wp","primitives"]
-var external_wp_primitives_ = __webpack_require__("Tqx9");
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/pencil.js
-
-
-/**
- * WordPress dependencies
- */
-
-const pencil = Object(external_wp_element_["createElement"])(external_wp_primitives_["SVG"], {
-  xmlns: "http://www.w3.org/2000/svg",
-  viewBox: "0 0 24 24"
-}, Object(external_wp_element_["createElement"])(external_wp_primitives_["Path"], {
-  d: "M20.1 5.1L16.9 2 6.2 12.7l-1.3 4.4 4.5-1.3L20.1 5.1zM4 20.8h8v-1.5H4v1.5z"
-}));
-/* harmony default export */ var library_pencil = (pencil);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/edit.js
-/**
- * Internal dependencies
- */
-
-/* harmony default export */ var edit = __webpack_exports__["a"] = (library_pencil);
-
-
-/***/ }),
-
-/***/ "BZp5":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _objectWithoutPropertiesLoose; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return _objectSpread2; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return _createForOfIteratorHelperLoose; });
-function _defineProperty(obj, key, value) {
-  if (key in obj) {
-    Object.defineProperty(obj, key, {
-      value: value,
-      enumerable: true,
-      configurable: true,
-      writable: true
-    });
-  } else {
-    obj[key] = value;
-  }
-
-  return obj;
-}
-
-function ownKeys(object, enumerableOnly) {
-  var keys = Object.keys(object);
-
-  if (Object.getOwnPropertySymbols) {
-    var symbols = Object.getOwnPropertySymbols(object);
-    if (enumerableOnly) symbols = symbols.filter(function (sym) {
-      return Object.getOwnPropertyDescriptor(object, sym).enumerable;
-    });
-    keys.push.apply(keys, symbols);
-  }
-
-  return keys;
-}
-
-function _objectSpread2(target) {
-  for (var i = 1; i < arguments.length; i++) {
-    var source = arguments[i] != null ? arguments[i] : {};
-
-    if (i % 2) {
-      ownKeys(Object(source), true).forEach(function (key) {
-        _defineProperty(target, key, source[key]);
-      });
-    } else if (Object.getOwnPropertyDescriptors) {
-      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
-    } else {
-      ownKeys(Object(source)).forEach(function (key) {
-        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(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 _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 _createForOfIteratorHelperLoose(o, allowArrayLike) {
-  var it;
-
-  if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) {
-    if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
-      if (it) o = it;
-      var i = 0;
-      return function () {
-        if (i >= o.length) return {
-          done: true
-        };
-        return {
-          done: false,
-          value: o[i++]
-        };
-      };
-    }
-
-    throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
-  }
-
-  it = o[Symbol.iterator]();
-  return it.next.bind(it);
-}
-
-
-
-
-/***/ }),
-
-/***/ "BeK9":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-module.exports = function isPrimitive(value) {
-	return value === null || (typeof value !== 'function' && typeof value !== 'object');
-};
-
-
-/***/ }),
-
-/***/ "Bpkj":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
-/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
-
-
-/**
- * WordPress dependencies
- */
-
-const link = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
-  xmlns: "http://www.w3.org/2000/svg",
-  viewBox: "0 0 24 24"
-}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
-  d: "M15.6 7.2H14v1.5h1.6c2 0 3.7 1.7 3.7 3.7s-1.7 3.7-3.7 3.7H14v1.5h1.6c2.8 0 5.2-2.3 5.2-5.2 0-2.9-2.3-5.2-5.2-5.2zM4.7 12.4c0-2 1.7-3.7 3.7-3.7H10V7.2H8.4c-2.9 0-5.2 2.3-5.2 5.2 0 2.9 2.3 5.2 5.2 5.2H10v-1.5H8.4c-2 0-3.7-1.7-3.7-3.7zm4.6.9h5.3v-1.5H9.3v1.5z"
-}));
-/* harmony default export */ __webpack_exports__["a"] = (link);
-
-
-/***/ }),
-
-/***/ "C6yU":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* WEBPACK VAR INJECTION */(function(process) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return useContextSystem; });
-/* harmony import */ var emotion__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("kDDq");
-/* harmony import */ var _wordpress_warning__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Z23Y");
-/* harmony import */ var _wordpress_warning__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_warning__WEBPACK_IMPORTED_MODULE_1__);
-/* harmony import */ var _context_system_provider__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("6zzY");
-/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("Ohaz");
-/* harmony import */ var _get_styled_class_name_from_key__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("UAm0");
-
-
-/**
- * WordPress dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-
-
-/* eslint-disable jsdoc/valid-types */
-
-/**
- * @template TProps
- * @typedef {TProps & { className: string; children?: import('react').ReactNode }} ConnectedProps
- */
-
-/* eslint-enable jsdoc/valid-types */
-
-/**
- * Custom hook that derives registered props from the Context system.
- * These derived props are then consolidated with incoming component props.
- *
- * @template {{ className?: string }} P
- * @param {P} props Incoming props from the component.
- * @param {string} namespace The namespace to register and to derive context props from.
- * @return {ConnectedProps<P>} The connected props.
- */
-
-function useContextSystem(props, namespace) {
-  const contextSystemProps = Object(_context_system_provider__WEBPACK_IMPORTED_MODULE_2__[/* useComponentsContext */ "a"])();
-
-  if (typeof namespace === 'undefined') {
-    typeof process !== "undefined" && process.env && "production" !== "production" ? _wordpress_warning__WEBPACK_IMPORTED_MODULE_1___default()('useContextSystem: Please provide a namespace') : void 0;
-  }
-
-  const contextProps = (contextSystemProps === null || contextSystemProps === void 0 ? void 0 : contextSystemProps[namespace]) || {};
-  /* eslint-disable jsdoc/no-undefined-types */
-
-  /** @type {ConnectedProps<P>} */
-  // @ts-ignore We fill in the missing properties below
-
-  const finalComponentProps = { ...Object(_utils__WEBPACK_IMPORTED_MODULE_3__[/* getConnectedNamespace */ "a"])(),
-    ...Object(_utils__WEBPACK_IMPORTED_MODULE_3__[/* getNamespace */ "b"])(namespace)
-  };
-  /* eslint-enable jsdoc/no-undefined-types */
-
-  const {
-    _overrides: overrideProps,
-    ...otherContextProps
-  } = contextProps;
-  const initialMergedProps = Object.entries(otherContextProps).length ? Object.assign({}, otherContextProps, props) : props;
-
-  const classes = Object(emotion__WEBPACK_IMPORTED_MODULE_0__[/* cx */ "b"])(Object(_get_styled_class_name_from_key__WEBPACK_IMPORTED_MODULE_4__[/* getStyledClassNameFromKey */ "a"])(namespace), props.className); // Provides the ability to customize the render of the component.
-
-
-  const rendered = typeof initialMergedProps.renderChildren === 'function' ? initialMergedProps.renderChildren(initialMergedProps) : initialMergedProps.children;
-
-  for (const key in initialMergedProps) {
-    // @ts-ignore filling in missing props
-    finalComponentProps[key] = initialMergedProps[key];
-  }
-
-  for (const key in overrideProps) {
-    // @ts-ignore filling in missing props
-    finalComponentProps[key] = overrideProps[key];
-  }
-
-  finalComponentProps.children = rendered;
-  finalComponentProps.className = classes;
-  return finalComponentProps;
-}
-
-/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("8oxB")))
-
-/***/ }),
-
-/***/ "CGNl":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var has = __webpack_require__("oNNP");
-
-var assertRecord = __webpack_require__("10Kj");
-
-var Type = __webpack_require__("V1cy");
-
-// https://ecma-international.org/ecma-262/6.0/#sec-isdatadescriptor
-
-module.exports = function IsDataDescriptor(Desc) {
-	if (typeof Desc === 'undefined') {
-		return false;
-	}
-
-	assertRecord(Type, 'Property Descriptor', 'Desc', Desc);
-
-	if (!has(Desc, '[[Value]]') && !has(Desc, '[[Writable]]')) {
-		return false;
-	}
-
-	return true;
-};
-
-
-/***/ }),
-
-/***/ "Cw+6":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("YLtl");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);
-
-
-/**
- * External dependencies
- */
-
-/** @typedef {string | { display: string, ariaLabel: string }} Shortcut */
-
-/**
- * @typedef Props
- * @property {Shortcut} shortcut Shortcut configuration
- * @property {string} [className] Classname
- */
-
-/**
- * @param {Props} props Props
- * @return {JSX.Element | null} Element
- */
-
-function Shortcut({
-  shortcut,
-  className
-}) {
-  if (!shortcut) {
-    return null;
-  }
-
-  let displayText;
-  let ariaLabel;
-
-  if (Object(lodash__WEBPACK_IMPORTED_MODULE_1__["isString"])(shortcut)) {
-    displayText = shortcut;
-  }
-
-  if (Object(lodash__WEBPACK_IMPORTED_MODULE_1__["isObject"])(shortcut)) {
-    displayText = shortcut.display;
-    ariaLabel = shortcut.ariaLabel;
-  }
-
-  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("span", {
-    className: className,
-    "aria-label": ariaLabel
-  }, displayText);
-}
-
-/* harmony default export */ __webpack_exports__["a"] = (Shortcut);
-
-
-/***/ }),
-
-/***/ "D3zA":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var implementation = __webpack_require__("aI7X");
-
-module.exports = Function.prototype.bind || implementation;
-
-
-/***/ }),
-
-/***/ "DHWS":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _react = __webpack_require__("cDcd");
-
-var _react2 = _interopRequireDefault(_react);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-var ChevronDown = function () {
-  function ChevronDown(props) {
-    return _react2['default'].createElement(
-      'svg',
-      props,
-      _react2['default'].createElement('path', {
-        d: 'M967.5 288.5L514.3 740.7c-11 11-21 11-32 0L29.1 288.5c-4-5-6-11-6-16 0-13 10-23 23-23 6 0 11 2 15 7l437.2 436.2 437.2-436.2c4-5 9-7 16-7 6 0 11 2 16 7 9 10.9 9 21 0 32z'
-      })
-    );
-  }
-
-  return ChevronDown;
-}();
-
-ChevronDown.defaultProps = {
-  viewBox: '0 0 1000 1000'
-};
-exports['default'] = ChevronDown;
-
-/***/ }),
-
-/***/ "DciD":
-/***/ (function(module, exports, __webpack_require__) {
+/******/ (function() { // webpackBootstrap
+/******/ 	var __webpack_modules__ = ({
+
+/***/ 5096:
+/***/ (function(module) {
 
 "use strict";
 
@@ -5515,37986 +11,701 @@
   return null;
 }
 
-noop.isRequired = noop;
-
-function noopThunk() {
-  return noop;
-}
-
-module.exports = {
-  and: noopThunk,
-  between: noopThunk,
-  booleanSome: noopThunk,
-  childrenHavePropXorChildren: noopThunk,
-  childrenOf: noopThunk,
-  childrenOfType: noopThunk,
-  childrenSequenceOf: noopThunk,
-  componentWithName: noopThunk,
-  disallowedIf: noopThunk,
-  elementType: noopThunk,
-  empty: noopThunk,
-  explicitNull: noopThunk,
-  forbidExtraProps: Object,
-  integer: noopThunk,
-  keysOf: noopThunk,
-  mutuallyExclusiveProps: noopThunk,
-  mutuallyExclusiveTrueProps: noopThunk,
-  nChildren: noopThunk,
-  nonNegativeInteger: noop,
-  nonNegativeNumber: noopThunk,
-  numericString: noopThunk,
-  object: noopThunk,
-  or: noopThunk,
-  predicate: noopThunk,
-  range: noopThunk,
-  ref: noopThunk,
-  requiredBy: noopThunk,
-  restrictedProp: noopThunk,
-  sequenceOf: noopThunk,
-  shape: noopThunk,
-  stringEndsWith: noopThunk,
-  stringStartsWith: noopThunk,
-  uniqueArray: noopThunk,
-  uniqueArrayOf: noopThunk,
-  valuesOf: noopThunk,
-  withShape: noopThunk
-};
-
-
-/***/ }),
-
-/***/ "DmXP":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var getDay = Date.prototype.getDay;
-var tryDateObject = function tryDateGetDayCall(value) {
-	try {
-		getDay.call(value);
-		return true;
-	} catch (e) {
-		return false;
-	}
-};
-
-var toStr = Object.prototype.toString;
-var dateClass = '[object Date]';
-var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';
-
-module.exports = function isDateObject(value) {
-	if (typeof value !== 'object' || value === null) {
-		return false;
-	}
-	return hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass;
-};
-
-
-/***/ }),
-
-/***/ "DvWQ":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var GetIntrinsic = __webpack_require__("rZ7t");
-
-var $TypeError = GetIntrinsic('%TypeError%');
-
-var DefineOwnProperty = __webpack_require__("wTIp");
-
-var FromPropertyDescriptor = __webpack_require__("zYbv");
-var OrdinaryGetOwnProperty = __webpack_require__("kgBv");
-var IsDataDescriptor = __webpack_require__("CGNl");
-var IsExtensible = __webpack_require__("rDFq");
-var IsPropertyKey = __webpack_require__("i10q");
-var SameValue = __webpack_require__("HI8u");
-var Type = __webpack_require__("V1cy");
-
-// https://ecma-international.org/ecma-262/6.0/#sec-createdataproperty
-
-module.exports = function CreateDataProperty(O, P, V) {
-	if (Type(O) !== 'Object') {
-		throw new $TypeError('Assertion failed: Type(O) is not Object');
-	}
-	if (!IsPropertyKey(P)) {
-		throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
-	}
-	var oldDesc = OrdinaryGetOwnProperty(O, P);
-	var extensible = !oldDesc || IsExtensible(O);
-	var immutable = oldDesc && (!oldDesc['[[Writable]]'] || !oldDesc['[[Configurable]]']);
-	if (immutable || !extensible) {
-		return false;
-	}
-	return DefineOwnProperty(
-		IsDataDescriptor,
-		SameValue,
-		FromPropertyDescriptor,
-		O,
-		P,
-		{
-			'[[Configurable]]': true,
-			'[[Enumerable]]': true,
-			'[[Value]]': V,
-			'[[Writable]]': true
-		}
-	);
-};
-
-
-/***/ }),
-
-/***/ "DzJC":
-/***/ (function(module, exports, __webpack_require__) {
-
-var debounce = __webpack_require__("sEfC"),
-    isObject = __webpack_require__("GoyQ");
-
-/** Error message constants. */
-var FUNC_ERROR_TEXT = 'Expected a function';
-
-/**
- * Creates a throttled function that only invokes `func` at most once per
- * every `wait` milliseconds. The throttled function comes with a `cancel`
- * method to cancel delayed `func` invocations and a `flush` method to
- * immediately invoke them. Provide `options` to indicate whether `func`
- * should be invoked on the leading and/or trailing edge of the `wait`
- * timeout. The `func` is invoked with the last arguments provided to the
- * throttled function. Subsequent calls to the throttled function return the
- * result of the last `func` invocation.
- *
- * **Note:** If `leading` and `trailing` options are `true`, `func` is
- * invoked on the trailing edge of the timeout only if the throttled function
- * is invoked more than once during the `wait` timeout.
- *
- * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
- * until to the next tick, similar to `setTimeout` with a timeout of `0`.
- *
- * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
- * for details over the differences between `_.throttle` and `_.debounce`.
- *
- * @static
- * @memberOf _
- * @since 0.1.0
- * @category Function
- * @param {Function} func The function to throttle.
- * @param {number} [wait=0] The number of milliseconds to throttle invocations to.
- * @param {Object} [options={}] The options object.
- * @param {boolean} [options.leading=true]
- *  Specify invoking on the leading edge of the timeout.
- * @param {boolean} [options.trailing=true]
- *  Specify invoking on the trailing edge of the timeout.
- * @returns {Function} Returns the new throttled function.
- * @example
- *
- * // Avoid excessively updating the position while scrolling.
- * jQuery(window).on('scroll', _.throttle(updatePosition, 100));
- *
- * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.
- * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });
- * jQuery(element).on('click', throttled);
- *
- * // Cancel the trailing throttled invocation.
- * jQuery(window).on('popstate', throttled.cancel);
- */
-function throttle(func, wait, options) {
-  var leading = true,
-      trailing = true;
-
-  if (typeof func != 'function') {
-    throw new TypeError(FUNC_ERROR_TEXT);
-  }
-  if (isObject(options)) {
-    leading = 'leading' in options ? !!options.leading : leading;
-    trailing = 'trailing' in options ? !!options.trailing : trailing;
-  }
-  return debounce(func, wait, {
-    'leading': leading,
-    'maxWait': wait,
-    'trailing': trailing
-  });
-}
-
-module.exports = throttle;
-
-
-/***/ }),
-
-/***/ "EXo9":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var GetIntrinsic = __webpack_require__("rZ7t");
-
-var callBind = __webpack_require__("hZ2/");
-
-var $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));
-
-module.exports = function callBoundIntrinsic(name, allowMissing) {
-	var intrinsic = GetIntrinsic(name, !!allowMissing);
-	if (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {
-		return callBind(intrinsic);
-	}
-	return intrinsic;
-};
-
-
-/***/ }),
-
-/***/ "ExA7":
-/***/ (function(module, exports) {
-
-/**
- * Checks if `value` is object-like. A value is object-like if it's not `null`
- * and has a `typeof` result of "object".
- *
- * @static
- * @memberOf _
- * @since 4.0.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
- * @example
- *
- * _.isObjectLike({});
- * // => true
- *
- * _.isObjectLike([1, 2, 3]);
- * // => true
- *
- * _.isObjectLike(_.noop);
- * // => false
- *
- * _.isObjectLike(null);
- * // => false
- */
-function isObjectLike(value) {
-  return value != null && typeof value == 'object';
-}
-
-module.exports = isObjectLike;
-
-
-/***/ }),
-
-/***/ "F7ZS":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports['default'] = getCalendarMonthWeeks;
-
-var _moment = __webpack_require__("wy2R");
-
-var _moment2 = _interopRequireDefault(_moment);
-
-var _constants = __webpack_require__("Fv1B");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-function getCalendarMonthWeeks(month, enableOutsideDays) {
-  var firstDayOfWeek = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _moment2['default'].localeData().firstDayOfWeek();
-
-  if (!_moment2['default'].isMoment(month) || !month.isValid()) {
-    throw new TypeError('`month` must be a valid moment object');
-  }
-  if (_constants.WEEKDAYS.indexOf(firstDayOfWeek) === -1) {
-    throw new TypeError('`firstDayOfWeek` must be an integer between 0 and 6');
-  }
-
-  // set utc offset to get correct dates in future (when timezone changes)
-  var firstOfMonth = month.clone().startOf('month').hour(12);
-  var lastOfMonth = month.clone().endOf('month').hour(12);
-
-  // calculate the exact first and last days to fill the entire matrix
-  // (considering days outside month)
-  var prevDays = (firstOfMonth.day() + 7 - firstDayOfWeek) % 7;
-  var nextDays = (firstDayOfWeek + 6 - lastOfMonth.day()) % 7;
-  var firstDay = firstOfMonth.clone().subtract(prevDays, 'day');
-  var lastDay = lastOfMonth.clone().add(nextDays, 'day');
-
-  var totalDays = lastDay.diff(firstDay, 'days') + 1;
-
-  var currentDay = firstDay.clone();
-  var weeksInMonth = [];
-
-  for (var i = 0; i < totalDays; i += 1) {
-    if (i % 7 === 0) {
-      weeksInMonth.push([]);
-    }
-
-    var day = null;
-    if (i >= prevDays && i < totalDays - nextDays || enableOutsideDays) {
-      day = currentDay.clone();
-    }
-
-    weeksInMonth[weeksInMonth.length - 1].push(day);
-
-    currentDay.add(1, 'day');
-  }
-
-  return weeksInMonth;
-}
-
-/***/ }),
-
-/***/ "FpZJ":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-/* eslint complexity: [2, 18], max-statements: [2, 33] */
-module.exports = function hasSymbols() {
-	if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }
-	if (typeof Symbol.iterator === 'symbol') { return true; }
-
-	var obj = {};
-	var sym = Symbol('test');
-	var symObj = Object(sym);
-	if (typeof sym === 'string') { return false; }
-
-	if (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }
-	if (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }
-
-	// temp disabled per https://github.com/ljharb/object.assign/issues/17
-	// if (sym instanceof Symbol) { return false; }
-	// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4
-	// if (!(symObj instanceof Symbol)) { return false; }
-
-	// if (typeof Symbol.prototype.toString !== 'function') { return false; }
-	// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }
-
-	var symVal = 42;
-	obj[sym] = symVal;
-	for (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax
-	if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }
-
-	if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }
-
-	var syms = Object.getOwnPropertySymbols(obj);
-	if (syms.length !== 1 || syms[0] !== sym) { return false; }
-
-	if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }
-
-	if (typeof Object.getOwnPropertyDescriptor === 'function') {
-		var descriptor = Object.getOwnPropertyDescriptor(obj, sym);
-		if (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }
-	}
-
-	return true;
-};
-
-
-/***/ }),
-
-/***/ "FqII":
-/***/ (function(module, exports) {
-
-(function() { module.exports = window["wp"]["date"]; }());
-
-/***/ }),
-
-/***/ "FufO":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-// modified from https://github.com/es-shims/es6-shim
-var keys = __webpack_require__("1seS");
-var canBeObject = function (obj) {
-	return typeof obj !== 'undefined' && obj !== null;
-};
-var hasSymbols = __webpack_require__("FpZJ")();
-var callBound = __webpack_require__("VF6F");
-var toObject = Object;
-var $push = callBound('Array.prototype.push');
-var $propIsEnumerable = callBound('Object.prototype.propertyIsEnumerable');
-var originalGetSymbols = hasSymbols ? Object.getOwnPropertySymbols : null;
-
-// eslint-disable-next-line no-unused-vars
-module.exports = function assign(target, source1) {
-	if (!canBeObject(target)) { throw new TypeError('target must be an object'); }
-	var objTarget = toObject(target);
-	var s, source, i, props, syms, value, key;
-	for (s = 1; s < arguments.length; ++s) {
-		source = toObject(arguments[s]);
-		props = keys(source);
-		var getSymbols = hasSymbols && (Object.getOwnPropertySymbols || originalGetSymbols);
-		if (getSymbols) {
-			syms = getSymbols(source);
-			for (i = 0; i < syms.length; ++i) {
-				key = syms[i];
-				if ($propIsEnumerable(source, key)) {
-					$push(props, key);
-				}
-			}
-		}
-		for (i = 0; i < props.length; ++i) {
-			key = props[i];
-			value = source[key];
-			if ($propIsEnumerable(source, key)) {
-				objTarget[key] = value;
-			}
-		}
-	}
-	return objTarget;
-};
-
-
-/***/ }),
-
-/***/ "Fv1B":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var DISPLAY_FORMAT = exports.DISPLAY_FORMAT = 'L';
-var ISO_FORMAT = exports.ISO_FORMAT = 'YYYY-MM-DD';
-var ISO_MONTH_FORMAT = exports.ISO_MONTH_FORMAT = 'YYYY-MM';
-
-var START_DATE = exports.START_DATE = 'startDate';
-var END_DATE = exports.END_DATE = 'endDate';
-
-var HORIZONTAL_ORIENTATION = exports.HORIZONTAL_ORIENTATION = 'horizontal';
-var VERTICAL_ORIENTATION = exports.VERTICAL_ORIENTATION = 'vertical';
-var VERTICAL_SCROLLABLE = exports.VERTICAL_SCROLLABLE = 'verticalScrollable';
-
-var ICON_BEFORE_POSITION = exports.ICON_BEFORE_POSITION = 'before';
-var ICON_AFTER_POSITION = exports.ICON_AFTER_POSITION = 'after';
-
-var INFO_POSITION_TOP = exports.INFO_POSITION_TOP = 'top';
-var INFO_POSITION_BOTTOM = exports.INFO_POSITION_BOTTOM = 'bottom';
-var INFO_POSITION_BEFORE = exports.INFO_POSITION_BEFORE = 'before';
-var INFO_POSITION_AFTER = exports.INFO_POSITION_AFTER = 'after';
-
-var ANCHOR_LEFT = exports.ANCHOR_LEFT = 'left';
-var ANCHOR_RIGHT = exports.ANCHOR_RIGHT = 'right';
-
-var OPEN_DOWN = exports.OPEN_DOWN = 'down';
-var OPEN_UP = exports.OPEN_UP = 'up';
-
-var DAY_SIZE = exports.DAY_SIZE = 39;
-var BLOCKED_MODIFIER = exports.BLOCKED_MODIFIER = 'blocked';
-var WEEKDAYS = exports.WEEKDAYS = [0, 1, 2, 3, 4, 5, 6];
-
-var FANG_WIDTH_PX = exports.FANG_WIDTH_PX = 20;
-var FANG_HEIGHT_PX = exports.FANG_HEIGHT_PX = 10;
-var DEFAULT_VERTICAL_SPACING = exports.DEFAULT_VERTICAL_SPACING = 22;
-
-var MODIFIER_KEY_NAMES = exports.MODIFIER_KEY_NAMES = new Set(['Shift', 'Control', 'Alt', 'Meta']);
-
-/***/ }),
-
-/***/ "G3V0":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* unused harmony export Tabbable */
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return useTabbable; });
-/* harmony import */ var _rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("BZp5");
-/* harmony import */ var reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("hE48");
-/* harmony import */ var reakit_system_createHook__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("qdes");
-/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("cDcd");
-/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);
-/* harmony import */ var reakit_utils_useForkRef__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("aU41");
-/* harmony import */ var reakit_utils_isButton__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("71Og");
-/* harmony import */ var reakit_warning__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("KA1K");
-/* harmony import */ var reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("eNtd");
-/* harmony import */ var reakit_utils_useIsomorphicEffect__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("AXvK");
-/* harmony import */ var reakit_utils_hasFocusWithin__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("PcHe");
-/* harmony import */ var reakit_utils_isPortalEvent__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("Vq1w");
-/* harmony import */ var reakit_utils_dom__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__("reMF");
-/* harmony import */ var reakit_utils_tabbable__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__("kqkJ");
-/* harmony import */ var _Role_Role_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__("zGFp");
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-// Automatically generated
-var TABBABLE_KEYS = ["disabled", "focusable"];
-
-var isSafariOrFirefoxOnMac = Object(reakit_utils_dom__WEBPACK_IMPORTED_MODULE_11__[/* isUA */ "a"])("Mac") && !Object(reakit_utils_dom__WEBPACK_IMPORTED_MODULE_11__[/* isUA */ "a"])("Chrome") && (Object(reakit_utils_dom__WEBPACK_IMPORTED_MODULE_11__[/* isUA */ "a"])("Safari") || Object(reakit_utils_dom__WEBPACK_IMPORTED_MODULE_11__[/* isUA */ "a"])("Firefox"));
-
-function focusIfNeeded(element) {
-  if (!Object(reakit_utils_hasFocusWithin__WEBPACK_IMPORTED_MODULE_9__[/* hasFocusWithin */ "a"])(element) && Object(reakit_utils_tabbable__WEBPACK_IMPORTED_MODULE_12__[/* isFocusable */ "a"])(element)) {
-    element.focus();
-  }
-}
-
-function isNativeTabbable(element) {
-  return element.tagName === "BUTTON" || element.tagName === "INPUT" || element.tagName === "SELECT" || element.tagName === "TEXTAREA" || element.tagName === "A";
-}
-
-function supportsDisabledAttribute(element) {
-  return element.tagName === "BUTTON" || element.tagName === "INPUT" || element.tagName === "SELECT" || element.tagName === "TEXTAREA";
-}
-
-function getTabIndex(trulyDisabled, nativeTabbable, supportsDisabled, htmlTabIndex) {
-  if (trulyDisabled) {
-    if (nativeTabbable && !supportsDisabled) {
-      // Anchor, audio and video tags don't support the `disabled` attribute.
-      // We must pass tabIndex={-1} so they don't receive focus on tab.
-      return -1;
-    } // Elements that support the `disabled` attribute don't need tabIndex.
-
-
-    return undefined;
-  }
-
-  if (nativeTabbable) {
-    // If the element is enabled and it's natively tabbable, we don't need to
-    // specify a tabIndex attribute unless it's explicitly set by the user.
-    return htmlTabIndex;
-  } // If the element is enabled and is not natively tabbable, we have to
-  // fallback tabIndex={0}.
-
-
-  return htmlTabIndex || 0;
-}
-
-function useDisableEvent(htmlEventRef, disabled) {
-  return Object(react__WEBPACK_IMPORTED_MODULE_3__["useCallback"])(function (event) {
-    var _htmlEventRef$current;
-
-    (_htmlEventRef$current = htmlEventRef.current) === null || _htmlEventRef$current === void 0 ? void 0 : _htmlEventRef$current.call(htmlEventRef, event);
-    if (event.defaultPrevented) return;
-
-    if (disabled) {
-      event.stopPropagation();
-      event.preventDefault();
-    }
-  }, [htmlEventRef, disabled]);
-}
-
-var useTabbable = Object(reakit_system_createHook__WEBPACK_IMPORTED_MODULE_2__[/* createHook */ "a"])({
-  name: "Tabbable",
-  compose: _Role_Role_js__WEBPACK_IMPORTED_MODULE_13__[/* useRole */ "a"],
-  keys: TABBABLE_KEYS,
-  useOptions: function useOptions(options, _ref) {
-    var disabled = _ref.disabled;
-    return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({
-      disabled: disabled
-    }, options);
-  },
-  useProps: function useProps(options, _ref2) {
-    var htmlRef = _ref2.ref,
-        htmlTabIndex = _ref2.tabIndex,
-        htmlOnClickCapture = _ref2.onClickCapture,
-        htmlOnMouseDownCapture = _ref2.onMouseDownCapture,
-        htmlOnMouseDown = _ref2.onMouseDown,
-        htmlOnKeyPressCapture = _ref2.onKeyPressCapture,
-        htmlStyle = _ref2.style,
-        htmlProps = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* _ */ "a"])(_ref2, ["ref", "tabIndex", "onClickCapture", "onMouseDownCapture", "onMouseDown", "onKeyPressCapture", "style"]);
-
-    var ref = Object(react__WEBPACK_IMPORTED_MODULE_3__["useRef"])(null);
-    var onClickCaptureRef = Object(reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_7__[/* useLiveRef */ "a"])(htmlOnClickCapture);
-    var onMouseDownCaptureRef = Object(reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_7__[/* useLiveRef */ "a"])(htmlOnMouseDownCapture);
-    var onMouseDownRef = Object(reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_7__[/* useLiveRef */ "a"])(htmlOnMouseDown);
-    var onKeyPressCaptureRef = Object(reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_7__[/* useLiveRef */ "a"])(htmlOnKeyPressCapture);
-    var trulyDisabled = !!options.disabled && !options.focusable;
-
-    var _React$useState = Object(react__WEBPACK_IMPORTED_MODULE_3__["useState"])(true),
-        nativeTabbable = _React$useState[0],
-        setNativeTabbable = _React$useState[1];
-
-    var _React$useState2 = Object(react__WEBPACK_IMPORTED_MODULE_3__["useState"])(true),
-        supportsDisabled = _React$useState2[0],
-        setSupportsDisabled = _React$useState2[1];
-
-    var style = options.disabled ? Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({
-      pointerEvents: "none"
-    }, htmlStyle) : htmlStyle;
-    Object(reakit_utils_useIsomorphicEffect__WEBPACK_IMPORTED_MODULE_8__[/* useIsomorphicEffect */ "a"])(function () {
-      var tabbable = ref.current;
-
-      if (!tabbable) {
-         false ? undefined : void 0;
-        return;
-      }
-
-      if (!isNativeTabbable(tabbable)) {
-        setNativeTabbable(false);
-      }
-
-      if (!supportsDisabledAttribute(tabbable)) {
-        setSupportsDisabled(false);
-      }
-    }, []);
-    var onClickCapture = useDisableEvent(onClickCaptureRef, options.disabled);
-    var onMouseDownCapture = useDisableEvent(onMouseDownCaptureRef, options.disabled);
-    var onKeyPressCapture = useDisableEvent(onKeyPressCaptureRef, options.disabled);
-    var onMouseDown = Object(react__WEBPACK_IMPORTED_MODULE_3__["useCallback"])(function (event) {
-      var _onMouseDownRef$curre;
-
-      (_onMouseDownRef$curre = onMouseDownRef.current) === null || _onMouseDownRef$curre === void 0 ? void 0 : _onMouseDownRef$curre.call(onMouseDownRef, event);
-      var element = event.currentTarget;
-      if (event.defaultPrevented) return; // Safari and Firefox on MacOS don't focus on buttons on mouse down
-      // like other browsers/platforms. Instead, they focus on the closest
-      // focusable ancestor element, which is ultimately the body element. So
-      // we make sure to give focus to the tabbable element on mouse down so
-      // it works consistently across browsers.
-
-      if (!isSafariOrFirefoxOnMac) return;
-      if (Object(reakit_utils_isPortalEvent__WEBPACK_IMPORTED_MODULE_10__[/* isPortalEvent */ "a"])(event)) return;
-      if (!Object(reakit_utils_isButton__WEBPACK_IMPORTED_MODULE_5__[/* isButton */ "a"])(element)) return; // We can't focus right away after on mouse down, otherwise it would
-      // prevent drag events from happening. So we schedule the focus to the
-      // next animation frame.
-
-      var raf = requestAnimationFrame(function () {
-        element.removeEventListener("mouseup", focusImmediately, true);
-        focusIfNeeded(element);
-      }); // If mouseUp happens before the next animation frame (which is common
-      // on touch screens or by just tapping the trackpad on MacBook's), we
-      // cancel the animation frame and immediately focus on the element.
-
-      var focusImmediately = function focusImmediately() {
-        cancelAnimationFrame(raf);
-        focusIfNeeded(element);
-      }; // By listening to the event in the capture phase, we make sure the
-      // focus event is fired before the onMouseUp and onMouseUpCapture React
-      // events, which is aligned with the default browser behavior.
-
-
-      element.addEventListener("mouseup", focusImmediately, {
-        once: true,
-        capture: true
-      });
-    }, []);
-    return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({
-      ref: Object(reakit_utils_useForkRef__WEBPACK_IMPORTED_MODULE_4__[/* useForkRef */ "a"])(ref, htmlRef),
-      style: style,
-      tabIndex: getTabIndex(trulyDisabled, nativeTabbable, supportsDisabled, htmlTabIndex),
-      disabled: trulyDisabled && supportsDisabled ? true : undefined,
-      "aria-disabled": options.disabled ? true : undefined,
-      onClickCapture: onClickCapture,
-      onMouseDownCapture: onMouseDownCapture,
-      onMouseDown: onMouseDown,
-      onKeyPressCapture: onKeyPressCapture
-    }, htmlProps);
-  }
-});
-var Tabbable = Object(reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_1__[/* createComponent */ "a"])({
-  as: "div",
-  useHook: useTabbable
-});
-
-
-
-
-/***/ }),
-
-/***/ "GET3":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.PureCustomizableCalendarDay = exports.selectedStyles = exports.lastInRangeStyles = exports.selectedSpanStyles = exports.hoveredSpanStyles = exports.blockedOutOfRangeStyles = exports.blockedCalendarStyles = exports.blockedMinNightsStyles = exports.highlightedCalendarStyles = exports.outsideStyles = exports.defaultStyles = undefined;
-
-var _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; };
-
-var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
-
-var _object = __webpack_require__("Koq/");
-
-var _object2 = _interopRequireDefault(_object);
-
-var _react = __webpack_require__("cDcd");
-
-var _react2 = _interopRequireDefault(_react);
-
-var _propTypes = __webpack_require__("17x9");
-
-var _propTypes2 = _interopRequireDefault(_propTypes);
-
-var _reactAddonsShallowCompare = __webpack_require__("YZDV");
-
-var _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare);
-
-var _reactMomentProptypes = __webpack_require__("XGBb");
-
-var _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes);
-
-var _airbnbPropTypes = __webpack_require__("Hsqg");
-
-var _reactWithStyles = __webpack_require__("TG4+");
-
-var _moment = __webpack_require__("wy2R");
-
-var _moment2 = _interopRequireDefault(_moment);
-
-var _defaultPhrases = __webpack_require__("vV+G");
-
-var _getPhrasePropTypes = __webpack_require__("yc2e");
-
-var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);
-
-var _getCalendarDaySettings = __webpack_require__("Ae65");
-
-var _getCalendarDaySettings2 = _interopRequireDefault(_getCalendarDaySettings);
-
-var _constants = __webpack_require__("Fv1B");
-
-var _DefaultTheme = __webpack_require__("xOhs");
-
-var _DefaultTheme2 = _interopRequireDefault(_DefaultTheme);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
-
-function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
-
-function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-
-var color = _DefaultTheme2['default'].reactDates.color;
-
-
-function getStyles(stylesObj, isHovered) {
-  if (!stylesObj) return null;
-
-  var hover = stylesObj.hover;
-
-  if (isHovered && hover) {
-    return hover;
-  }
-
-  return stylesObj;
-}
-
-var DayStyleShape = _propTypes2['default'].shape({
-  background: _propTypes2['default'].string,
-  border: (0, _airbnbPropTypes.or)([_propTypes2['default'].string, _propTypes2['default'].number]),
-  color: _propTypes2['default'].string,
-
-  hover: _propTypes2['default'].shape({
-    background: _propTypes2['default'].string,
-    border: (0, _airbnbPropTypes.or)([_propTypes2['default'].string, _propTypes2['default'].number]),
-    color: _propTypes2['default'].string
-  })
-});
-
-var propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, {
-  day: _reactMomentProptypes2['default'].momentObj,
-  daySize: _airbnbPropTypes.nonNegativeInteger,
-  isOutsideDay: _propTypes2['default'].bool,
-  modifiers: _propTypes2['default'].instanceOf(Set),
-  isFocused: _propTypes2['default'].bool,
-  tabIndex: _propTypes2['default'].oneOf([0, -1]),
-  onDayClick: _propTypes2['default'].func,
-  onDayMouseEnter: _propTypes2['default'].func,
-  onDayMouseLeave: _propTypes2['default'].func,
-  renderDayContents: _propTypes2['default'].func,
-  ariaLabelFormat: _propTypes2['default'].string,
-
-  // style overrides
-  defaultStyles: DayStyleShape,
-  outsideStyles: DayStyleShape,
-  todayStyles: DayStyleShape,
-  firstDayOfWeekStyles: DayStyleShape,
-  lastDayOfWeekStyles: DayStyleShape,
-  highlightedCalendarStyles: DayStyleShape,
-  blockedMinNightsStyles: DayStyleShape,
-  blockedCalendarStyles: DayStyleShape,
-  blockedOutOfRangeStyles: DayStyleShape,
-  hoveredSpanStyles: DayStyleShape,
-  selectedSpanStyles: DayStyleShape,
-  lastInRangeStyles: DayStyleShape,
-  selectedStyles: DayStyleShape,
-  selectedStartStyles: DayStyleShape,
-  selectedEndStyles: DayStyleShape,
-  afterHoveredStartStyles: DayStyleShape,
-
-  // internationalization
-  phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.CalendarDayPhrases))
-}));
-
-var defaultStyles = exports.defaultStyles = {
-  border: '1px solid ' + String(color.core.borderLight),
-  color: color.text,
-  background: color.background,
-
-  hover: {
-    background: color.core.borderLight,
-    border: '1px double ' + String(color.core.borderLight),
-    color: 'inherit'
-  }
-};
-
-var outsideStyles = exports.outsideStyles = {
-  background: color.outside.backgroundColor,
-  border: 0,
-  color: color.outside.color
-};
-
-var highlightedCalendarStyles = exports.highlightedCalendarStyles = {
-  background: color.highlighted.backgroundColor,
-  color: color.highlighted.color,
-
-  hover: {
-    background: color.highlighted.backgroundColor_hover,
-    color: color.highlighted.color_active
-  }
-};
-
-var blockedMinNightsStyles = exports.blockedMinNightsStyles = {
-  background: color.minimumNights.backgroundColor,
-  border: '1px solid ' + String(color.minimumNights.borderColor),
-  color: color.minimumNights.color,
-
-  hover: {
-    background: color.minimumNights.backgroundColor_hover,
-    color: color.minimumNights.color_active
-  }
-};
-
-var blockedCalendarStyles = exports.blockedCalendarStyles = {
-  background: color.blocked_calendar.backgroundColor,
-  border: '1px solid ' + String(color.blocked_calendar.borderColor),
-  color: color.blocked_calendar.color,
-
-  hover: {
-    background: color.blocked_calendar.backgroundColor_hover,
-    border: '1px solid ' + String(color.blocked_calendar.borderColor),
-    color: color.blocked_calendar.color_active
-  }
-};
-
-var blockedOutOfRangeStyles = exports.blockedOutOfRangeStyles = {
-  background: color.blocked_out_of_range.backgroundColor,
-  border: '1px solid ' + String(color.blocked_out_of_range.borderColor),
-  color: color.blocked_out_of_range.color,
-
-  hover: {
-    background: color.blocked_out_of_range.backgroundColor_hover,
-    border: '1px solid ' + String(color.blocked_out_of_range.borderColor),
-    color: color.blocked_out_of_range.color_active
-  }
-};
-
-var hoveredSpanStyles = exports.hoveredSpanStyles = {
-  background: color.hoveredSpan.backgroundColor,
-  border: '1px solid ' + String(color.hoveredSpan.borderColor),
-  color: color.hoveredSpan.color,
-
-  hover: {
-    background: color.hoveredSpan.backgroundColor_hover,
-    border: '1px solid ' + String(color.hoveredSpan.borderColor),
-    color: color.hoveredSpan.color_active
-  }
-};
-
-var selectedSpanStyles = exports.selectedSpanStyles = {
-  background: color.selectedSpan.backgroundColor,
-  border: '1px solid ' + String(color.selectedSpan.borderColor),
-  color: color.selectedSpan.color,
-
-  hover: {
-    background: color.selectedSpan.backgroundColor_hover,
-    border: '1px solid ' + String(color.selectedSpan.borderColor),
-    color: color.selectedSpan.color_active
-  }
-};
-
-var lastInRangeStyles = exports.lastInRangeStyles = {
-  borderRight: color.core.primary
-};
-
-var selectedStyles = exports.selectedStyles = {
-  background: color.selected.backgroundColor,
-  border: '1px solid ' + String(color.selected.borderColor),
-  color: color.selected.color,
-
-  hover: {
-    background: color.selected.backgroundColor_hover,
-    border: '1px solid ' + String(color.selected.borderColor),
-    color: color.selected.color_active
-  }
-};
-
-var defaultProps = {
-  day: (0, _moment2['default'])(),
-  daySize: _constants.DAY_SIZE,
-  isOutsideDay: false,
-  modifiers: new Set(),
-  isFocused: false,
-  tabIndex: -1,
-  onDayClick: function () {
-    function onDayClick() {}
-
-    return onDayClick;
-  }(),
-  onDayMouseEnter: function () {
-    function onDayMouseEnter() {}
-
-    return onDayMouseEnter;
-  }(),
-  onDayMouseLeave: function () {
-    function onDayMouseLeave() {}
-
-    return onDayMouseLeave;
-  }(),
-
-  renderDayContents: null,
-  ariaLabelFormat: 'dddd, LL',
-
-  // style defaults
-  defaultStyles: defaultStyles,
-  outsideStyles: outsideStyles,
-  todayStyles: {},
-  highlightedCalendarStyles: highlightedCalendarStyles,
-  blockedMinNightsStyles: blockedMinNightsStyles,
-  blockedCalendarStyles: blockedCalendarStyles,
-  blockedOutOfRangeStyles: blockedOutOfRangeStyles,
-  hoveredSpanStyles: hoveredSpanStyles,
-  selectedSpanStyles: selectedSpanStyles,
-  lastInRangeStyles: lastInRangeStyles,
-  selectedStyles: selectedStyles,
-  selectedStartStyles: {},
-  selectedEndStyles: {},
-  afterHoveredStartStyles: {},
-  firstDayOfWeekStyles: {},
-  lastDayOfWeekStyles: {},
-
-  // internationalization
-  phrases: _defaultPhrases.CalendarDayPhrases
-};
-
-var CustomizableCalendarDay = function (_React$Component) {
-  _inherits(CustomizableCalendarDay, _React$Component);
-
-  function CustomizableCalendarDay() {
-    var _ref;
-
-    _classCallCheck(this, CustomizableCalendarDay);
-
-    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
-      args[_key] = arguments[_key];
-    }
-
-    var _this = _possibleConstructorReturn(this, (_ref = CustomizableCalendarDay.__proto__ || Object.getPrototypeOf(CustomizableCalendarDay)).call.apply(_ref, [this].concat(args)));
-
-    _this.state = {
-      isHovered: false
-    };
-
-    _this.setButtonRef = _this.setButtonRef.bind(_this);
-    return _this;
-  }
-
-  _createClass(CustomizableCalendarDay, [{
-    key: 'shouldComponentUpdate',
-    value: function () {
-      function shouldComponentUpdate(nextProps, nextState) {
-        return (0, _reactAddonsShallowCompare2['default'])(this, nextProps, nextState);
-      }
-
-      return shouldComponentUpdate;
-    }()
-  }, {
-    key: 'componentDidUpdate',
-    value: function () {
-      function componentDidUpdate(prevProps) {
-        var _props = this.props,
-            isFocused = _props.isFocused,
-            tabIndex = _props.tabIndex;
-
-        if (tabIndex === 0) {
-          if (isFocused || tabIndex !== prevProps.tabIndex) {
-            this.buttonRef.focus();
-          }
-        }
-      }
-
-      return componentDidUpdate;
-    }()
-  }, {
-    key: 'onDayClick',
-    value: function () {
-      function onDayClick(day, e) {
-        var onDayClick = this.props.onDayClick;
-
-        onDayClick(day, e);
-      }
-
-      return onDayClick;
-    }()
-  }, {
-    key: 'onDayMouseEnter',
-    value: function () {
-      function onDayMouseEnter(day, e) {
-        var onDayMouseEnter = this.props.onDayMouseEnter;
-
-        this.setState({ isHovered: true });
-        onDayMouseEnter(day, e);
-      }
-
-      return onDayMouseEnter;
-    }()
-  }, {
-    key: 'onDayMouseLeave',
-    value: function () {
-      function onDayMouseLeave(day, e) {
-        var onDayMouseLeave = this.props.onDayMouseLeave;
-
-        this.setState({ isHovered: false });
-        onDayMouseLeave(day, e);
-      }
-
-      return onDayMouseLeave;
-    }()
-  }, {
-    key: 'onKeyDown',
-    value: function () {
-      function onKeyDown(day, e) {
-        var onDayClick = this.props.onDayClick;
-        var key = e.key;
-
-        if (key === 'Enter' || key === ' ') {
-          onDayClick(day, e);
-        }
-      }
-
-      return onKeyDown;
-    }()
-  }, {
-    key: 'setButtonRef',
-    value: function () {
-      function setButtonRef(ref) {
-        this.buttonRef = ref;
-      }
-
-      return setButtonRef;
-    }()
-  }, {
-    key: 'render',
-    value: function () {
-      function render() {
-        var _this2 = this;
-
-        var _props2 = this.props,
-            day = _props2.day,
-            ariaLabelFormat = _props2.ariaLabelFormat,
-            daySize = _props2.daySize,
-            isOutsideDay = _props2.isOutsideDay,
-            modifiers = _props2.modifiers,
-            tabIndex = _props2.tabIndex,
-            renderDayContents = _props2.renderDayContents,
-            styles = _props2.styles,
-            phrases = _props2.phrases,
-            defaultStylesWithHover = _props2.defaultStyles,
-            outsideStylesWithHover = _props2.outsideStyles,
-            todayStylesWithHover = _props2.todayStyles,
-            firstDayOfWeekStylesWithHover = _props2.firstDayOfWeekStyles,
-            lastDayOfWeekStylesWithHover = _props2.lastDayOfWeekStyles,
-            highlightedCalendarStylesWithHover = _props2.highlightedCalendarStyles,
-            blockedMinNightsStylesWithHover = _props2.blockedMinNightsStyles,
-            blockedCalendarStylesWithHover = _props2.blockedCalendarStyles,
-            blockedOutOfRangeStylesWithHover = _props2.blockedOutOfRangeStyles,
-            hoveredSpanStylesWithHover = _props2.hoveredSpanStyles,
-            selectedSpanStylesWithHover = _props2.selectedSpanStyles,
-            lastInRangeStylesWithHover = _props2.lastInRangeStyles,
-            selectedStylesWithHover = _props2.selectedStyles,
-            selectedStartStylesWithHover = _props2.selectedStartStyles,
-            selectedEndStylesWithHover = _props2.selectedEndStyles,
-            afterHoveredStartStylesWithHover = _props2.afterHoveredStartStyles;
-        var isHovered = this.state.isHovered;
-
-
-        if (!day) return _react2['default'].createElement('td', null);
-
-        var _getCalendarDaySettin = (0, _getCalendarDaySettings2['default'])(day, ariaLabelFormat, daySize, modifiers, phrases),
-            daySizeStyles = _getCalendarDaySettin.daySizeStyles,
-            useDefaultCursor = _getCalendarDaySettin.useDefaultCursor,
-            selected = _getCalendarDaySettin.selected,
-            hoveredSpan = _getCalendarDaySettin.hoveredSpan,
-            isOutsideRange = _getCalendarDaySettin.isOutsideRange,
-            ariaLabel = _getCalendarDaySettin.ariaLabel;
-
-        return _react2['default'].createElement(
-          'td',
-          _extends({}, (0, _reactWithStyles.css)(styles.CalendarDay, useDefaultCursor && styles.CalendarDay__defaultCursor, daySizeStyles, getStyles(defaultStylesWithHover, isHovered), isOutsideDay && getStyles(outsideStylesWithHover, isHovered), modifiers.has('today') && getStyles(todayStylesWithHover, isHovered), modifiers.has('first-day-of-week') && getStyles(firstDayOfWeekStylesWithHover, isHovered), modifiers.has('last-day-of-week') && getStyles(lastDayOfWeekStylesWithHover, isHovered), modifiers.has('highlighted-calendar') && getStyles(highlightedCalendarStylesWithHover, isHovered), modifiers.has('blocked-minimum-nights') && getStyles(blockedMinNightsStylesWithHover, isHovered), modifiers.has('blocked-calendar') && getStyles(blockedCalendarStylesWithHover, isHovered), hoveredSpan && getStyles(hoveredSpanStylesWithHover, isHovered), modifiers.has('after-hovered-start') && getStyles(afterHoveredStartStylesWithHover, isHovered), modifiers.has('selected-span') && getStyles(selectedSpanStylesWithHover, isHovered), modifiers.has('last-in-range') && getStyles(lastInRangeStylesWithHover, isHovered), selected && getStyles(selectedStylesWithHover, isHovered), modifiers.has('selected-start') && getStyles(selectedStartStylesWithHover, isHovered), modifiers.has('selected-end') && getStyles(selectedEndStylesWithHover, isHovered), isOutsideRange && getStyles(blockedOutOfRangeStylesWithHover, isHovered)), {
-            role: 'button' // eslint-disable-line jsx-a11y/no-noninteractive-element-to-interactive-role
-            , ref: this.setButtonRef,
-            'aria-label': ariaLabel,
-            onMouseEnter: function () {
-              function onMouseEnter(e) {
-                _this2.onDayMouseEnter(day, e);
-              }
-
-              return onMouseEnter;
-            }(),
-            onMouseLeave: function () {
-              function onMouseLeave(e) {
-                _this2.onDayMouseLeave(day, e);
-              }
-
-              return onMouseLeave;
-            }(),
-            onMouseUp: function () {
-              function onMouseUp(e) {
-                e.currentTarget.blur();
-              }
-
-              return onMouseUp;
-            }(),
-            onClick: function () {
-              function onClick(e) {
-                _this2.onDayClick(day, e);
-              }
-
-              return onClick;
-            }(),
-            onKeyDown: function () {
-              function onKeyDown(e) {
-                _this2.onKeyDown(day, e);
-              }
-
-              return onKeyDown;
-            }(),
-            tabIndex: tabIndex
-          }),
-          renderDayContents ? renderDayContents(day, modifiers) : day.format('D')
-        );
-      }
-
-      return render;
-    }()
-  }]);
-
-  return CustomizableCalendarDay;
-}(_react2['default'].Component);
-
-CustomizableCalendarDay.propTypes = propTypes;
-CustomizableCalendarDay.defaultProps = defaultProps;
-
-exports.PureCustomizableCalendarDay = CustomizableCalendarDay;
-exports['default'] = (0, _reactWithStyles.withStyles)(function (_ref2) {
-  var font = _ref2.reactDates.font;
-  return {
-    CalendarDay: {
-      boxSizing: 'border-box',
-      cursor: 'pointer',
-      fontSize: font.size,
-      textAlign: 'center',
-
-      ':active': {
-        outline: 0
-      }
-    },
-
-    CalendarDay__defaultCursor: {
-      cursor: 'default'
-    }
-  };
-})(CustomizableCalendarDay);
-
-/***/ }),
-
-/***/ "GG7f":
-/***/ (function(module, exports, __webpack_require__) {
-
-// eslint-disable-next-line import/no-unresolved
-__webpack_require__("H24B");
-
-
-/***/ }),
-
-/***/ "GK4x":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
-/**
- * WordPress dependencies
- */
-
-const ToolbarContext = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createContext"])();
-/* harmony default export */ __webpack_exports__["a"] = (ToolbarContext);
-
-
-/***/ }),
-
-/***/ "GRId":
-/***/ (function(module, exports) {
-
-(function() { module.exports = window["wp"]["element"]; }());
-
-/***/ }),
-
-/***/ "Gn0q":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var define = __webpack_require__("82c2");
-var getPolyfill = __webpack_require__("5yQQ");
-
-module.exports = function shimContains() {
-	var polyfill = getPolyfill();
-	if (typeof document !== 'undefined') {
-		define(
-			document,
-			{ contains: polyfill },
-			{ contains: function () { return document.contains !== polyfill; } }
-		);
-		if (typeof Element !== 'undefined') {
-			define(
-				Element.prototype,
-				{ contains: polyfill },
-				{ contains: function () { return Element.prototype.contains !== polyfill; } }
-			);
-		}
-	}
-	return polyfill;
-};
-
-
-/***/ }),
-
-/***/ "GoyQ":
-/***/ (function(module, exports) {
-
-/**
- * Checks if `value` is the
- * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
- * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
- *
- * @static
- * @memberOf _
- * @since 0.1.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an object, else `false`.
- * @example
- *
- * _.isObject({});
- * // => true
- *
- * _.isObject([1, 2, 3]);
- * // => true
- *
- * _.isObject(_.noop);
- * // => true
- *
- * _.isObject(null);
- * // => false
- */
-function isObject(value) {
-  var type = typeof value;
-  return value != null && (type == 'object' || type == 'function');
-}
-
-module.exports = isObject;
-
-
-/***/ }),
-
-/***/ "H24B":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var _registerCSSInterfaceWithDefaultTheme = __webpack_require__("TUyu");
-
-var _registerCSSInterfaceWithDefaultTheme2 = _interopRequireDefault(_registerCSSInterfaceWithDefaultTheme);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-(0, _registerCSSInterfaceWithDefaultTheme2['default'])();
-
-/***/ }),
-
-/***/ "HI8u":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var $isNaN = __webpack_require__("HwJD");
-
-// http://262.ecma-international.org/5.1/#sec-9.12
-
-module.exports = function SameValue(x, y) {
-	if (x === y) { // 0 === -0, but they are not identical.
-		if (x === 0) { return 1 / x === 1 / y; }
-		return true;
-	}
-	return $isNaN(x) && $isNaN(y);
-};
-
-
-/***/ }),
-
-/***/ "Hsqg":
-/***/ (function(module, exports, __webpack_require__) {
-
-module.exports =  true ? __webpack_require__("DciD") : undefined;
-
-
-
-/***/ }),
-
-/***/ "HwJD":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-module.exports = Number.isNaN || function isNaN(a) {
-	return a !== a;
-};
-
-
-/***/ }),
-
-/***/ "Hx/O":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var GetIntrinsic = __webpack_require__("rZ7t");
-
-var $String = GetIntrinsic('%String%');
-var $TypeError = GetIntrinsic('%TypeError%');
-
-// https://ecma-international.org/ecma-262/6.0/#sec-tostring
-
-module.exports = function ToString(argument) {
-	if (typeof argument === 'symbol') {
-		throw new $TypeError('Cannot convert a Symbol value to a string');
-	}
-	return $String(argument);
-};
-
-
-/***/ }),
-
-/***/ "HyUg":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var origSymbol = typeof Symbol !== 'undefined' && Symbol;
-var hasSymbolSham = __webpack_require__("eJkf");
-
-module.exports = function hasNativeSymbols() {
-	if (typeof origSymbol !== 'function') { return false; }
-	if (typeof Symbol !== 'function') { return false; }
-	if (typeof origSymbol('foo') !== 'symbol') { return false; }
-	if (typeof Symbol('bar') !== 'symbol') { return false; }
-
-	return hasSymbolSham();
-};
-
-
-/***/ }),
-
-/***/ "I/A+":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _objectWithoutPropertiesLoose; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return _objectSpread2; });
-/* unused harmony export b */
-function _defineProperty(obj, key, value) {
-  if (key in obj) {
-    Object.defineProperty(obj, key, {
-      value: value,
-      enumerable: true,
-      configurable: true,
-      writable: true
-    });
-  } else {
-    obj[key] = value;
-  }
-
-  return obj;
-}
-
-function ownKeys(object, enumerableOnly) {
-  var keys = Object.keys(object);
-
-  if (Object.getOwnPropertySymbols) {
-    var symbols = Object.getOwnPropertySymbols(object);
-    if (enumerableOnly) symbols = symbols.filter(function (sym) {
-      return Object.getOwnPropertyDescriptor(object, sym).enumerable;
-    });
-    keys.push.apply(keys, symbols);
-  }
-
-  return keys;
-}
-
-function _objectSpread2(target) {
-  for (var i = 1; i < arguments.length; i++) {
-    var source = arguments[i] != null ? arguments[i] : {};
-
-    if (i % 2) {
-      ownKeys(Object(source), true).forEach(function (key) {
-        _defineProperty(target, key, source[key]);
-      });
-    } else if (Object.getOwnPropertyDescriptors) {
-      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
-    } else {
-      ownKeys(Object(source)).forEach(function (key) {
-        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(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 _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 _createForOfIteratorHelperLoose(o, allowArrayLike) {
-  var it;
-
-  if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) {
-    if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
-      if (it) o = it;
-      var i = 0;
-      return function () {
-        if (i >= o.length) return {
-          done: true
-        };
-        return {
-          done: false,
-          value: o[i++]
-        };
-      };
-    }
-
-    throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
-  }
-
-  it = o[Symbol.iterator]();
-  return it.next.bind(it);
-}
-
-
-
-
-/***/ }),
-
-/***/ "IVEb":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return useCreateElement; });
-/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("cDcd");
-/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _SystemContext_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("eUCI");
-/* harmony import */ var _rollupPluginBabelHelpers_0c84a174_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("RDTF");
-
-
-
-
-function isRenderProp(children) {
-  return typeof children === "function";
-}
-
-/**
- * Custom hook that will call `children` if it's a function. If
- * `useCreateElement` has been passed to the context, it'll be used instead.
- *
- * @example
- * import React from "react";
- * import { SystemProvider, useCreateElement } from "reakit-system";
- *
- * const system = {
- *   useCreateElement(type, props, children = props.children) {
- *     // very similar to what `useCreateElement` does already
- *     if (typeof children === "function") {
- *       const { children: _, ...rest } = props;
- *       return children(rest);
- *     }
- *     return React.createElement(type, props, children);
- *   },
- * };
- *
- * function Component(props) {
- *   return useCreateElement("div", props);
- * }
- *
- * function App() {
- *   return (
- *     <SystemProvider unstable_system={system}>
- *       <Component url="url">{({ url }) => <a href={url}>link</a>}</Component>
- *     </SystemProvider>
- *   );
- * }
- */
-
-var useCreateElement = function useCreateElement(type, props, children) {
-  if (children === void 0) {
-    children = props.children;
-  }
-
-  var context = Object(react__WEBPACK_IMPORTED_MODULE_0__["useContext"])(_SystemContext_js__WEBPACK_IMPORTED_MODULE_1__[/* SystemContext */ "a"]);
-
-  if (context.useCreateElement) {
-    return context.useCreateElement(type, props, children);
-  }
-
-  if (typeof type === "string" && isRenderProp(children)) {
-    var _ = props.children,
-        rest = Object(_rollupPluginBabelHelpers_0c84a174_js__WEBPACK_IMPORTED_MODULE_2__[/* a */ "b"])(props, ["children"]);
-
-    return children(rest);
-  }
-
-  return /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_0__["createElement"])(type, props, children);
-};
-
-
-
-
-/***/ }),
-
-/***/ "IdCN":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var fnToStr = Function.prototype.toString;
-var reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;
-var badArrayLike;
-var isCallableMarker;
-if (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {
-	try {
-		badArrayLike = Object.defineProperty({}, 'length', {
-			get: function () {
-				throw isCallableMarker;
-			}
-		});
-		isCallableMarker = {};
-		// eslint-disable-next-line no-throw-literal
-		reflectApply(function () { throw 42; }, null, badArrayLike);
-	} catch (_) {
-		if (_ !== isCallableMarker) {
-			reflectApply = null;
-		}
-	}
-} else {
-	reflectApply = null;
-}
-
-var constructorRegex = /^\s*class\b/;
-var isES6ClassFn = function isES6ClassFunction(value) {
-	try {
-		var fnStr = fnToStr.call(value);
-		return constructorRegex.test(fnStr);
-	} catch (e) {
-		return false; // not a function
-	}
-};
-
-var tryFunctionObject = function tryFunctionToStr(value) {
-	try {
-		if (isES6ClassFn(value)) { return false; }
-		fnToStr.call(value);
-		return true;
-	} catch (e) {
-		return false;
-	}
-};
-var toStr = Object.prototype.toString;
-var fnClass = '[object Function]';
-var genClass = '[object GeneratorFunction]';
-var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';
-
-module.exports = reflectApply
-	? function isCallable(value) {
-		if (!value) { return false; }
-		if (typeof value !== 'function' && typeof value !== 'object') { return false; }
-		if (typeof value === 'function' && !value.prototype) { return true; }
-		try {
-			reflectApply(value, null, badArrayLike);
-		} catch (e) {
-			if (e !== isCallableMarker) { return false; }
-		}
-		return !isES6ClassFn(value);
-	}
-	: function isCallable(value) {
-		if (!value) { return false; }
-		if (typeof value !== 'function' && typeof value !== 'object') { return false; }
-		if (typeof value === 'function' && !value.prototype) { return true; }
-		if (hasToStringTag) { return tryFunctionObject(value); }
-		if (isES6ClassFn(value)) { return false; }
-		var strClass = toStr.call(value);
-		return strClass === fnClass || strClass === genClass;
-	};
-
-
-/***/ }),
-
-/***/ "IgE5":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports['default'] = isDayVisible;
-
-var _isBeforeDay = __webpack_require__("h6xH");
-
-var _isBeforeDay2 = _interopRequireDefault(_isBeforeDay);
-
-var _isAfterDay = __webpack_require__("Nho6");
-
-var _isAfterDay2 = _interopRequireDefault(_isAfterDay);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-function isDayVisible(day, month, numberOfMonths, enableOutsideDays) {
-  var firstDayOfFirstMonth = month.clone().startOf('month');
-  if (enableOutsideDays) firstDayOfFirstMonth = firstDayOfFirstMonth.startOf('week');
-  if ((0, _isBeforeDay2['default'])(day, firstDayOfFirstMonth)) return false;
-
-  var lastDayOfLastMonth = month.clone().add(numberOfMonths - 1, 'months').endOf('month');
-  if (enableOutsideDays) lastDayOfLastMonth = lastDayOfLastMonth.endOf('week');
-  return !(0, _isAfterDay2['default'])(day, lastDayOfLastMonth);
-}
-
-/***/ }),
-
-/***/ "In1I":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var GetIntrinsic = __webpack_require__("rZ7t");
-
-var $abs = GetIntrinsic('%Math.abs%');
-
-// http://262.ecma-international.org/5.1/#sec-5.2
-
-module.exports = function abs(x) {
-	return $abs(x);
-};
-
-
-/***/ }),
-
-/***/ "J7JS":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _propTypes = __webpack_require__("17x9");
-
-var _propTypes2 = _interopRequireDefault(_propTypes);
-
-var _airbnbPropTypes = __webpack_require__("Hsqg");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
-
-function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
-
-exports['default'] = (0, _airbnbPropTypes.and)([_propTypes2['default'].instanceOf(Set), function () {
-  function modifiers(props, propName) {
-    for (var _len = arguments.length, rest = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
-      rest[_key - 2] = arguments[_key];
-    }
-
-    var propValue = props[propName];
-
-    var firstError = void 0;
-    [].concat(_toConsumableArray(propValue)).some(function (v, i) {
-      var _PropTypes$string;
-
-      var fakePropName = String(propName) + ': index ' + String(i);
-      firstError = (_PropTypes$string = _propTypes2['default'].string).isRequired.apply(_PropTypes$string, [_defineProperty({}, fakePropName, v), fakePropName].concat(rest));
-      return firstError != null;
-    });
-    return firstError == null ? null : firstError;
-  }
-
-  return modifiers;
-}()], 'Modifiers (Set of Strings)');
-
-/***/ }),
-
-/***/ "JLmN":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* unused harmony export Clickable */
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return useClickable; });
-/* harmony import */ var _rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("BZp5");
-/* harmony import */ var reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("hE48");
-/* harmony import */ var reakit_system_createHook__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("qdes");
-/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("cDcd");
-/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);
-/* harmony import */ var reakit_utils_isButton__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("71Og");
-/* harmony import */ var reakit_warning__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("KA1K");
-/* harmony import */ var reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("eNtd");
-/* harmony import */ var reakit_utils_isSelfTarget__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("k2cL");
-/* harmony import */ var _Tabbable_Tabbable_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("G3V0");
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-// Automatically generated
-var CLICKABLE_KEYS = ["unstable_clickOnEnter", "unstable_clickOnSpace"];
-
-function isNativeClick(event) {
-  var element = event.currentTarget;
-  if (!event.isTrusted) return false; // istanbul ignore next: can't test trusted events yet
-
-  return Object(reakit_utils_isButton__WEBPACK_IMPORTED_MODULE_4__[/* isButton */ "a"])(element) || element.tagName === "INPUT" || element.tagName === "TEXTAREA" || element.tagName === "A" || element.tagName === "SELECT";
-}
-
-var useClickable = Object(reakit_system_createHook__WEBPACK_IMPORTED_MODULE_2__[/* createHook */ "a"])({
-  name: "Clickable",
-  compose: _Tabbable_Tabbable_js__WEBPACK_IMPORTED_MODULE_8__[/* useTabbable */ "a"],
-  keys: CLICKABLE_KEYS,
-  useOptions: function useOptions(_ref) {
-    var _ref$unstable_clickOn = _ref.unstable_clickOnEnter,
-        unstable_clickOnEnter = _ref$unstable_clickOn === void 0 ? true : _ref$unstable_clickOn,
-        _ref$unstable_clickOn2 = _ref.unstable_clickOnSpace,
-        unstable_clickOnSpace = _ref$unstable_clickOn2 === void 0 ? true : _ref$unstable_clickOn2,
-        options = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* _ */ "a"])(_ref, ["unstable_clickOnEnter", "unstable_clickOnSpace"]);
-
-    return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({
-      unstable_clickOnEnter: unstable_clickOnEnter,
-      unstable_clickOnSpace: unstable_clickOnSpace
-    }, options);
-  },
-  useProps: function useProps(options, _ref2) {
-    var htmlOnKeyDown = _ref2.onKeyDown,
-        htmlOnKeyUp = _ref2.onKeyUp,
-        htmlProps = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* _ */ "a"])(_ref2, ["onKeyDown", "onKeyUp"]);
-
-    var _React$useState = Object(react__WEBPACK_IMPORTED_MODULE_3__["useState"])(false),
-        active = _React$useState[0],
-        setActive = _React$useState[1];
-
-    var onKeyDownRef = Object(reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_6__[/* useLiveRef */ "a"])(htmlOnKeyDown);
-    var onKeyUpRef = Object(reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_6__[/* useLiveRef */ "a"])(htmlOnKeyUp);
-    var onKeyDown = Object(react__WEBPACK_IMPORTED_MODULE_3__["useCallback"])(function (event) {
-      var _onKeyDownRef$current;
-
-      (_onKeyDownRef$current = onKeyDownRef.current) === null || _onKeyDownRef$current === void 0 ? void 0 : _onKeyDownRef$current.call(onKeyDownRef, event);
-      if (event.defaultPrevented) return;
-      if (options.disabled) return;
-      if (event.metaKey) return;
-      if (!Object(reakit_utils_isSelfTarget__WEBPACK_IMPORTED_MODULE_7__[/* isSelfTarget */ "a"])(event)) return;
-      var isEnter = options.unstable_clickOnEnter && event.key === "Enter";
-      var isSpace = options.unstable_clickOnSpace && event.key === " ";
-
-      if (isEnter || isSpace) {
-        if (isNativeClick(event)) return;
-        event.preventDefault();
-
-        if (isEnter) {
-          event.currentTarget.click();
-        } else if (isSpace) {
-          setActive(true);
-        }
-      }
-    }, [options.disabled, options.unstable_clickOnEnter, options.unstable_clickOnSpace]);
-    var onKeyUp = Object(react__WEBPACK_IMPORTED_MODULE_3__["useCallback"])(function (event) {
-      var _onKeyUpRef$current;
-
-      (_onKeyUpRef$current = onKeyUpRef.current) === null || _onKeyUpRef$current === void 0 ? void 0 : _onKeyUpRef$current.call(onKeyUpRef, event);
-      if (event.defaultPrevented) return;
-      if (options.disabled) return;
-      if (event.metaKey) return;
-      var isSpace = options.unstable_clickOnSpace && event.key === " ";
-
-      if (active && isSpace) {
-        setActive(false);
-        event.currentTarget.click();
-      }
-    }, [options.disabled, options.unstable_clickOnSpace, active]);
-    return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({
-      "data-active": active || undefined,
-      onKeyDown: onKeyDown,
-      onKeyUp: onKeyUp
-    }, htmlProps);
-  }
-});
-var Clickable = Object(reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_1__[/* createComponent */ "a"])({
-  as: "button",
-  memo: true,
-  useHook: useClickable
-});
-
-
-
-
-/***/ }),
-
-/***/ "JYkG":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* WEBPACK VAR INJECTION */(function(process) {/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _wordpress_warning__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Z23Y");
-/* harmony import */ var _wordpress_warning__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_warning__WEBPACK_IMPORTED_MODULE_1__);
-/**
- * WordPress dependencies
- */
-
-
-const SlotFillContext = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createContext"])({
-  slots: {},
-  fills: {},
-  registerSlot: () => {
-    typeof process !== "undefined" && process.env && "production" !== "production" ? _wordpress_warning__WEBPACK_IMPORTED_MODULE_1___default()('Components must be wrapped within `SlotFillProvider`. ' + 'See https://developer.wordpress.org/block-editor/components/slot-fill/') : void 0;
-  },
-  updateSlot: () => {},
-  unregisterSlot: () => {},
-  registerFill: () => {},
-  unregisterFill: () => {}
-});
-/* harmony default export */ __webpack_exports__["a"] = (SlotFillContext);
-
-/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("8oxB")))
-
-/***/ }),
-
-/***/ "Jt44":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-// TODO: remove, semver-major
-
-module.exports = __webpack_require__("rZ7t");
-
-
-/***/ }),
-
-/***/ "Jx1U":
-/***/ (function(module, exports) {
-
-// Copyright (c) 2014 Rafael Caricio. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-var GradientParser = {};
-
-GradientParser.parse = (function() {
-
-  var tokens = {
-    linearGradient: /^(\-(webkit|o|ms|moz)\-)?(linear\-gradient)/i,
-    repeatingLinearGradient: /^(\-(webkit|o|ms|moz)\-)?(repeating\-linear\-gradient)/i,
-    radialGradient: /^(\-(webkit|o|ms|moz)\-)?(radial\-gradient)/i,
-    repeatingRadialGradient: /^(\-(webkit|o|ms|moz)\-)?(repeating\-radial\-gradient)/i,
-    sideOrCorner: /^to (left (top|bottom)|right (top|bottom)|left|right|top|bottom)/i,
-    extentKeywords: /^(closest\-side|closest\-corner|farthest\-side|farthest\-corner|contain|cover)/,
-    positionKeywords: /^(left|center|right|top|bottom)/i,
-    pixelValue: /^(-?(([0-9]*\.[0-9]+)|([0-9]+\.?)))px/,
-    percentageValue: /^(-?(([0-9]*\.[0-9]+)|([0-9]+\.?)))\%/,
-    emValue: /^(-?(([0-9]*\.[0-9]+)|([0-9]+\.?)))em/,
-    angleValue: /^(-?(([0-9]*\.[0-9]+)|([0-9]+\.?)))deg/,
-    startCall: /^\(/,
-    endCall: /^\)/,
-    comma: /^,/,
-    hexColor: /^\#([0-9a-fA-F]+)/,
-    literalColor: /^([a-zA-Z]+)/,
-    rgbColor: /^rgb/i,
-    rgbaColor: /^rgba/i,
-    number: /^(([0-9]*\.[0-9]+)|([0-9]+\.?))/
-  };
-
-  var input = '';
-
-  function error(msg) {
-    var err = new Error(input + ': ' + msg);
-    err.source = input;
-    throw err;
-  }
-
-  function getAST() {
-    var ast = matchListDefinitions();
-
-    if (input.length > 0) {
-      error('Invalid input not EOF');
-    }
-
-    return ast;
-  }
-
-  function matchListDefinitions() {
-    return matchListing(matchDefinition);
-  }
-
-  function matchDefinition() {
-    return matchGradient(
-            'linear-gradient',
-            tokens.linearGradient,
-            matchLinearOrientation) ||
-
-          matchGradient(
-            'repeating-linear-gradient',
-            tokens.repeatingLinearGradient,
-            matchLinearOrientation) ||
-
-          matchGradient(
-            'radial-gradient',
-            tokens.radialGradient,
-            matchListRadialOrientations) ||
-
-          matchGradient(
-            'repeating-radial-gradient',
-            tokens.repeatingRadialGradient,
-            matchListRadialOrientations);
-  }
-
-  function matchGradient(gradientType, pattern, orientationMatcher) {
-    return matchCall(pattern, function(captures) {
-
-      var orientation = orientationMatcher();
-      if (orientation) {
-        if (!scan(tokens.comma)) {
-          error('Missing comma before color stops');
-        }
-      }
-
-      return {
-        type: gradientType,
-        orientation: orientation,
-        colorStops: matchListing(matchColorStop)
-      };
-    });
-  }
-
-  function matchCall(pattern, callback) {
-    var captures = scan(pattern);
-
-    if (captures) {
-      if (!scan(tokens.startCall)) {
-        error('Missing (');
-      }
-
-      result = callback(captures);
-
-      if (!scan(tokens.endCall)) {
-        error('Missing )');
-      }
-
-      return result;
-    }
-  }
-
-  function matchLinearOrientation() {
-    return matchSideOrCorner() ||
-      matchAngle();
-  }
-
-  function matchSideOrCorner() {
-    return match('directional', tokens.sideOrCorner, 1);
-  }
-
-  function matchAngle() {
-    return match('angular', tokens.angleValue, 1);
-  }
-
-  function matchListRadialOrientations() {
-    var radialOrientations,
-        radialOrientation = matchRadialOrientation(),
-        lookaheadCache;
-
-    if (radialOrientation) {
-      radialOrientations = [];
-      radialOrientations.push(radialOrientation);
-
-      lookaheadCache = input;
-      if (scan(tokens.comma)) {
-        radialOrientation = matchRadialOrientation();
-        if (radialOrientation) {
-          radialOrientations.push(radialOrientation);
-        } else {
-          input = lookaheadCache;
-        }
-      }
-    }
-
-    return radialOrientations;
-  }
-
-  function matchRadialOrientation() {
-    var radialType = matchCircle() ||
-      matchEllipse();
-
-    if (radialType) {
-      radialType.at = matchAtPosition();
-    } else {
-      var defaultPosition = matchPositioning();
-      if (defaultPosition) {
-        radialType = {
-          type: 'default-radial',
-          at: defaultPosition
-        };
-      }
-    }
-
-    return radialType;
-  }
-
-  function matchCircle() {
-    var circle = match('shape', /^(circle)/i, 0);
-
-    if (circle) {
-      circle.style = matchLength() || matchExtentKeyword();
-    }
-
-    return circle;
-  }
-
-  function matchEllipse() {
-    var ellipse = match('shape', /^(ellipse)/i, 0);
-
-    if (ellipse) {
-      ellipse.style =  matchDistance() || matchExtentKeyword();
-    }
-
-    return ellipse;
-  }
-
-  function matchExtentKeyword() {
-    return match('extent-keyword', tokens.extentKeywords, 1);
-  }
-
-  function matchAtPosition() {
-    if (match('position', /^at/, 0)) {
-      var positioning = matchPositioning();
-
-      if (!positioning) {
-        error('Missing positioning value');
-      }
-
-      return positioning;
-    }
-  }
-
-  function matchPositioning() {
-    var location = matchCoordinates();
-
-    if (location.x || location.y) {
-      return {
-        type: 'position',
-        value: location
-      };
-    }
-  }
-
-  function matchCoordinates() {
-    return {
-      x: matchDistance(),
-      y: matchDistance()
-    };
-  }
-
-  function matchListing(matcher) {
-    var captures = matcher(),
-      result = [];
-
-    if (captures) {
-      result.push(captures);
-      while (scan(tokens.comma)) {
-        captures = matcher();
-        if (captures) {
-          result.push(captures);
-        } else {
-          error('One extra comma');
-        }
-      }
-    }
-
-    return result;
-  }
-
-  function matchColorStop() {
-    var color = matchColor();
-
-    if (!color) {
-      error('Expected color definition');
-    }
-
-    color.length = matchDistance();
-    return color;
-  }
-
-  function matchColor() {
-    return matchHexColor() ||
-      matchRGBAColor() ||
-      matchRGBColor() ||
-      matchLiteralColor();
-  }
-
-  function matchLiteralColor() {
-    return match('literal', tokens.literalColor, 0);
-  }
-
-  function matchHexColor() {
-    return match('hex', tokens.hexColor, 1);
-  }
-
-  function matchRGBColor() {
-    return matchCall(tokens.rgbColor, function() {
-      return  {
-        type: 'rgb',
-        value: matchListing(matchNumber)
-      };
-    });
-  }
-
-  function matchRGBAColor() {
-    return matchCall(tokens.rgbaColor, function() {
-      return  {
-        type: 'rgba',
-        value: matchListing(matchNumber)
-      };
-    });
-  }
-
-  function matchNumber() {
-    return scan(tokens.number)[1];
-  }
-
-  function matchDistance() {
-    return match('%', tokens.percentageValue, 1) ||
-      matchPositionKeyword() ||
-      matchLength();
-  }
-
-  function matchPositionKeyword() {
-    return match('position-keyword', tokens.positionKeywords, 1);
-  }
-
-  function matchLength() {
-    return match('px', tokens.pixelValue, 1) ||
-      match('em', tokens.emValue, 1);
-  }
-
-  function match(type, pattern, captureIndex) {
-    var captures = scan(pattern);
-    if (captures) {
-      return {
-        type: type,
-        value: captures[captureIndex]
-      };
-    }
-  }
-
-  function scan(regexp) {
-    var captures,
-        blankCaptures;
-
-    blankCaptures = /^[\n\r\t\s]+/.exec(input);
-    if (blankCaptures) {
-        consume(blankCaptures[0].length);
-    }
-
-    captures = regexp.exec(input);
-    if (captures) {
-        consume(captures[0].length);
-    }
-
-    return captures;
-  }
-
-  function consume(size) {
-    input = input.substr(size);
-  }
-
-  return function(code) {
-    input = code.toString();
-    return getAST();
-  };
-})();
-
-exports.parse = (GradientParser || {}).parse;
-
-
-/***/ }),
-
-/***/ "K+tz":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
-/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
-
-
-/**
- * WordPress dependencies
- */
-
-const external = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
-  xmlns: "http://www.w3.org/2000/svg",
-  viewBox: "0 0 24 24"
-}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
-  d: "M18.2 17c0 .7-.6 1.2-1.2 1.2H7c-.7 0-1.2-.6-1.2-1.2V7c0-.7.6-1.2 1.2-1.2h3.2V4.2H7C5.5 4.2 4.2 5.5 4.2 7v10c0 1.5 1.2 2.8 2.8 2.8h10c1.5 0 2.8-1.2 2.8-2.8v-3.6h-1.5V17zM14.9 3v1.5h3.7l-6.4 6.4 1.1 1.1 6.4-6.4v3.7h1.5V3h-6.3z"
-}));
-/* harmony default export */ __webpack_exports__["a"] = (external);
-
-
-/***/ }),
-
-/***/ "K9lf":
-/***/ (function(module, exports) {
-
-(function() { module.exports = window["wp"]["compose"]; }());
-
-/***/ }),
-
-/***/ "KA1K":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-
-// UNUSED EXPORTS: warning, useWarning
-
-// EXTERNAL MODULE: ./node_modules/reakit-warning/es/warning.js
-var warning = __webpack_require__("WnOg");
-
-// EXTERNAL MODULE: external "React"
-var external_React_ = __webpack_require__("cDcd");
-
-// EXTERNAL MODULE: ./node_modules/reakit-utils/es/isObject.js
-var isObject = __webpack_require__("Ptb8");
-
-// CONCATENATED MODULE: ./node_modules/reakit-warning/es/useWarning.js
-
-
-
-
-
-function isRefObject(ref) {
-  return Object(isObject["a" /* isObject */])(ref) && "current" in ref;
-}
-/**
- * Logs `messages` to the console using `console.warn` based on a `condition`.
- * This should be used inside components.
- */
-
-
-function useWarning(condition) {
-  for (var _len = arguments.length, messages = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
-    messages[_key - 1] = arguments[_key];
-  }
-
-  if (false) {}
-}
-
-
-
-// CONCATENATED MODULE: ./node_modules/reakit-warning/es/index.js
-
-
-
-
-
-
-
-/***/ }),
-
-/***/ "KCH1":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return unstable_IdContext; });
-/* unused harmony export unstable_IdProvider */
-/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("cDcd");
-/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
-
-
-var defaultPrefix = "id";
-function generateRandomString(prefix) {
-  if (prefix === void 0) {
-    prefix = defaultPrefix;
-  }
-
-  return "" + (prefix ? prefix + "-" : "") + Math.random().toString(32).substr(2, 6);
-}
-
-var unstable_IdContext = /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_0__["createContext"])(generateRandomString);
-function unstable_IdProvider(_ref) {
-  var children = _ref.children,
-      _ref$prefix = _ref.prefix,
-      prefix = _ref$prefix === void 0 ? defaultPrefix : _ref$prefix;
-  var count = Object(react__WEBPACK_IMPORTED_MODULE_0__["useRef"])(0);
-  var generateId = Object(react__WEBPACK_IMPORTED_MODULE_0__["useCallback"])(function (localPrefix) {
-    if (localPrefix === void 0) {
-      localPrefix = prefix;
-    }
-
-    return "" + (localPrefix ? localPrefix + "-" : "") + ++count.current;
-  }, [prefix]);
-  return /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_0__["createElement"])(unstable_IdContext.Provider, {
-    value: generateId
-  }, children);
-}
-
-
-
-
-/***/ }),
-
-/***/ "KfNM":
-/***/ (function(module, exports) {
-
-/** Used for built-in method references. */
-var objectProto = Object.prototype;
-
-/**
- * Used to resolve the
- * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
- * of values.
- */
-var nativeObjectToString = objectProto.toString;
-
-/**
- * Converts `value` to a string using `Object.prototype.toString`.
- *
- * @private
- * @param {*} value The value to convert.
- * @returns {string} Returns the converted string.
- */
-function objectToString(value) {
-  return nativeObjectToString.call(value);
-}
-
-module.exports = objectToString;
-
-
-/***/ }),
-
-/***/ "Koq/":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var defineProperties = __webpack_require__("82c2");
-var callBind = __webpack_require__("PrET");
-
-var implementation = __webpack_require__("FufO");
-var getPolyfill = __webpack_require__("yLpt");
-var shim = __webpack_require__("8R9v");
-
-var polyfill = callBind.apply(getPolyfill());
-// eslint-disable-next-line no-unused-vars
-var bound = function assign(target, source1) {
-	return polyfill(Object, arguments);
-};
-
-defineProperties(bound, {
-	getPolyfill: getPolyfill,
-	implementation: implementation,
-	shim: shim
-});
-
-module.exports = bound;
-
-
-/***/ }),
-
-/***/ "Kz5y":
-/***/ (function(module, exports, __webpack_require__) {
-
-var freeGlobal = __webpack_require__("WFqU");
-
-/** Detect free variable `self`. */
-var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
-
-/** Used as a reference to the global object. */
-var root = freeGlobal || freeSelf || Function('return this')();
-
-module.exports = root;
-
-
-/***/ }),
-
-/***/ "L7Wv":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var toPrimitive = __webpack_require__("WZeS");
-
-// https://ecma-international.org/ecma-262/6.0/#sec-toprimitive
-
-module.exports = function ToPrimitive(input) {
-	if (arguments.length > 1) {
-		return toPrimitive(input, arguments[1]);
-	}
-	return toPrimitive(input);
-};
-
-
-/***/ }),
-
-/***/ "L8Kx":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getAnimateClassName; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Animate; });
-/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("TSYQ");
-/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
-/**
- * External dependencies
- */
-
-/**
- * @typedef {'top' | 'top left' | 'top right' | 'middle' | 'middle left' | 'middle right' | 'bottom' | 'bottom left' | 'bottom right'} AppearOrigin
- * @typedef {'left' | 'right'} SlideInOrigin
- * @typedef {{ type: 'appear'; origin?: AppearOrigin }} AppearOptions
- * @typedef {{ type: 'slide-in'; origin?: SlideInOrigin }} SlideInOptions
- * @typedef {{ type: 'loading'; }} LoadingOptions
- * @typedef {AppearOptions | SlideInOptions | LoadingOptions} GetAnimateOptions
- */
-
-/* eslint-disable jsdoc/valid-types */
-
-/**
- * @param {GetAnimateOptions['type']} type The animation type
- * @return {'top' | 'left'} Default origin
- */
-
-function getDefaultOrigin(type) {
-  return type === 'appear' ? 'top' : 'left';
-}
-/* eslint-enable jsdoc/valid-types */
-
-/**
- * @param {GetAnimateOptions} options
- *
- * @return {string | void} ClassName that applies the animations
- */
-
-
-function getAnimateClassName(options) {
-  if (options.type === 'loading') {
-    return classnames__WEBPACK_IMPORTED_MODULE_0___default()('components-animate__loading');
-  }
-
-  const {
-    type,
-    origin = getDefaultOrigin(type)
-  } = options;
-
-  if (type === 'appear') {
-    const [yAxis, xAxis = 'center'] = origin.split(' ');
-    return classnames__WEBPACK_IMPORTED_MODULE_0___default()('components-animate__appear', {
-      ['is-from-' + xAxis]: xAxis !== 'center',
-      ['is-from-' + yAxis]: yAxis !== 'middle'
-    });
-  }
-
-  if (type === 'slide-in') {
-    return classnames__WEBPACK_IMPORTED_MODULE_0___default()('components-animate__slide-in', 'is-from-' + origin);
-  }
-} // @ts-ignore Reason: Planned for deprecation
-
-function Animate({
-  type,
-  options = {},
-  children
-}) {
-  return children({
-    className: getAnimateClassName({
-      type,
-      ...options
-    })
-  });
-}
-
-
-/***/ }),
-
-/***/ "LTAC":
-/***/ (function(module, exports) {
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports['default'] = isTouchDevice;
-function isTouchDevice() {
-  return !!(typeof window !== 'undefined' && ('ontouchstart' in window || window.DocumentTouch && typeof document !== 'undefined' && document instanceof window.DocumentTouch)) || !!(typeof navigator !== 'undefined' && (navigator.maxTouchPoints || navigator.msMaxTouchPoints));
-}
-module.exports = exports['default'];
-
-/***/ }),
-
-/***/ "Lxf3":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var toStr = Object.prototype.toString;
-
-var isPrimitive = __webpack_require__("Teho");
-
-var isCallable = __webpack_require__("IdCN");
-
-// http://ecma-international.org/ecma-262/5.1/#sec-8.12.8
-var ES5internalSlots = {
-	'[[DefaultValue]]': function (O) {
-		var actualHint;
-		if (arguments.length > 1) {
-			actualHint = arguments[1];
-		} else {
-			actualHint = toStr.call(O) === '[object Date]' ? String : Number;
-		}
-
-		if (actualHint === String || actualHint === Number) {
-			var methods = actualHint === String ? ['toString', 'valueOf'] : ['valueOf', 'toString'];
-			var value, i;
-			for (i = 0; i < methods.length; ++i) {
-				if (isCallable(O[methods[i]])) {
-					value = O[methods[i]]();
-					if (isPrimitive(value)) {
-						return value;
-					}
-				}
-			}
-			throw new TypeError('No default value');
-		}
-		throw new TypeError('invalid [[DefaultValue]] hint supplied');
-	}
-};
-
-// http://ecma-international.org/ecma-262/5.1/#sec-9.1
-module.exports = function ToPrimitive(input) {
-	if (isPrimitive(input)) {
-		return input;
-	}
-	if (arguments.length > 1) {
-		return ES5internalSlots['[[DefaultValue]]'](input, arguments[1]);
-	}
-	return ES5internalSlots['[[DefaultValue]]'](input);
-};
-
-
-/***/ }),
-
-/***/ "MiSq":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-
-// EXPORTS
-__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ serialize_browser_esm_serializeStyles; });
-
-// CONCATENATED MODULE: ./node_modules/@emotion/hash/dist/hash.browser.esm.js
-/* eslint-disable */
-// Inspired by https://github.com/garycourt/murmurhash-js
-// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86
-function murmur2(str) {
-  // 'm' and 'r' are mixing constants generated offline.
-  // They're not really 'magic', they just happen to work well.
-  // const m = 0x5bd1e995;
-  // const r = 24;
-  // Initialize the hash
-  var h = 0; // Mix 4 bytes at a time into the hash
-
-  var k,
-      i = 0,
-      len = str.length;
-
-  for (; len >= 4; ++i, len -= 4) {
-    k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;
-    k =
-    /* Math.imul(k, m): */
-    (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);
-    k ^=
-    /* k >>> r: */
-    k >>> 24;
-    h =
-    /* Math.imul(k, m): */
-    (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^
-    /* Math.imul(h, m): */
-    (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);
-  } // Handle the last few bytes of the input array
-
-
-  switch (len) {
-    case 3:
-      h ^= (str.charCodeAt(i + 2) & 0xff) << 16;
-
-    case 2:
-      h ^= (str.charCodeAt(i + 1) & 0xff) << 8;
-
-    case 1:
-      h ^= str.charCodeAt(i) & 0xff;
-      h =
-      /* Math.imul(h, m): */
-      (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);
-  } // Do a few final mixes of the hash to ensure the last few
-  // bytes are well-incorporated.
-
-
-  h ^= h >>> 13;
-  h =
-  /* Math.imul(h, m): */
-  (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);
-  return ((h ^ h >>> 15) >>> 0).toString(36);
-}
-
-/* harmony default export */ var hash_browser_esm = (murmur2);
-
-// CONCATENATED MODULE: ./node_modules/@emotion/unitless/dist/unitless.browser.esm.js
-var unitlessKeys = {
-  animationIterationCount: 1,
-  borderImageOutset: 1,
-  borderImageSlice: 1,
-  borderImageWidth: 1,
-  boxFlex: 1,
-  boxFlexGroup: 1,
-  boxOrdinalGroup: 1,
-  columnCount: 1,
-  columns: 1,
-  flex: 1,
-  flexGrow: 1,
-  flexPositive: 1,
-  flexShrink: 1,
-  flexNegative: 1,
-  flexOrder: 1,
-  gridRow: 1,
-  gridRowEnd: 1,
-  gridRowSpan: 1,
-  gridRowStart: 1,
-  gridColumn: 1,
-  gridColumnEnd: 1,
-  gridColumnSpan: 1,
-  gridColumnStart: 1,
-  msGridRow: 1,
-  msGridRowSpan: 1,
-  msGridColumn: 1,
-  msGridColumnSpan: 1,
-  fontWeight: 1,
-  lineHeight: 1,
-  opacity: 1,
-  order: 1,
-  orphans: 1,
-  tabSize: 1,
-  widows: 1,
-  zIndex: 1,
-  zoom: 1,
-  WebkitLineClamp: 1,
-  // SVG-related properties
-  fillOpacity: 1,
-  floodOpacity: 1,
-  stopOpacity: 1,
-  strokeDasharray: 1,
-  strokeDashoffset: 1,
-  strokeMiterlimit: 1,
-  strokeOpacity: 1,
-  strokeWidth: 1
-};
-
-/* harmony default export */ var unitless_browser_esm = (unitlessKeys);
-
-// EXTERNAL MODULE: ./node_modules/@emotion/memoize/dist/memoize.browser.esm.js
-var memoize_browser_esm = __webpack_require__("4qRI");
-
-// CONCATENATED MODULE: ./node_modules/@emotion/serialize/dist/serialize.browser.esm.js
-
-
-
-
-var ILLEGAL_ESCAPE_SEQUENCE_ERROR = "You have illegal escape sequence in your template literal, most likely inside content's property value.\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \"content: '\\00d7';\" should become \"content: '\\\\00d7';\".\nYou can read more about this here:\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences";
-var UNDEFINED_AS_OBJECT_KEY_ERROR = "You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).";
-var hyphenateRegex = /[A-Z]|^ms/g;
-var animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;
-
-var isCustomProperty = function isCustomProperty(property) {
-  return property.charCodeAt(1) === 45;
-};
-
-var isProcessableValue = function isProcessableValue(value) {
-  return value != null && typeof value !== 'boolean';
-};
-
-var processStyleName = Object(memoize_browser_esm["a" /* default */])(function (styleName) {
-  return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();
-});
-
-var serialize_browser_esm_processStyleValue = function processStyleValue(key, value) {
-  switch (key) {
-    case 'animation':
-    case 'animationName':
-      {
-        if (typeof value === 'string') {
-          return value.replace(animationRegex, function (match, p1, p2) {
-            cursor = {
-              name: p1,
-              styles: p2,
-              next: cursor
-            };
-            return p1;
-          });
-        }
-      }
-  }
-
-  if (unitless_browser_esm[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {
-    return value + 'px';
-  }
-
-  return value;
-};
-
-if (false) { var hyphenatedCache, hyphenPattern, msPattern, oldProcessStyleValue, contentValues, contentValuePattern; }
-
-var shouldWarnAboutInterpolatingClassNameFromCss = true;
-
-function handleInterpolation(mergedProps, registered, interpolation, couldBeSelectorInterpolation) {
-  if (interpolation == null) {
-    return '';
-  }
-
-  if (interpolation.__emotion_styles !== undefined) {
-    if (false) {}
-
-    return interpolation;
-  }
-
-  switch (typeof interpolation) {
-    case 'boolean':
-      {
-        return '';
-      }
-
-    case 'object':
-      {
-        if (interpolation.anim === 1) {
-          cursor = {
-            name: interpolation.name,
-            styles: interpolation.styles,
-            next: cursor
-          };
-          return interpolation.name;
-        }
-
-        if (interpolation.styles !== undefined) {
-          var next = interpolation.next;
-
-          if (next !== undefined) {
-            // not the most efficient thing ever but this is a pretty rare case
-            // and there will be very few iterations of this generally
-            while (next !== undefined) {
-              cursor = {
-                name: next.name,
-                styles: next.styles,
-                next: cursor
-              };
-              next = next.next;
-            }
-          }
-
-          var styles = interpolation.styles + ";";
-
-          if (false) {}
-
-          return styles;
-        }
-
-        return createStringFromObject(mergedProps, registered, interpolation);
-      }
-
-    case 'function':
-      {
-        if (mergedProps !== undefined) {
-          var previousCursor = cursor;
-          var result = interpolation(mergedProps);
-          cursor = previousCursor;
-          return handleInterpolation(mergedProps, registered, result, couldBeSelectorInterpolation);
-        } else if (false) {}
-
-        break;
-      }
-
-    case 'string':
-      if (false) { var replaced, matched; }
-
-      break;
-  } // finalize string values (regular strings and functions interpolated into css calls)
-
-
-  if (registered == null) {
-    return interpolation;
-  }
-
-  var cached = registered[interpolation];
-
-  if (false) {}
-
-  return cached !== undefined && !couldBeSelectorInterpolation ? cached : interpolation;
-}
-
-function createStringFromObject(mergedProps, registered, obj) {
-  var string = '';
-
-  if (Array.isArray(obj)) {
-    for (var i = 0; i < obj.length; i++) {
-      string += handleInterpolation(mergedProps, registered, obj[i], false);
-    }
-  } else {
-    for (var _key in obj) {
-      var value = obj[_key];
-
-      if (typeof value !== 'object') {
-        if (registered != null && registered[value] !== undefined) {
-          string += _key + "{" + registered[value] + "}";
-        } else if (isProcessableValue(value)) {
-          string += processStyleName(_key) + ":" + serialize_browser_esm_processStyleValue(_key, value) + ";";
-        }
-      } else {
-        if (_key === 'NO_COMPONENT_SELECTOR' && "production" !== 'production') {
-          throw new Error('Component selectors can only be used in conjunction with babel-plugin-emotion.');
-        }
-
-        if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {
-          for (var _i = 0; _i < value.length; _i++) {
-            if (isProcessableValue(value[_i])) {
-              string += processStyleName(_key) + ":" + serialize_browser_esm_processStyleValue(_key, value[_i]) + ";";
-            }
-          }
-        } else {
-          var interpolated = handleInterpolation(mergedProps, registered, value, false);
-
-          switch (_key) {
-            case 'animation':
-            case 'animationName':
-              {
-                string += processStyleName(_key) + ":" + interpolated + ";";
-                break;
-              }
-
-            default:
-              {
-                if (false) {}
-
-                string += _key + "{" + interpolated + "}";
-              }
-          }
-        }
-      }
-    }
-  }
-
-  return string;
-}
-
-var labelPattern = /label:\s*([^\s;\n{]+)\s*;/g;
-var sourceMapPattern;
-
-if (false) {} // this is the cursor for keyframes
-// keyframes are stored on the SerializedStyles object as a linked list
-
-
-var cursor;
-var serialize_browser_esm_serializeStyles = function serializeStyles(args, registered, mergedProps) {
-  if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {
-    return args[0];
-  }
-
-  var stringMode = true;
-  var styles = '';
-  cursor = undefined;
-  var strings = args[0];
-
-  if (strings == null || strings.raw === undefined) {
-    stringMode = false;
-    styles += handleInterpolation(mergedProps, registered, strings, false);
-  } else {
-    if (false) {}
-
-    styles += strings[0];
-  } // we start at 1 since we've already handled the first arg
-
-
-  for (var i = 1; i < args.length; i++) {
-    styles += handleInterpolation(mergedProps, registered, args[i], styles.charCodeAt(styles.length - 1) === 46);
-
-    if (stringMode) {
-      if (false) {}
-
-      styles += strings[i];
-    }
-  }
-
-  var sourceMap;
-
-  if (false) {} // using a global regex with .exec is stateful so lastIndex has to be reset each time
-
-
-  labelPattern.lastIndex = 0;
-  var identifierName = '';
-  var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5
-
-  while ((match = labelPattern.exec(styles)) !== null) {
-    identifierName += '-' + // $FlowFixMe we know it's not null
-    match[1];
-  }
-
-  var name = hash_browser_esm(styles) + identifierName;
-
-  if (false) {}
-
-  return {
-    name: name,
-    styles: styles,
-    next: cursor
-  };
-};
-
-
-
-
-/***/ }),
-
-/***/ "Mih7":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return hasUserFocus; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return setUserFocus; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return userFocus; });
-function userFocus(element) {
-  element.userFocus = true;
-  element.focus();
-  element.userFocus = false;
-}
-function hasUserFocus(element) {
-  return !!element.userFocus;
-}
-function setUserFocus(element, value) {
-  element.userFocus = value;
-}
-
-
-
-
-/***/ }),
-
-/***/ "Mp0b":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
-/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
-
-
-/**
- * WordPress dependencies
- */
-
-const linkOff = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
-  xmlns: "http://www.w3.org/2000/svg",
-  viewBox: "0 0 24 24"
-}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
-  d: "M15.6 7.3h-.7l1.6-3.5-.9-.4-3.9 8.5H9v1.5h2l-1.3 2.8H8.4c-2 0-3.7-1.7-3.7-3.7s1.7-3.7 3.7-3.7H10V7.3H8.4c-2.9 0-5.2 2.3-5.2 5.2 0 2.9 2.3 5.2 5.2 5.2H9l-1.4 3.2.9.4 5.7-12.5h1.4c2 0 3.7 1.7 3.7 3.7s-1.7 3.7-3.7 3.7H14v1.5h1.6c2.9 0 5.2-2.3 5.2-5.2 0-2.9-2.4-5.2-5.2-5.2z"
-}));
-/* harmony default export */ __webpack_exports__["a"] = (linkOff);
-
-
-/***/ }),
-
-/***/ "N3k4":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.PureCalendarDay = undefined;
-
-var _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; };
-
-var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
-
-var _object = __webpack_require__("Koq/");
-
-var _object2 = _interopRequireDefault(_object);
-
-var _react = __webpack_require__("cDcd");
-
-var _react2 = _interopRequireDefault(_react);
-
-var _propTypes = __webpack_require__("17x9");
-
-var _propTypes2 = _interopRequireDefault(_propTypes);
-
-var _reactAddonsShallowCompare = __webpack_require__("YZDV");
-
-var _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare);
-
-var _reactMomentProptypes = __webpack_require__("XGBb");
-
-var _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes);
-
-var _airbnbPropTypes = __webpack_require__("Hsqg");
-
-var _reactWithStyles = __webpack_require__("TG4+");
-
-var _moment = __webpack_require__("wy2R");
-
-var _moment2 = _interopRequireDefault(_moment);
-
-var _defaultPhrases = __webpack_require__("vV+G");
-
-var _getPhrasePropTypes = __webpack_require__("yc2e");
-
-var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);
-
-var _getCalendarDaySettings = __webpack_require__("Ae65");
-
-var _getCalendarDaySettings2 = _interopRequireDefault(_getCalendarDaySettings);
-
-var _ModifiersShape = __webpack_require__("J7JS");
-
-var _ModifiersShape2 = _interopRequireDefault(_ModifiersShape);
-
-var _constants = __webpack_require__("Fv1B");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
-
-function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
-
-function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-
-var propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, {
-  day: _reactMomentProptypes2['default'].momentObj,
-  daySize: _airbnbPropTypes.nonNegativeInteger,
-  isOutsideDay: _propTypes2['default'].bool,
-  modifiers: _ModifiersShape2['default'],
-  isFocused: _propTypes2['default'].bool,
-  tabIndex: _propTypes2['default'].oneOf([0, -1]),
-  onDayClick: _propTypes2['default'].func,
-  onDayMouseEnter: _propTypes2['default'].func,
-  onDayMouseLeave: _propTypes2['default'].func,
-  renderDayContents: _propTypes2['default'].func,
-  ariaLabelFormat: _propTypes2['default'].string,
-
-  // internationalization
-  phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.CalendarDayPhrases))
-}));
-
-var defaultProps = {
-  day: (0, _moment2['default'])(),
-  daySize: _constants.DAY_SIZE,
-  isOutsideDay: false,
-  modifiers: new Set(),
-  isFocused: false,
-  tabIndex: -1,
-  onDayClick: function () {
-    function onDayClick() {}
-
-    return onDayClick;
-  }(),
-  onDayMouseEnter: function () {
-    function onDayMouseEnter() {}
-
-    return onDayMouseEnter;
-  }(),
-  onDayMouseLeave: function () {
-    function onDayMouseLeave() {}
-
-    return onDayMouseLeave;
-  }(),
-
-  renderDayContents: null,
-  ariaLabelFormat: 'dddd, LL',
-
-  // internationalization
-  phrases: _defaultPhrases.CalendarDayPhrases
-};
-
-var CalendarDay = function (_React$Component) {
-  _inherits(CalendarDay, _React$Component);
-
-  function CalendarDay() {
-    var _ref;
-
-    _classCallCheck(this, CalendarDay);
-
-    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
-      args[_key] = arguments[_key];
-    }
-
-    var _this = _possibleConstructorReturn(this, (_ref = CalendarDay.__proto__ || Object.getPrototypeOf(CalendarDay)).call.apply(_ref, [this].concat(args)));
-
-    _this.setButtonRef = _this.setButtonRef.bind(_this);
-    return _this;
-  }
-
-  _createClass(CalendarDay, [{
-    key: 'shouldComponentUpdate',
-    value: function () {
-      function shouldComponentUpdate(nextProps, nextState) {
-        return (0, _reactAddonsShallowCompare2['default'])(this, nextProps, nextState);
-      }
-
-      return shouldComponentUpdate;
-    }()
-  }, {
-    key: 'componentDidUpdate',
-    value: function () {
-      function componentDidUpdate(prevProps) {
-        var _props = this.props,
-            isFocused = _props.isFocused,
-            tabIndex = _props.tabIndex;
-
-        if (tabIndex === 0) {
-          if (isFocused || tabIndex !== prevProps.tabIndex) {
-            this.buttonRef.focus();
-          }
-        }
-      }
-
-      return componentDidUpdate;
-    }()
-  }, {
-    key: 'onDayClick',
-    value: function () {
-      function onDayClick(day, e) {
-        var onDayClick = this.props.onDayClick;
-
-        onDayClick(day, e);
-      }
-
-      return onDayClick;
-    }()
-  }, {
-    key: 'onDayMouseEnter',
-    value: function () {
-      function onDayMouseEnter(day, e) {
-        var onDayMouseEnter = this.props.onDayMouseEnter;
-
-        onDayMouseEnter(day, e);
-      }
-
-      return onDayMouseEnter;
-    }()
-  }, {
-    key: 'onDayMouseLeave',
-    value: function () {
-      function onDayMouseLeave(day, e) {
-        var onDayMouseLeave = this.props.onDayMouseLeave;
-
-        onDayMouseLeave(day, e);
-      }
-
-      return onDayMouseLeave;
-    }()
-  }, {
-    key: 'onKeyDown',
-    value: function () {
-      function onKeyDown(day, e) {
-        var onDayClick = this.props.onDayClick;
-        var key = e.key;
-
-        if (key === 'Enter' || key === ' ') {
-          onDayClick(day, e);
-        }
-      }
-
-      return onKeyDown;
-    }()
-  }, {
-    key: 'setButtonRef',
-    value: function () {
-      function setButtonRef(ref) {
-        this.buttonRef = ref;
-      }
-
-      return setButtonRef;
-    }()
-  }, {
-    key: 'render',
-    value: function () {
-      function render() {
-        var _this2 = this;
-
-        var _props2 = this.props,
-            day = _props2.day,
-            ariaLabelFormat = _props2.ariaLabelFormat,
-            daySize = _props2.daySize,
-            isOutsideDay = _props2.isOutsideDay,
-            modifiers = _props2.modifiers,
-            renderDayContents = _props2.renderDayContents,
-            tabIndex = _props2.tabIndex,
-            styles = _props2.styles,
-            phrases = _props2.phrases;
-
-
-        if (!day) return _react2['default'].createElement('td', null);
-
-        var _getCalendarDaySettin = (0, _getCalendarDaySettings2['default'])(day, ariaLabelFormat, daySize, modifiers, phrases),
-            daySizeStyles = _getCalendarDaySettin.daySizeStyles,
-            useDefaultCursor = _getCalendarDaySettin.useDefaultCursor,
-            selected = _getCalendarDaySettin.selected,
-            hoveredSpan = _getCalendarDaySettin.hoveredSpan,
-            isOutsideRange = _getCalendarDaySettin.isOutsideRange,
-            ariaLabel = _getCalendarDaySettin.ariaLabel;
-
-        return _react2['default'].createElement(
-          'td',
-          _extends({}, (0, _reactWithStyles.css)(styles.CalendarDay, useDefaultCursor && styles.CalendarDay__defaultCursor, styles.CalendarDay__default, isOutsideDay && styles.CalendarDay__outside, modifiers.has('today') && styles.CalendarDay__today, modifiers.has('first-day-of-week') && styles.CalendarDay__firstDayOfWeek, modifiers.has('last-day-of-week') && styles.CalendarDay__lastDayOfWeek, modifiers.has('hovered-offset') && styles.CalendarDay__hovered_offset, modifiers.has('highlighted-calendar') && styles.CalendarDay__highlighted_calendar, modifiers.has('blocked-minimum-nights') && styles.CalendarDay__blocked_minimum_nights, modifiers.has('blocked-calendar') && styles.CalendarDay__blocked_calendar, hoveredSpan && styles.CalendarDay__hovered_span, modifiers.has('selected-span') && styles.CalendarDay__selected_span, modifiers.has('last-in-range') && styles.CalendarDay__last_in_range, modifiers.has('selected-start') && styles.CalendarDay__selected_start, modifiers.has('selected-end') && styles.CalendarDay__selected_end, selected && styles.CalendarDay__selected, isOutsideRange && styles.CalendarDay__blocked_out_of_range, daySizeStyles), {
-            role: 'button' // eslint-disable-line jsx-a11y/no-noninteractive-element-to-interactive-role
-            , ref: this.setButtonRef,
-            'aria-label': ariaLabel,
-            onMouseEnter: function () {
-              function onMouseEnter(e) {
-                _this2.onDayMouseEnter(day, e);
-              }
-
-              return onMouseEnter;
-            }(),
-            onMouseLeave: function () {
-              function onMouseLeave(e) {
-                _this2.onDayMouseLeave(day, e);
-              }
-
-              return onMouseLeave;
-            }(),
-            onMouseUp: function () {
-              function onMouseUp(e) {
-                e.currentTarget.blur();
-              }
-
-              return onMouseUp;
-            }(),
-            onClick: function () {
-              function onClick(e) {
-                _this2.onDayClick(day, e);
-              }
-
-              return onClick;
-            }(),
-            onKeyDown: function () {
-              function onKeyDown(e) {
-                _this2.onKeyDown(day, e);
-              }
-
-              return onKeyDown;
-            }(),
-            tabIndex: tabIndex
-          }),
-          renderDayContents ? renderDayContents(day, modifiers) : day.format('D')
-        );
-      }
-
-      return render;
-    }()
-  }]);
-
-  return CalendarDay;
-}(_react2['default'].Component);
-
-CalendarDay.propTypes = propTypes;
-CalendarDay.defaultProps = defaultProps;
-
-exports.PureCalendarDay = CalendarDay;
-exports['default'] = (0, _reactWithStyles.withStyles)(function (_ref2) {
-  var _ref2$reactDates = _ref2.reactDates,
-      color = _ref2$reactDates.color,
-      font = _ref2$reactDates.font;
-  return {
-    CalendarDay: {
-      boxSizing: 'border-box',
-      cursor: 'pointer',
-      fontSize: font.size,
-      textAlign: 'center',
-
-      ':active': {
-        outline: 0
-      }
-    },
-
-    CalendarDay__defaultCursor: {
-      cursor: 'default'
-    },
-
-    CalendarDay__default: {
-      border: '1px solid ' + String(color.core.borderLight),
-      color: color.text,
-      background: color.background,
-
-      ':hover': {
-        background: color.core.borderLight,
-        border: '1px double ' + String(color.core.borderLight),
-        color: 'inherit'
-      }
-    },
-
-    CalendarDay__hovered_offset: {
-      background: color.core.borderBright,
-      border: '1px double ' + String(color.core.borderLight),
-      color: 'inherit'
-    },
-
-    CalendarDay__outside: {
-      border: 0,
-      background: color.outside.backgroundColor,
-      color: color.outside.color,
-
-      ':hover': {
-        border: 0
-      }
-    },
-
-    CalendarDay__blocked_minimum_nights: {
-      background: color.minimumNights.backgroundColor,
-      border: '1px solid ' + String(color.minimumNights.borderColor),
-      color: color.minimumNights.color,
-
-      ':hover': {
-        background: color.minimumNights.backgroundColor_hover,
-        color: color.minimumNights.color_active
-      },
-
-      ':active': {
-        background: color.minimumNights.backgroundColor_active,
-        color: color.minimumNights.color_active
-      }
-    },
-
-    CalendarDay__highlighted_calendar: {
-      background: color.highlighted.backgroundColor,
-      color: color.highlighted.color,
-
-      ':hover': {
-        background: color.highlighted.backgroundColor_hover,
-        color: color.highlighted.color_active
-      },
-
-      ':active': {
-        background: color.highlighted.backgroundColor_active,
-        color: color.highlighted.color_active
-      }
-    },
-
-    CalendarDay__selected_span: {
-      background: color.selectedSpan.backgroundColor,
-      border: '1px solid ' + String(color.selectedSpan.borderColor),
-      color: color.selectedSpan.color,
-
-      ':hover': {
-        background: color.selectedSpan.backgroundColor_hover,
-        border: '1px solid ' + String(color.selectedSpan.borderColor),
-        color: color.selectedSpan.color_active
-      },
-
-      ':active': {
-        background: color.selectedSpan.backgroundColor_active,
-        border: '1px solid ' + String(color.selectedSpan.borderColor),
-        color: color.selectedSpan.color_active
-      }
-    },
-
-    CalendarDay__last_in_range: {
-      borderRight: color.core.primary
-    },
-
-    CalendarDay__selected: {
-      background: color.selected.backgroundColor,
-      border: '1px solid ' + String(color.selected.borderColor),
-      color: color.selected.color,
-
-      ':hover': {
-        background: color.selected.backgroundColor_hover,
-        border: '1px solid ' + String(color.selected.borderColor),
-        color: color.selected.color_active
-      },
-
-      ':active': {
-        background: color.selected.backgroundColor_active,
-        border: '1px solid ' + String(color.selected.borderColor),
-        color: color.selected.color_active
-      }
-    },
-
-    CalendarDay__hovered_span: {
-      background: color.hoveredSpan.backgroundColor,
-      border: '1px solid ' + String(color.hoveredSpan.borderColor),
-      color: color.hoveredSpan.color,
-
-      ':hover': {
-        background: color.hoveredSpan.backgroundColor_hover,
-        border: '1px solid ' + String(color.hoveredSpan.borderColor),
-        color: color.hoveredSpan.color_active
-      },
-
-      ':active': {
-        background: color.hoveredSpan.backgroundColor_active,
-        border: '1px solid ' + String(color.hoveredSpan.borderColor),
-        color: color.hoveredSpan.color_active
-      }
-    },
-
-    CalendarDay__blocked_calendar: {
-      background: color.blocked_calendar.backgroundColor,
-      border: '1px solid ' + String(color.blocked_calendar.borderColor),
-      color: color.blocked_calendar.color,
-
-      ':hover': {
-        background: color.blocked_calendar.backgroundColor_hover,
-        border: '1px solid ' + String(color.blocked_calendar.borderColor),
-        color: color.blocked_calendar.color_active
-      },
-
-      ':active': {
-        background: color.blocked_calendar.backgroundColor_active,
-        border: '1px solid ' + String(color.blocked_calendar.borderColor),
-        color: color.blocked_calendar.color_active
-      }
-    },
-
-    CalendarDay__blocked_out_of_range: {
-      background: color.blocked_out_of_range.backgroundColor,
-      border: '1px solid ' + String(color.blocked_out_of_range.borderColor),
-      color: color.blocked_out_of_range.color,
-
-      ':hover': {
-        background: color.blocked_out_of_range.backgroundColor_hover,
-        border: '1px solid ' + String(color.blocked_out_of_range.borderColor),
-        color: color.blocked_out_of_range.color_active
-      },
-
-      ':active': {
-        background: color.blocked_out_of_range.backgroundColor_active,
-        border: '1px solid ' + String(color.blocked_out_of_range.borderColor),
-        color: color.blocked_out_of_range.color_active
-      }
-    },
-
-    CalendarDay__selected_start: {},
-    CalendarDay__selected_end: {},
-    CalendarDay__today: {},
-    CalendarDay__firstDayOfWeek: {},
-    CalendarDay__lastDayOfWeek: {}
-  };
-})(CalendarDay);
-
-/***/ }),
-
-/***/ "NMb1":
-/***/ (function(module, exports) {
-
-(function() { module.exports = window["wp"]["deprecated"]; }());
-
-/***/ }),
-
-/***/ "NTP4":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
-/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
-
-
-/**
- * WordPress dependencies
- */
-
-const upload = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
-  xmlns: "http://www.w3.org/2000/svg",
-  viewBox: "0 0 24 24"
-}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
-  d: "M18.5 15v3.5H13V6.7l4.5 4.1 1-1.1-6.2-5.8-5.8 5.8 1 1.1 4-4v11.7h-6V15H4v5h16v-5z"
-}));
-/* harmony default export */ __webpack_exports__["a"] = (upload);
-
-
-/***/ }),
-
-/***/ "NWDH":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
-/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
-
-
-/**
- * WordPress dependencies
- */
-
-const chevronDown = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
-  viewBox: "0 0 24 24",
-  xmlns: "http://www.w3.org/2000/svg"
-}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
-  d: "M17.5 11.6L12 16l-5.5-4.4.9-1.2L12 14l4.5-3.6 1 1.2z"
-}));
-/* harmony default export */ __webpack_exports__["a"] = (chevronDown);
-
-
-/***/ }),
-
-/***/ "Nho6":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports['default'] = isAfterDay;
-
-var _moment = __webpack_require__("wy2R");
-
-var _moment2 = _interopRequireDefault(_moment);
-
-var _isBeforeDay = __webpack_require__("h6xH");
-
-var _isBeforeDay2 = _interopRequireDefault(_isBeforeDay);
-
-var _isSameDay = __webpack_require__("pRvc");
-
-var _isSameDay2 = _interopRequireDefault(_isSameDay);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-function isAfterDay(a, b) {
-  if (!_moment2['default'].isMoment(a) || !_moment2['default'].isMoment(b)) return false;
-  return !(0, _isBeforeDay2['default'])(a, b) && !(0, _isSameDay2['default'])(a, b);
-}
-
-/***/ }),
-
-/***/ "Nloh":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.PureDayPicker = exports.defaultProps = undefined;
-
-var _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; };
-
-var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
-
-var _object = __webpack_require__("Koq/");
-
-var _object2 = _interopRequireDefault(_object);
-
-var _react = __webpack_require__("cDcd");
-
-var _react2 = _interopRequireDefault(_react);
-
-var _propTypes = __webpack_require__("17x9");
-
-var _propTypes2 = _interopRequireDefault(_propTypes);
-
-var _reactAddonsShallowCompare = __webpack_require__("YZDV");
-
-var _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare);
-
-var _airbnbPropTypes = __webpack_require__("Hsqg");
-
-var _reactWithStyles = __webpack_require__("TG4+");
-
-var _moment = __webpack_require__("wy2R");
-
-var _moment2 = _interopRequireDefault(_moment);
-
-var _throttle = __webpack_require__("DzJC");
-
-var _throttle2 = _interopRequireDefault(_throttle);
-
-var _isTouchDevice = __webpack_require__("LTAC");
-
-var _isTouchDevice2 = _interopRequireDefault(_isTouchDevice);
-
-var _reactOutsideClickHandler = __webpack_require__("3gBW");
-
-var _reactOutsideClickHandler2 = _interopRequireDefault(_reactOutsideClickHandler);
-
-var _defaultPhrases = __webpack_require__("vV+G");
-
-var _getPhrasePropTypes = __webpack_require__("yc2e");
-
-var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);
-
-var _CalendarMonthGrid = __webpack_require__("Thzv");
-
-var _CalendarMonthGrid2 = _interopRequireDefault(_CalendarMonthGrid);
-
-var _DayPickerNavigation = __webpack_require__("zfJ5");
-
-var _DayPickerNavigation2 = _interopRequireDefault(_DayPickerNavigation);
-
-var _DayPickerKeyboardShortcuts = __webpack_require__("1+Kn");
-
-var _DayPickerKeyboardShortcuts2 = _interopRequireDefault(_DayPickerKeyboardShortcuts);
-
-var _getNumberOfCalendarMonthWeeks = __webpack_require__("0Dl3");
-
-var _getNumberOfCalendarMonthWeeks2 = _interopRequireDefault(_getNumberOfCalendarMonthWeeks);
-
-var _getCalendarMonthWidth = __webpack_require__("m2ax");
-
-var _getCalendarMonthWidth2 = _interopRequireDefault(_getCalendarMonthWidth);
-
-var _calculateDimension = __webpack_require__("ixyq");
-
-var _calculateDimension2 = _interopRequireDefault(_calculateDimension);
-
-var _getActiveElement = __webpack_require__("+51k");
-
-var _getActiveElement2 = _interopRequireDefault(_getActiveElement);
-
-var _isDayVisible = __webpack_require__("IgE5");
-
-var _isDayVisible2 = _interopRequireDefault(_isDayVisible);
-
-var _ModifiersShape = __webpack_require__("J7JS");
-
-var _ModifiersShape2 = _interopRequireDefault(_ModifiersShape);
-
-var _ScrollableOrientationShape = __webpack_require__("aE6U");
-
-var _ScrollableOrientationShape2 = _interopRequireDefault(_ScrollableOrientationShape);
-
-var _DayOfWeekShape = __webpack_require__("2S2E");
-
-var _DayOfWeekShape2 = _interopRequireDefault(_DayOfWeekShape);
-
-var _CalendarInfoPositionShape = __webpack_require__("oR9Z");
-
-var _CalendarInfoPositionShape2 = _interopRequireDefault(_CalendarInfoPositionShape);
-
-var _constants = __webpack_require__("Fv1B");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
-
-function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
-
-function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
-
-function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-
-var MONTH_PADDING = 23;
-var PREV_TRANSITION = 'prev';
-var NEXT_TRANSITION = 'next';
-var MONTH_SELECTION_TRANSITION = 'month_selection';
-var YEAR_SELECTION_TRANSITION = 'year_selection';
-
-var propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, {
-
-  // calendar presentation props
-  enableOutsideDays: _propTypes2['default'].bool,
-  numberOfMonths: _propTypes2['default'].number,
-  orientation: _ScrollableOrientationShape2['default'],
-  withPortal: _propTypes2['default'].bool,
-  onOutsideClick: _propTypes2['default'].func,
-  hidden: _propTypes2['default'].bool,
-  initialVisibleMonth: _propTypes2['default'].func,
-  firstDayOfWeek: _DayOfWeekShape2['default'],
-  renderCalendarInfo: _propTypes2['default'].func,
-  calendarInfoPosition: _CalendarInfoPositionShape2['default'],
-  hideKeyboardShortcutsPanel: _propTypes2['default'].bool,
-  daySize: _airbnbPropTypes.nonNegativeInteger,
-  isRTL: _propTypes2['default'].bool,
-  verticalHeight: _airbnbPropTypes.nonNegativeInteger,
-  noBorder: _propTypes2['default'].bool,
-  transitionDuration: _airbnbPropTypes.nonNegativeInteger,
-  verticalBorderSpacing: _airbnbPropTypes.nonNegativeInteger,
-  horizontalMonthPadding: _airbnbPropTypes.nonNegativeInteger,
-
-  // navigation props
-  navPrev: _propTypes2['default'].node,
-  navNext: _propTypes2['default'].node,
-  noNavButtons: _propTypes2['default'].bool,
-  onPrevMonthClick: _propTypes2['default'].func,
-  onNextMonthClick: _propTypes2['default'].func,
-  onMonthChange: _propTypes2['default'].func,
-  onYearChange: _propTypes2['default'].func,
-  onMultiplyScrollableMonths: _propTypes2['default'].func, // VERTICAL_SCROLLABLE daypickers only
-
-  // month props
-  renderMonthText: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),
-  renderMonthElement: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),
-
-  // day props
-  modifiers: _propTypes2['default'].objectOf(_propTypes2['default'].objectOf(_ModifiersShape2['default'])),
-  renderCalendarDay: _propTypes2['default'].func,
-  renderDayContents: _propTypes2['default'].func,
-  onDayClick: _propTypes2['default'].func,
-  onDayMouseEnter: _propTypes2['default'].func,
-  onDayMouseLeave: _propTypes2['default'].func,
-
-  // accessibility props
-  isFocused: _propTypes2['default'].bool,
-  getFirstFocusableDay: _propTypes2['default'].func,
-  onBlur: _propTypes2['default'].func,
-  showKeyboardShortcuts: _propTypes2['default'].bool,
-
-  // internationalization
-  monthFormat: _propTypes2['default'].string,
-  weekDayFormat: _propTypes2['default'].string,
-  phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.DayPickerPhrases)),
-  dayAriaLabelFormat: _propTypes2['default'].string
-}));
-
-var defaultProps = exports.defaultProps = {
-  // calendar presentation props
-  enableOutsideDays: false,
-  numberOfMonths: 2,
-  orientation: _constants.HORIZONTAL_ORIENTATION,
-  withPortal: false,
-  onOutsideClick: function () {
-    function onOutsideClick() {}
-
-    return onOutsideClick;
-  }(),
-
-  hidden: false,
-  initialVisibleMonth: function () {
-    function initialVisibleMonth() {
-      return (0, _moment2['default'])();
-    }
-
-    return initialVisibleMonth;
-  }(),
-  firstDayOfWeek: null,
-  renderCalendarInfo: null,
-  calendarInfoPosition: _constants.INFO_POSITION_BOTTOM,
-  hideKeyboardShortcutsPanel: false,
-  daySize: _constants.DAY_SIZE,
-  isRTL: false,
-  verticalHeight: null,
-  noBorder: false,
-  transitionDuration: undefined,
-  verticalBorderSpacing: undefined,
-  horizontalMonthPadding: 13,
-
-  // navigation props
-  navPrev: null,
-  navNext: null,
-  noNavButtons: false,
-  onPrevMonthClick: function () {
-    function onPrevMonthClick() {}
-
-    return onPrevMonthClick;
-  }(),
-  onNextMonthClick: function () {
-    function onNextMonthClick() {}
-
-    return onNextMonthClick;
-  }(),
-  onMonthChange: function () {
-    function onMonthChange() {}
-
-    return onMonthChange;
-  }(),
-  onYearChange: function () {
-    function onYearChange() {}
-
-    return onYearChange;
-  }(),
-  onMultiplyScrollableMonths: function () {
-    function onMultiplyScrollableMonths() {}
-
-    return onMultiplyScrollableMonths;
-  }(),
-
-
-  // month props
-  renderMonthText: null,
-  renderMonthElement: null,
-
-  // day props
-  modifiers: {},
-  renderCalendarDay: undefined,
-  renderDayContents: null,
-  onDayClick: function () {
-    function onDayClick() {}
-
-    return onDayClick;
-  }(),
-  onDayMouseEnter: function () {
-    function onDayMouseEnter() {}
-
-    return onDayMouseEnter;
-  }(),
-  onDayMouseLeave: function () {
-    function onDayMouseLeave() {}
-
-    return onDayMouseLeave;
-  }(),
-
-
-  // accessibility props
-  isFocused: false,
-  getFirstFocusableDay: null,
-  onBlur: function () {
-    function onBlur() {}
-
-    return onBlur;
-  }(),
-
-  showKeyboardShortcuts: false,
-
-  // internationalization
-  monthFormat: 'MMMM YYYY',
-  weekDayFormat: 'dd',
-  phrases: _defaultPhrases.DayPickerPhrases,
-  dayAriaLabelFormat: undefined
-};
-
-var DayPicker = function (_React$Component) {
-  _inherits(DayPicker, _React$Component);
-
-  function DayPicker(props) {
-    _classCallCheck(this, DayPicker);
-
-    var _this = _possibleConstructorReturn(this, (DayPicker.__proto__ || Object.getPrototypeOf(DayPicker)).call(this, props));
-
-    var currentMonth = props.hidden ? (0, _moment2['default'])() : props.initialVisibleMonth();
-
-    var focusedDate = currentMonth.clone().startOf('month');
-    if (props.getFirstFocusableDay) {
-      focusedDate = props.getFirstFocusableDay(currentMonth);
-    }
-
-    var horizontalMonthPadding = props.horizontalMonthPadding;
-
-
-    var translationValue = props.isRTL && _this.isHorizontal() ? -(0, _getCalendarMonthWidth2['default'])(props.daySize, horizontalMonthPadding) : 0;
-
-    _this.hasSetInitialVisibleMonth = !props.hidden;
-    _this.state = {
-      currentMonth: currentMonth,
-      monthTransition: null,
-      translationValue: translationValue,
-      scrollableMonthMultiple: 1,
-      calendarMonthWidth: (0, _getCalendarMonthWidth2['default'])(props.daySize, horizontalMonthPadding),
-      focusedDate: !props.hidden || props.isFocused ? focusedDate : null,
-      nextFocusedDate: null,
-      showKeyboardShortcuts: props.showKeyboardShortcuts,
-      onKeyboardShortcutsPanelClose: function () {
-        function onKeyboardShortcutsPanelClose() {}
-
-        return onKeyboardShortcutsPanelClose;
-      }(),
-
-      isTouchDevice: (0, _isTouchDevice2['default'])(),
-      withMouseInteractions: true,
-      calendarInfoWidth: 0,
-      monthTitleHeight: null,
-      hasSetHeight: false
-    };
-
-    _this.setCalendarMonthWeeks(currentMonth);
-
-    _this.calendarMonthGridHeight = 0;
-    _this.setCalendarInfoWidthTimeout = null;
-
-    _this.onKeyDown = _this.onKeyDown.bind(_this);
-    _this.throttledKeyDown = (0, _throttle2['default'])(_this.onFinalKeyDown, 200, { trailing: false });
-    _this.onPrevMonthClick = _this.onPrevMonthClick.bind(_this);
-    _this.onNextMonthClick = _this.onNextMonthClick.bind(_this);
-    _this.onMonthChange = _this.onMonthChange.bind(_this);
-    _this.onYearChange = _this.onYearChange.bind(_this);
-
-    _this.multiplyScrollableMonths = _this.multiplyScrollableMonths.bind(_this);
-    _this.updateStateAfterMonthTransition = _this.updateStateAfterMonthTransition.bind(_this);
-
-    _this.openKeyboardShortcutsPanel = _this.openKeyboardShortcutsPanel.bind(_this);
-    _this.closeKeyboardShortcutsPanel = _this.closeKeyboardShortcutsPanel.bind(_this);
-
-    _this.setCalendarInfoRef = _this.setCalendarInfoRef.bind(_this);
-    _this.setContainerRef = _this.setContainerRef.bind(_this);
-    _this.setTransitionContainerRef = _this.setTransitionContainerRef.bind(_this);
-    _this.setMonthTitleHeight = _this.setMonthTitleHeight.bind(_this);
-    return _this;
-  }
-
-  _createClass(DayPicker, [{
-    key: 'componentDidMount',
-    value: function () {
-      function componentDidMount() {
-        var currentMonth = this.state.currentMonth;
-
-        if (this.calendarInfo) {
-          this.setState({
-            isTouchDevice: (0, _isTouchDevice2['default'])(),
-            calendarInfoWidth: (0, _calculateDimension2['default'])(this.calendarInfo, 'width', true, true)
-          });
-        } else {
-          this.setState({ isTouchDevice: (0, _isTouchDevice2['default'])() });
-        }
-
-        this.setCalendarMonthWeeks(currentMonth);
-      }
-
-      return componentDidMount;
-    }()
-  }, {
-    key: 'componentWillReceiveProps',
-    value: function () {
-      function componentWillReceiveProps(nextProps) {
-        var hidden = nextProps.hidden,
-            isFocused = nextProps.isFocused,
-            showKeyboardShortcuts = nextProps.showKeyboardShortcuts,
-            onBlur = nextProps.onBlur,
-            renderMonthText = nextProps.renderMonthText,
-            horizontalMonthPadding = nextProps.horizontalMonthPadding;
-        var currentMonth = this.state.currentMonth;
-
-
-        if (!hidden) {
-          if (!this.hasSetInitialVisibleMonth) {
-            this.hasSetInitialVisibleMonth = true;
-            this.setState({
-              currentMonth: nextProps.initialVisibleMonth()
-            });
-          }
-        }
-
-        var _props = this.props,
-            daySize = _props.daySize,
-            prevIsFocused = _props.isFocused,
-            prevRenderMonthText = _props.renderMonthText;
-
-
-        if (nextProps.daySize !== daySize) {
-          this.setState({
-            calendarMonthWidth: (0, _getCalendarMonthWidth2['default'])(nextProps.daySize, horizontalMonthPadding)
-          });
-        }
-
-        if (isFocused !== prevIsFocused) {
-          if (isFocused) {
-            var focusedDate = this.getFocusedDay(currentMonth);
-
-            var onKeyboardShortcutsPanelClose = this.state.onKeyboardShortcutsPanelClose;
-
-            if (nextProps.showKeyboardShortcuts) {
-              // the ? shortcut came from the input and we should return input there once it is close
-              onKeyboardShortcutsPanelClose = onBlur;
-            }
-
-            this.setState({
-              showKeyboardShortcuts: showKeyboardShortcuts,
-              onKeyboardShortcutsPanelClose: onKeyboardShortcutsPanelClose,
-              focusedDate: focusedDate,
-              withMouseInteractions: false
-            });
-          } else {
-            this.setState({ focusedDate: null });
-          }
-        }
-
-        if (renderMonthText !== prevRenderMonthText) {
-          this.setState({
-            monthTitleHeight: null
-          });
-        }
-      }
-
-      return componentWillReceiveProps;
-    }()
-  }, {
-    key: 'shouldComponentUpdate',
-    value: function () {
-      function shouldComponentUpdate(nextProps, nextState) {
-        return (0, _reactAddonsShallowCompare2['default'])(this, nextProps, nextState);
-      }
-
-      return shouldComponentUpdate;
-    }()
-  }, {
-    key: 'componentWillUpdate',
-    value: function () {
-      function componentWillUpdate() {
-        var _this2 = this;
-
-        var transitionDuration = this.props.transitionDuration;
-
-        // Calculating the dimensions trigger a DOM repaint which
-        // breaks the CSS transition.
-        // The setTimeout will wait until the transition ends.
-
-        if (this.calendarInfo) {
-          this.setCalendarInfoWidthTimeout = setTimeout(function () {
-            var calendarInfoWidth = _this2.state.calendarInfoWidth;
-
-            var calendarInfoPanelWidth = (0, _calculateDimension2['default'])(_this2.calendarInfo, 'width', true, true);
-            if (calendarInfoWidth !== calendarInfoPanelWidth) {
-              _this2.setState({
-                calendarInfoWidth: calendarInfoPanelWidth
-              });
-            }
-          }, transitionDuration);
-        }
-      }
-
-      return componentWillUpdate;
-    }()
-  }, {
-    key: 'componentDidUpdate',
-    value: function () {
-      function componentDidUpdate(prevProps) {
-        var _props2 = this.props,
-            orientation = _props2.orientation,
-            daySize = _props2.daySize,
-            isFocused = _props2.isFocused,
-            numberOfMonths = _props2.numberOfMonths;
-        var _state = this.state,
-            focusedDate = _state.focusedDate,
-            monthTitleHeight = _state.monthTitleHeight;
-
-
-        if (this.isHorizontal() && (orientation !== prevProps.orientation || daySize !== prevProps.daySize)) {
-          var visibleCalendarWeeks = this.calendarMonthWeeks.slice(1, numberOfMonths + 1);
-          var calendarMonthWeeksHeight = Math.max.apply(Math, [0].concat(_toConsumableArray(visibleCalendarWeeks))) * (daySize - 1);
-          var newMonthHeight = monthTitleHeight + calendarMonthWeeksHeight + 1;
-          this.adjustDayPickerHeight(newMonthHeight);
-        }
-
-        if (!prevProps.isFocused && isFocused && !focusedDate) {
-          this.container.focus();
-        }
-      }
-
-      return componentDidUpdate;
-    }()
-  }, {
-    key: 'componentWillUnmount',
-    value: function () {
-      function componentWillUnmount() {
-        clearTimeout(this.setCalendarInfoWidthTimeout);
-      }
-
-      return componentWillUnmount;
-    }()
-  }, {
-    key: 'onKeyDown',
-    value: function () {
-      function onKeyDown(e) {
-        e.stopPropagation();
-        if (!_constants.MODIFIER_KEY_NAMES.has(e.key)) {
-          this.throttledKeyDown(e);
-        }
-      }
-
-      return onKeyDown;
-    }()
-  }, {
-    key: 'onFinalKeyDown',
-    value: function () {
-      function onFinalKeyDown(e) {
-        this.setState({ withMouseInteractions: false });
-
-        var _props3 = this.props,
-            onBlur = _props3.onBlur,
-            isRTL = _props3.isRTL;
-        var _state2 = this.state,
-            focusedDate = _state2.focusedDate,
-            showKeyboardShortcuts = _state2.showKeyboardShortcuts;
-
-        if (!focusedDate) return;
-
-        var newFocusedDate = focusedDate.clone();
-
-        var didTransitionMonth = false;
-
-        // focus might be anywhere when the keyboard shortcuts panel is opened so we want to
-        // return it to wherever it was before when the panel was opened
-        var activeElement = (0, _getActiveElement2['default'])();
-        var onKeyboardShortcutsPanelClose = function () {
-          function onKeyboardShortcutsPanelClose() {
-            if (activeElement) activeElement.focus();
-          }
-
-          return onKeyboardShortcutsPanelClose;
-        }();
-
-        switch (e.key) {
-          case 'ArrowUp':
-            e.preventDefault();
-            newFocusedDate.subtract(1, 'week');
-            didTransitionMonth = this.maybeTransitionPrevMonth(newFocusedDate);
-            break;
-          case 'ArrowLeft':
-            e.preventDefault();
-            if (isRTL) {
-              newFocusedDate.add(1, 'day');
-            } else {
-              newFocusedDate.subtract(1, 'day');
-            }
-            didTransitionMonth = this.maybeTransitionPrevMonth(newFocusedDate);
-            break;
-          case 'Home':
-            e.preventDefault();
-            newFocusedDate.startOf('week');
-            didTransitionMonth = this.maybeTransitionPrevMonth(newFocusedDate);
-            break;
-          case 'PageUp':
-            e.preventDefault();
-            newFocusedDate.subtract(1, 'month');
-            didTransitionMonth = this.maybeTransitionPrevMonth(newFocusedDate);
-            break;
-
-          case 'ArrowDown':
-            e.preventDefault();
-            newFocusedDate.add(1, 'week');
-            didTransitionMonth = this.maybeTransitionNextMonth(newFocusedDate);
-            break;
-          case 'ArrowRight':
-            e.preventDefault();
-            if (isRTL) {
-              newFocusedDate.subtract(1, 'day');
-            } else {
-              newFocusedDate.add(1, 'day');
-            }
-            didTransitionMonth = this.maybeTransitionNextMonth(newFocusedDate);
-            break;
-          case 'End':
-            e.preventDefault();
-            newFocusedDate.endOf('week');
-            didTransitionMonth = this.maybeTransitionNextMonth(newFocusedDate);
-            break;
-          case 'PageDown':
-            e.preventDefault();
-            newFocusedDate.add(1, 'month');
-            didTransitionMonth = this.maybeTransitionNextMonth(newFocusedDate);
-            break;
-
-          case '?':
-            this.openKeyboardShortcutsPanel(onKeyboardShortcutsPanelClose);
-            break;
-
-          case 'Escape':
-            if (showKeyboardShortcuts) {
-              this.closeKeyboardShortcutsPanel();
-            } else {
-              onBlur();
-            }
-            break;
-
-          default:
-            break;
-        }
-
-        // If there was a month transition, do not update the focused date until the transition has
-        // completed. Otherwise, attempting to focus on a DOM node may interrupt the CSS animation. If
-        // didTransitionMonth is true, the focusedDate gets updated in #updateStateAfterMonthTransition
-        if (!didTransitionMonth) {
-          this.setState({
-            focusedDate: newFocusedDate
-          });
-        }
-      }
-
-      return onFinalKeyDown;
-    }()
-  }, {
-    key: 'onPrevMonthClick',
-    value: function () {
-      function onPrevMonthClick(nextFocusedDate, e) {
-        var _props4 = this.props,
-            daySize = _props4.daySize,
-            isRTL = _props4.isRTL,
-            numberOfMonths = _props4.numberOfMonths;
-        var _state3 = this.state,
-            calendarMonthWidth = _state3.calendarMonthWidth,
-            monthTitleHeight = _state3.monthTitleHeight;
-
-
-        if (e) e.preventDefault();
-
-        var translationValue = void 0;
-        if (this.isVertical()) {
-          var calendarMonthWeeksHeight = this.calendarMonthWeeks[0] * (daySize - 1);
-          translationValue = monthTitleHeight + calendarMonthWeeksHeight + 1;
-        } else if (this.isHorizontal()) {
-          translationValue = calendarMonthWidth;
-          if (isRTL) {
-            translationValue = -2 * calendarMonthWidth;
-          }
-
-          var visibleCalendarWeeks = this.calendarMonthWeeks.slice(0, numberOfMonths);
-          var _calendarMonthWeeksHeight = Math.max.apply(Math, [0].concat(_toConsumableArray(visibleCalendarWeeks))) * (daySize - 1);
-          var newMonthHeight = monthTitleHeight + _calendarMonthWeeksHeight + 1;
-          this.adjustDayPickerHeight(newMonthHeight);
-        }
-
-        this.setState({
-          monthTransition: PREV_TRANSITION,
-          translationValue: translationValue,
-          focusedDate: null,
-          nextFocusedDate: nextFocusedDate
-        });
-      }
-
-      return onPrevMonthClick;
-    }()
-  }, {
-    key: 'onMonthChange',
-    value: function () {
-      function onMonthChange(currentMonth) {
-        this.setCalendarMonthWeeks(currentMonth);
-        this.calculateAndSetDayPickerHeight();
-
-        // Translation value is a hack to force an invisible transition that
-        // properly rerenders the CalendarMonthGrid
-        this.setState({
-          monthTransition: MONTH_SELECTION_TRANSITION,
-          translationValue: 0.00001,
-          focusedDate: null,
-          nextFocusedDate: currentMonth,
-          currentMonth: currentMonth
-        });
-      }
-
-      return onMonthChange;
-    }()
-  }, {
-    key: 'onYearChange',
-    value: function () {
-      function onYearChange(currentMonth) {
-        this.setCalendarMonthWeeks(currentMonth);
-        this.calculateAndSetDayPickerHeight();
-
-        // Translation value is a hack to force an invisible transition that
-        // properly rerenders the CalendarMonthGrid
-        this.setState({
-          monthTransition: YEAR_SELECTION_TRANSITION,
-          translationValue: 0.0001,
-          focusedDate: null,
-          nextFocusedDate: currentMonth,
-          currentMonth: currentMonth
-        });
-      }
-
-      return onYearChange;
-    }()
-  }, {
-    key: 'onNextMonthClick',
-    value: function () {
-      function onNextMonthClick(nextFocusedDate, e) {
-        var _props5 = this.props,
-            isRTL = _props5.isRTL,
-            numberOfMonths = _props5.numberOfMonths,
-            daySize = _props5.daySize;
-        var _state4 = this.state,
-            calendarMonthWidth = _state4.calendarMonthWidth,
-            monthTitleHeight = _state4.monthTitleHeight;
-
-
-        if (e) e.preventDefault();
-
-        var translationValue = void 0;
-
-        if (this.isVertical()) {
-          var firstVisibleMonthWeeks = this.calendarMonthWeeks[1];
-          var calendarMonthWeeksHeight = firstVisibleMonthWeeks * (daySize - 1);
-          translationValue = -(monthTitleHeight + calendarMonthWeeksHeight + 1);
-        }
-
-        if (this.isHorizontal()) {
-          translationValue = -calendarMonthWidth;
-          if (isRTL) {
-            translationValue = 0;
-          }
-
-          var visibleCalendarWeeks = this.calendarMonthWeeks.slice(2, numberOfMonths + 2);
-          var _calendarMonthWeeksHeight2 = Math.max.apply(Math, [0].concat(_toConsumableArray(visibleCalendarWeeks))) * (daySize - 1);
-          var newMonthHeight = monthTitleHeight + _calendarMonthWeeksHeight2 + 1;
-          this.adjustDayPickerHeight(newMonthHeight);
-        }
-
-        this.setState({
-          monthTransition: NEXT_TRANSITION,
-          translationValue: translationValue,
-          focusedDate: null,
-          nextFocusedDate: nextFocusedDate
-        });
-      }
-
-      return onNextMonthClick;
-    }()
-  }, {
-    key: 'getFirstDayOfWeek',
-    value: function () {
-      function getFirstDayOfWeek() {
-        var firstDayOfWeek = this.props.firstDayOfWeek;
-
-        if (firstDayOfWeek == null) {
-          return _moment2['default'].localeData().firstDayOfWeek();
-        }
-
-        return firstDayOfWeek;
-      }
-
-      return getFirstDayOfWeek;
-    }()
-  }, {
-    key: 'getFirstVisibleIndex',
-    value: function () {
-      function getFirstVisibleIndex() {
-        var orientation = this.props.orientation;
-        var monthTransition = this.state.monthTransition;
-
-
-        if (orientation === _constants.VERTICAL_SCROLLABLE) return 0;
-
-        var firstVisibleMonthIndex = 1;
-        if (monthTransition === PREV_TRANSITION) {
-          firstVisibleMonthIndex -= 1;
-        } else if (monthTransition === NEXT_TRANSITION) {
-          firstVisibleMonthIndex += 1;
-        }
-
-        return firstVisibleMonthIndex;
-      }
-
-      return getFirstVisibleIndex;
-    }()
-  }, {
-    key: 'getFocusedDay',
-    value: function () {
-      function getFocusedDay(newMonth) {
-        var _props6 = this.props,
-            getFirstFocusableDay = _props6.getFirstFocusableDay,
-            numberOfMonths = _props6.numberOfMonths;
-
-
-        var focusedDate = void 0;
-        if (getFirstFocusableDay) {
-          focusedDate = getFirstFocusableDay(newMonth);
-        }
-
-        if (newMonth && (!focusedDate || !(0, _isDayVisible2['default'])(focusedDate, newMonth, numberOfMonths))) {
-          focusedDate = newMonth.clone().startOf('month');
-        }
-
-        return focusedDate;
-      }
-
-      return getFocusedDay;
-    }()
-  }, {
-    key: 'setMonthTitleHeight',
-    value: function () {
-      function setMonthTitleHeight(monthTitleHeight) {
-        var _this3 = this;
-
-        this.setState({
-          monthTitleHeight: monthTitleHeight
-        }, function () {
-          _this3.calculateAndSetDayPickerHeight();
-        });
-      }
-
-      return setMonthTitleHeight;
-    }()
-  }, {
-    key: 'setCalendarMonthWeeks',
-    value: function () {
-      function setCalendarMonthWeeks(currentMonth) {
-        var numberOfMonths = this.props.numberOfMonths;
-
-
-        this.calendarMonthWeeks = [];
-        var month = currentMonth.clone().subtract(1, 'months');
-        var firstDayOfWeek = this.getFirstDayOfWeek();
-        for (var i = 0; i < numberOfMonths + 2; i += 1) {
-          var numberOfWeeks = (0, _getNumberOfCalendarMonthWeeks2['default'])(month, firstDayOfWeek);
-          this.calendarMonthWeeks.push(numberOfWeeks);
-          month = month.add(1, 'months');
-        }
-      }
-
-      return setCalendarMonthWeeks;
-    }()
-  }, {
-    key: 'setContainerRef',
-    value: function () {
-      function setContainerRef(ref) {
-        this.container = ref;
-      }
-
-      return setContainerRef;
-    }()
-  }, {
-    key: 'setCalendarInfoRef',
-    value: function () {
-      function setCalendarInfoRef(ref) {
-        this.calendarInfo = ref;
-      }
-
-      return setCalendarInfoRef;
-    }()
-  }, {
-    key: 'setTransitionContainerRef',
-    value: function () {
-      function setTransitionContainerRef(ref) {
-        this.transitionContainer = ref;
-      }
-
-      return setTransitionContainerRef;
-    }()
-  }, {
-    key: 'maybeTransitionNextMonth',
-    value: function () {
-      function maybeTransitionNextMonth(newFocusedDate) {
-        var numberOfMonths = this.props.numberOfMonths;
-        var _state5 = this.state,
-            currentMonth = _state5.currentMonth,
-            focusedDate = _state5.focusedDate;
-
-
-        var newFocusedDateMonth = newFocusedDate.month();
-        var focusedDateMonth = focusedDate.month();
-        var isNewFocusedDateVisible = (0, _isDayVisible2['default'])(newFocusedDate, currentMonth, numberOfMonths);
-        if (newFocusedDateMonth !== focusedDateMonth && !isNewFocusedDateVisible) {
-          this.onNextMonthClick(newFocusedDate);
-          return true;
-        }
-
-        return false;
-      }
-
-      return maybeTransitionNextMonth;
-    }()
-  }, {
-    key: 'maybeTransitionPrevMonth',
-    value: function () {
-      function maybeTransitionPrevMonth(newFocusedDate) {
-        var numberOfMonths = this.props.numberOfMonths;
-        var _state6 = this.state,
-            currentMonth = _state6.currentMonth,
-            focusedDate = _state6.focusedDate;
-
-
-        var newFocusedDateMonth = newFocusedDate.month();
-        var focusedDateMonth = focusedDate.month();
-        var isNewFocusedDateVisible = (0, _isDayVisible2['default'])(newFocusedDate, currentMonth, numberOfMonths);
-        if (newFocusedDateMonth !== focusedDateMonth && !isNewFocusedDateVisible) {
-          this.onPrevMonthClick(newFocusedDate);
-          return true;
-        }
-
-        return false;
-      }
-
-      return maybeTransitionPrevMonth;
-    }()
-  }, {
-    key: 'multiplyScrollableMonths',
-    value: function () {
-      function multiplyScrollableMonths(e) {
-        var onMultiplyScrollableMonths = this.props.onMultiplyScrollableMonths;
-
-        if (e) e.preventDefault();
-
-        if (onMultiplyScrollableMonths) onMultiplyScrollableMonths(e);
-
-        this.setState(function (_ref) {
-          var scrollableMonthMultiple = _ref.scrollableMonthMultiple;
-          return {
-            scrollableMonthMultiple: scrollableMonthMultiple + 1
-          };
-        });
-      }
-
-      return multiplyScrollableMonths;
-    }()
-  }, {
-    key: 'isHorizontal',
-    value: function () {
-      function isHorizontal() {
-        var orientation = this.props.orientation;
-
-        return orientation === _constants.HORIZONTAL_ORIENTATION;
-      }
-
-      return isHorizontal;
-    }()
-  }, {
-    key: 'isVertical',
-    value: function () {
-      function isVertical() {
-        var orientation = this.props.orientation;
-
-        return orientation === _constants.VERTICAL_ORIENTATION || orientation === _constants.VERTICAL_SCROLLABLE;
-      }
-
-      return isVertical;
-    }()
-  }, {
-    key: 'updateStateAfterMonthTransition',
-    value: function () {
-      function updateStateAfterMonthTransition() {
-        var _this4 = this;
-
-        var _props7 = this.props,
-            onPrevMonthClick = _props7.onPrevMonthClick,
-            onNextMonthClick = _props7.onNextMonthClick,
-            numberOfMonths = _props7.numberOfMonths,
-            onMonthChange = _props7.onMonthChange,
-            onYearChange = _props7.onYearChange,
-            isRTL = _props7.isRTL;
-        var _state7 = this.state,
-            currentMonth = _state7.currentMonth,
-            monthTransition = _state7.monthTransition,
-            focusedDate = _state7.focusedDate,
-            nextFocusedDate = _state7.nextFocusedDate,
-            withMouseInteractions = _state7.withMouseInteractions,
-            calendarMonthWidth = _state7.calendarMonthWidth;
-
-
-        if (!monthTransition) return;
-
-        var newMonth = currentMonth.clone();
-        var firstDayOfWeek = this.getFirstDayOfWeek();
-        if (monthTransition === PREV_TRANSITION) {
-          newMonth.subtract(1, 'month');
-          if (onPrevMonthClick) onPrevMonthClick(newMonth);
-          var newInvisibleMonth = newMonth.clone().subtract(1, 'month');
-          var numberOfWeeks = (0, _getNumberOfCalendarMonthWeeks2['default'])(newInvisibleMonth, firstDayOfWeek);
-          this.calendarMonthWeeks = [numberOfWeeks].concat(_toConsumableArray(this.calendarMonthWeeks.slice(0, -1)));
-        } else if (monthTransition === NEXT_TRANSITION) {
-          newMonth.add(1, 'month');
-          if (onNextMonthClick) onNextMonthClick(newMonth);
-          var _newInvisibleMonth = newMonth.clone().add(numberOfMonths, 'month');
-          var _numberOfWeeks = (0, _getNumberOfCalendarMonthWeeks2['default'])(_newInvisibleMonth, firstDayOfWeek);
-          this.calendarMonthWeeks = [].concat(_toConsumableArray(this.calendarMonthWeeks.slice(1)), [_numberOfWeeks]);
-        } else if (monthTransition === MONTH_SELECTION_TRANSITION) {
-          if (onMonthChange) onMonthChange(newMonth);
-        } else if (monthTransition === YEAR_SELECTION_TRANSITION) {
-          if (onYearChange) onYearChange(newMonth);
-        }
-
-        var newFocusedDate = null;
-        if (nextFocusedDate) {
-          newFocusedDate = nextFocusedDate;
-        } else if (!focusedDate && !withMouseInteractions) {
-          newFocusedDate = this.getFocusedDay(newMonth);
-        }
-
-        this.setState({
-          currentMonth: newMonth,
-          monthTransition: null,
-          translationValue: isRTL && this.isHorizontal() ? -calendarMonthWidth : 0,
-          nextFocusedDate: null,
-          focusedDate: newFocusedDate
-        }, function () {
-          // we don't want to focus on the relevant calendar day after a month transition
-          // if the user is navigating around using a mouse
-          if (withMouseInteractions) {
-            var activeElement = (0, _getActiveElement2['default'])();
-            if (activeElement && activeElement !== document.body && _this4.container.contains(activeElement)) {
-              activeElement.blur();
-            }
-          }
-        });
-      }
-
-      return updateStateAfterMonthTransition;
-    }()
-  }, {
-    key: 'adjustDayPickerHeight',
-    value: function () {
-      function adjustDayPickerHeight(newMonthHeight) {
-        var _this5 = this;
-
-        var monthHeight = newMonthHeight + MONTH_PADDING;
-        if (monthHeight !== this.calendarMonthGridHeight) {
-          this.transitionContainer.style.height = String(monthHeight) + 'px';
-          if (!this.calendarMonthGridHeight) {
-            setTimeout(function () {
-              _this5.setState({ hasSetHeight: true });
-            }, 0);
-          }
-          this.calendarMonthGridHeight = monthHeight;
-        }
-      }
-
-      return adjustDayPickerHeight;
-    }()
-  }, {
-    key: 'calculateAndSetDayPickerHeight',
-    value: function () {
-      function calculateAndSetDayPickerHeight() {
-        var _props8 = this.props,
-            daySize = _props8.daySize,
-            numberOfMonths = _props8.numberOfMonths;
-        var monthTitleHeight = this.state.monthTitleHeight;
-
-
-        var visibleCalendarWeeks = this.calendarMonthWeeks.slice(1, numberOfMonths + 1);
-        var calendarMonthWeeksHeight = Math.max.apply(Math, [0].concat(_toConsumableArray(visibleCalendarWeeks))) * (daySize - 1);
-        var newMonthHeight = monthTitleHeight + calendarMonthWeeksHeight + 1;
-
-        if (this.isHorizontal()) {
-          this.adjustDayPickerHeight(newMonthHeight);
-        }
-      }
-
-      return calculateAndSetDayPickerHeight;
-    }()
-  }, {
-    key: 'openKeyboardShortcutsPanel',
-    value: function () {
-      function openKeyboardShortcutsPanel(onCloseCallBack) {
-        this.setState({
-          showKeyboardShortcuts: true,
-          onKeyboardShortcutsPanelClose: onCloseCallBack
-        });
-      }
-
-      return openKeyboardShortcutsPanel;
-    }()
-  }, {
-    key: 'closeKeyboardShortcutsPanel',
-    value: function () {
-      function closeKeyboardShortcutsPanel() {
-        var onKeyboardShortcutsPanelClose = this.state.onKeyboardShortcutsPanelClose;
-
-
-        if (onKeyboardShortcutsPanelClose) {
-          onKeyboardShortcutsPanelClose();
-        }
-
-        this.setState({
-          onKeyboardShortcutsPanelClose: null,
-          showKeyboardShortcuts: false
-        });
-      }
-
-      return closeKeyboardShortcutsPanel;
-    }()
-  }, {
-    key: 'renderNavigation',
-    value: function () {
-      function renderNavigation() {
-        var _this6 = this;
-
-        var _props9 = this.props,
-            navPrev = _props9.navPrev,
-            navNext = _props9.navNext,
-            noNavButtons = _props9.noNavButtons,
-            orientation = _props9.orientation,
-            phrases = _props9.phrases,
-            isRTL = _props9.isRTL;
-
-
-        if (noNavButtons) {
-          return null;
-        }
-
-        var onNextMonthClick = void 0;
-        if (orientation === _constants.VERTICAL_SCROLLABLE) {
-          onNextMonthClick = this.multiplyScrollableMonths;
-        } else {
-          onNextMonthClick = function () {
-            function onNextMonthClick(e) {
-              _this6.onNextMonthClick(null, e);
-            }
-
-            return onNextMonthClick;
-          }();
-        }
-
-        return _react2['default'].createElement(_DayPickerNavigation2['default'], {
-          onPrevMonthClick: function () {
-            function onPrevMonthClick(e) {
-              _this6.onPrevMonthClick(null, e);
-            }
-
-            return onPrevMonthClick;
-          }(),
-          onNextMonthClick: onNextMonthClick,
-          navPrev: navPrev,
-          navNext: navNext,
-          orientation: orientation,
-          phrases: phrases,
-          isRTL: isRTL
-        });
-      }
-
-      return renderNavigation;
-    }()
-  }, {
-    key: 'renderWeekHeader',
-    value: function () {
-      function renderWeekHeader(index) {
-        var _props10 = this.props,
-            daySize = _props10.daySize,
-            horizontalMonthPadding = _props10.horizontalMonthPadding,
-            orientation = _props10.orientation,
-            weekDayFormat = _props10.weekDayFormat,
-            styles = _props10.styles;
-        var calendarMonthWidth = this.state.calendarMonthWidth;
-
-        var verticalScrollable = orientation === _constants.VERTICAL_SCROLLABLE;
-        var horizontalStyle = {
-          left: index * calendarMonthWidth
-        };
-        var verticalStyle = {
-          marginLeft: -calendarMonthWidth / 2
-        };
-
-        var weekHeaderStyle = {}; // no styles applied to the vertical-scrollable orientation
-        if (this.isHorizontal()) {
-          weekHeaderStyle = horizontalStyle;
-        } else if (this.isVertical() && !verticalScrollable) {
-          weekHeaderStyle = verticalStyle;
-        }
-
-        var firstDayOfWeek = this.getFirstDayOfWeek();
-
-        var header = [];
-        for (var i = 0; i < 7; i += 1) {
-          header.push(_react2['default'].createElement(
-            'li',
-            _extends({ key: i }, (0, _reactWithStyles.css)(styles.DayPicker_weekHeader_li, { width: daySize })),
-            _react2['default'].createElement(
-              'small',
-              null,
-              (0, _moment2['default'])().day((i + firstDayOfWeek) % 7).format(weekDayFormat)
-            )
-          ));
-        }
-
-        return _react2['default'].createElement(
-          'div',
-          _extends({}, (0, _reactWithStyles.css)(styles.DayPicker_weekHeader, this.isVertical() && styles.DayPicker_weekHeader__vertical, verticalScrollable && styles.DayPicker_weekHeader__verticalScrollable, weekHeaderStyle, { padding: '0 ' + String(horizontalMonthPadding) + 'px' }), {
-            key: 'week-' + String(index)
-          }),
-          _react2['default'].createElement(
-            'ul',
-            (0, _reactWithStyles.css)(styles.DayPicker_weekHeader_ul),
-            header
-          )
-        );
-      }
-
-      return renderWeekHeader;
-    }()
-  }, {
-    key: 'render',
-    value: function () {
-      function render() {
-        var _this7 = this;
-
-        var _state8 = this.state,
-            calendarMonthWidth = _state8.calendarMonthWidth,
-            currentMonth = _state8.currentMonth,
-            monthTransition = _state8.monthTransition,
-            translationValue = _state8.translationValue,
-            scrollableMonthMultiple = _state8.scrollableMonthMultiple,
-            focusedDate = _state8.focusedDate,
-            showKeyboardShortcuts = _state8.showKeyboardShortcuts,
-            isTouch = _state8.isTouchDevice,
-            hasSetHeight = _state8.hasSetHeight,
-            calendarInfoWidth = _state8.calendarInfoWidth,
-            monthTitleHeight = _state8.monthTitleHeight;
-        var _props11 = this.props,
-            enableOutsideDays = _props11.enableOutsideDays,
-            numberOfMonths = _props11.numberOfMonths,
-            orientation = _props11.orientation,
-            modifiers = _props11.modifiers,
-            withPortal = _props11.withPortal,
-            onDayClick = _props11.onDayClick,
-            onDayMouseEnter = _props11.onDayMouseEnter,
-            onDayMouseLeave = _props11.onDayMouseLeave,
-            firstDayOfWeek = _props11.firstDayOfWeek,
-            renderMonthText = _props11.renderMonthText,
-            renderCalendarDay = _props11.renderCalendarDay,
-            renderDayContents = _props11.renderDayContents,
-            renderCalendarInfo = _props11.renderCalendarInfo,
-            renderMonthElement = _props11.renderMonthElement,
-            calendarInfoPosition = _props11.calendarInfoPosition,
-            hideKeyboardShortcutsPanel = _props11.hideKeyboardShortcutsPanel,
-            onOutsideClick = _props11.onOutsideClick,
-            monthFormat = _props11.monthFormat,
-            daySize = _props11.daySize,
-            isFocused = _props11.isFocused,
-            isRTL = _props11.isRTL,
-            styles = _props11.styles,
-            theme = _props11.theme,
-            phrases = _props11.phrases,
-            verticalHeight = _props11.verticalHeight,
-            dayAriaLabelFormat = _props11.dayAriaLabelFormat,
-            noBorder = _props11.noBorder,
-            transitionDuration = _props11.transitionDuration,
-            verticalBorderSpacing = _props11.verticalBorderSpacing,
-            horizontalMonthPadding = _props11.horizontalMonthPadding;
-        var dayPickerHorizontalPadding = theme.reactDates.spacing.dayPickerHorizontalPadding;
-
-
-        var isHorizontal = this.isHorizontal();
-
-        var numOfWeekHeaders = this.isVertical() ? 1 : numberOfMonths;
-        var weekHeaders = [];
-        for (var i = 0; i < numOfWeekHeaders; i += 1) {
-          weekHeaders.push(this.renderWeekHeader(i));
-        }
-
-        var verticalScrollable = orientation === _constants.VERTICAL_SCROLLABLE;
-        var height = void 0;
-        if (isHorizontal) {
-          height = this.calendarMonthGridHeight;
-        } else if (this.isVertical() && !verticalScrollable && !withPortal) {
-          // If the user doesn't set a desired height,
-          // we default back to this kind of made-up value that generally looks good
-          height = verticalHeight || 1.75 * calendarMonthWidth;
-        }
-
-        var isCalendarMonthGridAnimating = monthTransition !== null;
-
-        var shouldFocusDate = !isCalendarMonthGridAnimating && isFocused;
-
-        var keyboardShortcutButtonLocation = _DayPickerKeyboardShortcuts.BOTTOM_RIGHT;
-        if (this.isVertical()) {
-          keyboardShortcutButtonLocation = withPortal ? _DayPickerKeyboardShortcuts.TOP_LEFT : _DayPickerKeyboardShortcuts.TOP_RIGHT;
-        }
-
-        var shouldAnimateHeight = isHorizontal && hasSetHeight;
-
-        var calendarInfoPositionTop = calendarInfoPosition === _constants.INFO_POSITION_TOP;
-        var calendarInfoPositionBottom = calendarInfoPosition === _constants.INFO_POSITION_BOTTOM;
-        var calendarInfoPositionBefore = calendarInfoPosition === _constants.INFO_POSITION_BEFORE;
-        var calendarInfoPositionAfter = calendarInfoPosition === _constants.INFO_POSITION_AFTER;
-        var calendarInfoIsInline = calendarInfoPositionBefore || calendarInfoPositionAfter;
-
-        var calendarInfo = renderCalendarInfo && _react2['default'].createElement(
-          'div',
-          _extends({
-            ref: this.setCalendarInfoRef
-          }, (0, _reactWithStyles.css)(calendarInfoIsInline && styles.DayPicker_calendarInfo__horizontal)),
-          renderCalendarInfo()
-        );
-
-        var calendarInfoPanelWidth = renderCalendarInfo && calendarInfoIsInline ? calendarInfoWidth : 0;
-
-        var firstVisibleMonthIndex = this.getFirstVisibleIndex();
-        var wrapperHorizontalWidth = calendarMonthWidth * numberOfMonths + 2 * dayPickerHorizontalPadding;
-        // Adding `1px` because of whitespace between 2 inline-block
-        var fullHorizontalWidth = wrapperHorizontalWidth + calendarInfoPanelWidth + 1;
-
-        var transitionContainerStyle = {
-          width: isHorizontal && wrapperHorizontalWidth,
-          height: height
-        };
-
-        var dayPickerWrapperStyle = {
-          width: isHorizontal && wrapperHorizontalWidth
-        };
-
-        var dayPickerStyle = {
-          width: isHorizontal && fullHorizontalWidth,
-
-          // These values are to center the datepicker (approximately) on the page
-          marginLeft: isHorizontal && withPortal ? -fullHorizontalWidth / 2 : null,
-          marginTop: isHorizontal && withPortal ? -calendarMonthWidth / 2 : null
-        };
-
-        return _react2['default'].createElement(
-          'div',
-          _extends({
-            role: 'application',
-            'aria-label': phrases.calendarLabel
-          }, (0, _reactWithStyles.css)(styles.DayPicker, isHorizontal && styles.DayPicker__horizontal, verticalScrollable && styles.DayPicker__verticalScrollable, isHorizontal && withPortal && styles.DayPicker_portal__horizontal, this.isVertical() && withPortal && styles.DayPicker_portal__vertical, dayPickerStyle, !monthTitleHeight && styles.DayPicker__hidden, !noBorder && styles.DayPicker__withBorder)),
-          _react2['default'].createElement(
-            _reactOutsideClickHandler2['default'],
-            { onOutsideClick: onOutsideClick },
-            (calendarInfoPositionTop || calendarInfoPositionBefore) && calendarInfo,
-            _react2['default'].createElement(
-              'div',
-              (0, _reactWithStyles.css)(dayPickerWrapperStyle, calendarInfoIsInline && isHorizontal && styles.DayPicker_wrapper__horizontal),
-              _react2['default'].createElement(
-                'div',
-                _extends({}, (0, _reactWithStyles.css)(styles.DayPicker_weekHeaders, isHorizontal && styles.DayPicker_weekHeaders__horizontal), {
-                  'aria-hidden': 'true',
-                  role: 'presentation'
-                }),
-                weekHeaders
-              ),
-              _react2['default'].createElement(
-                'div',
-                _extends({}, (0, _reactWithStyles.css)(styles.DayPicker_focusRegion), {
-                  ref: this.setContainerRef,
-                  onClick: function () {
-                    function onClick(e) {
-                      e.stopPropagation();
-                    }
-
-                    return onClick;
-                  }(),
-                  onKeyDown: this.onKeyDown,
-                  onMouseUp: function () {
-                    function onMouseUp() {
-                      _this7.setState({ withMouseInteractions: true });
-                    }
-
-                    return onMouseUp;
-                  }(),
-                  role: 'region',
-                  tabIndex: -1
-                }),
-                !verticalScrollable && this.renderNavigation(),
-                _react2['default'].createElement(
-                  'div',
-                  _extends({}, (0, _reactWithStyles.css)(styles.DayPicker_transitionContainer, shouldAnimateHeight && styles.DayPicker_transitionContainer__horizontal, this.isVertical() && styles.DayPicker_transitionContainer__vertical, verticalScrollable && styles.DayPicker_transitionContainer__verticalScrollable, transitionContainerStyle), {
-                    ref: this.setTransitionContainerRef
-                  }),
-                  _react2['default'].createElement(_CalendarMonthGrid2['default'], {
-                    setMonthTitleHeight: !monthTitleHeight ? this.setMonthTitleHeight : undefined,
-                    translationValue: translationValue,
-                    enableOutsideDays: enableOutsideDays,
-                    firstVisibleMonthIndex: firstVisibleMonthIndex,
-                    initialMonth: currentMonth,
-                    isAnimating: isCalendarMonthGridAnimating,
-                    modifiers: modifiers,
-                    orientation: orientation,
-                    numberOfMonths: numberOfMonths * scrollableMonthMultiple,
-                    onDayClick: onDayClick,
-                    onDayMouseEnter: onDayMouseEnter,
-                    onDayMouseLeave: onDayMouseLeave,
-                    onMonthChange: this.onMonthChange,
-                    onYearChange: this.onYearChange,
-                    renderMonthText: renderMonthText,
-                    renderCalendarDay: renderCalendarDay,
-                    renderDayContents: renderDayContents,
-                    renderMonthElement: renderMonthElement,
-                    onMonthTransitionEnd: this.updateStateAfterMonthTransition,
-                    monthFormat: monthFormat,
-                    daySize: daySize,
-                    firstDayOfWeek: firstDayOfWeek,
-                    isFocused: shouldFocusDate,
-                    focusedDate: focusedDate,
-                    phrases: phrases,
-                    isRTL: isRTL,
-                    dayAriaLabelFormat: dayAriaLabelFormat,
-                    transitionDuration: transitionDuration,
-                    verticalBorderSpacing: verticalBorderSpacing,
-                    horizontalMonthPadding: horizontalMonthPadding
-                  }),
-                  verticalScrollable && this.renderNavigation()
-                ),
-                !isTouch && !hideKeyboardShortcutsPanel && _react2['default'].createElement(_DayPickerKeyboardShortcuts2['default'], {
-                  block: this.isVertical() && !withPortal,
-                  buttonLocation: keyboardShortcutButtonLocation,
-                  showKeyboardShortcutsPanel: showKeyboardShortcuts,
-                  openKeyboardShortcutsPanel: this.openKeyboardShortcutsPanel,
-                  closeKeyboardShortcutsPanel: this.closeKeyboardShortcutsPanel,
-                  phrases: phrases
-                })
-              )
-            ),
-            (calendarInfoPositionBottom || calendarInfoPositionAfter) && calendarInfo
-          )
-        );
-      }
-
-      return render;
-    }()
-  }]);
-
-  return DayPicker;
-}(_react2['default'].Component);
-
-DayPicker.propTypes = propTypes;
-DayPicker.defaultProps = defaultProps;
-
-exports.PureDayPicker = DayPicker;
-exports['default'] = (0, _reactWithStyles.withStyles)(function (_ref2) {
-  var _ref2$reactDates = _ref2.reactDates,
-      color = _ref2$reactDates.color,
-      font = _ref2$reactDates.font,
-      noScrollBarOnVerticalScrollable = _ref2$reactDates.noScrollBarOnVerticalScrollable,
-      spacing = _ref2$reactDates.spacing,
-      zIndex = _ref2$reactDates.zIndex;
-  return {
-    DayPicker: {
-      background: color.background,
-      position: 'relative',
-      textAlign: 'left'
-    },
-
-    DayPicker__horizontal: {
-      background: color.background
-    },
-
-    DayPicker__verticalScrollable: {
-      height: '100%'
-    },
-
-    DayPicker__hidden: {
-      visibility: 'hidden'
-    },
-
-    DayPicker__withBorder: {
-      boxShadow: '0 2px 6px rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.07)',
-      borderRadius: 3
-    },
-
-    DayPicker_portal__horizontal: {
-      boxShadow: 'none',
-      position: 'absolute',
-      left: '50%',
-      top: '50%'
-    },
-
-    DayPicker_portal__vertical: {
-      position: 'initial'
-    },
-
-    DayPicker_focusRegion: {
-      outline: 'none'
-    },
-
-    DayPicker_calendarInfo__horizontal: {
-      display: 'inline-block',
-      verticalAlign: 'top'
-    },
-
-    DayPicker_wrapper__horizontal: {
-      display: 'inline-block',
-      verticalAlign: 'top'
-    },
-
-    DayPicker_weekHeaders: {
-      position: 'relative'
-    },
-
-    DayPicker_weekHeaders__horizontal: {
-      marginLeft: spacing.dayPickerHorizontalPadding
-    },
-
-    DayPicker_weekHeader: {
-      color: color.placeholderText,
-      position: 'absolute',
-      top: 62,
-      zIndex: zIndex + 2,
-      textAlign: 'left'
-    },
-
-    DayPicker_weekHeader__vertical: {
-      left: '50%'
-    },
-
-    DayPicker_weekHeader__verticalScrollable: {
-      top: 0,
-      display: 'table-row',
-      borderBottom: '1px solid ' + String(color.core.border),
-      background: color.background,
-      marginLeft: 0,
-      left: 0,
-      width: '100%',
-      textAlign: 'center'
-    },
-
-    DayPicker_weekHeader_ul: {
-      listStyle: 'none',
-      margin: '1px 0',
-      paddingLeft: 0,
-      paddingRight: 0,
-      fontSize: font.size
-    },
-
-    DayPicker_weekHeader_li: {
-      display: 'inline-block',
-      textAlign: 'center'
-    },
-
-    DayPicker_transitionContainer: {
-      position: 'relative',
-      overflow: 'hidden',
-      borderRadius: 3
-    },
-
-    DayPicker_transitionContainer__horizontal: {
-      transition: 'height 0.2s ease-in-out'
-    },
-
-    DayPicker_transitionContainer__vertical: {
-      width: '100%'
-    },
-
-    DayPicker_transitionContainer__verticalScrollable: (0, _object2['default'])({
-      paddingTop: 20,
-      height: '100%',
-      position: 'absolute',
-      top: 0,
-      bottom: 0,
-      right: 0,
-      left: 0,
-      overflowY: 'scroll'
-    }, noScrollBarOnVerticalScrollable && {
-      '-webkitOverflowScrolling': 'touch',
-      '::-webkit-scrollbar': {
-        '-webkit-appearance': 'none',
-        display: 'none'
-      }
-    })
-  };
-})(DayPicker);
-
-/***/ }),
-
-/***/ "NykK":
-/***/ (function(module, exports, __webpack_require__) {
-
-var Symbol = __webpack_require__("nmnc"),
-    getRawTag = __webpack_require__("AP2z"),
-    objectToString = __webpack_require__("KfNM");
-
-/** `Object#toString` result references. */
-var nullTag = '[object Null]',
-    undefinedTag = '[object Undefined]';
-
-/** Built-in value references. */
-var symToStringTag = Symbol ? Symbol.toStringTag : undefined;
-
-/**
- * The base implementation of `getTag` without fallbacks for buggy environments.
- *
- * @private
- * @param {*} value The value to query.
- * @returns {string} Returns the `toStringTag`.
- */
-function baseGetTag(value) {
-  if (value == null) {
-    return value === undefined ? undefinedTag : nullTag;
-  }
-  return (symToStringTag && symToStringTag in Object(value))
-    ? getRawTag(value)
-    : objectToString(value);
-}
-
-module.exports = baseGetTag;
-
-
-/***/ }),
-
-/***/ "Nym8":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return getActiveElement; });
-/* harmony import */ var _getDocument_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("ouKs");
-
-
-/**
- * Returns `element.ownerDocument.activeElement`.
- */
-
-function getActiveElement(element) {
-  var _getDocument = Object(_getDocument_js__WEBPACK_IMPORTED_MODULE_0__[/* getDocument */ "a"])(element),
-      activeElement = _getDocument.activeElement;
-
-  if (!(activeElement !== null && activeElement !== void 0 && activeElement.nodeName)) {
-    // In IE11, activeElement might be an empty object if we're interacting
-    // with elements inside of an iframe.
-    return null;
-  }
-
-  return activeElement;
-}
-
-
-
-
-/***/ }),
-
-/***/ "Ohaz":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getNamespace; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return getConnectedNamespace; });
-/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("tQ+x");
-/**
- * Internal dependencies
- */
-
-/**
- * Creates a dedicated context namespace HTML attribute for components.
- * ns is short for "namespace"
- *
- * @example
- * ```jsx
- * <div {...ns('Container')} />
- * ```
- *
- * @param {string} componentName The name for the component.
- * @return {Record<string, any>} A props object with the namespaced HTML attribute.
- */
-
-function getNamespace(componentName) {
-  return {
-    [_constants__WEBPACK_IMPORTED_MODULE_0__[/* COMPONENT_NAMESPACE */ "a"]]: componentName
-  };
-}
-/**
- * Creates a dedicated connected context namespace HTML attribute for components.
- * ns is short for "namespace"
- *
- * @example
- * ```jsx
- * <div {...cns()} />
- * ```
- *
- * @return {Record<string, any>} A props object with the namespaced HTML attribute.
- */
-
-function getConnectedNamespace() {
-  return {
-    [_constants__WEBPACK_IMPORTED_MODULE_0__[/* CONNECTED_NAMESPACE */ "b"]]: true
-  };
-}
-
-
-/***/ }),
-
-/***/ "PJYZ":
-/***/ (function(module, exports) {
-
-function _assertThisInitialized(self) {
-  if (self === void 0) {
-    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
-  }
-
-  return self;
-}
-
-module.exports = _assertThisInitialized;
-module.exports["default"] = module.exports, module.exports.__esModule = true;
-
-/***/ }),
-
-/***/ "PcHe":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return hasFocusWithin; });
-/* harmony import */ var _getActiveElement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("Nym8");
-/* harmony import */ var _contains_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("utzN");
-
-
-
-
-/**
- * Checks if `element` has focus within. Elements that are referenced by
- * `aria-activedescendant` are also considered.
- *
- * @example
- * import { hasFocusWithin } from "reakit-utils";
- *
- * hasFocusWithin(document.getElementById("id"));
- */
-
-function hasFocusWithin(element) {
-  var activeElement = Object(_getActiveElement_js__WEBPACK_IMPORTED_MODULE_0__[/* getActiveElement */ "a"])(element);
-  if (!activeElement) return false;
-  if (Object(_contains_js__WEBPACK_IMPORTED_MODULE_1__[/* contains */ "a"])(element, activeElement)) return true;
-  var activeDescendant = activeElement.getAttribute("aria-activedescendant");
-  if (!activeDescendant) return false;
-  if (activeDescendant === element.id) return true;
-  return !!element.querySelector("#" + activeDescendant);
-}
-
-
-
-
-/***/ }),
-
-/***/ "Pjai":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var ToPrimitive = __webpack_require__("vLdR");
-
-// http://262.ecma-international.org/5.1/#sec-9.3
-
-module.exports = function ToNumber(value) {
-	var prim = ToPrimitive(value, Number);
-	if (typeof prim !== 'string') {
-		return +prim; // eslint-disable-line no-implicit-coercion
-	}
-
-	// eslint-disable-next-line no-control-regex
-	var trimmed = prim.replace(/^[ \t\x0b\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u0085]+|[ \t\x0b\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u0085]+$/g, '');
-	if ((/^0[ob]|^[+-]0x/).test(trimmed)) {
-		return NaN;
-	}
-
-	return +trimmed; // eslint-disable-line no-implicit-coercion
-};
-
-
-/***/ }),
-
-/***/ "Pq96":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports['default'] = isPrevMonth;
-
-var _moment = __webpack_require__("wy2R");
-
-var _moment2 = _interopRequireDefault(_moment);
-
-var _isSameMonth = __webpack_require__("ulUS");
-
-var _isSameMonth2 = _interopRequireDefault(_isSameMonth);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-function isPrevMonth(a, b) {
-  if (!_moment2['default'].isMoment(a) || !_moment2['default'].isMoment(b)) return false;
-  return (0, _isSameMonth2['default'])(a.clone().subtract(1, 'month'), b);
-}
-
-/***/ }),
-
-/***/ "PrET":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var bind = __webpack_require__("D3zA");
-var GetIntrinsic = __webpack_require__("AM7I");
-
-var $apply = GetIntrinsic('%Function.prototype.apply%');
-var $call = GetIntrinsic('%Function.prototype.call%');
-var $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);
-
-var $defineProperty = GetIntrinsic('%Object.defineProperty%', true);
-
-if ($defineProperty) {
-	try {
-		$defineProperty({}, 'a', { value: 1 });
-	} catch (e) {
-		// IE 8 has a broken defineProperty
-		$defineProperty = null;
-	}
-}
-
-module.exports = function callBind() {
-	return $reflectApply(bind, $call, arguments);
-};
-
-var applyBind = function applyBind() {
-	return $reflectApply(bind, $apply, arguments);
-};
-
-if ($defineProperty) {
-	$defineProperty(module.exports, 'apply', { value: applyBind });
-} else {
-	module.exports.apply = applyBind;
-}
-
-
-/***/ }),
-
-/***/ "Ptb8":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return isObject; });
-/**
- * Checks whether `arg` is an object or not.
- *
- * @returns {boolean}
- */
-function isObject(arg) {
-  return typeof arg === "object" && arg != null;
-}
-
-
-
-
-/***/ }),
-
-/***/ "Q4Sy":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
-/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
-
-
-/**
- * WordPress dependencies
- */
-
-const plus = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
-  xmlns: "http://www.w3.org/2000/svg",
-  viewBox: "0 0 24 24"
-}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
-  d: "M18 11.2h-5.2V6h-1.6v5.2H6v1.6h5.2V18h1.6v-5.2H18z"
-}));
-/* harmony default export */ __webpack_exports__["a"] = (plus);
-
-
-/***/ }),
-
-/***/ "QEu6":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var CHANNEL = exports.CHANNEL = '__direction__';
-
-var DIRECTIONS = exports.DIRECTIONS = {
-  LTR: 'ltr',
-  RTL: 'rtl'
-};
-
-/***/ }),
-
-/***/ "QIyF":
-/***/ (function(module, exports, __webpack_require__) {
-
-var root = __webpack_require__("Kz5y");
-
-/**
- * Gets the timestamp of the number of milliseconds that have elapsed since
- * the Unix epoch (1 January 1970 00:00:00 UTC).
- *
- * @static
- * @memberOf _
- * @since 2.4.0
- * @category Date
- * @returns {number} Returns the timestamp.
- * @example
- *
- * _.defer(function(stamp) {
- *   console.log(_.now() - stamp);
- * }, _.now());
- * // => Logs the number of milliseconds it took for the deferred invocation.
- */
-var now = function() {
-  return root.Date.now();
-};
-
-module.exports = now;
-
-
-/***/ }),
-
-/***/ "Qmvf":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var GetIntrinsic = __webpack_require__("rZ7t");
-
-var has = __webpack_require__("oNNP");
-var $TypeError = GetIntrinsic('%TypeError%');
-
-module.exports = function IsPropertyDescriptor(ES, Desc) {
-	if (ES.Type(Desc) !== 'Object') {
-		return false;
-	}
-	var allowed = {
-		'[[Configurable]]': true,
-		'[[Enumerable]]': true,
-		'[[Get]]': true,
-		'[[Set]]': true,
-		'[[Value]]': true,
-		'[[Writable]]': true
-	};
-
-	for (var key in Desc) { // eslint-disable-line no-restricted-syntax
-		if (has(Desc, key) && !allowed[key]) {
-			return false;
-		}
-	}
-
-	if (ES.IsDataDescriptor(Desc) && ES.IsAccessorDescriptor(Desc)) {
-		throw new $TypeError('Property Descriptors may not be both accessor and data descriptors');
-	}
-	return true;
-};
-
-
-/***/ }),
-
-/***/ "R/b7":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var abs = __webpack_require__("In1I");
-var floor = __webpack_require__("4HRn");
-
-var $isNaN = __webpack_require__("HwJD");
-var $isFinite = __webpack_require__("ald4");
-
-// https://ecma-international.org/ecma-262/6.0/#sec-isinteger
-
-module.exports = function IsInteger(argument) {
-	if (typeof argument !== 'number' || $isNaN(argument) || !$isFinite(argument)) {
-		return false;
-	}
-	var absValue = abs(argument);
-	return floor(absValue) === absValue;
-};
-
-
-/***/ }),
-
-/***/ "RDTF":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _objectSpread2; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return _objectWithoutPropertiesLoose; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return _createForOfIteratorHelperLoose; });
-function _defineProperty(obj, key, value) {
-  if (key in obj) {
-    Object.defineProperty(obj, key, {
-      value: value,
-      enumerable: true,
-      configurable: true,
-      writable: true
-    });
-  } else {
-    obj[key] = value;
-  }
-
-  return obj;
-}
-
-function ownKeys(object, enumerableOnly) {
-  var keys = Object.keys(object);
-
-  if (Object.getOwnPropertySymbols) {
-    var symbols = Object.getOwnPropertySymbols(object);
-    if (enumerableOnly) symbols = symbols.filter(function (sym) {
-      return Object.getOwnPropertyDescriptor(object, sym).enumerable;
-    });
-    keys.push.apply(keys, symbols);
-  }
-
-  return keys;
-}
-
-function _objectSpread2(target) {
-  for (var i = 1; i < arguments.length; i++) {
-    var source = arguments[i] != null ? arguments[i] : {};
-
-    if (i % 2) {
-      ownKeys(Object(source), true).forEach(function (key) {
-        _defineProperty(target, key, source[key]);
-      });
-    } else if (Object.getOwnPropertyDescriptors) {
-      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
-    } else {
-      ownKeys(Object(source)).forEach(function (key) {
-        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(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 _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 _createForOfIteratorHelperLoose(o, allowArrayLike) {
-  var it;
-
-  if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) {
-    if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
-      if (it) o = it;
-      var i = 0;
-      return function () {
-        if (i >= o.length) return {
-          done: true
-        };
-        return {
-          done: false,
-          value: o[i++]
-        };
-      };
-    }
-
-    throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
-  }
-
-  it = o[Symbol.iterator]();
-  return it.next.bind(it);
-}
-
-
-
-
-/***/ }),
-
-/***/ "RMJe":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
-/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
-
-
-/**
- * WordPress dependencies
- */
-
-const check = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
-  xmlns: "http://www.w3.org/2000/svg",
-  viewBox: "0 0 24 24"
-}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
-  d: "M18.3 5.6L9.9 16.9l-4.6-3.4-.9 1.2 5.8 4.3 9.3-12.6z"
-}));
-/* harmony default export */ __webpack_exports__["a"] = (check);
-
-
-/***/ }),
-
-/***/ "RxS6":
-/***/ (function(module, exports) {
-
-(function() { module.exports = window["wp"]["keycodes"]; }());
-
-/***/ }),
-
-/***/ "S0jC":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-module.exports = __webpack_require__("laOf");
-
-
-/***/ }),
-
-/***/ "SB3u":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-// ESM COMPAT FLAG
-__webpack_require__.r(__webpack_exports__);
-
-// EXPORTS
-__webpack_require__.d(__webpack_exports__, "SVG", function() { return /* reexport */ external_wp_primitives_["SVG"]; });
-__webpack_require__.d(__webpack_exports__, "Path", function() { return /* reexport */ external_wp_primitives_["Path"]; });
-__webpack_require__.d(__webpack_exports__, "Circle", function() { return /* reexport */ external_wp_primitives_["Circle"]; });
-__webpack_require__.d(__webpack_exports__, "Polygon", function() { return /* reexport */ external_wp_primitives_["Polygon"]; });
-__webpack_require__.d(__webpack_exports__, "Rect", function() { return /* reexport */ external_wp_primitives_["Rect"]; });
-__webpack_require__.d(__webpack_exports__, "G", function() { return /* reexport */ external_wp_primitives_["G"]; });
-__webpack_require__.d(__webpack_exports__, "HorizontalRule", function() { return /* reexport */ external_wp_primitives_["HorizontalRule"]; });
-__webpack_require__.d(__webpack_exports__, "BlockQuotation", function() { return /* reexport */ external_wp_primitives_["BlockQuotation"]; });
-__webpack_require__.d(__webpack_exports__, "__experimentalAlignmentMatrixControl", function() { return /* reexport */ AlignmentMatrixControl; });
-__webpack_require__.d(__webpack_exports__, "Animate", function() { return /* reexport */ animate["a" /* default */]; });
-__webpack_require__.d(__webpack_exports__, "__unstableGetAnimateClassName", function() { return /* reexport */ animate["b" /* getAnimateClassName */]; });
-__webpack_require__.d(__webpack_exports__, "AnglePickerControl", function() { return /* reexport */ AnglePickerControl; });
-__webpack_require__.d(__webpack_exports__, "Autocomplete", function() { return /* reexport */ Autocomplete; });
-__webpack_require__.d(__webpack_exports__, "__unstableUseAutocompleteProps", function() { return /* reexport */ useAutocompleteProps; });
-__webpack_require__.d(__webpack_exports__, "BaseControl", function() { return /* reexport */ base_control; });
-__webpack_require__.d(__webpack_exports__, "__experimentalBoxControl", function() { return /* reexport */ BoxControl; });
-__webpack_require__.d(__webpack_exports__, "Button", function() { return /* reexport */ build_module_button["a" /* default */]; });
-__webpack_require__.d(__webpack_exports__, "ButtonGroup", function() { return /* reexport */ button_group; });
-__webpack_require__.d(__webpack_exports__, "Card", function() { return /* reexport */ card; });
-__webpack_require__.d(__webpack_exports__, "CardBody", function() { return /* reexport */ card_body; });
-__webpack_require__.d(__webpack_exports__, "CardDivider", function() { return /* reexport */ divider; });
-__webpack_require__.d(__webpack_exports__, "CardFooter", function() { return /* reexport */ footer; });
-__webpack_require__.d(__webpack_exports__, "CardHeader", function() { return /* reexport */ card_header; });
-__webpack_require__.d(__webpack_exports__, "CardMedia", function() { return /* reexport */ media; });
-__webpack_require__.d(__webpack_exports__, "CheckboxControl", function() { return /* reexport */ CheckboxControl; });
-__webpack_require__.d(__webpack_exports__, "ClipboardButton", function() { return /* reexport */ ClipboardButton; });
-__webpack_require__.d(__webpack_exports__, "__experimentalColorEdit", function() { return /* reexport */ ColorEdit; });
-__webpack_require__.d(__webpack_exports__, "ColorIndicator", function() { return /* reexport */ color_indicator; });
-__webpack_require__.d(__webpack_exports__, "ColorPalette", function() { return /* reexport */ ColorPalette; });
-__webpack_require__.d(__webpack_exports__, "ColorPicker", function() { return /* reexport */ color_picker_ColorPicker; });
-__webpack_require__.d(__webpack_exports__, "ComboboxControl", function() { return /* reexport */ combobox_control; });
-__webpack_require__.d(__webpack_exports__, "__unstableComposite", function() { return /* reexport */ Composite; });
-__webpack_require__.d(__webpack_exports__, "__unstableCompositeGroup", function() { return /* reexport */ CompositeGroup; });
-__webpack_require__.d(__webpack_exports__, "__unstableCompositeItem", function() { return /* reexport */ CompositeItem["a" /* CompositeItem */]; });
-__webpack_require__.d(__webpack_exports__, "__unstableUseCompositeState", function() { return /* reexport */ useCompositeState; });
-__webpack_require__.d(__webpack_exports__, "CustomSelectControl", function() { return /* reexport */ CustomSelectControl; });
-__webpack_require__.d(__webpack_exports__, "Dashicon", function() { return /* reexport */ dashicon["a" /* default */]; });
-__webpack_require__.d(__webpack_exports__, "DateTimePicker", function() { return /* reexport */ date_time; });
-__webpack_require__.d(__webpack_exports__, "DatePicker", function() { return /* reexport */ date_time_date; });
-__webpack_require__.d(__webpack_exports__, "TimePicker", function() { return /* reexport */ time; });
-__webpack_require__.d(__webpack_exports__, "__experimentalDimensionControl", function() { return /* reexport */ dimension_control; });
-__webpack_require__.d(__webpack_exports__, "Disabled", function() { return /* reexport */ build_module_disabled; });
-__webpack_require__.d(__webpack_exports__, "__unstableDisclosureContent", function() { return /* reexport */ DisclosureContent; });
-__webpack_require__.d(__webpack_exports__, "__experimentalDivider", function() { return /* reexport */ divider_component; });
-__webpack_require__.d(__webpack_exports__, "Draggable", function() { return /* reexport */ Draggable; });
-__webpack_require__.d(__webpack_exports__, "DropZone", function() { return /* reexport */ DropZoneComponent; });
-__webpack_require__.d(__webpack_exports__, "DropZoneProvider", function() { return /* reexport */ DropZoneProvider; });
-__webpack_require__.d(__webpack_exports__, "Dropdown", function() { return /* reexport */ Dropdown; });
-__webpack_require__.d(__webpack_exports__, "DropdownMenu", function() { return /* reexport */ dropdown_menu; });
-__webpack_require__.d(__webpack_exports__, "DuotoneSwatch", function() { return /* reexport */ duotone_swatch; });
-__webpack_require__.d(__webpack_exports__, "DuotonePicker", function() { return /* reexport */ duotone_picker; });
-__webpack_require__.d(__webpack_exports__, "ExternalLink", function() { return /* reexport */ external_link; });
-__webpack_require__.d(__webpack_exports__, "Flex", function() { return /* reexport */ flex_component; });
-__webpack_require__.d(__webpack_exports__, "FlexBlock", function() { return /* reexport */ flex_block_component; });
-__webpack_require__.d(__webpack_exports__, "FlexItem", function() { return /* reexport */ flex_item_component; });
-__webpack_require__.d(__webpack_exports__, "FocalPointPicker", function() { return /* reexport */ focal_point_picker; });
-__webpack_require__.d(__webpack_exports__, "FocusableIframe", function() { return /* reexport */ FocusableIframe; });
-__webpack_require__.d(__webpack_exports__, "FontSizePicker", function() { return /* reexport */ font_size_picker; });
-__webpack_require__.d(__webpack_exports__, "FormFileUpload", function() { return /* reexport */ form_file_upload; });
-__webpack_require__.d(__webpack_exports__, "FormToggle", function() { return /* reexport */ form_toggle; });
-__webpack_require__.d(__webpack_exports__, "FormTokenField", function() { return /* reexport */ form_token_field; });
-__webpack_require__.d(__webpack_exports__, "__experimentalGradientPicker", function() { return /* reexport */ GradientPicker; });
-__webpack_require__.d(__webpack_exports__, "__experimentalCustomGradientPicker", function() { return /* reexport */ CustomGradientPicker; });
-__webpack_require__.d(__webpack_exports__, "__experimentalGrid", function() { return /* reexport */ grid_component; });
-__webpack_require__.d(__webpack_exports__, "Guide", function() { return /* reexport */ Guide; });
-__webpack_require__.d(__webpack_exports__, "GuidePage", function() { return /* reexport */ GuidePage; });
-__webpack_require__.d(__webpack_exports__, "__experimentalHeading", function() { return /* reexport */ heading_component; });
-__webpack_require__.d(__webpack_exports__, "__experimentalHStack", function() { return /* reexport */ h_stack_component; });
-__webpack_require__.d(__webpack_exports__, "Icon", function() { return /* reexport */ components_build_module_icon["a" /* default */]; });
-__webpack_require__.d(__webpack_exports__, "IconButton", function() { return /* reexport */ deprecated; });
-__webpack_require__.d(__webpack_exports__, "__experimentalInputControl", function() { return /* reexport */ input_control; });
-__webpack_require__.d(__webpack_exports__, "KeyboardShortcuts", function() { return /* reexport */ keyboard_shortcuts; });
-__webpack_require__.d(__webpack_exports__, "MenuGroup", function() { return /* reexport */ menu_group; });
-__webpack_require__.d(__webpack_exports__, "MenuItem", function() { return /* reexport */ menu_item; });
-__webpack_require__.d(__webpack_exports__, "MenuItemsChoice", function() { return /* reexport */ MenuItemsChoice; });
-__webpack_require__.d(__webpack_exports__, "Modal", function() { return /* reexport */ modal; });
-__webpack_require__.d(__webpack_exports__, "ScrollLock", function() { return /* reexport */ scroll_lock["a" /* default */]; });
-__webpack_require__.d(__webpack_exports__, "NavigableMenu", function() { return /* reexport */ navigable_container_menu; });
-__webpack_require__.d(__webpack_exports__, "TabbableContainer", function() { return /* reexport */ tabbable; });
-__webpack_require__.d(__webpack_exports__, "__experimentalNavigation", function() { return /* reexport */ Navigation; });
-__webpack_require__.d(__webpack_exports__, "__experimentalNavigationBackButton", function() { return /* reexport */ back_button; });
-__webpack_require__.d(__webpack_exports__, "__experimentalNavigationGroup", function() { return /* reexport */ NavigationGroup; });
-__webpack_require__.d(__webpack_exports__, "__experimentalNavigationItem", function() { return /* reexport */ NavigationItem; });
-__webpack_require__.d(__webpack_exports__, "__experimentalNavigationMenu", function() { return /* reexport */ NavigationMenu; });
-__webpack_require__.d(__webpack_exports__, "Notice", function() { return /* reexport */ build_module_notice; });
-__webpack_require__.d(__webpack_exports__, "__experimentalNumberControl", function() { return /* reexport */ number_control; });
-__webpack_require__.d(__webpack_exports__, "NoticeList", function() { return /* reexport */ list; });
-__webpack_require__.d(__webpack_exports__, "Panel", function() { return /* reexport */ panel; });
-__webpack_require__.d(__webpack_exports__, "PanelBody", function() { return /* reexport */ panel_body; });
-__webpack_require__.d(__webpack_exports__, "PanelHeader", function() { return /* reexport */ panel_header; });
-__webpack_require__.d(__webpack_exports__, "PanelRow", function() { return /* reexport */ panel_row; });
-__webpack_require__.d(__webpack_exports__, "Placeholder", function() { return /* reexport */ build_module_placeholder; });
-__webpack_require__.d(__webpack_exports__, "Popover", function() { return /* reexport */ build_module_popover["a" /* default */]; });
-__webpack_require__.d(__webpack_exports__, "QueryControls", function() { return /* reexport */ QueryControls; });
-__webpack_require__.d(__webpack_exports__, "__experimentalRadio", function() { return /* reexport */ build_module_radio; });
-__webpack_require__.d(__webpack_exports__, "__experimentalRadioGroup", function() { return /* reexport */ radio_group; });
-__webpack_require__.d(__webpack_exports__, "RadioControl", function() { return /* reexport */ RadioControl; });
-__webpack_require__.d(__webpack_exports__, "RangeControl", function() { return /* reexport */ range_control; });
-__webpack_require__.d(__webpack_exports__, "ResizableBox", function() { return /* reexport */ resizable_box; });
-__webpack_require__.d(__webpack_exports__, "ResponsiveWrapper", function() { return /* reexport */ responsive_wrapper; });
-__webpack_require__.d(__webpack_exports__, "SandBox", function() { return /* reexport */ Sandbox; });
-__webpack_require__.d(__webpack_exports__, "SelectControl", function() { return /* reexport */ select_control; });
-__webpack_require__.d(__webpack_exports__, "Snackbar", function() { return /* reexport */ snackbar["a" /* default */]; });
-__webpack_require__.d(__webpack_exports__, "SnackbarList", function() { return /* reexport */ snackbar_list; });
-__webpack_require__.d(__webpack_exports__, "__experimentalSpacer", function() { return /* reexport */ spacer_component; });
-__webpack_require__.d(__webpack_exports__, "Spinner", function() { return /* reexport */ Spinner; });
-__webpack_require__.d(__webpack_exports__, "TabPanel", function() { return /* reexport */ TabPanel; });
-__webpack_require__.d(__webpack_exports__, "__experimentalText", function() { return /* reexport */ text_component; });
-__webpack_require__.d(__webpack_exports__, "TextControl", function() { return /* reexport */ text_control; });
-__webpack_require__.d(__webpack_exports__, "TextareaControl", function() { return /* reexport */ TextareaControl; });
-__webpack_require__.d(__webpack_exports__, "TextHighlight", function() { return /* reexport */ text_highlight; });
-__webpack_require__.d(__webpack_exports__, "Tip", function() { return /* reexport */ tip; });
-__webpack_require__.d(__webpack_exports__, "ToggleControl", function() { return /* reexport */ ToggleControl; });
-__webpack_require__.d(__webpack_exports__, "Toolbar", function() { return /* reexport */ toolbar; });
-__webpack_require__.d(__webpack_exports__, "ToolbarButton", function() { return /* reexport */ toolbar_button; });
-__webpack_require__.d(__webpack_exports__, "ToolbarDropdownMenu", function() { return /* reexport */ toolbar_dropdown_menu; });
-__webpack_require__.d(__webpack_exports__, "__experimentalToolbarContext", function() { return /* reexport */ toolbar_context["a" /* default */]; });
-__webpack_require__.d(__webpack_exports__, "ToolbarGroup", function() { return /* reexport */ toolbar_group; });
-__webpack_require__.d(__webpack_exports__, "ToolbarItem", function() { return /* reexport */ toolbar_item["a" /* default */]; });
-__webpack_require__.d(__webpack_exports__, "Tooltip", function() { return /* reexport */ build_module_tooltip["a" /* default */]; });
-__webpack_require__.d(__webpack_exports__, "__experimentalTreeGrid", function() { return /* reexport */ tree_grid; });
-__webpack_require__.d(__webpack_exports__, "__experimentalTreeGridRow", function() { return /* reexport */ tree_grid_row; });
-__webpack_require__.d(__webpack_exports__, "__experimentalTreeGridCell", function() { return /* reexport */ tree_grid_cell; });
-__webpack_require__.d(__webpack_exports__, "__experimentalTreeGridItem", function() { return /* reexport */ tree_grid_item; });
-__webpack_require__.d(__webpack_exports__, "TreeSelect", function() { return /* reexport */ TreeSelect; });
-__webpack_require__.d(__webpack_exports__, "__experimentalTruncate", function() { return /* reexport */ truncate_component; });
-__webpack_require__.d(__webpack_exports__, "__experimentalUnitControl", function() { return /* reexport */ unit_control; });
-__webpack_require__.d(__webpack_exports__, "__experimentalUseCustomUnits", function() { return /* reexport */ useCustomUnits; });
-__webpack_require__.d(__webpack_exports__, "VisuallyHidden", function() { return /* reexport */ visually_hidden["a" /* default */]; });
-__webpack_require__.d(__webpack_exports__, "__experimentalVStack", function() { return /* reexport */ v_stack_component; });
-__webpack_require__.d(__webpack_exports__, "IsolatedEventContainer", function() { return /* reexport */ isolated_event_container; });
-__webpack_require__.d(__webpack_exports__, "createSlotFill", function() { return /* reexport */ slot_fill["d" /* createSlotFill */]; });
-__webpack_require__.d(__webpack_exports__, "Slot", function() { return /* reexport */ slot_fill["c" /* Slot */]; });
-__webpack_require__.d(__webpack_exports__, "Fill", function() { return /* reexport */ slot_fill["a" /* Fill */]; });
-__webpack_require__.d(__webpack_exports__, "SlotFillProvider", function() { return /* reexport */ slot_fill["b" /* Provider */]; });
-__webpack_require__.d(__webpack_exports__, "__experimentalUseSlot", function() { return /* reexport */ use_slot["a" /* default */]; });
-__webpack_require__.d(__webpack_exports__, "__experimentalStyleProvider", function() { return /* reexport */ StyleProvider; });
-__webpack_require__.d(__webpack_exports__, "navigateRegions", function() { return /* reexport */ navigate_regions; });
-__webpack_require__.d(__webpack_exports__, "__unstableUseNavigateRegions", function() { return /* reexport */ useNavigateRegions; });
-__webpack_require__.d(__webpack_exports__, "withConstrainedTabbing", function() { return /* reexport */ with_constrained_tabbing; });
-__webpack_require__.d(__webpack_exports__, "withFallbackStyles", function() { return /* reexport */ with_fallback_styles; });
-__webpack_require__.d(__webpack_exports__, "withFilters", function() { return /* reexport */ withFilters; });
-__webpack_require__.d(__webpack_exports__, "withFocusOutside", function() { return /* reexport */ with_focus_outside; });
-__webpack_require__.d(__webpack_exports__, "withFocusReturn", function() { return /* reexport */ with_focus_return; });
-__webpack_require__.d(__webpack_exports__, "FocusReturnProvider", function() { return /* reexport */ with_focus_return_Provider; });
-__webpack_require__.d(__webpack_exports__, "withNotices", function() { return /* reexport */ with_notices; });
-__webpack_require__.d(__webpack_exports__, "withSpokenMessages", function() { return /* reexport */ with_spoken_messages; });
-__webpack_require__.d(__webpack_exports__, "__unstableWithNext", function() { return /* reexport */ with_next["a" /* withNext */]; });
-__webpack_require__.d(__webpack_exports__, "__unstableComponentSystemProvider", function() { return /* reexport */ ComponentSystemProvider; });
-
-// NAMESPACE OBJECT: ./node_modules/@wordpress/components/build-module/text/styles.js
-var text_styles_namespaceObject = {};
-__webpack_require__.r(text_styles_namespaceObject);
-__webpack_require__.d(text_styles_namespaceObject, "Text", function() { return Text; });
-__webpack_require__.d(text_styles_namespaceObject, "block", function() { return styles_block; });
-__webpack_require__.d(text_styles_namespaceObject, "positive", function() { return positive; });
-__webpack_require__.d(text_styles_namespaceObject, "destructive", function() { return destructive; });
-__webpack_require__.d(text_styles_namespaceObject, "muted", function() { return styles_muted; });
-__webpack_require__.d(text_styles_namespaceObject, "highlighterText", function() { return highlighterText; });
-__webpack_require__.d(text_styles_namespaceObject, "upperCase", function() { return styles_upperCase; });
-
-// EXTERNAL MODULE: external ["wp","primitives"]
-var external_wp_primitives_ = __webpack_require__("Tqx9");
-
-// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js
-var esm_extends = __webpack_require__("wx14");
-
-// EXTERNAL MODULE: external ["wp","element"]
-var external_wp_element_ = __webpack_require__("GRId");
-
-// EXTERNAL MODULE: external "lodash"
-var external_lodash_ = __webpack_require__("YLtl");
-
-// EXTERNAL MODULE: ./node_modules/classnames/index.js
-var classnames = __webpack_require__("TSYQ");
-var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);
-
-// EXTERNAL MODULE: external ["wp","i18n"]
-var external_wp_i18n_ = __webpack_require__("l3Sj");
-
-// EXTERNAL MODULE: external ["wp","compose"]
-var external_wp_compose_ = __webpack_require__("K9lf");
-
-// EXTERNAL MODULE: ./node_modules/reakit/es/Composite/CompositeItem.js
-var CompositeItem = __webpack_require__("kTC8");
-
-// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/tooltip/index.js + 1 modules
-var build_module_tooltip = __webpack_require__("W/NR");
-
-// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/visually-hidden/index.js + 2 modules
-var visually_hidden = __webpack_require__("ldlY");
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/alignment-matrix-control/utils.js
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-const GRID = [['top left', 'top center', 'top right'], ['center left', 'center center', 'center right'], ['bottom left', 'bottom center', 'bottom right']]; // Stored as map as i18n __() only accepts strings (not variables)
-
-const ALIGNMENT_LABEL = {
-  'top left': Object(external_wp_i18n_["__"])('Top Left'),
-  'top center': Object(external_wp_i18n_["__"])('Top Center'),
-  'top right': Object(external_wp_i18n_["__"])('Top Right'),
-  'center left': Object(external_wp_i18n_["__"])('Center Left'),
-  'center center': Object(external_wp_i18n_["__"])('Center Center'),
-  'center right': Object(external_wp_i18n_["__"])('Center Right'),
-  'bottom left': Object(external_wp_i18n_["__"])('Bottom Left'),
-  'bottom center': Object(external_wp_i18n_["__"])('Bottom Center'),
-  'bottom right': Object(external_wp_i18n_["__"])('Bottom Right')
-}; // Transforms GRID into a flat Array of values
-
-const ALIGNMENTS = Object(external_lodash_["flattenDeep"])(GRID);
-/**
- * Parses and transforms an incoming value to better match the alignment values
- *
- * @param {string} value An alignment value to parse.
- *
- * @return {string} The parsed value.
- */
-
-function transformValue(value) {
-  const nextValue = value === 'center' ? 'center center' : value;
-  return nextValue.replace('-', ' ');
-}
-/**
- * Creates an item ID based on a prefix ID and an alignment value.
- *
- * @param {string} prefixId An ID to prefix.
- * @param {string} value An alignment value.
- *
- * @return {string} The item id.
- */
-
-function utils_getItemId(prefixId, value) {
-  const valueId = transformValue(value).replace(' ', '-');
-  return `${prefixId}-${valueId}`;
-}
-/**
- * Retrieves the alignment index from a value.
- *
- * @param {string} alignment Value to check.
- *
- * @return {number} The index of a matching alignment.
- */
-
-function getAlignmentIndex(alignment = 'center') {
-  const item = transformValue(alignment).replace('-', ' ');
-  const index = ALIGNMENTS.indexOf(item);
-  return index > -1 ? index : undefined;
-}
-
-// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/defineProperty.js
-var defineProperty = __webpack_require__("lSNA");
-var defineProperty_default = /*#__PURE__*/__webpack_require__.n(defineProperty);
-
-// EXTERNAL MODULE: external "React"
-var external_React_ = __webpack_require__("cDcd");
-var external_React_default = /*#__PURE__*/__webpack_require__.n(external_React_);
-
-// EXTERNAL MODULE: ./node_modules/@emotion/is-prop-valid/dist/is-prop-valid.browser.esm.js
-var is_prop_valid_browser_esm = __webpack_require__("9uj6");
-
-// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js
-function _setPrototypeOf(o, p) {
-  _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
-    o.__proto__ = p;
-    return o;
-  };
-
-  return _setPrototypeOf(o, p);
-}
-// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js
-
-function _inheritsLoose(subClass, superClass) {
-  subClass.prototype = Object.create(superClass.prototype);
-  subClass.prototype.constructor = subClass;
-  _setPrototypeOf(subClass, superClass);
-}
-// EXTERNAL MODULE: ./node_modules/@emotion/cache/dist/cache.browser.esm.js + 2 modules
-var cache_browser_esm = __webpack_require__("TqVZ");
-
-// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/inheritsLoose.js
-var inheritsLoose = __webpack_require__("VbXa");
-
-// EXTERNAL MODULE: ./node_modules/@emotion/utils/dist/utils.browser.esm.js
-var utils_browser_esm = __webpack_require__("SIPS");
-
-// EXTERNAL MODULE: ./node_modules/@emotion/serialize/dist/serialize.browser.esm.js + 2 modules
-var serialize_browser_esm = __webpack_require__("MiSq");
-
-// CONCATENATED MODULE: ./node_modules/@emotion/core/dist/emotion-element-57a3a7a3.browser.esm.js
-
-
-
-
-
-
-var emotion_element_57a3a7a3_browser_esm_hasOwnProperty = Object.prototype.hasOwnProperty;
-
-var EmotionCacheContext = /*#__PURE__*/Object(external_React_["createContext"])( // we're doing this to avoid preconstruct's dead code elimination in this one case
-// because this module is primarily intended for the browser and node
-// but it's also required in react native and similar environments sometimes
-// and we could have a special build just for that
-// but this is much easier and the native packages
-// might use a different theme context in the future anyway
-typeof HTMLElement !== 'undefined' ? Object(cache_browser_esm["a" /* default */])() : null);
-var ThemeContext = /*#__PURE__*/Object(external_React_["createContext"])({});
-var CacheProvider = EmotionCacheContext.Provider;
-
-var emotion_element_57a3a7a3_browser_esm_withEmotionCache = function withEmotionCache(func) {
-  var render = function render(props, ref) {
-    return /*#__PURE__*/Object(external_React_["createElement"])(EmotionCacheContext.Consumer, null, function (cache) {
-      return func(props, cache, ref);
-    });
-  }; // $FlowFixMe
-
-
-  return /*#__PURE__*/Object(external_React_["forwardRef"])(render);
-};
-
-// thus we only need to replace what is a valid character for JS, but not for CSS
-
-var sanitizeIdentifier = function sanitizeIdentifier(identifier) {
-  return identifier.replace(/\$/g, '-');
-};
-
-var typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';
-var labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__';
-var createEmotionProps = function createEmotionProps(type, props) {
-  if (false) {}
-
-  var newProps = {};
-
-  for (var key in props) {
-    if (emotion_element_57a3a7a3_browser_esm_hasOwnProperty.call(props, key)) {
-      newProps[key] = props[key];
-    }
-  }
-
-  newProps[typePropName] = type; // TODO: check if this still works with all of those different JSX functions
-
-  if (false) { var match, error; }
-
-  return newProps;
-};
-
-var emotion_element_57a3a7a3_browser_esm_render = function render(cache, props, theme, ref) {
-  var cssProp = theme === null ? props.css : props.css(theme); // so that using `css` from `emotion` and passing the result to the css prop works
-  // not passing the registered cache to serializeStyles because it would
-  // make certain babel optimisations not possible
-
-  if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {
-    cssProp = cache.registered[cssProp];
-  }
-
-  var type = props[typePropName];
-  var registeredStyles = [cssProp];
-  var className = '';
-
-  if (typeof props.className === 'string') {
-    className = Object(utils_browser_esm["a" /* getRegisteredStyles */])(cache.registered, registeredStyles, props.className);
-  } else if (props.className != null) {
-    className = props.className + " ";
-  }
-
-  var serialized = Object(serialize_browser_esm["a" /* serializeStyles */])(registeredStyles);
-
-  if (false) { var labelFromStack; }
-
-  var rules = Object(utils_browser_esm["b" /* insertStyles */])(cache, serialized, typeof type === 'string');
-  className += cache.key + "-" + serialized.name;
-  var newProps = {};
-
-  for (var key in props) {
-    if (emotion_element_57a3a7a3_browser_esm_hasOwnProperty.call(props, key) && key !== 'css' && key !== typePropName && ( true || false)) {
-      newProps[key] = props[key];
-    }
-  }
-
-  newProps.ref = ref;
-  newProps.className = className;
-  var ele = /*#__PURE__*/Object(external_React_["createElement"])(type, newProps);
-
-  return ele;
-}; // eslint-disable-next-line no-undef
-
-
-var Emotion = /* #__PURE__ */emotion_element_57a3a7a3_browser_esm_withEmotionCache(function (props, cache, ref) {
-  if (typeof props.css === 'function') {
-    return /*#__PURE__*/Object(external_React_["createElement"])(ThemeContext.Consumer, null, function (theme) {
-      return emotion_element_57a3a7a3_browser_esm_render(cache, props, theme, ref);
-    });
-  }
-
-  return emotion_element_57a3a7a3_browser_esm_render(cache, props, null, ref);
-});
-
-if (false) {}
-
-
-
-// EXTERNAL MODULE: ./node_modules/@emotion/sheet/dist/sheet.browser.esm.js
-var sheet_browser_esm = __webpack_require__("z9I/");
-
-// CONCATENATED MODULE: ./node_modules/@emotion/css/dist/css.browser.esm.js
-
-
-function css_browser_esm_css() {
-  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
-    args[_key] = arguments[_key];
-  }
-
-  return Object(serialize_browser_esm["a" /* serializeStyles */])(args);
-}
-
-/* harmony default export */ var css_browser_esm = (css_browser_esm_css);
-
-// CONCATENATED MODULE: ./node_modules/@emotion/core/dist/core.browser.esm.js
-
-
-
-
-
-
-
-
-
-
-
-var core_browser_esm_jsx = function jsx(type, props) {
-  var args = arguments;
-
-  if (props == null || !emotion_element_57a3a7a3_browser_esm_hasOwnProperty.call(props, 'css')) {
-    // $FlowFixMe
-    return external_React_["createElement"].apply(undefined, args);
-  }
-
-  var argsLength = args.length;
-  var createElementArgArray = new Array(argsLength);
-  createElementArgArray[0] = Emotion;
-  createElementArgArray[1] = createEmotionProps(type, props);
-
-  for (var i = 2; i < argsLength; i++) {
-    createElementArgArray[i] = args[i];
-  } // $FlowFixMe
-
-
-  return external_React_["createElement"].apply(null, createElementArgArray);
-};
-
-var warnedAboutCssPropForGlobal = false;
-var Global = /* #__PURE__ */emotion_element_57a3a7a3_browser_esm_withEmotionCache(function (props, cache) {
-  if (false) {}
-
-  var styles = props.styles;
-
-  if (typeof styles === 'function') {
-    return /*#__PURE__*/Object(external_React_["createElement"])(ThemeContext.Consumer, null, function (theme) {
-      var serialized = Object(serialize_browser_esm["a" /* serializeStyles */])([styles(theme)]);
-      return /*#__PURE__*/Object(external_React_["createElement"])(core_browser_esm_InnerGlobal, {
-        serialized: serialized,
-        cache: cache
-      });
-    });
-  }
-
-  var serialized = Object(serialize_browser_esm["a" /* serializeStyles */])([styles]);
-  return /*#__PURE__*/Object(external_React_["createElement"])(core_browser_esm_InnerGlobal, {
-    serialized: serialized,
-    cache: cache
-  });
-});
-
-// maintain place over rerenders.
-// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild
-// initial client-side render from SSR, use place of hydrating tag
-var core_browser_esm_InnerGlobal = /*#__PURE__*/function (_React$Component) {
-  _inheritsLoose(InnerGlobal, _React$Component);
-
-  function InnerGlobal(props, context, updater) {
-    return _React$Component.call(this, props, context, updater) || this;
-  }
-
-  var _proto = InnerGlobal.prototype;
-
-  _proto.componentDidMount = function componentDidMount() {
-    this.sheet = new sheet_browser_esm["a" /* StyleSheet */]({
-      key: this.props.cache.key + "-global",
-      nonce: this.props.cache.sheet.nonce,
-      container: this.props.cache.sheet.container
-    }); // $FlowFixMe
-
-    var node = document.querySelector("style[data-emotion-" + this.props.cache.key + "=\"" + this.props.serialized.name + "\"]");
-
-    if (node !== null) {
-      this.sheet.tags.push(node);
-    }
-
-    if (this.props.cache.sheet.tags.length) {
-      this.sheet.before = this.props.cache.sheet.tags[0];
-    }
-
-    this.insertStyles();
-  };
-
-  _proto.componentDidUpdate = function componentDidUpdate(prevProps) {
-    if (prevProps.serialized.name !== this.props.serialized.name) {
-      this.insertStyles();
-    }
-  };
-
-  _proto.insertStyles = function insertStyles$1() {
-    if (this.props.serialized.next !== undefined) {
-      // insert keyframes
-      Object(utils_browser_esm["b" /* insertStyles */])(this.props.cache, this.props.serialized.next, true);
-    }
-
-    if (this.sheet.tags.length) {
-      // if this doesn't exist then it will be null so the style element will be appended
-      var element = this.sheet.tags[this.sheet.tags.length - 1].nextElementSibling;
-      this.sheet.before = element;
-      this.sheet.flush();
-    }
-
-    this.props.cache.insert("", this.props.serialized, this.sheet, false);
-  };
-
-  _proto.componentWillUnmount = function componentWillUnmount() {
-    this.sheet.flush();
-  };
-
-  _proto.render = function render() {
-
-    return null;
-  };
-
-  return InnerGlobal;
-}(external_React_["Component"]);
-
-var core_browser_esm_keyframes = function keyframes() {
-  var insertable = css_browser_esm.apply(void 0, arguments);
-  var name = "animation-" + insertable.name; // $FlowFixMe
-
-  return {
-    name: name,
-    styles: "@keyframes " + name + "{" + insertable.styles + "}",
-    anim: 1,
-    toString: function toString() {
-      return "_EMO_" + this.name + "_" + this.styles + "_EMO_";
-    }
-  };
-};
-
-var core_browser_esm_classnames = function classnames(args) {
-  var len = args.length;
-  var i = 0;
-  var cls = '';
-
-  for (; i < len; i++) {
-    var arg = args[i];
-    if (arg == null) continue;
-    var toAdd = void 0;
-
-    switch (typeof arg) {
-      case 'boolean':
-        break;
-
-      case 'object':
-        {
-          if (Array.isArray(arg)) {
-            toAdd = classnames(arg);
-          } else {
-            toAdd = '';
-
-            for (var k in arg) {
-              if (arg[k] && k) {
-                toAdd && (toAdd += ' ');
-                toAdd += k;
-              }
-            }
-          }
-
-          break;
-        }
-
-      default:
-        {
-          toAdd = arg;
-        }
-    }
-
-    if (toAdd) {
-      cls && (cls += ' ');
-      cls += toAdd;
-    }
-  }
-
-  return cls;
-};
-
-function merge(registered, css, className) {
-  var registeredStyles = [];
-  var rawClassName = Object(utils_browser_esm["a" /* getRegisteredStyles */])(registered, registeredStyles, className);
-
-  if (registeredStyles.length < 2) {
-    return className;
-  }
-
-  return rawClassName + css(registeredStyles);
-}
-
-var ClassNames = emotion_element_57a3a7a3_browser_esm_withEmotionCache(function (props, context) {
-  return /*#__PURE__*/Object(external_React_["createElement"])(ThemeContext.Consumer, null, function (theme) {
-    var hasRendered = false;
-
-    var css = function css() {
-      if (hasRendered && "production" !== 'production') {
-        throw new Error('css can only be used during render');
-      }
-
-      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
-        args[_key] = arguments[_key];
-      }
-
-      var serialized = Object(serialize_browser_esm["a" /* serializeStyles */])(args, context.registered);
-
-      {
-        Object(utils_browser_esm["b" /* insertStyles */])(context, serialized, false);
-      }
-
-      return context.key + "-" + serialized.name;
-    };
-
-    var cx = function cx() {
-      if (hasRendered && "production" !== 'production') {
-        throw new Error('cx can only be used during render');
-      }
-
-      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
-        args[_key2] = arguments[_key2];
-      }
-
-      return merge(context.registered, css, core_browser_esm_classnames(args));
-    };
-
-    var content = {
-      css: css,
-      cx: cx,
-      theme: theme
-    };
-    var ele = props.children(content);
-    hasRendered = true;
-
-    return ele;
-  });
-});
-
-
-
-// CONCATENATED MODULE: ./node_modules/@emotion/styled-base/dist/styled-base.browser.esm.js
-
-
-
-
-
-
-
-var testOmitPropsOnStringTag = is_prop_valid_browser_esm["default"];
-
-var testOmitPropsOnComponent = function testOmitPropsOnComponent(key) {
-  return key !== 'theme' && key !== 'innerRef';
-};
-
-var getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag) {
-  return typeof tag === 'string' && // 96 is one less than the char code
-  // for "a" so this is checking that
-  // it's a lowercase character
-  tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent;
-};
-
-function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
-
-function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { defineProperty_default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
-var ILLEGAL_ESCAPE_SEQUENCE_ERROR = "You have illegal escape sequence in your template literal, most likely inside content's property value.\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \"content: '\\00d7';\" should become \"content: '\\\\00d7';\".\nYou can read more about this here:\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences";
-
-var styled_base_browser_esm_createStyled = function createStyled(tag, options) {
-  if (false) {}
-
-  var identifierName;
-  var shouldForwardProp;
-  var targetClassName;
-
-  if (options !== undefined) {
-    identifierName = options.label;
-    targetClassName = options.target;
-    shouldForwardProp = tag.__emotion_forwardProp && options.shouldForwardProp ? function (propName) {
-      return tag.__emotion_forwardProp(propName) && // $FlowFixMe
-      options.shouldForwardProp(propName);
-    } : options.shouldForwardProp;
-  }
-
-  var isReal = tag.__emotion_real === tag;
-  var baseTag = isReal && tag.__emotion_base || tag;
-
-  if (typeof shouldForwardProp !== 'function' && isReal) {
-    shouldForwardProp = tag.__emotion_forwardProp;
-  }
-
-  var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag);
-  var shouldUseAs = !defaultShouldForwardProp('as');
-  return function () {
-    var args = arguments;
-    var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : [];
-
-    if (identifierName !== undefined) {
-      styles.push("label:" + identifierName + ";");
-    }
-
-    if (args[0] == null || args[0].raw === undefined) {
-      styles.push.apply(styles, args);
-    } else {
-      if (false) {}
-
-      styles.push(args[0][0]);
-      var len = args.length;
-      var i = 1;
-
-      for (; i < len; i++) {
-        if (false) {}
-
-        styles.push(args[i], args[0][i]);
-      }
-    } // $FlowFixMe: we need to cast StatelessFunctionalComponent to our PrivateStyledComponent class
-
-
-    var Styled = emotion_element_57a3a7a3_browser_esm_withEmotionCache(function (props, context, ref) {
-      return Object(external_React_["createElement"])(ThemeContext.Consumer, null, function (theme) {
-        var finalTag = shouldUseAs && props.as || baseTag;
-        var className = '';
-        var classInterpolations = [];
-        var mergedProps = props;
-
-        if (props.theme == null) {
-          mergedProps = {};
-
-          for (var key in props) {
-            mergedProps[key] = props[key];
-          }
-
-          mergedProps.theme = theme;
-        }
-
-        if (typeof props.className === 'string') {
-          className = Object(utils_browser_esm["a" /* getRegisteredStyles */])(context.registered, classInterpolations, props.className);
-        } else if (props.className != null) {
-          className = props.className + " ";
-        }
-
-        var serialized = Object(serialize_browser_esm["a" /* serializeStyles */])(styles.concat(classInterpolations), context.registered, mergedProps);
-        var rules = Object(utils_browser_esm["b" /* insertStyles */])(context, serialized, typeof finalTag === 'string');
-        className += context.key + "-" + serialized.name;
-
-        if (targetClassName !== undefined) {
-          className += " " + targetClassName;
-        }
-
-        var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(finalTag) : defaultShouldForwardProp;
-        var newProps = {};
-
-        for (var _key in props) {
-          if (shouldUseAs && _key === 'as') continue;
-
-          if ( // $FlowFixMe
-          finalShouldForwardProp(_key)) {
-            newProps[_key] = props[_key];
-          }
-        }
-
-        newProps.className = className;
-        newProps.ref = ref || props.innerRef;
-
-        if (false) {}
-
-        var ele = Object(external_React_["createElement"])(finalTag, newProps);
-
-        return ele;
-      });
-    });
-    Styled.displayName = identifierName !== undefined ? identifierName : "Styled(" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + ")";
-    Styled.defaultProps = tag.defaultProps;
-    Styled.__emotion_real = Styled;
-    Styled.__emotion_base = baseTag;
-    Styled.__emotion_styles = styles;
-    Styled.__emotion_forwardProp = shouldForwardProp;
-    Object.defineProperty(Styled, 'toString', {
-      value: function value() {
-        if (targetClassName === undefined && "production" !== 'production') {
-          return 'NO_COMPONENT_SELECTOR';
-        } // $FlowFixMe: coerce undefined to string
-
-
-        return "." + targetClassName;
-      }
-    });
-
-    Styled.withComponent = function (nextTag, nextOptions) {
-      return createStyled(nextTag, nextOptions !== undefined ? _objectSpread({}, options || {}, {}, nextOptions) : options).apply(void 0, styles);
-    };
-
-    return Styled;
-  };
-};
-
-/* harmony default export */ var styled_base_browser_esm = (styled_base_browser_esm_createStyled);
-
-// EXTERNAL MODULE: ./node_modules/tinycolor2/tinycolor.js
-var tinycolor = __webpack_require__("Zss7");
-var tinycolor_default = /*#__PURE__*/__webpack_require__.n(tinycolor);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/colors.js
-/**
- * External dependencies
- */
-
-/**
- * Generating a CSS compliant rgba() color value.
- *
- * @param {string} hexValue The hex value to convert to rgba().
- * @param {number} alpha The alpha value for opacity.
- * @return {string} The converted rgba() color value.
- *
- * @example
- * rgba( '#000000', 0.5 )
- * // rgba(0, 0, 0, 0.5)
- */
-
-function rgba(hexValue = '', alpha = 1) {
-  const {
-    r,
-    g,
-    b
-  } = tinycolor_default()(hexValue).toRgb();
-  return `rgba(${r}, ${g}, ${b}, ${alpha})`;
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/colors-values.js
-/**
- * External dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-const BASE = {
-  black: '#000',
-  white: '#fff'
-};
-/**
- * TODO: Continue to update values as "G2" design evolves.
- *
- * "G2" refers to the movement to advance the interface of the block editor.
- * https://github.com/WordPress/gutenberg/issues/18667
- */
-
-const G2 = {
-  blue: {
-    medium: {
-      focus: '#007cba',
-      focusDark: '#fff'
-    }
-  },
-  gray: {
-    900: '#1e1e1e',
-    700: '#757575',
-    // Meets 4.6:1 text contrast against white.
-    600: '#949494',
-    // Meets 3:1 UI or large text contrast against white.
-    400: '#ccc',
-    200: '#ddd',
-    // Used for most borders.
-    100: '#f0f0f0'
-  },
-  darkGray: {
-    primary: '#1e1e1e',
-    heading: '#050505'
-  },
-  mediumGray: {
-    text: '#757575'
-  },
-  lightGray: {
-    ui: '#949494',
-    secondary: '#ccc',
-    tertiary: '#e7e8e9'
-  }
-};
-const DARK_GRAY = {
-  900: '#191e23',
-  800: '#23282d',
-  700: '#32373c',
-  600: '#40464d',
-  500: '#555d66',
-  // Use this most of the time for dark items.
-  400: '#606a73',
-  300: '#6c7781',
-  // Lightest gray that can be used for AA text contrast.
-  200: '#7e8993',
-  150: '#8d96a0',
-  // Lightest gray that can be used for AA non-text contrast.
-  100: '#8f98a1',
-  placeholder: rgba(G2.gray[900], 0.62)
-};
-const DARK_OPACITY = {
-  900: rgba('#000510', 0.9),
-  800: rgba('#00000a', 0.85),
-  700: rgba('#06060b', 0.8),
-  600: rgba('#000913', 0.75),
-  500: rgba('#0a1829', 0.7),
-  400: rgba('#0a1829', 0.65),
-  300: rgba('#0e1c2e', 0.62),
-  200: rgba('#162435', 0.55),
-  100: rgba('#223443', 0.5),
-  backgroundFill: rgba(DARK_GRAY[700], 0.7)
-};
-const DARK_OPACITY_LIGHT = {
-  900: rgba('#304455', 0.45),
-  800: rgba('#425863', 0.4),
-  700: rgba('#667886', 0.35),
-  600: rgba('#7b86a2', 0.3),
-  500: rgba('#9197a2', 0.25),
-  400: rgba('#95959c', 0.2),
-  300: rgba('#829493', 0.15),
-  200: rgba('#8b8b96', 0.1),
-  100: rgba('#747474', 0.05)
-};
-const LIGHT_GRAY = {
-  900: '#a2aab2',
-  800: '#b5bcc2',
-  700: '#ccd0d4',
-  600: '#d7dade',
-  500: '#e2e4e7',
-  // Good for "grayed" items and borders.
-  400: '#e8eaeb',
-  // Good for "readonly" input fields and special text selection.
-  300: '#edeff0',
-  200: '#f3f4f5',
-  100: '#f8f9f9',
-  placeholder: rgba(BASE.white, 0.65)
-};
-const LIGHT_OPACITY_LIGHT = {
-  900: rgba(BASE.white, 0.5),
-  800: rgba(BASE.white, 0.45),
-  700: rgba(BASE.white, 0.4),
-  600: rgba(BASE.white, 0.35),
-  500: rgba(BASE.white, 0.3),
-  400: rgba(BASE.white, 0.25),
-  300: rgba(BASE.white, 0.2),
-  200: rgba(BASE.white, 0.15),
-  100: rgba(BASE.white, 0.1),
-  backgroundFill: rgba(LIGHT_GRAY[300], 0.8)
-}; // Additional colors.
-// Some are from https://make.wordpress.org/design/handbook/foundations/colors/.
-
-const BLUE = {
-  wordpress: {
-    700: '#00669b'
-  },
-  dark: {
-    900: '#0071a1'
-  },
-  medium: {
-    900: '#006589',
-    800: '#00739c',
-    700: '#007fac',
-    600: '#008dbe',
-    500: '#00a0d2',
-    400: '#33b3db',
-    300: '#66c6e4',
-    200: '#bfe7f3',
-    100: '#e5f5fa',
-    highlight: '#b3e7fe',
-    focus: '#007cba'
-  }
-};
-const ALERT = {
-  yellow: '#f0b849',
-  red: '#d94f4f',
-  green: '#4ab866'
-};
-const ADMIN = {
-  theme: `var( --wp-admin-theme-color, ${BLUE.wordpress[700]})`,
-  themeDark10: `var( --wp-admin-theme-color-darker-10, ${BLUE.medium.focus})`
-}; // Namespaced values for raw colors hex codes
-
-const UI = {
-  theme: ADMIN.theme,
-  background: BASE.white,
-  backgroundDisabled: LIGHT_GRAY[200],
-  border: G2.gray[700],
-  borderFocus: ADMIN.themeDark10,
-  borderDisabled: G2.gray[400],
-  borderLight: G2.gray[200],
-  label: DARK_GRAY[500],
-  textDisabled: DARK_GRAY[150],
-  textDark: BASE.white,
-  textLight: BASE.black
-};
-const COLORS = { ...BASE,
-  darkGray: Object(external_lodash_["merge"])({}, DARK_GRAY, G2.darkGray),
-  darkOpacity: DARK_OPACITY,
-  darkOpacityLight: DARK_OPACITY_LIGHT,
-  mediumGray: G2.mediumGray,
-  gray: G2.gray,
-  lightGray: Object(external_lodash_["merge"])({}, LIGHT_GRAY, G2.lightGray),
-  lightGrayLight: LIGHT_OPACITY_LIGHT,
-  blue: Object(external_lodash_["merge"])({}, BLUE, G2.blue),
-  alert: ALERT,
-  admin: ADMIN,
-  ui: UI
-};
-/* harmony default export */ var colors_values = (COLORS);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/reduce-motion.js
-/**
- * Allows users to opt-out of animations via OS-level preferences.
- *
- * @param {'transition' | 'animation' | string} [prop='transition'] CSS Property name
- * @return {string} Generated CSS code for the reduced style
- */
-function reduceMotion(prop = 'transition') {
-  let style;
-
-  switch (prop) {
-    case 'transition':
-      style = 'transition-duration: 0ms;';
-      break;
-
-    case 'animation':
-      style = 'animation-duration: 1ms;';
-      break;
-
-    default:
-      style = `
-				animation-duration: 1ms;
-				transition-duration: 0ms;
-			`;
-  }
-
-  return `
-		@media ( prefers-reduced-motion: reduce ) {
-			${style};
-		}
-	`;
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/alignment-matrix-control/styles/alignment-matrix-control-styles.js
-
-
-function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
-
-
-/**
- * Internal dependencies
- */
-
-
-
-var alignment_matrix_control_styles_ref =  true ? {
-  name: "1xiracb",
-  styles: "border-radius:2px;box-sizing:border-box;display:grid;grid-template-columns:repeat( 3,1fr );outline:none;"
-} : undefined;
-
-const rootBase = () => {
-  return alignment_matrix_control_styles_ref;
-};
-
-const rootSize = ({
-  size = 92
-}) => {
-  return /*#__PURE__*/css_browser_esm("grid-template-rows:repeat( 3,calc( ", size, "px / 3 ) );width:", size, "px;" + ( true ? "" : undefined));
-};
-
-const Root = styled_base_browser_esm("div", {
-  target: "e1od1u4s0",
-  label: "Root"
-})(rootBase, ";border:1px solid transparent;cursor:pointer;grid-template-columns:auto;", rootSize, ";" + ( true ? "" : undefined));
-const Row = styled_base_browser_esm("div", {
-  target: "e1od1u4s1",
-  label: "Row"
-})( true ? {
-  name: "1177s8r",
-  styles: "box-sizing:border-box;display:grid;grid-template-columns:repeat( 3,1fr );"
-} : undefined);
-
-const pointActive = ({
-  isActive
-}) => {
-  const boxShadow = isActive ? `0 0 0 2px ${COLORS.black}` : null;
-  const pointColor = isActive ? COLORS.black : COLORS.lightGray[800];
-  const pointColorHover = isActive ? COLORS.black : COLORS.blue.medium.focus;
-  return /*#__PURE__*/css_browser_esm("box-shadow:", boxShadow, ";color:", pointColor, ";*:hover > &{color:", pointColorHover, ";}" + ( true ? "" : undefined));
-};
-
-const pointBase = props => {
-  return /*#__PURE__*/css_browser_esm("background:currentColor;box-sizing:border-box;display:grid;margin:auto;transition:all 120ms linear;", reduceMotion('transition'), " ", pointActive(props),  true ? "" : undefined);
-};
-const Point = styled_base_browser_esm("span", {
-  target: "e1od1u4s2",
-  label: "Point"
-})("height:6px;width:6px;", pointBase,  true ? "" : undefined);
-const Cell = styled_base_browser_esm("span", {
-  target: "e1od1u4s3",
-  label: "Cell"
-})( true ? {
-  name: "10ro24i",
-  styles: "appearance:none;border:none;box-sizing:border-box;margin:0;display:flex;position:relative;outline:none;align-items:center;justify-content:center;padding:0;"
-} : undefined);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/alignment-matrix-control/cell.js
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-function cell_Cell({
-  isActive = false,
-  value,
-  ...props
-}) {
-  const tooltipText = ALIGNMENT_LABEL[value];
-  return Object(external_wp_element_["createElement"])(build_module_tooltip["a" /* default */], {
-    text: tooltipText
-  }, Object(external_wp_element_["createElement"])(CompositeItem["a" /* CompositeItem */], Object(esm_extends["a" /* default */])({
-    as: Cell,
-    role: "gridcell"
-  }, props), Object(external_wp_element_["createElement"])(visually_hidden["a" /* default */], null, value), Object(external_wp_element_["createElement"])(Point, {
-    isActive: isActive,
-    role: "presentation"
-  })));
-}
-
-// EXTERNAL MODULE: ./node_modules/reakit/es/_rollupPluginBabelHelpers-1f0bf8c2.js
-var _rollupPluginBabelHelpers_1f0bf8c2 = __webpack_require__("BZp5");
-
-// EXTERNAL MODULE: ./node_modules/reakit-utils/es/useIsomorphicEffect.js
-var useIsomorphicEffect = __webpack_require__("AXvK");
-
-// CONCATENATED MODULE: ./node_modules/reakit-utils/es/useSealedState.js
-
-
-/**
- * React custom hook that returns the very first value passed to `initialState`,
- * even if it changes between re-renders.
- */
-function useSealedState(initialState) {
-  var _React$useState = Object(external_React_["useState"])(initialState),
-      sealed = _React$useState[0];
-
-  return sealed;
-}
-
-
-
-// EXTERNAL MODULE: ./node_modules/reakit-utils/es/getDocument.js
-var getDocument = __webpack_require__("ouKs");
-
-// CONCATENATED MODULE: ./node_modules/reakit/es/reverse-30eaa122.js
-
-
-function groupItems(items) {
-  var groups = [[]];
-
-  var _loop = function _loop() {
-    var item = _step.value;
-    var group = groups.find(function (g) {
-      return !g[0] || g[0].groupId === item.groupId;
-    });
-
-    if (group) {
-      group.push(item);
-    } else {
-      groups.push([item]);
-    }
-  };
-
-  for (var _iterator = Object(_rollupPluginBabelHelpers_1f0bf8c2["c" /* b */])(items), _step; !(_step = _iterator()).done;) {
-    _loop();
-  }
-
-  return groups;
-}
-
-function flatten(grid) {
-  var flattened = [];
-
-  for (var _iterator = Object(_rollupPluginBabelHelpers_1f0bf8c2["c" /* b */])(grid), _step; !(_step = _iterator()).done;) {
-    var row = _step.value;
-    flattened.push.apply(flattened, row);
-  }
-
-  return flattened;
-}
-
-function reverse(array) {
-  return array.slice().reverse();
-}
-
-
-
-// EXTERNAL MODULE: ./node_modules/reakit/es/getCurrentId-5aa9849e.js
-var getCurrentId_5aa9849e = __webpack_require__("iYXd");
-
-// CONCATENATED MODULE: ./node_modules/reakit/es/findEnabledItemById-8ddca752.js
-function findEnabledItemById(items, id) {
-  if (!id) return undefined;
-  return items === null || items === void 0 ? void 0 : items.find(function (item) {
-    return item.id === id && !item.disabled;
-  });
-}
-
-
-
-// CONCATENATED MODULE: ./node_modules/reakit-utils/es/applyState.js
-function isUpdater(argument) {
-  return typeof argument === "function";
-}
-/**
- * Receives a `setState` argument and calls it with `currentValue` if it's a
- * function. Otherwise return the argument as the new value.
- *
- * @example
- * import { applyState } from "reakit-utils";
- *
- * applyState((value) => value + 1, 1); // 2
- * applyState(2, 1); // 2
- */
-
-
-function applyState(argument, currentValue) {
-  if (isUpdater(argument)) {
-    return argument(currentValue);
-  }
-
-  return argument;
-}
-
-
-
-// EXTERNAL MODULE: ./node_modules/reakit/es/Id/IdProvider.js
-var IdProvider = __webpack_require__("KCH1");
-
-// CONCATENATED MODULE: ./node_modules/reakit/es/Id/IdState.js
-
-
-
-
-function unstable_useIdState(initialState) {
-  if (initialState === void 0) {
-    initialState = {};
-  }
-
-  var _useSealedState = useSealedState(initialState),
-      initialBaseId = _useSealedState.baseId;
-
-  var generateId = Object(external_React_["useContext"])(IdProvider["a" /* unstable_IdContext */]);
-  var idCountRef = Object(external_React_["useRef"])(0);
-
-  var _React$useState = Object(external_React_["useState"])(function () {
-    return initialBaseId || generateId();
-  }),
-      baseId = _React$useState[0],
-      setBaseId = _React$useState[1];
-
-  return {
-    baseId: baseId,
-    setBaseId: setBaseId,
-    unstable_idCountRef: idCountRef
-  };
-}
-
-
-
-// CONCATENATED MODULE: ./node_modules/reakit/es/Composite/CompositeState.js
-
-
-
-
-
-
-
-
-
-
-
-
-function isElementPreceding(element1, element2) {
-  return Boolean(element2.compareDocumentPosition(element1) & Node.DOCUMENT_POSITION_PRECEDING);
-}
-
-function findDOMIndex(items, item) {
-  return items.findIndex(function (currentItem) {
-    if (!currentItem.ref.current || !item.ref.current) {
-      return false;
-    }
-
-    return isElementPreceding(item.ref.current, currentItem.ref.current);
-  });
-}
-
-function getMaxLength(rows) {
-  var maxLength = 0;
-
-  for (var _iterator = Object(_rollupPluginBabelHelpers_1f0bf8c2["c" /* b */])(rows), _step; !(_step = _iterator()).done;) {
-    var length = _step.value.length;
-
-    if (length > maxLength) {
-      maxLength = length;
-    }
-  }
-
-  return maxLength;
-}
-
-/**
- * Turns [row1, row1, row2, row2] into [row1, row2, row1, row2]
- */
-
-function verticalizeItems(items) {
-  var groups = groupItems(items);
-  var maxLength = getMaxLength(groups);
-  var verticalized = [];
-
-  for (var i = 0; i < maxLength; i += 1) {
-    for (var _iterator = Object(_rollupPluginBabelHelpers_1f0bf8c2["c" /* b */])(groups), _step; !(_step = _iterator()).done;) {
-      var group = _step.value;
-
-      if (group[i]) {
-        verticalized.push(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, group[i]), {}, {
-          // If there's no groupId, it means that it's not a grid composite,
-          // but a single row instead. So, instead of verticalizing it, that
-          // is, assigning a different groupId based on the column index, we
-          // keep it undefined so they will be part of the same group.
-          // It's useful when using up/down on one-dimensional composites.
-          groupId: group[i].groupId ? "" + i : undefined
-        }));
-      }
-    }
-  }
-
-  return verticalized;
-}
-
-function createEmptyItem(groupId) {
-  return {
-    id: "__EMPTY_ITEM__",
-    disabled: true,
-    ref: {
-      current: null
-    },
-    groupId: groupId
-  };
-}
-/**
- * Turns [[row1, row1], [row2]] into [[row1, row1], [row2, row2]]
- */
-
-
-function fillGroups(groups, currentId, shift) {
-  var maxLength = getMaxLength(groups);
-
-  for (var _iterator = Object(_rollupPluginBabelHelpers_1f0bf8c2["c" /* b */])(groups), _step; !(_step = _iterator()).done;) {
-    var group = _step.value;
-
-    for (var i = 0; i < maxLength; i += 1) {
-      var item = group[i];
-
-      if (!item || shift && item.disabled) {
-        var isFrist = i === 0;
-        var previousItem = isFrist && shift ? Object(getCurrentId_5aa9849e["a" /* f */])(group) : group[i - 1];
-        group[i] = previousItem && currentId !== (previousItem === null || previousItem === void 0 ? void 0 : previousItem.id) && shift ? previousItem : createEmptyItem(previousItem === null || previousItem === void 0 ? void 0 : previousItem.groupId);
-      }
-    }
-  }
-
-  return groups;
-}
-
-var nullItem = {
-  id: null,
-  ref: {
-    current: null
-  }
-};
-function placeItemsAfter(items, id, shouldInsertNullItem) {
-  var index = items.findIndex(function (item) {
-    return item.id === id;
-  });
-  return [].concat(items.slice(index + 1), shouldInsertNullItem ? [nullItem] : [], items.slice(0, index));
-}
-
-function getItemsInGroup(items, groupId) {
-  return items.filter(function (item) {
-    return item.groupId === groupId;
-  });
-}
-
-var map = {
-  horizontal: "vertical",
-  vertical: "horizontal"
-};
-function getOppositeOrientation(orientation) {
-  return orientation && map[orientation];
-}
-
-function addItemAtIndex(array, item, index) {
-  if (!(index in array)) {
-    return [].concat(array, [item]);
-  }
-
-  return [].concat(array.slice(0, index), [item], array.slice(index));
-}
-
-function sortBasedOnDOMPosition(items) {
-  var pairs = items.map(function (item, index) {
-    return [index, item];
-  });
-  var isOrderDifferent = false;
-  pairs.sort(function (_ref, _ref2) {
-    var indexA = _ref[0],
-        a = _ref[1];
-    var indexB = _ref2[0],
-        b = _ref2[1];
-    var elementA = a.ref.current;
-    var elementB = b.ref.current;
-    if (!elementA || !elementB) return 0; // a before b
-
-    if (isElementPreceding(elementA, elementB)) {
-      if (indexA > indexB) {
-        isOrderDifferent = true;
-      }
-
-      return -1;
-    } // a after b
-
-
-    if (indexA < indexB) {
-      isOrderDifferent = true;
-    }
-
-    return 1;
-  });
-
-  if (isOrderDifferent) {
-    return pairs.map(function (_ref3) {
-      var _ = _ref3[0],
-          item = _ref3[1];
-      return item;
-    });
-  }
-
-  return items;
-}
-
-function setItemsBasedOnDOMPosition(items, setItems) {
-  var sortedItems = sortBasedOnDOMPosition(items);
-
-  if (items !== sortedItems) {
-    setItems(sortedItems);
-  }
-}
-
-function getCommonParent(items) {
-  var _firstItem$ref$curren;
-
-  var firstItem = items[0],
-      nextItems = items.slice(1);
-  var parentElement = firstItem === null || firstItem === void 0 ? void 0 : (_firstItem$ref$curren = firstItem.ref.current) === null || _firstItem$ref$curren === void 0 ? void 0 : _firstItem$ref$curren.parentElement;
-
-  var _loop = function _loop() {
-    var parent = parentElement;
-
-    if (nextItems.every(function (item) {
-      return parent.contains(item.ref.current);
-    })) {
-      return {
-        v: parentElement
-      };
-    }
-
-    parentElement = parentElement.parentElement;
-  };
-
-  while (parentElement) {
-    var _ret = _loop();
-
-    if (typeof _ret === "object") return _ret.v;
-  }
-
-  return Object(getDocument["a" /* getDocument */])(parentElement).body;
-} // istanbul ignore next: JSDOM doesn't support IntersectionObverser
-// See https://github.com/jsdom/jsdom/issues/2032
-
-
-function useIntersectionObserver(items, setItems) {
-  var previousItems = Object(external_React_["useRef"])([]);
-  Object(external_React_["useEffect"])(function () {
-    var callback = function callback() {
-      var hasPreviousItems = !!previousItems.current.length; // We don't want to sort items if items have been just registered.
-
-      if (hasPreviousItems) {
-        setItemsBasedOnDOMPosition(items, setItems);
-      }
-
-      previousItems.current = items;
-    };
-
-    var root = getCommonParent(items);
-    var observer = new IntersectionObserver(callback, {
-      root: root
-    });
-
-    for (var _iterator = Object(_rollupPluginBabelHelpers_1f0bf8c2["c" /* b */])(items), _step; !(_step = _iterator()).done;) {
-      var item = _step.value;
-
-      if (item.ref.current) {
-        observer.observe(item.ref.current);
-      }
-    }
-
-    return function () {
-      observer.disconnect();
-    };
-  }, [items]);
-}
-
-function useTimeoutObserver(items, setItems) {
-  Object(external_React_["useEffect"])(function () {
-    var callback = function callback() {
-      return setItemsBasedOnDOMPosition(items, setItems);
-    };
-
-    var timeout = setTimeout(callback, 250);
-    return function () {
-      return clearTimeout(timeout);
-    };
-  });
-}
-
-function useSortBasedOnDOMPosition(items, setItems) {
-  if (typeof IntersectionObserver === "function") {
-    useIntersectionObserver(items, setItems);
-  } else {
-    useTimeoutObserver(items, setItems);
-  }
-}
-
-function CompositeState_reducer(state, action) {
-  var virtual = state.unstable_virtual,
-      rtl = state.rtl,
-      orientation = state.orientation,
-      items = state.items,
-      groups = state.groups,
-      currentId = state.currentId,
-      loop = state.loop,
-      wrap = state.wrap,
-      pastIds = state.pastIds,
-      shift = state.shift,
-      moves = state.unstable_moves,
-      includesBaseElement = state.unstable_includesBaseElement,
-      initialVirtual = state.initialVirtual,
-      initialRTL = state.initialRTL,
-      initialOrientation = state.initialOrientation,
-      initialCurrentId = state.initialCurrentId,
-      initialLoop = state.initialLoop,
-      initialWrap = state.initialWrap,
-      initialShift = state.initialShift,
-      hasSetCurrentId = state.hasSetCurrentId;
-
-  switch (action.type) {
-    case "registerGroup":
-      {
-        var _group = action.group; // If there are no groups yet, just add it as the first one
-
-        if (groups.length === 0) {
-          return Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, state), {}, {
-            groups: [_group]
-          });
-        } // Finds the group index based on DOM position
-
-
-        var index = findDOMIndex(groups, _group);
-        return Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, state), {}, {
-          groups: addItemAtIndex(groups, _group, index)
-        });
-      }
-
-    case "unregisterGroup":
-      {
-        var _id = action.id;
-        var nextGroups = groups.filter(function (group) {
-          return group.id !== _id;
-        }); // The group isn't registered, so do nothing
-
-        if (nextGroups.length === groups.length) {
-          return state;
-        }
-
-        return Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, state), {}, {
-          groups: nextGroups
-        });
-      }
-
-    case "registerItem":
-      {
-        var _item = action.item; // Finds the item group based on the DOM hierarchy
-
-        var _group2 = groups.find(function (r) {
-          var _r$ref$current;
-
-          return (_r$ref$current = r.ref.current) === null || _r$ref$current === void 0 ? void 0 : _r$ref$current.contains(_item.ref.current);
-        }); // Group will be null if it's a one-dimensional composite
-
-
-        var nextItem = Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({
-          groupId: _group2 === null || _group2 === void 0 ? void 0 : _group2.id
-        }, _item);
-
-        var _index = findDOMIndex(items, nextItem);
-
-        var nextState = Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, state), {}, {
-          items: addItemAtIndex(items, nextItem, _index)
-        });
-
-        if (!hasSetCurrentId && !moves && initialCurrentId === undefined) {
-          var _findFirstEnabledItem;
-
-          // Sets currentId to the first enabled item. This runs whenever an item
-          // is registered because the first enabled item may be registered
-          // asynchronously.
-          return Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, nextState), {}, {
-            currentId: (_findFirstEnabledItem = Object(getCurrentId_5aa9849e["a" /* f */])(nextState.items)) === null || _findFirstEnabledItem === void 0 ? void 0 : _findFirstEnabledItem.id
-          });
-        }
-
-        return nextState;
-      }
-
-    case "unregisterItem":
-      {
-        var _id2 = action.id;
-        var nextItems = items.filter(function (item) {
-          return item.id !== _id2;
-        }); // The item isn't registered, so do nothing
-
-        if (nextItems.length === items.length) {
-          return state;
-        } // Filters out the item that is being removed from the pastIds list
-
-
-        var nextPastIds = pastIds.filter(function (pastId) {
-          return pastId !== _id2;
-        });
-
-        var _nextState = Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, state), {}, {
-          pastIds: nextPastIds,
-          items: nextItems
-        }); // If the current item is the item that is being removed, focus pastId
-
-
-        if (currentId && currentId === _id2) {
-          var nextId = includesBaseElement ? null : Object(getCurrentId_5aa9849e["b" /* g */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, _nextState), {}, {
-            currentId: nextPastIds[0]
-          }));
-          return Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, _nextState), {}, {
-            currentId: nextId
-          });
-        }
-
-        return _nextState;
-      }
-
-    case "move":
-      {
-        var _id3 = action.id; // move() does nothing
-
-        if (_id3 === undefined) {
-          return state;
-        } // Removes the current item and the item that is receiving focus from the
-        // pastIds list
-
-
-        var filteredPastIds = pastIds.filter(function (pastId) {
-          return pastId !== currentId && pastId !== _id3;
-        }); // If there's a currentId, add it to the pastIds list so it can be focused
-        // if the new item gets removed or disabled
-
-        var _nextPastIds = currentId ? [currentId].concat(filteredPastIds) : filteredPastIds;
-
-        var _nextState2 = Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, state), {}, {
-          pastIds: _nextPastIds
-        }); // move(null) will focus the composite element itself, not an item
-
-
-        if (_id3 === null) {
-          return Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, _nextState2), {}, {
-            unstable_moves: moves + 1,
-            currentId: Object(getCurrentId_5aa9849e["b" /* g */])(_nextState2, _id3)
-          });
-        }
-
-        var _item2 = findEnabledItemById(items, _id3);
-
-        return Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, _nextState2), {}, {
-          unstable_moves: _item2 ? moves + 1 : moves,
-          currentId: Object(getCurrentId_5aa9849e["b" /* g */])(_nextState2, _item2 === null || _item2 === void 0 ? void 0 : _item2.id)
-        });
-      }
-
-    case "next":
-      {
-        // If there's no item focused, we just move the first one
-        if (currentId == null) {
-          return CompositeState_reducer(state, Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, action), {}, {
-            type: "first"
-          }));
-        } // RTL doesn't make sense on vertical navigation
-
-
-        var isHorizontal = orientation !== "vertical";
-        var isRTL = rtl && isHorizontal;
-        var allItems = isRTL ? reverse(items) : items;
-        var currentItem = allItems.find(function (item) {
-          return item.id === currentId;
-        }); // If there's no item focused, we just move the first one
-
-        if (!currentItem) {
-          return CompositeState_reducer(state, Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, action), {}, {
-            type: "first"
-          }));
-        }
-
-        var isGrid = !!currentItem.groupId;
-        var currentIndex = allItems.indexOf(currentItem);
-
-        var _nextItems = allItems.slice(currentIndex + 1);
-
-        var nextItemsInGroup = getItemsInGroup(_nextItems, currentItem.groupId); // Home, End
-
-        if (action.allTheWay) {
-          // We reverse so we can get the last enabled item in the group. If it's
-          // RTL, nextItems and nextItemsInGroup are already reversed and don't
-          // have the items before the current one anymore. So we have to get
-          // items in group again with allItems.
-          var _nextItem2 = Object(getCurrentId_5aa9849e["a" /* f */])(isRTL ? getItemsInGroup(allItems, currentItem.groupId) : reverse(nextItemsInGroup));
-
-          return CompositeState_reducer(state, Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, action), {}, {
-            type: "move",
-            id: _nextItem2 === null || _nextItem2 === void 0 ? void 0 : _nextItem2.id
-          }));
-        }
-
-        var oppositeOrientation = getOppositeOrientation( // If it's a grid and orientation is not set, it's a next/previous
-        // call, which is inherently horizontal. up/down will call next with
-        // orientation set to vertical by default (see below on up/down cases).
-        isGrid ? orientation || "horizontal" : orientation);
-        var canLoop = loop && loop !== oppositeOrientation;
-        var canWrap = isGrid && wrap && wrap !== oppositeOrientation;
-        var hasNullItem = // `previous` and `up` will set action.hasNullItem, but when calling
-        // next directly, hasNullItem will only be true if it's not a grid and
-        // loop is set to true, which means that pressing right or down keys on
-        // grids will never focus the composite element. On one-dimensional
-        // composites that don't loop, pressing right or down keys also doesn't
-        // focus the composite element.
-        action.hasNullItem || !isGrid && canLoop && includesBaseElement;
-
-        if (canLoop) {
-          var loopItems = canWrap && !hasNullItem ? allItems : getItemsInGroup(allItems, currentItem.groupId); // Turns [0, 1, current, 3, 4] into [3, 4, 0, 1]
-
-          var sortedItems = placeItemsAfter(loopItems, currentId, hasNullItem);
-
-          var _nextItem3 = Object(getCurrentId_5aa9849e["a" /* f */])(sortedItems, currentId);
-
-          return CompositeState_reducer(state, Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, action), {}, {
-            type: "move",
-            id: _nextItem3 === null || _nextItem3 === void 0 ? void 0 : _nextItem3.id
-          }));
-        }
-
-        if (canWrap) {
-          var _nextItem4 = Object(getCurrentId_5aa9849e["a" /* f */])( // We can use nextItems, which contains all the next items, including
-          // items from other groups, to wrap between groups. However, if there
-          // is a null item (the composite element), we'll only use the next
-          // items in the group. So moving next from the last item will focus
-          // the composite element (null). On grid composites, horizontal
-          // navigation never focuses the composite element, only vertical.
-          hasNullItem ? nextItemsInGroup : _nextItems, currentId);
-
-          var _nextId = hasNullItem ? (_nextItem4 === null || _nextItem4 === void 0 ? void 0 : _nextItem4.id) || null : _nextItem4 === null || _nextItem4 === void 0 ? void 0 : _nextItem4.id;
-
-          return CompositeState_reducer(state, Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, action), {}, {
-            type: "move",
-            id: _nextId
-          }));
-        }
-
-        var _nextItem = Object(getCurrentId_5aa9849e["a" /* f */])(nextItemsInGroup, currentId);
-
-        if (!_nextItem && hasNullItem) {
-          return CompositeState_reducer(state, Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, action), {}, {
-            type: "move",
-            id: null
-          }));
-        }
-
-        return CompositeState_reducer(state, Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, action), {}, {
-          type: "move",
-          id: _nextItem === null || _nextItem === void 0 ? void 0 : _nextItem.id
-        }));
-      }
-
-    case "previous":
-      {
-        // If currentId is initially set to null, the composite element will be
-        // focusable while navigating with arrow keys. But, if it's a grid, we
-        // don't want to focus the composite element with horizontal navigation.
-        var _isGrid = !!groups.length;
-
-        var _hasNullItem = !_isGrid && includesBaseElement;
-
-        var _nextState3 = CompositeState_reducer(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, state), {}, {
-          items: reverse(items)
-        }), Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, action), {}, {
-          type: "next",
-          hasNullItem: _hasNullItem
-        }));
-
-        return Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, _nextState3), {}, {
-          items: items
-        });
-      }
-
-    case "down":
-      {
-        var shouldShift = shift && !action.allTheWay; // First, we make sure groups have the same number of items by filling it
-        // with disabled fake items. Then, we reorganize the items list so
-        // [1-1, 1-2, 2-1, 2-2] becomes [1-1, 2-1, 1-2, 2-2].
-
-        var verticalItems = verticalizeItems(flatten(fillGroups(groupItems(items), currentId, shouldShift)));
-
-        var _canLoop = loop && loop !== "horizontal"; // Pressing down arrow key will only focus the composite element if loop
-        // is true or vertical.
-
-
-        var _hasNullItem2 = _canLoop && includesBaseElement;
-
-        var _nextState4 = CompositeState_reducer(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, state), {}, {
-          orientation: "vertical",
-          items: verticalItems
-        }), Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, action), {}, {
-          type: "next",
-          hasNullItem: _hasNullItem2
-        }));
-
-        return Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, _nextState4), {}, {
-          orientation: orientation,
-          items: items
-        });
-      }
-
-    case "up":
-      {
-        var _shouldShift = shift && !action.allTheWay;
-
-        var _verticalItems = verticalizeItems(reverse(flatten(fillGroups(groupItems(items), currentId, _shouldShift)))); // If currentId is initially set to null, we'll always focus the
-        // composite element when the up arrow key is pressed in the first row.
-
-
-        var _hasNullItem3 = includesBaseElement;
-
-        var _nextState5 = CompositeState_reducer(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, state), {}, {
-          orientation: "vertical",
-          items: _verticalItems
-        }), Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, action), {}, {
-          type: "next",
-          hasNullItem: _hasNullItem3
-        }));
-
-        return Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, _nextState5), {}, {
-          orientation: orientation,
-          items: items
-        });
-      }
-
-    case "first":
-      {
-        var firstItem = Object(getCurrentId_5aa9849e["a" /* f */])(items);
-        return CompositeState_reducer(state, Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, action), {}, {
-          type: "move",
-          id: firstItem === null || firstItem === void 0 ? void 0 : firstItem.id
-        }));
-      }
-
-    case "last":
-      {
-        var _nextState6 = CompositeState_reducer(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, state), {}, {
-          items: reverse(items)
-        }), Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, action), {}, {
-          type: "first"
-        }));
-
-        return Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, _nextState6), {}, {
-          items: items
-        });
-      }
-
-    case "sort":
-      {
-        return Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, state), {}, {
-          items: sortBasedOnDOMPosition(items),
-          groups: sortBasedOnDOMPosition(groups)
-        });
-      }
-
-    case "setVirtual":
-      return Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, state), {}, {
-        unstable_virtual: applyState(action.virtual, virtual)
-      });
-
-    case "setRTL":
-      return Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, state), {}, {
-        rtl: applyState(action.rtl, rtl)
-      });
-
-    case "setOrientation":
-      return Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, state), {}, {
-        orientation: applyState(action.orientation, orientation)
-      });
-
-    case "setCurrentId":
-      {
-        var nextCurrentId = Object(getCurrentId_5aa9849e["b" /* g */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, state), {}, {
-          currentId: applyState(action.currentId, currentId)
-        }));
-        return Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, state), {}, {
-          currentId: nextCurrentId,
-          hasSetCurrentId: true
-        });
-      }
-
-    case "setLoop":
-      return Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, state), {}, {
-        loop: applyState(action.loop, loop)
-      });
-
-    case "setWrap":
-      return Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, state), {}, {
-        wrap: applyState(action.wrap, wrap)
-      });
-
-    case "setShift":
-      return Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, state), {}, {
-        shift: applyState(action.shift, shift)
-      });
-
-    case "setIncludesBaseElement":
-      {
-        return Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, state), {}, {
-          unstable_includesBaseElement: applyState(action.includesBaseElement, includesBaseElement)
-        });
-      }
-
-    case "reset":
-      return Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, state), {}, {
-        unstable_virtual: initialVirtual,
-        rtl: initialRTL,
-        orientation: initialOrientation,
-        currentId: Object(getCurrentId_5aa9849e["b" /* g */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, state), {}, {
-          currentId: initialCurrentId
-        })),
-        loop: initialLoop,
-        wrap: initialWrap,
-        shift: initialShift,
-        unstable_moves: 0,
-        pastIds: []
-      });
-
-    case "setItems":
-      {
-        return Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, state), {}, {
-          items: action.items
-        });
-      }
-
-    default:
-      throw new Error();
-  }
-}
-
-function useAction(fn) {
-  return Object(external_React_["useCallback"])(fn, []);
-}
-
-function useIsUnmountedRef() {
-  var isUnmountedRef = Object(external_React_["useRef"])(false);
-  Object(useIsomorphicEffect["a" /* useIsomorphicEffect */])(function () {
-    return function () {
-      isUnmountedRef.current = true;
-    };
-  }, []);
-  return isUnmountedRef;
-}
-
-function useCompositeState(initialState) {
-  if (initialState === void 0) {
-    initialState = {};
-  }
-
-  var _useSealedState = useSealedState(initialState),
-      _useSealedState$unsta = _useSealedState.unstable_virtual,
-      virtual = _useSealedState$unsta === void 0 ? false : _useSealedState$unsta,
-      _useSealedState$rtl = _useSealedState.rtl,
-      rtl = _useSealedState$rtl === void 0 ? false : _useSealedState$rtl,
-      orientation = _useSealedState.orientation,
-      currentId = _useSealedState.currentId,
-      _useSealedState$loop = _useSealedState.loop,
-      loop = _useSealedState$loop === void 0 ? false : _useSealedState$loop,
-      _useSealedState$wrap = _useSealedState.wrap,
-      wrap = _useSealedState$wrap === void 0 ? false : _useSealedState$wrap,
-      _useSealedState$shift = _useSealedState.shift,
-      shift = _useSealedState$shift === void 0 ? false : _useSealedState$shift,
-      unstable_includesBaseElement = _useSealedState.unstable_includesBaseElement,
-      sealed = Object(_rollupPluginBabelHelpers_1f0bf8c2["a" /* _ */])(_useSealedState, ["unstable_virtual", "rtl", "orientation", "currentId", "loop", "wrap", "shift", "unstable_includesBaseElement"]);
-
-  var idState = unstable_useIdState(sealed);
-
-  var _React$useReducer = Object(external_React_["useReducer"])(CompositeState_reducer, {
-    unstable_virtual: virtual,
-    rtl: rtl,
-    orientation: orientation,
-    items: [],
-    groups: [],
-    currentId: currentId,
-    loop: loop,
-    wrap: wrap,
-    shift: shift,
-    unstable_moves: 0,
-    pastIds: [],
-    unstable_includesBaseElement: unstable_includesBaseElement != null ? unstable_includesBaseElement : currentId === null,
-    initialVirtual: virtual,
-    initialRTL: rtl,
-    initialOrientation: orientation,
-    initialCurrentId: currentId,
-    initialLoop: loop,
-    initialWrap: wrap,
-    initialShift: shift
-  }),
-      _React$useReducer$ = _React$useReducer[0],
-      pastIds = _React$useReducer$.pastIds,
-      initialVirtual = _React$useReducer$.initialVirtual,
-      initialRTL = _React$useReducer$.initialRTL,
-      initialOrientation = _React$useReducer$.initialOrientation,
-      initialCurrentId = _React$useReducer$.initialCurrentId,
-      initialLoop = _React$useReducer$.initialLoop,
-      initialWrap = _React$useReducer$.initialWrap,
-      initialShift = _React$useReducer$.initialShift,
-      hasSetCurrentId = _React$useReducer$.hasSetCurrentId,
-      state = Object(_rollupPluginBabelHelpers_1f0bf8c2["a" /* _ */])(_React$useReducer$, ["pastIds", "initialVirtual", "initialRTL", "initialOrientation", "initialCurrentId", "initialLoop", "initialWrap", "initialShift", "hasSetCurrentId"]),
-      dispatch = _React$useReducer[1];
-
-  var _React$useState = Object(external_React_["useState"])(false),
-      hasActiveWidget = _React$useState[0],
-      setHasActiveWidget = _React$useState[1]; // register/unregister may be called when this component is unmounted. We
-  // store the unmounted state here so we don't update the state if it's true.
-  // This only happens in a very specific situation.
-  // See https://github.com/reakit/reakit/issues/650
-
-
-  var isUnmountedRef = useIsUnmountedRef();
-  var setItems = Object(external_React_["useCallback"])(function (items) {
-    return dispatch({
-      type: "setItems",
-      items: items
-    });
-  }, []);
-  useSortBasedOnDOMPosition(state.items, setItems);
-  return Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, idState), state), {}, {
-    unstable_hasActiveWidget: hasActiveWidget,
-    unstable_setHasActiveWidget: setHasActiveWidget,
-    registerItem: useAction(function (item) {
-      if (isUnmountedRef.current) return;
-      dispatch({
-        type: "registerItem",
-        item: item
-      });
-    }),
-    unregisterItem: useAction(function (id) {
-      if (isUnmountedRef.current) return;
-      dispatch({
-        type: "unregisterItem",
-        id: id
-      });
-    }),
-    registerGroup: useAction(function (group) {
-      if (isUnmountedRef.current) return;
-      dispatch({
-        type: "registerGroup",
-        group: group
-      });
-    }),
-    unregisterGroup: useAction(function (id) {
-      if (isUnmountedRef.current) return;
-      dispatch({
-        type: "unregisterGroup",
-        id: id
-      });
-    }),
-    move: useAction(function (id) {
-      return dispatch({
-        type: "move",
-        id: id
-      });
-    }),
-    next: useAction(function (allTheWay) {
-      return dispatch({
-        type: "next",
-        allTheWay: allTheWay
-      });
-    }),
-    previous: useAction(function (allTheWay) {
-      return dispatch({
-        type: "previous",
-        allTheWay: allTheWay
-      });
-    }),
-    up: useAction(function (allTheWay) {
-      return dispatch({
-        type: "up",
-        allTheWay: allTheWay
-      });
-    }),
-    down: useAction(function (allTheWay) {
-      return dispatch({
-        type: "down",
-        allTheWay: allTheWay
-      });
-    }),
-    first: useAction(function () {
-      return dispatch({
-        type: "first"
-      });
-    }),
-    last: useAction(function () {
-      return dispatch({
-        type: "last"
-      });
-    }),
-    sort: useAction(function () {
-      return dispatch({
-        type: "sort"
-      });
-    }),
-    unstable_setVirtual: useAction(function (value) {
-      return dispatch({
-        type: "setVirtual",
-        virtual: value
-      });
-    }),
-    setRTL: useAction(function (value) {
-      return dispatch({
-        type: "setRTL",
-        rtl: value
-      });
-    }),
-    setOrientation: useAction(function (value) {
-      return dispatch({
-        type: "setOrientation",
-        orientation: value
-      });
-    }),
-    setCurrentId: useAction(function (value) {
-      return dispatch({
-        type: "setCurrentId",
-        currentId: value
-      });
-    }),
-    setLoop: useAction(function (value) {
-      return dispatch({
-        type: "setLoop",
-        loop: value
-      });
-    }),
-    setWrap: useAction(function (value) {
-      return dispatch({
-        type: "setWrap",
-        wrap: value
-      });
-    }),
-    setShift: useAction(function (value) {
-      return dispatch({
-        type: "setShift",
-        shift: value
-      });
-    }),
-    unstable_setIncludesBaseElement: useAction(function (value) {
-      return dispatch({
-        type: "setIncludesBaseElement",
-        includesBaseElement: value
-      });
-    }),
-    reset: useAction(function () {
-      return dispatch({
-        type: "reset"
-      });
-    })
-  });
-}
-
-
-
-// EXTERNAL MODULE: ./node_modules/reakit-system/es/createComponent.js + 3 modules
-var createComponent = __webpack_require__("hE48");
-
-// EXTERNAL MODULE: ./node_modules/reakit-system/es/createHook.js + 4 modules
-var createHook = __webpack_require__("qdes");
-
-// EXTERNAL MODULE: ./node_modules/reakit-utils/es/useForkRef.js
-var useForkRef = __webpack_require__("aU41");
-
-// EXTERNAL MODULE: ./node_modules/reakit-warning/es/index.js + 1 modules
-var es = __webpack_require__("KA1K");
-
-// EXTERNAL MODULE: ./node_modules/reakit-utils/es/useLiveRef.js
-var useLiveRef = __webpack_require__("eNtd");
-
-// EXTERNAL MODULE: ./node_modules/reakit-utils/es/isSelfTarget.js
-var isSelfTarget = __webpack_require__("k2cL");
-
-// EXTERNAL MODULE: ./node_modules/reakit/es/Role/Role.js
-var Role = __webpack_require__("zGFp");
-
-// EXTERNAL MODULE: ./node_modules/reakit/es/Tabbable/Tabbable.js
-var Tabbable = __webpack_require__("G3V0");
-
-// EXTERNAL MODULE: ./node_modules/reakit-system/es/useCreateElement.js
-var useCreateElement = __webpack_require__("IVEb");
-
-// EXTERNAL MODULE: ./node_modules/reakit-utils/es/_rollupPluginBabelHelpers-1f0bf8c2.js
-var es_rollupPluginBabelHelpers_1f0bf8c2 = __webpack_require__("I/A+");
-
-// EXTERNAL MODULE: ./node_modules/reakit-utils/es/createEvent.js
-var createEvent = __webpack_require__("khzz");
-
-// CONCATENATED MODULE: ./node_modules/reakit-utils/es/fireBlurEvent.js
-
-
-
-
-function createFocusEvent(element, type, eventInit) {
-  if (eventInit === void 0) {
-    eventInit = {};
-  }
-
-  if (typeof FocusEvent === "function") {
-    return new FocusEvent(type, eventInit);
-  }
-
-  return Object(createEvent["a" /* createEvent */])(element, type, eventInit);
-}
-/**
- * Creates and dispatches a blur event in a way that also works on IE 11.
- *
- * @example
- * import { fireBlurEvent } from "reakit-utils";
- *
- * fireBlurEvent(document.getElementById("id"));
- */
-
-
-function fireBlurEvent(element, eventInit) {
-  var event = createFocusEvent(element, "blur", eventInit);
-  var defaultAllowed = element.dispatchEvent(event);
-
-  var bubbleInit = Object(es_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(es_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, eventInit), {}, {
-    bubbles: true
-  });
-
-  element.dispatchEvent(createFocusEvent(element, "focusout", bubbleInit));
-  return defaultAllowed;
-}
-
-
-
-// EXTERNAL MODULE: ./node_modules/reakit-utils/es/getWindow.js
-var getWindow = __webpack_require__("SyVe");
-
-// CONCATENATED MODULE: ./node_modules/reakit-utils/es/fireKeyboardEvent.js
-
-
-
-function createKeyboardEvent(element, type, eventInit) {
-  if (eventInit === void 0) {
-    eventInit = {};
-  }
-
-  if (typeof KeyboardEvent === "function") {
-    return new KeyboardEvent(type, eventInit);
-  } // IE 11 doesn't support Event constructors
-
-
-  var event = Object(getDocument["a" /* getDocument */])(element).createEvent("KeyboardEvent");
-  event.initKeyboardEvent(type, eventInit.bubbles, eventInit.cancelable, Object(getWindow["a" /* getWindow */])(element), eventInit.key, eventInit.location, eventInit.ctrlKey, eventInit.altKey, eventInit.shiftKey, eventInit.metaKey);
-  return event;
-}
-/**
- * Creates and dispatches `KeyboardEvent` in a way that also works on IE 11.
- *
- * @example
- * import { fireKeyboardEvent } from "reakit-utils";
- *
- * fireKeyboardEvent(document.getElementById("id"), "keydown", {
- *   key: "ArrowDown",
- *   shiftKey: true,
- * });
- */
-
-
-function fireKeyboardEvent(element, type, eventInit) {
-  return element.dispatchEvent(createKeyboardEvent(element, type, eventInit));
-}
-
-
-
-// EXTERNAL MODULE: ./node_modules/reakit-utils/es/canUseDOM.js
-var canUseDOM = __webpack_require__("+ipW");
-
-// EXTERNAL MODULE: ./node_modules/reakit-utils/es/getActiveElement.js
-var getActiveElement = __webpack_require__("Nym8");
-
-// CONCATENATED MODULE: ./node_modules/reakit-utils/es/getNextActiveElementOnBlur.js
-
-
-
-
-
-var isIE11 = canUseDOM["a" /* canUseDOM */] && "msCrypto" in window;
-/**
- * Cross-browser method that returns the next active element (the element that
- * is receiving focus) after a blur event is dispatched. It receives the blur
- * event object as the argument.
- *
- * @example
- * import { getNextActiveElementOnBlur } from "reakit-utils";
- *
- * const element = document.getElementById("id");
- * element.addEventListener("blur", (event) => {
- *   const nextActiveElement = getNextActiveElementOnBlur(event);
- * });
- */
-
-function getNextActiveElementOnBlur(event) {
-  // IE 11 doesn't support event.relatedTarget on blur.
-  // document.activeElement points the the next active element.
-  // On modern browsers, document.activeElement points to the current target.
-  if (isIE11) {
-    var activeElement = Object(getActiveElement["a" /* getActiveElement */])(event.currentTarget);
-    return activeElement;
-  }
-
-  return event.relatedTarget;
-}
-
-
-
-// EXTERNAL MODULE: ./node_modules/reakit/es/__keys-6742f591.js
-var _keys_6742f591 = __webpack_require__("TFuP");
-
-// EXTERNAL MODULE: ./node_modules/reakit/es/userFocus-e16425e3.js
-var userFocus_e16425e3 = __webpack_require__("Mih7");
-
-// CONCATENATED MODULE: ./node_modules/reakit/es/Composite/Composite.js
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-var Composite_isIE11 = canUseDOM["a" /* canUseDOM */] && "msCrypto" in window;
-
-function canProxyKeyboardEvent(event) {
-  if (!Object(isSelfTarget["a" /* isSelfTarget */])(event)) return false;
-  if (event.metaKey) return false;
-  if (event.key === "Tab") return false;
-  return true;
-}
-
-function useKeyboardEventProxy(virtual, currentItem, htmlEventHandler) {
-  var eventHandlerRef = Object(useLiveRef["a" /* useLiveRef */])(htmlEventHandler);
-  return Object(external_React_["useCallback"])(function (event) {
-    var _eventHandlerRef$curr;
-
-    (_eventHandlerRef$curr = eventHandlerRef.current) === null || _eventHandlerRef$curr === void 0 ? void 0 : _eventHandlerRef$curr.call(eventHandlerRef, event);
-    if (event.defaultPrevented) return;
-
-    if (virtual && canProxyKeyboardEvent(event)) {
-      var currentElement = currentItem === null || currentItem === void 0 ? void 0 : currentItem.ref.current;
-
-      if (currentElement) {
-        if (!fireKeyboardEvent(currentElement, event.type, event)) {
-          event.preventDefault();
-        } // The event will be triggered on the composite item and then
-        // propagated up to this composite element again, so we can pretend
-        // that it wasn't called on this component in the first place.
-
-
-        if (event.currentTarget.contains(currentElement)) {
-          event.stopPropagation();
-        }
-      }
-    }
-  }, [virtual, currentItem]);
-} // istanbul ignore next
-
-
-function useActiveElementRef(elementRef) {
-  var activeElementRef = Object(external_React_["useRef"])(null);
-  Object(external_React_["useEffect"])(function () {
-    var document = Object(getDocument["a" /* getDocument */])(elementRef.current);
-
-    var onFocus = function onFocus(event) {
-      var target = event.target;
-      activeElementRef.current = target;
-    };
-
-    document.addEventListener("focus", onFocus, true);
-    return function () {
-      document.removeEventListener("focus", onFocus, true);
-    };
-  }, []);
-  return activeElementRef;
-}
-
-function findFirstEnabledItemInTheLastRow(items) {
-  return Object(getCurrentId_5aa9849e["a" /* f */])(flatten(reverse(groupItems(items))));
-}
-
-function isItem(items, element) {
-  return items === null || items === void 0 ? void 0 : items.some(function (item) {
-    return !!element && item.ref.current === element;
-  });
-}
-
-function useScheduleUserFocus(currentItem) {
-  var currentItemRef = Object(useLiveRef["a" /* useLiveRef */])(currentItem);
-
-  var _React$useReducer = Object(external_React_["useReducer"])(function (n) {
-    return n + 1;
-  }, 0),
-      scheduled = _React$useReducer[0],
-      schedule = _React$useReducer[1];
-
-  Object(external_React_["useEffect"])(function () {
-    var _currentItemRef$curre;
-
-    var currentElement = (_currentItemRef$curre = currentItemRef.current) === null || _currentItemRef$curre === void 0 ? void 0 : _currentItemRef$curre.ref.current;
-
-    if (scheduled && currentElement) {
-      Object(userFocus_e16425e3["c" /* u */])(currentElement);
-    }
-  }, [scheduled]);
-  return schedule;
-}
-
-var useComposite = Object(createHook["a" /* createHook */])({
-  name: "Composite",
-  compose: [Tabbable["a" /* useTabbable */]],
-  keys: _keys_6742f591["a" /* C */],
-  useOptions: function useOptions(options) {
-    return Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, options), {}, {
-      currentId: Object(getCurrentId_5aa9849e["b" /* g */])(options)
-    });
-  },
-  useProps: function useProps(options, _ref) {
-    var htmlRef = _ref.ref,
-        htmlOnFocusCapture = _ref.onFocusCapture,
-        htmlOnFocus = _ref.onFocus,
-        htmlOnBlurCapture = _ref.onBlurCapture,
-        htmlOnKeyDown = _ref.onKeyDown,
-        htmlOnKeyDownCapture = _ref.onKeyDownCapture,
-        htmlOnKeyUpCapture = _ref.onKeyUpCapture,
-        htmlProps = Object(_rollupPluginBabelHelpers_1f0bf8c2["a" /* _ */])(_ref, ["ref", "onFocusCapture", "onFocus", "onBlurCapture", "onKeyDown", "onKeyDownCapture", "onKeyUpCapture"]);
-
-    var ref = Object(external_React_["useRef"])(null);
-    var currentItem = findEnabledItemById(options.items, options.currentId);
-    var previousElementRef = Object(external_React_["useRef"])(null);
-    var onFocusCaptureRef = Object(useLiveRef["a" /* useLiveRef */])(htmlOnFocusCapture);
-    var onFocusRef = Object(useLiveRef["a" /* useLiveRef */])(htmlOnFocus);
-    var onBlurCaptureRef = Object(useLiveRef["a" /* useLiveRef */])(htmlOnBlurCapture);
-    var onKeyDownRef = Object(useLiveRef["a" /* useLiveRef */])(htmlOnKeyDown);
-    var scheduleUserFocus = useScheduleUserFocus(currentItem); // IE 11 doesn't support event.relatedTarget, so we use the active element
-    // ref instead.
-
-    var activeElementRef = Composite_isIE11 ? useActiveElementRef(ref) : undefined;
-    Object(external_React_["useEffect"])(function () {
-      var element = ref.current;
-
-      if (options.unstable_moves && !currentItem) {
-         false ? undefined : void 0; // If composite.move(null) has been called, the composite container
-        // will receive focus.
-
-        element === null || element === void 0 ? void 0 : element.focus();
-      }
-    }, [options.unstable_moves, currentItem]);
-    var onKeyDownCapture = useKeyboardEventProxy(options.unstable_virtual, currentItem, htmlOnKeyDownCapture);
-    var onKeyUpCapture = useKeyboardEventProxy(options.unstable_virtual, currentItem, htmlOnKeyUpCapture);
-    var onFocusCapture = Object(external_React_["useCallback"])(function (event) {
-      var _onFocusCaptureRef$cu;
-
-      (_onFocusCaptureRef$cu = onFocusCaptureRef.current) === null || _onFocusCaptureRef$cu === void 0 ? void 0 : _onFocusCaptureRef$cu.call(onFocusCaptureRef, event);
-      if (event.defaultPrevented) return;
-      if (!options.unstable_virtual) return; // IE11 doesn't support event.relatedTarget, so we use the active
-      // element ref instead.
-
-      var previousActiveElement = (activeElementRef === null || activeElementRef === void 0 ? void 0 : activeElementRef.current) || event.relatedTarget;
-      var previousActiveElementWasItem = isItem(options.items, previousActiveElement);
-
-      if (Object(isSelfTarget["a" /* isSelfTarget */])(event) && previousActiveElementWasItem) {
-        // Composite has been focused as a result of an item receiving focus.
-        // The composite item will move focus back to the composite
-        // container. In this case, we don't want to propagate this
-        // additional event nor call the onFocus handler passed to
-        // <Composite onFocus={...} />.
-        event.stopPropagation(); // We keep track of the previous active item element so we can
-        // manually fire a blur event on it later when the focus is moved to
-        // another item on the onBlurCapture event below.
-
-        previousElementRef.current = previousActiveElement;
-      }
-    }, [options.unstable_virtual, options.items]);
-    var onFocus = Object(external_React_["useCallback"])(function (event) {
-      var _onFocusRef$current;
-
-      (_onFocusRef$current = onFocusRef.current) === null || _onFocusRef$current === void 0 ? void 0 : _onFocusRef$current.call(onFocusRef, event);
-      if (event.defaultPrevented) return;
-
-      if (options.unstable_virtual) {
-        if (Object(isSelfTarget["a" /* isSelfTarget */])(event)) {
-          // This means that the composite element has been focused while the
-          // composite item has not. For example, by clicking on the
-          // composite element without touching any item, or by tabbing into
-          // the composite element. In this case, we want to trigger focus on
-          // the item, just like it would happen with roving tabindex.
-          // When it receives focus, the composite item will put focus back
-          // on the composite element, in which case hasItemWithFocus will be
-          // true.
-          scheduleUserFocus();
-        }
-      } else if (Object(isSelfTarget["a" /* isSelfTarget */])(event)) {
-        var _options$setCurrentId;
-
-        // When the roving tabindex composite gets intentionally focused (for
-        // example, by clicking directly on it, and not on an item), we make
-        // sure to set the current id to null (which means the composite
-        // itself is focused).
-        (_options$setCurrentId = options.setCurrentId) === null || _options$setCurrentId === void 0 ? void 0 : _options$setCurrentId.call(options, null);
-      }
-    }, [options.unstable_virtual, options.setCurrentId]);
-    var onBlurCapture = Object(external_React_["useCallback"])(function (event) {
-      var _onBlurCaptureRef$cur;
-
-      (_onBlurCaptureRef$cur = onBlurCaptureRef.current) === null || _onBlurCaptureRef$cur === void 0 ? void 0 : _onBlurCaptureRef$cur.call(onBlurCaptureRef, event);
-      if (event.defaultPrevented) return;
-      if (!options.unstable_virtual) return; // When virtual is set to true, we move focus from the composite
-      // container (this component) to the composite item that is being
-      // selected. Then we move focus back to the composite container. This
-      // is so we can provide the same API as the roving tabindex method,
-      // which means people can attach onFocus/onBlur handlers on the
-      // CompositeItem component regardless of whether it's virtual or not.
-      // This sequence of blurring and focusing items and composite may be
-      // confusing, so we ignore intermediate focus and blurs by stopping its
-      // propagation and not calling the passed onBlur handler (htmlOnBlur).
-
-      var currentElement = (currentItem === null || currentItem === void 0 ? void 0 : currentItem.ref.current) || null;
-      var nextActiveElement = getNextActiveElementOnBlur(event);
-      var nextActiveElementIsItem = isItem(options.items, nextActiveElement);
-
-      if (Object(isSelfTarget["a" /* isSelfTarget */])(event) && nextActiveElementIsItem) {
-        // This is an intermediate blur event: blurring the composite
-        // container to focus an item (nextActiveElement).
-        if (nextActiveElement === currentElement) {
-          // The next active element will be the same as the current item in
-          // the state in two scenarios:
-          //   - Moving focus with keyboard: the state is updated before the
-          // blur event is triggered, so here the current item is already
-          // pointing to the next active element.
-          //   - Clicking on the current active item with a pointer: this
-          // will trigger blur on the composite element and then the next
-          // active element will be the same as the current item. Clicking on
-          // an item other than the current one doesn't end up here as the
-          // currentItem state will be updated only after it.
-          if (previousElementRef.current && previousElementRef.current !== nextActiveElement) {
-            // If there's a previous active item and it's not a click action,
-            // then we fire a blur event on it so it will work just like if
-            // it had DOM focus before (like when using roving tabindex).
-            fireBlurEvent(previousElementRef.current, event);
-          }
-        } else if (currentElement) {
-          // This will be true when the next active element is not the
-          // current element, but there's a current item. This will only
-          // happen when clicking with a pointer on a different item, when
-          // there's already an item selected, in which case currentElement
-          // is the item that is getting blurred, and nextActiveElement is
-          // the item that is being clicked.
-          fireBlurEvent(currentElement, event);
-        } // We want to ignore intermediate blur events, so we stop its
-        // propagation and return early so onFocus will not be called.
-
-
-        event.stopPropagation();
-      } else {
-        var targetIsItem = isItem(options.items, event.target);
-
-        if (!targetIsItem && currentElement) {
-          // If target is not a composite item, it may be the composite
-          // element itself (isSelfTarget) or a tabbable element inside the
-          // composite widget. This may be triggered by clicking outside the
-          // composite widget or by tabbing out of it. In either cases we
-          // want to fire a blur event on the current item.
-          fireBlurEvent(currentElement, event);
-        }
-      }
-    }, [options.unstable_virtual, options.items, currentItem]);
-    var onKeyDown = Object(external_React_["useCallback"])(function (event) {
-      var _onKeyDownRef$current, _options$groups;
-
-      (_onKeyDownRef$current = onKeyDownRef.current) === null || _onKeyDownRef$current === void 0 ? void 0 : _onKeyDownRef$current.call(onKeyDownRef, event);
-      if (event.defaultPrevented) return;
-      if (options.currentId !== null) return;
-      if (!Object(isSelfTarget["a" /* isSelfTarget */])(event)) return;
-      var isVertical = options.orientation !== "horizontal";
-      var isHorizontal = options.orientation !== "vertical";
-      var isGrid = !!((_options$groups = options.groups) !== null && _options$groups !== void 0 && _options$groups.length);
-
-      var up = function up() {
-        if (isGrid) {
-          var item = findFirstEnabledItemInTheLastRow(options.items);
-
-          if (item !== null && item !== void 0 && item.id) {
-            var _options$move;
-
-            (_options$move = options.move) === null || _options$move === void 0 ? void 0 : _options$move.call(options, item.id);
-          }
-        } else {
-          var _options$last;
-
-          (_options$last = options.last) === null || _options$last === void 0 ? void 0 : _options$last.call(options);
-        }
-      };
-
-      var keyMap = {
-        ArrowUp: (isGrid || isVertical) && up,
-        ArrowRight: (isGrid || isHorizontal) && options.first,
-        ArrowDown: (isGrid || isVertical) && options.first,
-        ArrowLeft: (isGrid || isHorizontal) && options.last,
-        Home: options.first,
-        End: options.last,
-        PageUp: options.first,
-        PageDown: options.last
-      };
-      var action = keyMap[event.key];
-
-      if (action) {
-        event.preventDefault();
-        action();
-      }
-    }, [options.currentId, options.orientation, options.groups, options.items, options.move, options.last, options.first]);
-    return Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({
-      ref: Object(useForkRef["a" /* useForkRef */])(ref, htmlRef),
-      id: options.baseId,
-      onFocus: onFocus,
-      onFocusCapture: onFocusCapture,
-      onBlurCapture: onBlurCapture,
-      onKeyDownCapture: onKeyDownCapture,
-      onKeyDown: onKeyDown,
-      onKeyUpCapture: onKeyUpCapture,
-      "aria-activedescendant": options.unstable_virtual ? (currentItem === null || currentItem === void 0 ? void 0 : currentItem.id) || undefined : undefined
-    }, htmlProps);
-  },
-  useComposeProps: function useComposeProps(options, htmlProps) {
-    htmlProps = Object(Role["a" /* useRole */])(options, htmlProps, true);
-    var tabbableHTMLProps = Object(Tabbable["a" /* useTabbable */])(options, htmlProps, true);
-
-    if (options.unstable_virtual || options.currentId === null) {
-      // Composite will only be tabbable by default if the focus is managed
-      // using aria-activedescendant, which requires DOM focus on the container
-      // element (the composite)
-      return Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({
-        tabIndex: 0
-      }, tabbableHTMLProps);
-    }
-
-    return Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, htmlProps), {}, {
-      ref: tabbableHTMLProps.ref
-    });
-  }
-});
-var Composite = Object(createComponent["a" /* createComponent */])({
-  as: "div",
-  useHook: useComposite,
-  useCreateElement: function useCreateElement$1(type, props, children) {
-     false ? undefined : void 0;
-    return Object(useCreateElement["a" /* useCreateElement */])(type, props, children);
-  }
-});
-
-
-
-// EXTERNAL MODULE: ./node_modules/reakit/es/Id/Id.js
-var Id = __webpack_require__("ym77");
-
-// CONCATENATED MODULE: ./node_modules/reakit/es/Group/Group.js
-
-
-
-
-
-
-// Automatically generated
-var GROUP_KEYS = [];
-
-var useGroup = Object(createHook["a" /* createHook */])({
-  name: "Group",
-  compose: Role["a" /* useRole */],
-  keys: GROUP_KEYS,
-  useProps: function useProps(_, htmlProps) {
-    return Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({
-      role: "group"
-    }, htmlProps);
-  }
-});
-var Group = Object(createComponent["a" /* createComponent */])({
-  as: "div",
-  useHook: useGroup
-});
-
-
-
-// CONCATENATED MODULE: ./node_modules/reakit/es/Composite/CompositeGroup.js
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-var useCompositeGroup = Object(createHook["a" /* createHook */])({
-  name: "CompositeGroup",
-  compose: [useGroup, Id["a" /* unstable_useId */]],
-  keys: _keys_6742f591["b" /* a */],
-  propsAreEqual: function propsAreEqual(prev, next) {
-    if (!next.id || prev.id !== next.id) {
-      return useGroup.unstable_propsAreEqual(prev, next);
-    }
-
-    var prevCurrentId = prev.currentId,
-        prevMoves = prev.unstable_moves,
-        prevProps = Object(_rollupPluginBabelHelpers_1f0bf8c2["a" /* _ */])(prev, ["currentId", "unstable_moves"]);
-
-    var nextCurrentId = next.currentId,
-        nextMoves = next.unstable_moves,
-        nextProps = Object(_rollupPluginBabelHelpers_1f0bf8c2["a" /* _ */])(next, ["currentId", "unstable_moves"]);
-
-    if (prev.items && next.items) {
-      var prevCurrentItem = findEnabledItemById(prev.items, prevCurrentId);
-      var nextCurrentItem = findEnabledItemById(next.items, nextCurrentId);
-      var prevGroupId = prevCurrentItem === null || prevCurrentItem === void 0 ? void 0 : prevCurrentItem.groupId;
-      var nextGroupId = nextCurrentItem === null || nextCurrentItem === void 0 ? void 0 : nextCurrentItem.groupId;
-
-      if (next.id === nextGroupId || next.id === prevGroupId) {
-        return false;
-      }
-    }
-
-    return useGroup.unstable_propsAreEqual(prevProps, nextProps);
-  },
-  useProps: function useProps(options, _ref) {
-    var htmlRef = _ref.ref,
-        htmlProps = Object(_rollupPluginBabelHelpers_1f0bf8c2["a" /* _ */])(_ref, ["ref"]);
-
-    var ref = Object(external_React_["useRef"])(null);
-    var id = options.id; // We need this to be called before CompositeItems' register
-
-    Object(useIsomorphicEffect["a" /* useIsomorphicEffect */])(function () {
-      var _options$registerGrou;
-
-      if (!id) return undefined;
-      (_options$registerGrou = options.registerGroup) === null || _options$registerGrou === void 0 ? void 0 : _options$registerGrou.call(options, {
-        id: id,
-        ref: ref
-      });
-      return function () {
-        var _options$unregisterGr;
-
-        (_options$unregisterGr = options.unregisterGroup) === null || _options$unregisterGr === void 0 ? void 0 : _options$unregisterGr.call(options, id);
-      };
-    }, [id, options.registerGroup, options.unregisterGroup]);
-    return Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({
-      ref: Object(useForkRef["a" /* useForkRef */])(ref, htmlRef)
-    }, htmlProps);
-  }
-});
-var CompositeGroup = Object(createComponent["a" /* createComponent */])({
-  as: "div",
-  useHook: useCompositeGroup
-});
-
-
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.js
-
-
-function alignment_matrix_control_icon_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
-
-
-/**
- * Internal dependencies
- */
-
-
-
-const alignment_matrix_control_icon_styles_rootSize = () => {
-  const padding = 1.5;
-  const size = 24;
-  return /*#__PURE__*/css_browser_esm({
-    gridTemplateRows: `repeat( 3, calc( ${size - padding * 2}px / 3))`,
-    padding,
-    maxHeight: size,
-    maxWidth: size
-  },  true ? "" : undefined);
-};
-
-const rootPointerEvents = ({
-  disablePointerEvents
-}) => {
-  return /*#__PURE__*/css_browser_esm({
-    pointerEvents: disablePointerEvents ? 'none' : null
-  },  true ? "" : undefined);
-};
-
-const alignment_matrix_control_icon_styles_Wrapper = styled_base_browser_esm("div", {
-  target: "elqsdmc0",
-  label: "Wrapper"
-})( true ? {
-  name: "co61ta",
-  styles: "box-sizing:border-box;padding:2px;"
-} : undefined);
-const alignment_matrix_control_icon_styles_Root = styled_base_browser_esm("div", {
-  target: "elqsdmc1",
-  label: "Root"
-})("transform-origin:top left;height:100%;width:100%;", rootBase, ";", alignment_matrix_control_icon_styles_rootSize, ";", rootPointerEvents, ";" + ( true ? "" : undefined));
-
-const alignment_matrix_control_icon_styles_pointActive = ({
-  isActive
-}) => {
-  const boxShadow = isActive ? `0 0 0 1px currentColor` : null;
-  return /*#__PURE__*/css_browser_esm("box-shadow:", boxShadow, ";color:currentColor;*:hover > &{color:currentColor;}" + ( true ? "" : undefined));
-};
-
-const alignment_matrix_control_icon_styles_Point = styled_base_browser_esm("span", {
-  target: "elqsdmc2",
-  label: "Point"
-})("height:2px;width:2px;", pointBase, ";", alignment_matrix_control_icon_styles_pointActive, ";" + ( true ? "" : undefined));
-const alignment_matrix_control_icon_styles_Cell = Cell;
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/alignment-matrix-control/icon.js
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-
-const BASE_SIZE = 24;
-function AlignmentMatrixControlIcon({
-  className,
-  disablePointerEvents = true,
-  size = BASE_SIZE,
-  style = {},
-  value = 'center',
-  ...props
-}) {
-  const alignIndex = getAlignmentIndex(value);
-  const scale = (size / BASE_SIZE).toFixed(2);
-  const classes = classnames_default()('component-alignment-matrix-control-icon', className);
-  const styles = { ...style,
-    transform: `scale(${scale})`
-  };
-  return Object(external_wp_element_["createElement"])(alignment_matrix_control_icon_styles_Root, Object(esm_extends["a" /* default */])({}, props, {
-    className: classes,
-    disablePointerEvents: disablePointerEvents,
-    role: "presentation",
-    size: size,
-    style: styles
-  }), ALIGNMENTS.map((align, index) => {
-    const isActive = alignIndex === index;
-    return Object(external_wp_element_["createElement"])(alignment_matrix_control_icon_styles_Cell, {
-      key: align
-    }, Object(external_wp_element_["createElement"])(alignment_matrix_control_icon_styles_Point, {
-      isActive: isActive
-    }));
-  }));
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/alignment-matrix-control/index.js
-
-
-
-/**
- * External dependencies
- */
-
-
-/**
- * WordPress dependencies
- */
-
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-
-
-function useBaseId(id) {
-  const instanceId = Object(external_wp_compose_["useInstanceId"])(AlignmentMatrixControl, 'alignment-matrix-control');
-  return id || instanceId;
-}
-
-function AlignmentMatrixControl({
-  className,
-  id,
-  label = Object(external_wp_i18n_["__"])('Alignment Matrix Control'),
-  defaultValue = 'center center',
-  value,
-  onChange = external_lodash_["noop"],
-  width = 92,
-  ...props
-}) {
-  const [immutableDefaultValue] = Object(external_wp_element_["useState"])(value !== null && value !== void 0 ? value : defaultValue);
-  const baseId = useBaseId(id);
-  const initialCurrentId = utils_getItemId(baseId, immutableDefaultValue);
-  const composite = useCompositeState({
-    baseId,
-    currentId: initialCurrentId,
-    rtl: Object(external_wp_i18n_["isRTL"])()
-  });
-
-  const handleOnChange = nextValue => {
-    onChange(nextValue);
-  };
-
-  Object(external_wp_element_["useEffect"])(() => {
-    if (typeof value !== 'undefined') {
-      composite.setCurrentId(utils_getItemId(baseId, value));
-    }
-  }, [value, composite.setCurrentId]);
-  const classes = classnames_default()('component-alignment-matrix-control', className);
-  return Object(external_wp_element_["createElement"])(Composite, Object(esm_extends["a" /* default */])({}, props, composite, {
-    "aria-label": label,
-    as: Root,
-    className: classes,
-    role: "grid",
-    width: width
-  }), GRID.map((cells, index) => Object(external_wp_element_["createElement"])(CompositeGroup, Object(esm_extends["a" /* default */])({}, composite, {
-    as: Row,
-    role: "row",
-    key: index
-  }), cells.map(cell => {
-    const cellId = utils_getItemId(baseId, cell);
-    const isActive = composite.currentId === cellId;
-    return Object(external_wp_element_["createElement"])(cell_Cell, Object(esm_extends["a" /* default */])({}, composite, {
-      id: cellId,
-      isActive: isActive,
-      key: cell,
-      value: cell,
-      onFocus: () => handleOnChange(cell),
-      tabIndex: isActive ? 0 : -1
-    }));
-  }))));
-}
-AlignmentMatrixControl.Icon = AlignmentMatrixControlIcon;
-
-// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/animate/index.js
-var animate = __webpack_require__("L8Kx");
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/font-values.js
-/* harmony default export */ var font_values = ({
-  'default.fontFamily': "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif",
-  'default.fontSize': '13px',
-  'helpText.fontSize': '12px',
-  mobileTextMinFontSize: '16px'
-});
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/font.js
-/**
- * External dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-/**
- *
- * @param {keyof FONT} value Path of value from `FONT`
- * @return {string} Font rule value
- */
-
-function font(value) {
-  return Object(external_lodash_["get"])(font_values, value, '');
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/space.js
-const SPACE_GRID_BASE = 8;
-/**
- * Creates a spacing CSS value (px) based on grid system values.
- *
- * @param {number} [value=1] Multiplier against the grid base value (8)
- * @return {string} The spacing value (px).
- */
-
-function space(value = 1) {
-  if (isNaN(value)) return `${SPACE_GRID_BASE}px`;
-  return `${SPACE_GRID_BASE * value}px`;
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/base-control/styles/base-control-styles.js
-
-
-/**
- * Internal dependencies
- */
-
-const base_control_styles_Wrapper = styled_base_browser_esm("div", {
-  target: "e1puf3u0",
-  label: "Wrapper"
-})("font-family:", font('default.fontFamily'), ";font-size:", font('default.fontSize'), ";" + ( true ? "" : undefined));
-const StyledField = styled_base_browser_esm("div", {
-  target: "e1puf3u1",
-  label: "StyledField"
-})("margin-bottom:", space(1), ";.components-panel__row &{margin-bottom:inherit;}" + ( true ? "" : undefined));
-const StyledLabel = styled_base_browser_esm("label", {
-  target: "e1puf3u2",
-  label: "StyledLabel"
-})("display:inline-block;margin-bottom:", space(1), ";" + ( true ? "" : undefined));
-const StyledHelp = styled_base_browser_esm("p", {
-  target: "e1puf3u3",
-  label: "StyledHelp"
-})("font-size:", font('helpText.fontSize'), ";font-style:normal;color:", COLORS.mediumGray.text, ";" + ( true ? "" : undefined));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/base-control/index.js
-
-
-/**
- * External dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-
-/**
- * @typedef Props
- * @property {string} id The id of the element to which labels and help text are being generated.
- *                       That element should be passed as a child.
- * @property {import('react').ReactNode} help If this property is added, a help text will be
- *                                            generated using help property as the content.
- * @property {import('react').ReactNode} label If this property is added, a label will be generated
- *                                             using label property as the content.
- * @property {boolean} [hideLabelFromVision] If true, the label will only be visible to screen readers.
- * @property {string} [className] The class that will be added with "components-base-control" to the
- *                                classes of the wrapper div. If no className is passed only
- *                                components-base-control is used.
- * @property {import('react').ReactNode} [children] The content to be displayed within
- *                                                  the BaseControl.
- */
-
-/**
- * @param {Props} props
- * @return {JSX.Element} Element
- */
-
-function BaseControl({
-  id,
-  label,
-  hideLabelFromVision,
-  help,
-  className,
-  children
-}) {
-  return Object(external_wp_element_["createElement"])(base_control_styles_Wrapper, {
-    className: classnames_default()('components-base-control', className)
-  }, Object(external_wp_element_["createElement"])(StyledField, {
-    className: "components-base-control__field"
-  }, label && id && (hideLabelFromVision ? Object(external_wp_element_["createElement"])(visually_hidden["a" /* default */], {
-    as: "label",
-    htmlFor: id
-  }, label) : Object(external_wp_element_["createElement"])(StyledLabel, {
-    className: "components-base-control__label",
-    htmlFor: id
-  }, label)), label && !id && (hideLabelFromVision ? Object(external_wp_element_["createElement"])(visually_hidden["a" /* default */], {
-    as: "label"
-  }, label) : Object(external_wp_element_["createElement"])(BaseControl.VisualLabel, null, label)), children), !!help && Object(external_wp_element_["createElement"])(StyledHelp, {
-    id: id + '__help',
-    className: "components-base-control__help"
-  }, help));
-}
-/**
- * @typedef VisualLabelProps
- * @property {string} [className] Class name
- * @property {import('react').ReactNode} [children] Children
- */
-
-/**
- * @param {VisualLabelProps} Props
- * @return {JSX.Element} Element
- */
-
-
-BaseControl.VisualLabel = ({
-  className,
-  children
-}) => {
-  className = classnames_default()('components-base-control__label', className);
-  return Object(external_wp_element_["createElement"])("span", {
-    className: className
-  }, children);
-};
-
-/* harmony default export */ var base_control = (BaseControl);
-
-// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/ui/context/context-connect.js
-var context_connect = __webpack_require__("7Jlx");
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/view/component.js
-
-
-/**
- * `View` is a core component that renders everything in the library.
- * It is the principle component in the entire library.
- *
- * @example
- * ```jsx
- * import { View } from `@wordpress/components`;
- *
- * function Example() {
- * 	return (
- * 		<View>
- * 			 Code is Poetry
- * 		</View>
- * 	);
- * }
- * ```
- */
-const View = styled_base_browser_esm("div", {
-  target: "em57xhy0",
-  label: "View"
-})( true ? "" : undefined);
-
-View.displayName = 'View';
-/* harmony default export */ var component = (View);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/ui/utils/create-component.js
-
-
-
-/**
- * External dependencies
- */
-// eslint-disable-next-line no-restricted-imports
-
-/**
- * Internal dependencies
- */
- // eslint-disable-next-line no-duplicate-imports
-
-
-
-/**
- * Factory that creates a React component from a hook
- *
- * @param options
- * @param options.as The element to render for the component.
- * @param options.name The name of the component.
- * @param options.useHook The hook to use for the component
- * @param options.memo Whether to memo the component.
- * @return A polymorphic component that uses the hook to process props.
- */
-const create_component_createComponent = ({
-  as,
-  name,
-  useHook,
-  memo = false
-}) => {
-  function Component(props, forwardedRef) {
-    const otherProps = useHook(props);
-    return Object(external_wp_element_["createElement"])(component, Object(esm_extends["a" /* default */])({
-      as: as || 'div'
-    }, otherProps, {
-      ref: forwardedRef
-    }));
-  }
-
-  Component.displayName = name;
-  return Object(context_connect["a" /* contextConnect */])(Component, name, {
-    memo
-  });
-};
-
-// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/ui/context/use-context-system.js
-var use_context_system = __webpack_require__("C6yU");
-
-// EXTERNAL MODULE: ./node_modules/emotion/dist/emotion.esm.js + 1 modules
-var emotion_esm = __webpack_require__("kDDq");
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/flex/context.js
-/**
- * WordPress dependencies
- */
-
-const FlexContext = Object(external_wp_element_["createContext"])({
-  flexItemDisplay: undefined
-});
-const useFlexContext = () => Object(external_wp_element_["useContext"])(FlexContext);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/flex/styles.js
-
-
-function styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
-
-const Flex = /*#__PURE__*/Object(emotion_esm["a" /* css */])( true ? {
-  name: "142v397-Flex",
-  styles: "display:flex;;label:Flex;"
-} : undefined);
-const Item = /*#__PURE__*/Object(emotion_esm["a" /* css */])( true ? {
-  name: "1636tkh-Item",
-  styles: "display:block;max-height:100%;max-width:100%;min-height:0;min-width:0;;label:Item;"
-} : undefined);
-const block = /*#__PURE__*/Object(emotion_esm["a" /* css */])( true ? {
-  name: "jhhyjf-block",
-  styles: "flex:1;;label:block;"
-} : undefined);
-/**
- * Workaround to optimize DOM rendering.
- * We'll enhance alignment with naive parent flex assumptions.
- *
- * Trade-off:
- * Far less DOM less. However, UI rendering is not as reliable.
- */
-
-/**
- * Improves stability of width/height rendering.
- * https://github.com/ItsJonQ/g2/pull/149
- */
-
-const ItemsColumn = /*#__PURE__*/Object(emotion_esm["a" /* css */])( true ? {
-  name: "1u16kd2-ItemsColumn",
-  styles: "> *{min-height:0;};label:ItemsColumn;"
-} : undefined);
-const ItemsRow = /*#__PURE__*/Object(emotion_esm["a" /* css */])( true ? {
-  name: "1yewyqa-ItemsRow",
-  styles: "> *{min-width:0;};label:ItemsRow;"
-} : undefined);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/flex/flex-item/hook.js
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-/**
- * @param {import('../../ui/context').ViewOwnProps<import('../types').FlexItemProps, 'div'>} props
- */
-
-function useFlexItem(props) {
-  const {
-    className,
-    display: displayProp,
-    isBlock = false,
-    ...otherProps
-  } = Object(use_context_system["a" /* useContextSystem */])(props, 'FlexItem');
-  const sx = {};
-  const contextDisplay = useFlexContext().flexItemDisplay;
-  sx.Base = /*#__PURE__*/Object(emotion_esm["a" /* css */])({
-    display: displayProp || contextDisplay
-  },  true ? "" : undefined);
-
-  const classes = Object(emotion_esm["b" /* cx */])(Item, sx.Base, isBlock && block, className);
-
-  return { ...otherProps,
-    className: classes
-  };
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/flex/flex-block/hook.js
-/**
- * Internal dependencies
- */
-
-
-/**
- * @param {import('../../ui/context').ViewOwnProps<import('../types').FlexBlockProps, 'div'>} props
- */
-
-function useFlexBlock(props) {
-  const otherProps = Object(use_context_system["a" /* useContextSystem */])(props, 'FlexBlock');
-  const flexItemProps = useFlexItem({
-    isBlock: true,
-    ...otherProps
-  });
-  return flexItemProps;
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/flex/flex-block/component.js
-/**
- * Internal dependencies
- */
-
-
-/**
- * `FlexBlock` is a primitive layout component that adaptively resizes content within layout containers like `Flex`.
- *
- * @example
- * ```jsx
- * <Flex>
- * 	<FlexBlock>...</FlexBlock>
- * </Flex>
- * ```
- */
-
-const FlexBlock = create_component_createComponent({
-  as: 'div',
-  useHook: useFlexBlock,
-  name: 'FlexBlock'
-});
-/* harmony default export */ var flex_block_component = (FlexBlock);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/flex/flex-item/component.js
-/**
- * Internal dependencies
- */
-
-
-/**
- * `FlexItem` is a primitive layout component that aligns content within layout containers like `Flex`.
- *
- * @example
- * ```jsx
- * <Flex>
- * 	<FlexItem>...</FlexItem>
- * </Flex>
- * ```
- */
-
-const FlexItem = create_component_createComponent({
-  as: 'div',
-  useHook: useFlexItem,
-  name: 'FlexItem'
-});
-/* harmony default export */ var flex_item_component = (FlexItem);
-
-// EXTERNAL MODULE: external ["wp","deprecated"]
-var external_wp_deprecated_ = __webpack_require__("NMb1");
-var external_wp_deprecated_default = /*#__PURE__*/__webpack_require__.n(external_wp_deprecated_);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/ui/utils/use-responsive-value.js
-/**
- * WordPress dependencies
- */
-
-const breakpoints = ['40em', '52em', '64em'];
-const useBreakpointIndex = (options = {}) => {
-  const {
-    defaultIndex = 0
-  } = options;
-
-  if (typeof defaultIndex !== 'number') {
-    throw new TypeError(`Default breakpoint index should be a number. Got: ${defaultIndex}, ${typeof defaultIndex}`);
-  } else if (defaultIndex < 0 || defaultIndex > breakpoints.length - 1) {
-    throw new RangeError(`Default breakpoint index out of range. Theme has ${breakpoints.length} breakpoints, got index ${defaultIndex}`);
-  }
-
-  const [value, setValue] = Object(external_wp_element_["useState"])(defaultIndex);
-  Object(external_wp_element_["useEffect"])(() => {
-    const getIndex = () => breakpoints.filter(bp => {
-      return typeof window !== 'undefined' ? window.matchMedia(`screen and (min-width: ${bp})`).matches : false;
-    }).length;
-
-    const onResize = () => {
-      const newValue = getIndex();
-
-      if (value !== newValue) {
-        setValue(newValue);
-      }
-    };
-
-    onResize();
-
-    if (typeof document !== 'undefined') {
-      // Disable reason: We don't really care about what document we listen to, we just want to know that we're resizing.
-
-      /* eslint-disable @wordpress/no-global-event-listener */
-      document.addEventListener('resize', onResize);
-    }
-
-    return () => {
-      if (typeof document !== 'undefined') {
-        document.removeEventListener('resize', onResize);
-        /* eslint-enable @wordpress/no-global-event-listener */
-      }
-    };
-  }, [value]);
-  return value;
-};
-function useResponsiveValue(values, options = {}) {
-  const index = useBreakpointIndex(options); // Allow calling the function with a "normal" value without having to check on the outside.
-
-  if (!Array.isArray(values) && typeof values !== 'function') return values;
-  const array = values || [];
-  /* eslint-disable jsdoc/no-undefined-types */
-
-  return (
-    /** @type {T[]} */
-    array[
-    /* eslint-enable jsdoc/no-undefined-types */
-    index >= array.length ? array.length - 1 : index]
-  );
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/ui/utils/space.js
-/**
- * External dependencies
- */
-// eslint-disable-next-line no-restricted-imports
-
-/**
- * Internal dependencies
- */
-const GRID_BASE = '4px';
-function space_space(value) {
-  return typeof value === 'number' ? `calc(${GRID_BASE} * ${value})` : value;
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/flex/flex/hook.js
-
-
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-/**
- *
- * @param {import('../../ui/context').ViewOwnProps<import('../types').FlexProps, 'div'>} props
- * @return {import('../../ui/context').ViewOwnProps<import('../types').FlexProps, 'div'>} Props with the deprecated props removed.
- */
-
-function useDeprecatedProps({
-  isReversed,
-  ...otherProps
-}) {
-  if (typeof isReversed !== 'undefined') {
-    external_wp_deprecated_default()('Flex isReversed', {
-      alternative: 'Flex direction="row-reverse" or "column-reverse"',
-      since: '5.9'
-    });
-    return { ...otherProps,
-      direction: isReversed ? 'row-reverse' : 'row'
-    };
-  }
-
-  return otherProps;
-}
-/**
- * @param {import('../../ui/context').ViewOwnProps<import('../types').FlexProps, 'div'>} props
- */
-
-
-function useFlex(props) {
-  const {
-    align = 'center',
-    className,
-    direction: directionProp = 'row',
-    expanded = true,
-    gap = 2,
-    justify = 'space-between',
-    wrap = false,
-    ...otherProps
-  } = Object(use_context_system["a" /* useContextSystem */])(useDeprecatedProps(props), 'Flex');
-  const directionAsArray = Array.isArray(directionProp) ? directionProp : [directionProp];
-  const direction = useResponsiveValue(directionAsArray);
-  const isColumn = typeof direction === 'string' && !!direction.includes('column');
-  const isReverse = typeof direction === 'string' && direction.includes('reverse');
-  const classes = Object(external_wp_element_["useMemo"])(() => {
-    const sx = {};
-    sx.Base = /*#__PURE__*/Object(emotion_esm["a" /* css */])({
-      alignItems: isColumn ? 'normal' : align,
-      flexDirection: direction,
-      flexWrap: wrap ? 'wrap' : undefined,
-      justifyContent: justify,
-      height: isColumn && expanded ? '100%' : undefined,
-      width: !isColumn && expanded ? '100%' : undefined,
-      marginBottom: wrap ? `calc(${space_space(gap)} * -1)` : undefined
-    },  true ? "" : undefined);
-    sx.Items = /*#__PURE__*/Object(emotion_esm["a" /* css */])({
-      /**
-       * Workaround to optimize DOM rendering.
-       * We'll enhance alignment with naive parent flex assumptions.
-       *
-       * Trade-off:
-       * Far less DOM less. However, UI rendering is not as reliable.
-       */
-      '> * + *:not(marquee)': {
-        marginTop: isColumn ? space_space(gap) : undefined,
-        marginRight: !isColumn && isReverse ? space_space(gap) : undefined,
-        marginLeft: !isColumn && !isReverse ? space_space(gap) : undefined
-      }
-    },  true ? "" : undefined);
-    sx.WrapItems = /*#__PURE__*/Object(emotion_esm["a" /* css */])({
-      '> *:not(marquee)': {
-        marginBottom: space_space(gap),
-        marginLeft: !isColumn && isReverse ? space_space(gap) : undefined,
-        marginRight: !isColumn && !isReverse ? space_space(gap) : undefined
-      },
-      '> *:last-child:not(marquee)': {
-        marginLeft: !isColumn && isReverse ? 0 : undefined,
-        marginRight: !isColumn && !isReverse ? 0 : undefined
-      }
-    },  true ? "" : undefined);
-    return Object(emotion_esm["b" /* cx */])(Flex, sx.Base, wrap ? sx.WrapItems : sx.Items, isColumn ? ItemsColumn : ItemsRow, className);
-  }, [align, className, direction, expanded, gap, isColumn, isReverse, justify, wrap]);
-  return { ...otherProps,
-    className: classes,
-    isColumn
-  };
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/flex/flex/component.js
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-/**
- * @param {import('../../ui/context').ViewOwnProps<import('../types').FlexProps, 'div'>} props
- * @param {import('react').Ref<any>} forwardedRef
- */
-
-function component_Flex(props, forwardedRef) {
-  const {
-    children,
-    isColumn,
-    ...otherProps
-  } = useFlex(props);
-  return Object(external_wp_element_["createElement"])(FlexContext.Provider, {
-    value: {
-      flexItemDisplay: isColumn ? 'block' : undefined
-    }
-  }, Object(external_wp_element_["createElement"])(component, Object(esm_extends["a" /* default */])({}, otherProps, {
-    ref: forwardedRef
-  }), children));
-}
-/**
- * `Flex` is a primitive layout component that adaptively aligns child content
- * horizontally or vertically. `Flex` powers components like `HStack` and
- * `VStack`.
- *
- * `Flex` is used with any of it's two sub-components, `FlexItem` and `FlexBlock`.
- *
- * @example
- * ```jsx
- * import {
- * 	__experimentalFlex as Flex,
- * 	__experimentalFlexBlock as FlexBlock,
- * 	__experimentalFlexItem as FlexItem,
- * 	__experimentalText as Text
- * } from `@wordpress/components`;
- *
- * function Example() {
- * 	return (
- * 		<Flex>
- * 			<FlexItem>
- * 				<Text>Code</Text>
- * 			</FlexItem>
- * 			<FlexBlock>
- * 				<Text>Poetry</Text>
- * 			</FlexBlock>
- * 		</Flex>
- * 	);
- * }
- * ```
- *
- */
-
-
-const ConnectedFlex = Object(context_connect["a" /* contextConnect */])(component_Flex, 'Flex');
-/* harmony default export */ var flex_component = (ConnectedFlex);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/truncate/styles.js
-
-
-function truncate_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
-
-const Truncate = /*#__PURE__*/Object(emotion_esm["a" /* css */])( true ? {
-  name: "w4wjp3-Truncate",
-  styles: "display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;;label:Truncate;"
-} : undefined);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/truncate/utils.js
-/**
- * External dependencies
- */
-
-const TRUNCATE_ELLIPSIS = '…';
-const TRUNCATE_TYPE = {
-  auto: 'auto',
-  head: 'head',
-  middle: 'middle',
-  tail: 'tail',
-  none: 'none'
-};
-const TRUNCATE_DEFAULT_PROPS = {
-  ellipsis: TRUNCATE_ELLIPSIS,
-  ellipsizeMode: TRUNCATE_TYPE.auto,
-  limit: 0,
-  numberOfLines: 0
-}; // Source
-// https://github.com/kahwee/truncate-middle
-
-/**
- * @param {string} word
- * @param {number} headLength
- * @param {number} tailLength
- * @param {string} ellipsis
- */
-
-function truncateMiddle(word, headLength, tailLength, ellipsis) {
-  if (typeof word !== 'string') {
-    return '';
-  }
-
-  const wordLength = word.length; // Setting default values
-  // eslint-disable-next-line no-bitwise
-
-  const frontLength = ~~headLength; // will cast to integer
-  // eslint-disable-next-line no-bitwise
-
-  const backLength = ~~tailLength;
-  /* istanbul ignore next */
-
-  const truncateStr = !Object(external_lodash_["isNil"])(ellipsis) ? ellipsis : TRUNCATE_ELLIPSIS;
-
-  if (frontLength === 0 && backLength === 0 || frontLength >= wordLength || backLength >= wordLength || frontLength + backLength >= wordLength) {
-    return word;
-  } else if (backLength === 0) {
-    return word.slice(0, frontLength) + truncateStr;
-  }
-
-  return word.slice(0, frontLength) + truncateStr + word.slice(wordLength - backLength);
-}
-/**
- *
- * @param {string} words
- * @param {typeof TRUNCATE_DEFAULT_PROPS} props
- */
-
-function truncateContent(words = '', props) {
-  const mergedProps = { ...TRUNCATE_DEFAULT_PROPS,
-    ...props
-  };
-  const {
-    ellipsis,
-    ellipsizeMode,
-    limit
-  } = mergedProps;
-
-  if (ellipsizeMode === TRUNCATE_TYPE.none) {
-    return words;
-  }
-
-  let truncateHead;
-  let truncateTail;
-
-  switch (ellipsizeMode) {
-    case TRUNCATE_TYPE.head:
-      truncateHead = 0;
-      truncateTail = limit;
-      break;
-
-    case TRUNCATE_TYPE.middle:
-      truncateHead = Math.floor(limit / 2);
-      truncateTail = Math.floor(limit / 2);
-      break;
-
-    default:
-      truncateHead = limit;
-      truncateTail = 0;
-  }
-
-  const truncatedContent = ellipsizeMode !== TRUNCATE_TYPE.auto ? truncateMiddle(words, truncateHead, truncateTail, ellipsis) : words;
-  return truncatedContent;
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/truncate/hook.js
-
-
-
-/**
- * WordPress dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-
-
-/**
- * @param {import('../ui/context').ViewOwnProps<import('./types').Props, 'span'>} props
- */
-
-function useTruncate(props) {
-  const {
-    className,
-    children,
-    ellipsis = TRUNCATE_ELLIPSIS,
-    ellipsizeMode = TRUNCATE_TYPE.auto,
-    limit = 0,
-    numberOfLines = 0,
-    ...otherProps
-  } = Object(use_context_system["a" /* useContextSystem */])(props, 'Truncate');
-  const truncatedContent = truncateContent(typeof children === 'string' ?
-  /** @type {string} */
-  children : '', {
-    ellipsis,
-    ellipsizeMode,
-    limit,
-    numberOfLines
-  });
-  const shouldTruncate = ellipsizeMode === TRUNCATE_TYPE.auto;
-  const classes = Object(external_wp_element_["useMemo"])(() => {
-    const sx = {};
-    sx.numberOfLines = /*#__PURE__*/Object(emotion_esm["a" /* css */])("-webkit-box-orient:vertical;-webkit-line-clamp:", numberOfLines, ";display:-webkit-box;overflow:hidden;" + ( true ? "" : undefined));
-    return Object(emotion_esm["b" /* cx */])(shouldTruncate && !numberOfLines && Truncate, shouldTruncate && !!numberOfLines && sx.numberOfLines, className);
-  }, [className, numberOfLines, shouldTruncate]);
-  return { ...otherProps,
-    className: classes,
-    children: truncatedContent
-  };
-}
-
-// EXTERNAL MODULE: ./node_modules/memize/index.js
-var memize = __webpack_require__("4eJC");
-var memize_default = /*#__PURE__*/__webpack_require__.n(memize);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/ui/utils/colors.js
-/**
- * External dependencies
- */
-
-
-/** @type {HTMLDivElement} */
-
-let colorComputationNode;
-/**
- * @return {HTMLDivElement | undefined} The HTML element for color computation.
- */
-
-function getColorComputationNode() {
-  if (typeof document === 'undefined') return;
-
-  if (!colorComputationNode) {
-    // Create a temporary element for style computation.
-    const el = document.createElement('div');
-    el.setAttribute('data-g2-color-computation-node', ''); // Inject for window computed style.
-
-    document.body.appendChild(el);
-    colorComputationNode = el;
-  }
-
-  return colorComputationNode;
-}
-/**
- * @param {string | unknown} value
- *
- * @return {boolean} Whether the value is a valid color.
- */
-
-
-function isColor(value) {
-  if (typeof value !== 'string') return false;
-  const test = tinycolor_default()(value);
-  return test.isValid();
-}
-/**
- * Retrieves the computed background color. This is useful for getting the
- * value of a CSS variable color.
- *
- * @param {string | unknown} backgroundColor The background color to compute.
- *
- * @return {string} The computed background color.
- */
-
-
-function _getComputedBackgroundColor(backgroundColor) {
-  var _window;
-
-  if (typeof backgroundColor !== 'string') return '';
-  if (isColor(backgroundColor)) return backgroundColor;
-  if (!backgroundColor.includes('var(')) return '';
-  if (typeof document === 'undefined') return ''; // Attempts to gracefully handle CSS variables color values.
-
-  const el = getColorComputationNode();
-  if (!el) return '';
-  el.style.background = backgroundColor; // Grab the style
-
-  const computedColor = (_window = window) === null || _window === void 0 ? void 0 : _window.getComputedStyle(el).background; // Reset
-
-  el.style.background = '';
-  return computedColor || '';
-}
-
-const getComputedBackgroundColor = memize_default()(_getComputedBackgroundColor);
-/**
- * Get the text shade optimized for readability, based on a background color.
- *
- * @param {string | unknown} backgroundColor  The background color.
- *
- * @return {string} The optimized text color (black or white).
- */
-
-function getOptimalTextColor(backgroundColor) {
-  const background = getComputedBackgroundColor(backgroundColor);
-  const isReadableWithBlackText = tinycolor_default.a.isReadable(background, '#000000');
-  return isReadableWithBlackText ? '#000000' : '#ffffff';
-}
-/**
- * Get the text shade optimized for readability, based on a background color.
- *
- * @param {string | unknown} backgroundColor The background color.
- *
- * @return {string} The optimized text shade (dark or light).
- */
-
-function getOptimalTextShade(backgroundColor) {
-  const result = getOptimalTextColor(backgroundColor);
-  return result === '#000000' ? 'dark' : 'light';
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/config-values.js
-/**
- * Internal dependencies
- */
-
-
-const CONTROL_HEIGHT = '30px';
-const CARD_PADDING_X = space_space(3);
-const CARD_PADDING_Y = space_space(3);
-/* harmony default export */ var config_values = ({
-  colorDivider: 'rgba(0, 0, 0, 0.1)',
-  colorScrollbarThumb: 'rgba(0, 0, 0, 0.2)',
-  colorScrollbarThumbHover: 'rgba(0, 0, 0, 0.5)',
-  colorScrollbarTrack: 'rgba(0, 0, 0, 0.04)',
-  elevationIntensity: 1,
-  radiusBlockUi: '2px',
-  borderWidth: '1px',
-  borderWidthFocus: '1.5px',
-  borderWidthTab: '4px',
-  spinnerSize: '18px',
-  fontSize: '13px',
-  fontSizeH1: 'calc(2.44 * 13px)',
-  fontSizeH2: 'calc(1.95 * 13px)',
-  fontSizeH3: 'calc(1.56 * 13px)',
-  fontSizeH4: 'calc(1.25 * 13px)',
-  fontSizeH5: '13px',
-  fontSizeH6: 'calc(0.8 * 13px)',
-  fontSizeInputMobile: '16px',
-  fontSizeMobile: '15px',
-  fontSizeSmall: 'calc(0.92 * 13px)',
-  fontSizeXSmall: 'calc(0.75 * 13px)',
-  fontLineHeightBase: '1.2',
-  fontWeight: 'normal',
-  fontWeightHeading: '600',
-  gridBase: '4px',
-  controlHeight: CONTROL_HEIGHT,
-  controlHeightLarge: `calc( ${CONTROL_HEIGHT} * 1.2 )`,
-  controlHeightSmall: `calc( ${CONTROL_HEIGHT} * 0.8 )`,
-  controlHeightXSmall: `calc( ${CONTROL_HEIGHT} * 0.6 )`,
-  cardBorderRadius: '2px',
-  cardPaddingX: CARD_PADDING_X,
-  cardPaddingY: CARD_PADDING_Y,
-  cardPadding: `${CARD_PADDING_X} ${CARD_PADDING_Y}`,
-  cardHeaderFooterPaddingY: space_space(1),
-  cardHeaderHeight: '44px',
-  surfaceBackgroundColor: COLORS.white,
-  surfaceBackgroundSubtleColor: '#F3F3F3',
-  surfaceBackgroundTintColor: '#F5F5F5',
-  surfaceBorderColor: 'rgba(0, 0, 0, 0.1)',
-  surfaceBorderBoldColor: 'rgba(0, 0, 0, 0.15)',
-  surfaceBorderSubtleColor: 'rgba(0, 0, 0, 0.05)',
-  surfaceBackgroundTertiaryColor: COLORS.white,
-  surfaceColor: COLORS.white,
-  transitionDuration: '200ms',
-  transitionDurationFast: '160ms',
-  transitionDurationFaster: '120ms',
-  transitionDurationFastest: '100ms',
-  transitionTimingFunction: 'cubic-bezier(0.08, 0.52, 0.52, 1)',
-  transitionTimingFunctionControl: 'cubic-bezier(0.12, 0.8, 0.32, 1)'
-});
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/text/styles.js
-
-
-function text_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
-
-/**
- * Internal dependencies
- */
-
-const Text = /*#__PURE__*/Object(emotion_esm["a" /* css */])("color:", COLORS.black, ";line-height:", config_values.fontLineHeightBase, ";margin:0;;label:Text;" + ( true ? "" : undefined));
-const styles_block = /*#__PURE__*/Object(emotion_esm["a" /* css */])( true ? {
-  name: "w2ur5d-block",
-  styles: "display:block;;label:block;"
-} : undefined);
-const positive = /*#__PURE__*/Object(emotion_esm["a" /* css */])("color:", COLORS.alert.green, ";;label:positive;" + ( true ? "" : undefined));
-const destructive = /*#__PURE__*/Object(emotion_esm["a" /* css */])("color:", COLORS.alert.red, ";;label:destructive;" + ( true ? "" : undefined));
-const styles_muted = /*#__PURE__*/Object(emotion_esm["a" /* css */])("color:", COLORS.mediumGray.text, ";;label:muted;" + ( true ? "" : undefined));
-const highlighterText = /*#__PURE__*/Object(emotion_esm["a" /* css */])("mark{background:", COLORS.alert.yellow, ";border-radius:2px;box-shadow:0 0 0 1px rgba( 0,0,0,0.05 ) inset,0 -1px 0 rgba( 0,0,0,0.1 ) inset;};label:highlighterText;" + ( true ? "" : undefined));
-const styles_upperCase = /*#__PURE__*/Object(emotion_esm["a" /* css */])( true ? {
-  name: "a0nhhd-upperCase",
-  styles: "text-transform:uppercase;;label:upperCase;"
-} : undefined);
-
-// EXTERNAL MODULE: ./node_modules/highlight-words-core/dist/index.js
-var dist = __webpack_require__("5V/u");
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/text/utils.js
-/**
- * External dependencies
- */
-
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Source:
- * https://github.com/bvaughn/react-highlight-words/blob/HEAD/src/Highlighter.js
- */
-
-/* eslint-disable jsdoc/valid-types */
-
-/**
- * @typedef Options
- * @property {string} [activeClassName=''] Classname for active highlighted areas.
- * @property {number} [activeIndex=-1] The index of the active highlighted area.
- * @property {import('react').AllHTMLAttributes<HTMLDivElement>['style']} [activeStyle] Styles to apply to the active highlighted area.
- * @property {boolean} [autoEscape] Whether to automatically escape text.
- * @property {boolean} [caseSensitive=false] Whether to highlight in a case-sensitive manner.
- * @property {string} children Children to highlight.
- * @property {import('highlight-words-core').FindAllArgs['findChunks']} [findChunks] Custom `findChunks` function to pass to `highlight-words-core`.
- * @property {string | Record<string, unknown>} [highlightClassName=''] Classname to apply to highlighted text or a Record of classnames to apply to given text (which should be the key).
- * @property {import('react').AllHTMLAttributes<HTMLDivElement>['style']} [highlightStyle={}] Styles to apply to highlighted text.
- * @property {keyof JSX.IntrinsicElements} [highlightTag='mark'] Tag to use for the highlighted text.
- * @property {import('highlight-words-core').FindAllArgs['sanitize']} [sanitize] Custom `santize` function to pass to `highlight-words-core`.
- * @property {string[]} [searchWords=[]] Words to search for and highlight.
- * @property {string} [unhighlightClassName=''] Classname to apply to unhighlighted text.
- * @property {import('react').AllHTMLAttributes<HTMLDivElement>['style']} [unhighlightStyle] Style to apply to unhighlighted text.
- */
-
-/**
- * Maps props to lowercase names.
- *
- * @template {Record<string, unknown>} T
- * @param {T} object Props to map.
- * @return {{[K in keyof T as Lowercase<string & K>]: T[K]}} The mapped props.
- */
-
-/* eslint-enable jsdoc/valid-types */
-
-const lowercaseProps = object => {
-  /** @type {any} */
-  const mapped = {};
-
-  for (const key in object) {
-    mapped[key.toLowerCase()] = object[key];
-  }
-
-  return mapped;
-};
-
-const memoizedLowercaseProps = memize_default()(lowercaseProps);
-/**
- *
- * @param {Options} options
- */
-
-function createHighlighterText({
-  activeClassName = '',
-  activeIndex = -1,
-  activeStyle,
-  autoEscape,
-  caseSensitive = false,
-  children,
-  findChunks,
-  highlightClassName = '',
-  highlightStyle = {},
-  highlightTag = 'mark',
-  sanitize,
-  searchWords = [],
-  unhighlightClassName = '',
-  unhighlightStyle
-}) {
-  if (!children) return null;
-  if (typeof children !== 'string') return children;
-  const textToHighlight = children;
-  const chunks = Object(dist["findAll"])({
-    autoEscape,
-    caseSensitive,
-    findChunks,
-    sanitize,
-    searchWords,
-    textToHighlight
-  });
-  const HighlightTag = highlightTag;
-  let highlightIndex = -1;
-  let highlightClassNames = '';
-  let highlightStyles;
-  const textContent = chunks.map((chunk, index) => {
-    const text = textToHighlight.substr(chunk.start, chunk.end - chunk.start);
-
-    if (chunk.highlight) {
-      highlightIndex++;
-      let highlightClass;
-
-      if (typeof highlightClassName === 'object') {
-        if (!caseSensitive) {
-          highlightClassName = memoizedLowercaseProps(highlightClassName);
-          highlightClass = highlightClassName[text.toLowerCase()];
-        } else {
-          highlightClass = highlightClassName[text];
-        }
-      } else {
-        highlightClass = highlightClassName;
-      }
-
-      const isActive = highlightIndex === +activeIndex;
-      highlightClassNames = `${highlightClass} ${isActive ? activeClassName : ''}`;
-      highlightStyles = isActive === true && activeStyle !== null ? Object.assign({}, highlightStyle, activeStyle) : highlightStyle;
-      /** @type {Record<string, any>} */
-
-      const props = {
-        children: text,
-        className: highlightClassNames,
-        key: index,
-        style: highlightStyles
-      }; // Don't attach arbitrary props to DOM elements; this triggers React DEV warnings (https://fb.me/react-unknown-prop)
-      // Only pass through the highlightIndex attribute for custom components.
-
-      if (typeof HighlightTag !== 'string') {
-        props.highlightIndex = highlightIndex;
-      }
-
-      return Object(external_wp_element_["createElement"])(HighlightTag, props);
-    }
-
-    return Object(external_wp_element_["createElement"])('span', {
-      children: text,
-      className: unhighlightClassName,
-      key: index,
-      style: unhighlightStyle
-    });
-  });
-  return textContent;
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/ui/utils/font-size.js
-/**
- * External dependencies
- */
-// eslint-disable-next-line no-restricted-imports
-
-/**
- * Internal dependencies
- */
-
-const BASE_FONT_SIZE = 13;
-const PRESET_FONT_SIZES = {
-  body: BASE_FONT_SIZE,
-  caption: 10,
-  footnote: 11,
-  largeTitle: 28,
-  subheadline: 12,
-  title: 20
-};
-const HEADING_FONT_SIZES = [1, 2, 3, 4, 5, 6].flatMap(n => [n, n.toString()]);
-function getFontSize(size = BASE_FONT_SIZE) {
-  if (size in PRESET_FONT_SIZES) {
-    return getFontSize(PRESET_FONT_SIZES[size]);
-  }
-
-  if (typeof size !== 'number') {
-    const parsed = parseFloat(size);
-    if (Number.isNaN(parsed)) return size;
-    size = parsed;
-  }
-
-  const ratio = `(${size} / ${BASE_FONT_SIZE})`;
-  return `calc(${ratio} * ${config_values.fontSize})`;
-}
-function getHeadingFontSize(size = 3) {
-  if (!HEADING_FONT_SIZES.includes(size)) {
-    return getFontSize(size);
-  }
-
-  const headingSize = `fontSizeH${size}`;
-  return config_values[headingSize];
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/text/get-line-height.js
-/**
- * External dependencies
- */
-// eslint-disable-next-line no-restricted-imports
-
-/**
- * Internal dependencies
- */
-
-
-function getLineHeight(adjustLineHeightForInnerControls, lineHeight) {
-  if (lineHeight) return lineHeight;
-  if (!adjustLineHeightForInnerControls) return;
-  let value = `calc(${config_values.controlHeight} + ${space_space(2)})`;
-
-  switch (adjustLineHeightForInnerControls) {
-    case 'large':
-      value = `calc(${config_values.controlHeightLarge} + ${space_space(2)})`;
-      break;
-
-    case 'small':
-      value = `calc(${config_values.controlHeightSmall} + ${space_space(2)})`;
-      break;
-
-    case 'xSmall':
-      value = `calc(${config_values.controlHeightXSmall} + ${space_space(2)})`;
-      break;
-
-    default:
-      break;
-  }
-
-  return value;
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/text/hook.js
-
-
-
-function hook_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
-
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-
-
-
-
-/**
- * @param {import('../ui/context').ViewOwnProps<import('./types').Props, 'span'>} props
- */
-
-function useText(props) {
-  const {
-    adjustLineHeightForInnerControls,
-    align,
-    children,
-    className,
-    color,
-    ellipsizeMode,
-    isDestructive = false,
-    display,
-    highlightEscape = false,
-    highlightCaseSensitive = false,
-    highlightWords,
-    highlightSanitize,
-    isBlock = false,
-    letterSpacing,
-    lineHeight: lineHeightProp,
-    optimizeReadabilityFor,
-    size,
-    truncate = false,
-    upperCase = false,
-    variant,
-    weight = config_values.fontWeight,
-    ...otherProps
-  } = Object(use_context_system["a" /* useContextSystem */])(props, 'Text');
-  /** @type {import('react').ReactNode} */
-
-  let content = children;
-  const isHighlighter = Array.isArray(highlightWords);
-  const isCaption = size === 'caption';
-
-  if (isHighlighter) {
-    if (typeof children !== 'string') {
-      throw new TypeError('`children` of `Text` must only be `string` types when `highlightWords` is defined');
-    }
-
-    content = createHighlighterText({
-      autoEscape: highlightEscape,
-      // Disable reason: We need to disable this otherwise it erases the cast
-      // eslint-disable-next-line object-shorthand
-      children:
-      /** @type {string} */
-      children,
-      caseSensitive: highlightCaseSensitive,
-      searchWords: highlightWords,
-      sanitize: highlightSanitize
-    });
-  }
-
-  const classes = Object(external_wp_element_["useMemo"])(() => {
-    const sx = {};
-    const lineHeight = getLineHeight(adjustLineHeightForInnerControls, lineHeightProp);
-    sx.Base = /*#__PURE__*/Object(emotion_esm["a" /* css */])({
-      color,
-      display,
-      fontSize: getFontSize(size),
-
-      /* eslint-disable jsdoc/valid-types */
-      fontWeight:
-      /** @type {import('react').CSSProperties['fontWeight']} */
-      weight,
-
-      /* eslint-enable jsdoc/valid-types */
-      lineHeight,
-      letterSpacing,
-      textAlign: align
-    },  true ? "" : undefined);
-    sx.upperCase = /*#__PURE__*/Object(emotion_esm["a" /* css */])( true ? {
-      name: "1lejymi",
-      styles: "text-transform:uppercase;"
-    } : undefined);
-    sx.optimalTextColor = null;
-
-    if (optimizeReadabilityFor) {
-      const isOptimalTextColorDark = getOptimalTextShade(optimizeReadabilityFor) === 'dark';
-      sx.optimalTextColor = isOptimalTextColorDark ? /*#__PURE__*/Object(emotion_esm["a" /* css */])({
-        color: COLORS.black
-      },  true ? "" : undefined) : /*#__PURE__*/Object(emotion_esm["a" /* css */])({
-        color: COLORS.white
-      },  true ? "" : undefined);
-    }
-
-    return Object(emotion_esm["b" /* cx */])(Text, sx.Base, sx.optimalTextColor, isDestructive && destructive, !!isHighlighter && highlighterText, isBlock && styles_block, isCaption && styles_muted, variant && text_styles_namespaceObject[variant], upperCase && sx.upperCase, className);
-  }, [adjustLineHeightForInnerControls, align, className, color, display, isBlock, isCaption, isDestructive, isHighlighter, letterSpacing, lineHeightProp, optimizeReadabilityFor, size, upperCase, variant, weight]);
-  /** @type {undefined | 'auto' | 'none'} */
-
-  let finalEllipsizeMode;
-
-  if (truncate === true) {
-    finalEllipsizeMode = 'auto';
-  }
-
-  if (truncate === false) {
-    finalEllipsizeMode = 'none';
-  }
-
-  const finalComponentProps = { ...otherProps,
-    className: classes,
-    children,
-    ellipsizeMode: ellipsizeMode || finalEllipsizeMode
-  };
-  const truncateProps = useTruncate(finalComponentProps);
-  /**
-   * Enhance child `<Link />` components to inherit font size.
-   */
-
-  if (!truncate && Array.isArray(children)) {
-    content = external_wp_element_["Children"].map(children, child => {
-      // @ts-ignore
-      if (!Object(external_lodash_["isPlainObject"])(child) || !('props' in child)) {
-        return child;
-      }
-
-      const isLink = Object(context_connect["b" /* hasConnectNamespace */])(child, ['Link']);
-
-      if (isLink) {
-        return Object(external_wp_element_["cloneElement"])(child, {
-          size: child.props.size || 'inherit'
-        });
-      }
-
-      return child;
-    });
-  }
-
-  return { ...truncateProps,
-    children: truncate ? truncateProps.children : content
-  };
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/text/component.js
-/**
- * Internal dependencies
- */
-
-
-/**
- * `Text` is a core component that renders text in the library, using the
- * library's typography system.
- *
- * `Text` can be used to render any text-content, like an HTML `p` or `span`.
- *
- * @example
- *
- * ```jsx
- * import { __experimentalText as Text } from `@wordpress/components`;
- *
- * function Example() {
- * 	return <Text>Code is Poetry</Text>;
- * }
- * ```
- */
-
-const component_Text = create_component_createComponent({
-  as: 'span',
-  useHook: useText,
-  name: 'Text'
-});
-/* harmony default export */ var text_component = (component_Text);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/rtl.js
-/**
- * External dependencies
- */
-
-
-/**
- * WordPress dependencies
- */
-
-
-const LOWER_LEFT_REGEXP = new RegExp(/-left/g);
-const LOWER_RIGHT_REGEXP = new RegExp(/-right/g);
-const UPPER_LEFT_REGEXP = new RegExp(/Left/g);
-const UPPER_RIGHT_REGEXP = new RegExp(/Right/g);
-/**
- * Flips a CSS property from left <-> right.
- *
- * @param {string} key The CSS property name.
- *
- * @return {string} The flipped CSS property name, if applicable.
- */
-
-function getConvertedKey(key) {
-  if (key === 'left') {
-    return 'right';
-  }
-
-  if (key === 'right') {
-    return 'left';
-  }
-
-  if (LOWER_LEFT_REGEXP.test(key)) {
-    return key.replace(LOWER_LEFT_REGEXP, '-right');
-  }
-
-  if (LOWER_RIGHT_REGEXP.test(key)) {
-    return key.replace(LOWER_RIGHT_REGEXP, '-left');
-  }
-
-  if (UPPER_LEFT_REGEXP.test(key)) {
-    return key.replace(UPPER_LEFT_REGEXP, 'Right');
-  }
-
-  if (UPPER_RIGHT_REGEXP.test(key)) {
-    return key.replace(UPPER_RIGHT_REGEXP, 'Left');
-  }
-
-  return key;
-}
-/**
- * An incredibly basic ltr -> rtl converter for style properties
- *
- * @param {import('react').CSSProperties} ltrStyles
- *
- * @return {import('react').CSSProperties} Converted ltr -> rtl styles
- */
-
-
-const convertLTRToRTL = (ltrStyles = {}) => {
-  return Object(external_lodash_["mapKeys"])(ltrStyles, (_value, key) => getConvertedKey(key));
-};
-/**
- * A higher-order function that create an incredibly basic ltr -> rtl style converter for CSS objects.
- *
- * @param {import('react').CSSProperties} ltrStyles   Ltr styles. Converts and renders from ltr -> rtl styles, if applicable.
- * @param {import('react').CSSProperties} [rtlStyles] Rtl styles. Renders if provided.
- *
- * @return {Function} A function to output CSS styles for Emotion's renderer
- */
-
-function rtl_rtl(ltrStyles = {}, rtlStyles) {
-  return () => {
-    if (rtlStyles) {
-      // @ts-ignore: `css` types are wrong, it can accept an object: https://emotion.sh/docs/object-styles#with-css
-      return Object(external_wp_i18n_["isRTL"])() ? /*#__PURE__*/css_browser_esm(rtlStyles,  true ? "" : undefined) : /*#__PURE__*/css_browser_esm(ltrStyles,  true ? "" : undefined);
-    } // @ts-ignore: `css` types are wrong, it can accept an object: https://emotion.sh/docs/object-styles#with-css
-
-
-    return Object(external_wp_i18n_["isRTL"])() ? /*#__PURE__*/css_browser_esm(convertLTRToRTL(ltrStyles),  true ? "" : undefined) : /*#__PURE__*/css_browser_esm(ltrStyles,  true ? "" : undefined);
-  };
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/input-control/styles/input-control-styles.js
-
-
-
-
-function input_control_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
-
-/**
- * External dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-var input_control_styles_ref =  true ? {
-  name: "1dacand",
-  styles: "padding-top:0;"
-} : undefined;
-
-const rootFloatLabelStyles = () => {
-  return input_control_styles_ref;
-};
-
-var input_control_styles_ref2 =  true ? {
-  name: "r6z5ec",
-  styles: "z-index:1;"
-} : undefined;
-
-const rootFocusedStyles = ({
-  isFocused
-}) => {
-  if (!isFocused) return '';
-  return input_control_styles_ref2;
-};
-
-var input_control_styles_ref3 =  true ? {
-  name: "uz6002",
-  styles: "align-items:flex-start;flex-direction:column;"
-} : undefined;
-
-var input_control_styles_ref4 =  true ? {
-  name: "53hdd7",
-  styles: "align-items:flex-start;flex-direction:column-reverse;"
-} : undefined;
-
-var input_control_styles_ref5 =  true ? {
-  name: "x4dmss",
-  styles: "justify-content:space-between;"
-} : undefined;
-
-const rootLabelPositionStyles = ({
-  labelPosition
-}) => {
-  switch (labelPosition) {
-    case 'top':
-      return input_control_styles_ref3;
-
-    case 'bottom':
-      return input_control_styles_ref4;
-
-    case 'edge':
-      return input_control_styles_ref5;
-
-    default:
-      return '';
-  }
-};
-
-const input_control_styles_Root = /*#__PURE__*/styled_base_browser_esm(flex_component, {
-  target: "e1cr7zh10",
-  label: "Root"
-})("position:relative;border-radius:2px;", rootFloatLabelStyles, " ", rootFocusedStyles, " ", rootLabelPositionStyles,  true ? "" : undefined);
-
-const containerDisabledStyles = ({
-  disabled
-}) => {
-  const backgroundColor = disabled ? COLORS.ui.backgroundDisabled : COLORS.ui.background;
-  return /*#__PURE__*/css_browser_esm({
-    backgroundColor
-  },  true ? "" : undefined);
-}; // Normalizes the margins from the <Flex /> (components/ui/flex/) container.
-
-
-var input_control_styles_ref6 =  true ? {
-  name: "1ibawvu",
-  styles: "margin:0 !important;"
-} : undefined;
-
-const containerMarginStyles = ({
-  hideLabel
-}) => {
-  return hideLabel ? input_control_styles_ref6 : null;
-};
-
-var input_control_styles_ref7 =  true ? {
-  name: "8atqhb",
-  styles: "width:100%;"
-} : undefined;
-
-const containerWidthStyles = ({
-  __unstableInputWidth,
-  labelPosition
-}) => {
-  if (!__unstableInputWidth) return input_control_styles_ref7;
-  if (labelPosition === 'side') return '';
-
-  if (labelPosition === 'edge') {
-    return /*#__PURE__*/css_browser_esm({
-      flex: `0 0 ${__unstableInputWidth}`
-    },  true ? "" : undefined);
-  }
-
-  return /*#__PURE__*/css_browser_esm({
-    width: __unstableInputWidth
-  },  true ? "" : undefined);
-};
-
-const Container = styled_base_browser_esm("div", {
-  target: "e1cr7zh11",
-  label: "Container"
-})("align-items:center;box-sizing:border-box;border-radius:inherit;display:flex;flex:1;position:relative;", containerDisabledStyles, " ", containerMarginStyles, " ", containerWidthStyles,  true ? "" : undefined);
-
-const disabledStyles = ({
-  disabled
-}) => {
-  if (!disabled) return '';
-  return /*#__PURE__*/css_browser_esm({
-    color: COLORS.ui.textDisabled
-  },  true ? "" : undefined);
-};
-
-const fontSizeStyles = ({
-  size
-}) => {
-  const sizes = {
-    default: '13px',
-    small: '11px'
-  };
-  const fontSize = sizes[size];
-  const fontSizeMobile = '16px';
-  if (!fontSize) return '';
-  return /*#__PURE__*/css_browser_esm("font-size:", fontSizeMobile, ";@media ( min-width:600px ){font-size:", fontSize, ";}" + ( true ? "" : undefined));
-};
-
-const sizeStyles = ({
-  size
-}) => {
-  const sizes = {
-    default: {
-      height: 30,
-      lineHeight: 1,
-      minHeight: 30
-    },
-    small: {
-      height: 24,
-      lineHeight: 1,
-      minHeight: 24
-    }
-  };
-  const style = sizes[size] || sizes.default;
-  return /*#__PURE__*/css_browser_esm(style,  true ? "" : undefined);
-};
-
-var input_control_styles_ref8 =  true ? {
-  name: "103r1kr",
-  styles: "&::-webkit-input-placeholder{line-height:normal;}"
-} : undefined;
-
-const placeholderStyles = () => {
-  return input_control_styles_ref8;
-};
-
-const dragStyles = ({
-  isDragging,
-  dragCursor
-}) => {
-  let defaultArrowStyles = '';
-  let activeDragCursorStyles = '';
-
-  if (isDragging) {
-    defaultArrowStyles = /*#__PURE__*/css_browser_esm("cursor:", dragCursor, ";user-select:none;&::-webkit-outer-spin-button,&::-webkit-inner-spin-button{-webkit-appearance:none !important;margin:0 !important;}" + ( true ? "" : undefined));
-  }
-
-  if (isDragging && dragCursor) {
-    activeDragCursorStyles = /*#__PURE__*/css_browser_esm("&:active{cursor:", dragCursor, ";}" + ( true ? "" : undefined));
-  }
-
-  return /*#__PURE__*/css_browser_esm(defaultArrowStyles, " ", activeDragCursorStyles,  true ? "" : undefined);
-}; // TODO: Resolve need to use &&& to increase specificity
-// https://github.com/WordPress/gutenberg/issues/18483
-
-
-const input_control_styles_Input = styled_base_browser_esm("input", {
-  target: "e1cr7zh12",
-  label: "Input"
-})("&&&{background-color:transparent;box-sizing:border-box;border:none;box-shadow:none !important;color:", COLORS.black, ";display:block;margin:0;outline:none;padding-left:8px;padding-right:8px;width:100%;", dragStyles, " ", disabledStyles, " ", fontSizeStyles, " ", sizeStyles, " ", placeholderStyles, "}" + ( true ? "" : undefined));
-
-var input_control_styles_ref9 =  true ? {
-  name: "8uhtka",
-  styles: "overflow:hidden;text-overflow:ellipsis;white-space:nowrap;"
-} : undefined;
-
-const labelTruncation = () => {
-  return input_control_styles_ref9;
-};
-
-const labelPadding = ({
-  labelPosition
-}) => {
-  let paddingBottom = 4;
-
-  if (labelPosition === 'edge' || labelPosition === 'side') {
-    paddingBottom = 0;
-  }
-
-  return /*#__PURE__*/css_browser_esm({
-    paddingTop: 0,
-    paddingBottom
-  },  true ? "" : undefined);
-};
-
-const BaseLabel = /*#__PURE__*/styled_base_browser_esm(text_component, {
-  target: "e1cr7zh13",
-  label: "BaseLabel"
-})("&&&{box-sizing:border-box;color:currentColor;display:block;margin:0;max-width:100%;z-index:1;", labelPadding, " ", labelTruncation, "}" + ( true ? "" : undefined));
-
-const Label = props => Object(external_wp_element_["createElement"])(BaseLabel, Object(esm_extends["a" /* default */])({}, props, {
-  as: "label"
-}));
-const LabelWrapper = /*#__PURE__*/styled_base_browser_esm(flex_item_component, {
-  target: "e1cr7zh14",
-  label: "LabelWrapper"
-})( true ? {
-  name: "120o8im",
-  styles: "max-width:calc( 100% - 10px );"
-} : undefined);
-
-const backdropFocusedStyles = ({
-  disabled,
-  isFocused
-}) => {
-  let borderColor = isFocused ? COLORS.ui.borderFocus : COLORS.ui.border;
-  let boxShadow = null;
-
-  if (isFocused) {
-    boxShadow = `0 0 0 1px ${COLORS.ui.borderFocus} inset`;
-  }
-
-  if (disabled) {
-    borderColor = COLORS.ui.borderDisabled;
-  }
-
-  return /*#__PURE__*/css_browser_esm({
-    boxShadow,
-    borderColor,
-    borderStyle: 'solid',
-    borderWidth: 1
-  },  true ? "" : undefined);
-};
-
-const BackdropUI = styled_base_browser_esm("div", {
-  target: "e1cr7zh15",
-  label: "BackdropUI"
-})("&&&{box-sizing:border-box;border-radius:inherit;bottom:0;left:0;margin:0;padding:0;pointer-events:none;position:absolute;right:0;top:0;", backdropFocusedStyles, " ", rtl_rtl({
-  paddingLeft: 2
-}), "}" + ( true ? "" : undefined));
-const Prefix = styled_base_browser_esm("span", {
-  target: "e1cr7zh16",
-  label: "Prefix"
-})( true ? {
-  name: "1pxuk39",
-  styles: "box-sizing:border-box;display:block;"
-} : undefined);
-const Suffix = styled_base_browser_esm("span", {
-  target: "e1cr7zh17",
-  label: "Suffix"
-})( true ? {
-  name: "1pxuk39",
-  styles: "box-sizing:border-box;display:block;"
-} : undefined);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/input-control/backdrop.js
-
-
-/**
- * WordPress dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-
-function Backdrop({
-  disabled = false,
-  isFocused = false
-}) {
-  return Object(external_wp_element_["createElement"])(BackdropUI, {
-    "aria-hidden": "true",
-    className: "components-input-control__backdrop",
-    disabled: disabled,
-    isFocused: isFocused
-  });
-}
-
-const MemoizedBackdrop = Object(external_wp_element_["memo"])(Backdrop);
-/* harmony default export */ var backdrop = (MemoizedBackdrop);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/input-control/label.js
-
-
-
-/**
- * Internal dependencies
- */
-
-
-function label_Label({
-  children,
-  hideLabelFromVision,
-  htmlFor,
-  ...props
-}) {
-  if (!children) return null;
-
-  if (hideLabelFromVision) {
-    return Object(external_wp_element_["createElement"])(visually_hidden["a" /* default */], {
-      as: "label",
-      htmlFor: htmlFor
-    }, children);
-  }
-
-  return Object(external_wp_element_["createElement"])(Label, Object(esm_extends["a" /* default */])({
-    htmlFor: htmlFor
-  }, props), children);
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/input-control/input-base.js
-
-
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-function useUniqueId(idProp) {
-  const instanceId = Object(external_wp_compose_["useInstanceId"])(InputBase);
-  const id = `input-base-control-${instanceId}`;
-  return idProp || id;
-} // Adapter to map props for the new ui/flex compopnent.
-
-
-function getUIFlexProps({
-  labelPosition
-}) {
-  const props = {};
-
-  switch (labelPosition) {
-    case 'top':
-      props.direction = 'column';
-      props.gap = 0;
-      break;
-
-    case 'bottom':
-      props.direction = 'column-reverse';
-      props.gap = 0;
-      break;
-
-    case 'edge':
-      props.justify = 'space-between';
-      break;
-  }
-
-  return props;
-}
-
-function InputBase({
-  __unstableInputWidth,
-  children,
-  className,
-  disabled = false,
-  hideLabelFromVision = false,
-  labelPosition,
-  id: idProp,
-  isFocused = false,
-  label,
-  prefix,
-  size = 'default',
-  suffix,
-  ...props
-}, ref) {
-  const id = useUniqueId(idProp);
-  const hideLabel = hideLabelFromVision || !label;
-  return Object(external_wp_element_["createElement"])(input_control_styles_Root, Object(esm_extends["a" /* default */])({}, props, getUIFlexProps({
-    labelPosition
-  }), {
-    className: className,
-    isFocused: isFocused,
-    labelPosition: labelPosition,
-    ref: ref,
-    __unstableVersion: "next"
-  }), Object(external_wp_element_["createElement"])(LabelWrapper, null, Object(external_wp_element_["createElement"])(label_Label, {
-    className: "components-input-control__label",
-    hideLabelFromVision: hideLabelFromVision,
-    labelPosition: labelPosition,
-    htmlFor: id,
-    size: size
-  }, label)), Object(external_wp_element_["createElement"])(Container, {
-    __unstableInputWidth: __unstableInputWidth,
-    className: "components-input-control__container",
-    disabled: disabled,
-    hideLabel: hideLabel,
-    isFocused: isFocused,
-    labelPosition: labelPosition
-  }, prefix && Object(external_wp_element_["createElement"])(Prefix, {
-    className: "components-input-control__prefix"
-  }, prefix), children, suffix && Object(external_wp_element_["createElement"])(Suffix, {
-    className: "components-input-control__suffix"
-  }, suffix), Object(external_wp_element_["createElement"])(backdrop, {
-    "aria-hidden": "true",
-    disabled: disabled,
-    isFocused: isFocused,
-    label: label,
-    size: size
-  })));
-}
-/* harmony default export */ var input_base = (Object(external_wp_element_["forwardRef"])(InputBase));
-
-// CONCATENATED MODULE: ./node_modules/react-use-gesture/dist/reactusegesture.esm.js
-
-
-// vector add
-function addV(v1, v2) {
-  return v1.map(function (v, i) {
-    return v + v2[i];
-  });
-} // vector substract
-
-function subV(v1, v2) {
-  return v1.map(function (v, i) {
-    return v - v2[i];
-  });
-}
-/**
- * Calculates distance
- * @param movement the difference between current and initial vectors
- * @returns distance
- */
-
-function calculateDistance(movement) {
-  return Math.hypot.apply(Math, movement);
-}
-function calculateAllGeometry(movement, delta) {
-  if (delta === void 0) {
-    delta = movement;
-  }
-
-  var dl = calculateDistance(delta);
-  var alpha = dl === 0 ? 0 : 1 / dl;
-  var direction = delta.map(function (v) {
-    return alpha * v;
-  });
-  var distance = calculateDistance(movement);
-  return {
-    distance: distance,
-    direction: direction
-  };
-}
-/**
- * Calculates all kinematics
- * @template T the expected vector type
- * @param movement the difference between current and initial vectors
- * @param delta the difference between current and previous vectors
- * @param delta_t the time difference between current and previous timestamps
- * @returns all kinematics
- */
-
-function calculateAllKinematics(movement, delta, dt) {
-  var dl = calculateDistance(delta);
-  var alpha = dl === 0 ? 0 : 1 / dl;
-  var beta = dt === 0 ? 0 : 1 / dt;
-  var velocity = beta * dl;
-  var velocities = delta.map(function (v) {
-    return beta * v;
-  });
-  var direction = delta.map(function (v) {
-    return alpha * v;
-  });
-  var distance = calculateDistance(movement);
-  return {
-    velocities: velocities,
-    velocity: velocity,
-    distance: distance,
-    direction: direction
-  };
-}
-/**
- * Because IE doesn't support `Math.sign` function, so we use the polyfill version of the function.
- * This polyfill function is suggested by Mozilla:
- * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/sign#Polyfill
- * @param x target number
- */
-
-function sign(x) {
-  if (Math.sign) return Math.sign(x);
-  return Number(x > 0) - Number(x < 0) || +x;
-}
-
-function minMax(value, min, max) {
-  return Math.max(min, Math.min(value, max));
-} // Based on @aholachek ;)
-// https://twitter.com/chpwn/status/285540192096497664
-// iOS constant = 0.55
-// https://medium.com/@nathangitter/building-fluid-interfaces-ios-swift-9732bb934bf5
-
-
-function rubberband2(distance, constant) {
-  // default constant from the article is 0.7
-  return Math.pow(distance, constant * 5);
-}
-
-function rubberband(distance, dimension, constant) {
-  if (dimension === 0 || Math.abs(dimension) === Infinity) return rubberband2(distance, constant);
-  return distance * dimension * constant / (dimension + constant * distance);
-}
-
-function rubberbandIfOutOfBounds(position, min, max, constant) {
-  if (constant === void 0) {
-    constant = 0.15;
-  }
-
-  if (constant === 0) return minMax(position, min, max);
-  if (position < min) return -rubberband(min - position, max - min, constant) + min;
-  if (position > max) return +rubberband(position - max, max - min, constant) + max;
-  return position;
-}
-
-function _defineProperties(target, props) {
-  for (var i = 0; i < props.length; i++) {
-    var descriptor = props[i];
-    descriptor.enumerable = descriptor.enumerable || false;
-    descriptor.configurable = true;
-    if ("value" in descriptor) descriptor.writable = true;
-    Object.defineProperty(target, descriptor.key, descriptor);
-  }
-}
-
-function _createClass(Constructor, protoProps, staticProps) {
-  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
-  if (staticProps) _defineProperties(Constructor, staticProps);
-  return Constructor;
-}
-
-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 reactusegesture_esm_inheritsLoose(subClass, superClass) {
-  subClass.prototype = Object.create(superClass.prototype);
-  subClass.prototype.constructor = subClass;
-  subClass.__proto__ = superClass;
-}
-
-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 _assertThisInitialized(self) {
-  if (self === void 0) {
-    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
-  }
-
-  return self;
-}
-
-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 _createForOfIteratorHelperLoose(o, allowArrayLike) {
-  var it;
-
-  if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) {
-    if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
-      if (it) o = it;
-      var i = 0;
-      return function () {
-        if (i >= o.length) return {
-          done: true
-        };
-        return {
-          done: false,
-          value: o[i++]
-        };
-      };
-    }
-
-    throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
-  }
-
-  it = o[Symbol.iterator]();
-  return it.next.bind(it);
-}
-
-function noop() {}
-/**
- * TODO Beware that only optimized cases are covered in tests =)
- * TODO Need to cover general case as well
- *
- * @param fns
- */
-
-function chainFns() {
-  for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {
-    fns[_key] = arguments[_key];
-  }
-
-  if (fns.length === 0) return noop;
-  if (fns.length === 1) return fns[0];
-  return function () {
-    var result;
-
-    for (var _iterator = _createForOfIteratorHelperLoose(fns), _step; !(_step = _iterator()).done;) {
-      var fn = _step.value;
-      result = fn.apply(this, arguments) || result;
-    }
-
-    return result;
-  };
-}
-/**
- * Expects a simple value or 2D vector (an array with 2 elements) and
- * always returns 2D vector. If simple value is passed, returns a
- * vector with this value as both coordinates.
- *
- * @param value
- */
-
-function ensureVector(value, fallback) {
-  if (value === undefined) {
-    if (fallback === undefined) {
-      throw new Error('Must define fallback value if undefined is expected');
-    }
-
-    value = fallback;
-  }
-
-  if (Array.isArray(value)) return value;
-  return [value, value];
-}
-/**
- * Helper for defining a default value
- *
- * @param value
- * @param fallback
- */
-
-function assignDefault(value, fallback) {
-  return Object.assign({}, fallback, value || {});
-}
-/**
- * Resolves getters (functions) by calling them
- * If simple value is given it just passes through
- *
- * @param v
- */
-
-function valueFn(v) {
-  if (typeof v === 'function') {
-    for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
-      args[_key2 - 1] = arguments[_key2];
-    }
-
-    // @ts-ignore
-    return v.apply(void 0, args);
-  } else {
-    return v;
-  }
-}
-
-function resolveWith(config, resolvers) {
-  if (config === void 0) {
-    config = {};
-  }
-
-  var result = {};
-
-  for (var _i = 0, _Object$entries = Object.entries(resolvers); _i < _Object$entries.length; _i++) {
-    var _Object$entries$_i = _Object$entries[_i],
-        key = _Object$entries$_i[0],
-        resolver = _Object$entries$_i[1];
-
-    switch (typeof resolver) {
-      case 'function':
-        result[key] = resolver.call(result, config[key], key, config);
-        break;
-
-      case 'object':
-        result[key] = resolveWith(config[key], resolver);
-        break;
-
-      case 'boolean':
-        if (resolver) result[key] = config[key];
-        break;
-    }
-  }
-
-  return result;
-}
-
-/**
- * Whether the browser supports GestureEvent (ie Safari)
- * @returns true if the browser supports gesture event
- */
-function supportsGestureEvents() {
-  try {
-    // TODO [TS] possibly find GestureEvent definitions?
-    // @ts-ignore: no type definitions for webkit GestureEvents
-    return 'constructor' in GestureEvent;
-  } catch (e) {
-    return false;
-  }
-}
-function supportsTouchEvents() {
-  return typeof window !== 'undefined' && 'ontouchstart' in window;
-}
-function supportsPointerEvents() {
-  return typeof window !== 'undefined' && 'onpointerdown' in window;
-}
-
-function getEventTouches(event) {
-  if ('pointerId' in event) return null;
-  return event.type === 'touchend' ? event.changedTouches : event.targetTouches;
-}
-
-function getTouchIds(event) {
-  return Array.from(getEventTouches(event)).map(function (t) {
-    return t.identifier;
-  });
-}
-function getGenericEventData(event) {
-  var buttons = 'buttons' in event ? event.buttons : 0;
-  var shiftKey = event.shiftKey,
-      altKey = event.altKey,
-      metaKey = event.metaKey,
-      ctrlKey = event.ctrlKey; // TODO check if this might create some overrides?
-
-  return {
-    buttons: buttons,
-    shiftKey: shiftKey,
-    altKey: altKey,
-    metaKey: metaKey,
-    ctrlKey: ctrlKey
-  };
-}
-
-var identity = function identity(xy) {
-  return xy;
-};
-/**
- * Gets pointer event values.
- * @param event
- * @returns pointer event values
- */
-
-
-function getPointerEventValues(event, transform) {
-  if (transform === void 0) {
-    transform = identity;
-  }
-
-  var touchEvents = getEventTouches(event);
-
-  var _ref = touchEvents ? touchEvents[0] : event,
-      clientX = _ref.clientX,
-      clientY = _ref.clientY;
-
-  return transform([clientX, clientY]);
-}
-/**
- * Gets two touches event data
- * @param event
- * @returns two touches event data
- */
-
-function getTwoTouchesEventValues(event, pointerIds, transform) {
-  if (transform === void 0) {
-    transform = identity;
-  }
-
-  var _Array$from$filter = Array.from(event.touches).filter(function (t) {
-    return pointerIds.includes(t.identifier);
-  }),
-      A = _Array$from$filter[0],
-      B = _Array$from$filter[1];
-
-  if (!A || !B) throw Error("The event doesn't have two pointers matching the pointerIds");
-  var dx = B.clientX - A.clientX;
-  var dy = B.clientY - A.clientY;
-  var cx = (B.clientX + A.clientX) / 2;
-  var cy = (B.clientY + A.clientY) / 2; // const e: any = 'nativeEvent' in event ? event.nativeEvent : event
-
-  var distance = Math.hypot(dx, dy); // FIXME rotation has inconsistant values so we're not using it atm
-  // const angle = (e.rotation as number) ?? -(Math.atan2(dx, dy) * 180) / Math.PI
-
-  var angle = -(Math.atan2(dx, dy) * 180) / Math.PI;
-  var values = transform([distance, angle]);
-  var origin = transform([cx, cy]);
-  return {
-    values: values,
-    origin: origin
-  };
-}
-/**
- * Gets scroll event values
- * @param event
- * @returns scroll event values
- */
-
-function getScrollEventValues(event, transform) {
-  if (transform === void 0) {
-    transform = identity;
-  }
-
-  // If the currentTarget is the window then we return the scrollX/Y position.
-  // If not (ie the currentTarget is a DOM element), then we return scrollLeft/Top
-  var _event$currentTarget = event.currentTarget,
-      scrollX = _event$currentTarget.scrollX,
-      scrollY = _event$currentTarget.scrollY,
-      scrollLeft = _event$currentTarget.scrollLeft,
-      scrollTop = _event$currentTarget.scrollTop;
-  return transform([scrollX || scrollLeft || 0, scrollY || scrollTop || 0]);
-} // wheel delta defaults from https://github.com/facebookarchive/fixed-data-table/blob/master/src/vendor_upstream/dom/normalizeWheel.js
-
-var LINE_HEIGHT = 40;
-var PAGE_HEIGHT = 800;
-/**
- * Gets wheel event values.
- * @param event
- * @returns wheel event values
- */
-
-function getWheelEventValues(event, transform) {
-  if (transform === void 0) {
-    transform = identity;
-  }
-
-  var deltaX = event.deltaX,
-      deltaY = event.deltaY,
-      deltaMode = event.deltaMode; // normalize wheel values, especially for Firefox
-
-  if (deltaMode === 1) {
-    deltaX *= LINE_HEIGHT;
-    deltaY *= LINE_HEIGHT;
-  } else if (deltaMode === 2) {
-    deltaX *= PAGE_HEIGHT;
-    deltaY *= PAGE_HEIGHT;
-  }
-
-  return transform([deltaX, deltaY]);
-}
-/**
- * Gets webkit gesture event values.
- * @param event
- * @returns webkit gesture event values
- */
-
-function getWebkitGestureEventValues(event, transform) {
-  if (transform === void 0) {
-    transform = identity;
-  }
-
-  return transform([event.scale, event.rotation]);
-}
-
-var DEFAULT_DRAG_DELAY = 180;
-var DEFAULT_RUBBERBAND = 0.15;
-var DEFAULT_SWIPE_VELOCITY = 0.5;
-var DEFAULT_SWIPE_DISTANCE = 50;
-var DEFAULT_SWIPE_DURATION = 250;
-var InternalGestureOptionsNormalizers = {
-  threshold: function threshold(value) {
-    if (value === void 0) {
-      value = 0;
-    }
-
-    return ensureVector(value);
-  },
-  rubberband: function rubberband(value) {
-    if (value === void 0) {
-      value = 0;
-    }
-
-    switch (value) {
-      case true:
-        return ensureVector(DEFAULT_RUBBERBAND);
-
-      case false:
-        return ensureVector(0);
-
-      default:
-        return ensureVector(value);
-    }
-  },
-  enabled: function enabled(value) {
-    if (value === void 0) {
-      value = true;
-    }
-
-    return value;
-  },
-  triggerAllEvents: function triggerAllEvents(value) {
-    if (value === void 0) {
-      value = false;
-    }
-
-    return value;
-  },
-  initial: function initial(value) {
-    if (value === void 0) {
-      value = 0;
-    }
-
-    if (typeof value === 'function') return value;
-    return ensureVector(value);
-  },
-  transform: true
-};
-
-var InternalCoordinatesOptionsNormalizers = /*#__PURE__*/_extends({}, InternalGestureOptionsNormalizers, {
-  axis: true,
-  lockDirection: function lockDirection(value) {
-    if (value === void 0) {
-      value = false;
-    }
-
-    return value;
-  },
-  bounds: function bounds(value) {
-    if (value === void 0) {
-      value = {};
-    }
-
-    if (typeof value === 'function') return function (state) {
-      return InternalCoordinatesOptionsNormalizers.bounds(value(state));
-    };
-    var _value2 = value,
-        _value2$left = _value2.left,
-        left = _value2$left === void 0 ? -Infinity : _value2$left,
-        _value2$right = _value2.right,
-        right = _value2$right === void 0 ? Infinity : _value2$right,
-        _value2$top = _value2.top,
-        top = _value2$top === void 0 ? -Infinity : _value2$top,
-        _value2$bottom = _value2.bottom,
-        bottom = _value2$bottom === void 0 ? Infinity : _value2$bottom;
-    return [[left, right], [top, bottom]];
-  }
-});
-
-var isBrowser = typeof window !== 'undefined' && window.document && window.document.createElement;
-var InternalGenericOptionsNormalizers = {
-  enabled: function enabled(value) {
-    if (value === void 0) {
-      value = true;
-    }
-
-    return value;
-  },
-  domTarget: true,
-  window: /*#__PURE__*/function (_window) {
-    function window(_x) {
-      return _window.apply(this, arguments);
-    }
-
-    window.toString = function () {
-      return _window.toString();
-    };
-
-    return window;
-  }(function (value) {
-    if (value === void 0) {
-      value = isBrowser ? window : undefined;
-    }
-
-    return value;
-  }),
-  eventOptions: function eventOptions(_temp) {
-    var _ref = _temp === void 0 ? {} : _temp,
-        _ref$passive = _ref.passive,
-        passive = _ref$passive === void 0 ? true : _ref$passive,
-        _ref$capture = _ref.capture,
-        capture = _ref$capture === void 0 ? false : _ref$capture;
-
-    return {
-      passive: passive,
-      capture: capture
-    };
-  },
-  transform: true
-};
-
-var InternalDistanceAngleOptionsNormalizers = /*#__PURE__*/_extends({}, InternalGestureOptionsNormalizers, {
-  bounds: function bounds(_value, _key, _ref2) {
-    var _ref2$distanceBounds = _ref2.distanceBounds,
-        distanceBounds = _ref2$distanceBounds === void 0 ? {} : _ref2$distanceBounds,
-        _ref2$angleBounds = _ref2.angleBounds,
-        angleBounds = _ref2$angleBounds === void 0 ? {} : _ref2$angleBounds;
-
-    var _distanceBounds = function _distanceBounds(state) {
-      var D = assignDefault(valueFn(distanceBounds, state), {
-        min: -Infinity,
-        max: Infinity
-      });
-      return [D.min, D.max];
-    };
-
-    var _angleBounds = function _angleBounds(state) {
-      var A = assignDefault(valueFn(angleBounds, state), {
-        min: -Infinity,
-        max: Infinity
-      });
-      return [A.min, A.max];
-    };
-
-    if (typeof distanceBounds !== 'function' && typeof angleBounds !== 'function') return [_distanceBounds(), _angleBounds()];
-    return function (state) {
-      return [_distanceBounds(state), _angleBounds(state)];
-    };
-  }
-});
-
-var InternalDragOptionsNormalizers = /*#__PURE__*/_extends({}, InternalCoordinatesOptionsNormalizers, {
-  useTouch: function useTouch(value) {
-    if (value === void 0) {
-      value = false;
-    }
-
-    var supportsTouch = supportsTouchEvents();
-    var supportsPointer = supportsPointerEvents();
-    if (value && supportsTouch) return true;
-    if (supportsTouch && !supportsPointer) return true;
-    return false;
-  },
-  experimental_preventWindowScrollY: function experimental_preventWindowScrollY(value) {
-    if (value === void 0) {
-      value = false;
-    }
-
-    return value;
-  },
-  threshold: function threshold(v, _k, _ref3) {
-    var _ref3$filterTaps = _ref3.filterTaps,
-        filterTaps = _ref3$filterTaps === void 0 ? false : _ref3$filterTaps,
-        _ref3$lockDirection = _ref3.lockDirection,
-        lockDirection = _ref3$lockDirection === void 0 ? false : _ref3$lockDirection,
-        _ref3$axis = _ref3.axis,
-        axis = _ref3$axis === void 0 ? undefined : _ref3$axis;
-    var A = ensureVector(v, filterTaps ? 3 : lockDirection ? 1 : axis ? 1 : 0);
-    this.filterTaps = filterTaps;
-    return A;
-  },
-  swipeVelocity: function swipeVelocity(v) {
-    if (v === void 0) {
-      v = DEFAULT_SWIPE_VELOCITY;
-    }
-
-    return ensureVector(v);
-  },
-  swipeDistance: function swipeDistance(v) {
-    if (v === void 0) {
-      v = DEFAULT_SWIPE_DISTANCE;
-    }
-
-    return ensureVector(v);
-  },
-  swipeDuration: function swipeDuration(value) {
-    if (value === void 0) {
-      value = DEFAULT_SWIPE_DURATION;
-    }
-
-    return value;
-  },
-  delay: function delay(value) {
-    if (value === void 0) {
-      value = 0;
-    }
-
-    switch (value) {
-      case true:
-        return DEFAULT_DRAG_DELAY;
-
-      case false:
-        return 0;
-
-      default:
-        return value;
-    }
-  }
-});
-
-function getInternalGenericOptions(config) {
-  if (config === void 0) {
-    config = {};
-  }
-
-  // TODO warn when passive is set to true and domTarget is undefined
-  return resolveWith(config, InternalGenericOptionsNormalizers);
-}
-function getInternalCoordinatesOptions(config) {
-  if (config === void 0) {
-    config = {};
-  }
-
-  return resolveWith(config, InternalCoordinatesOptionsNormalizers);
-}
-function getInternalDistanceAngleOptions(config) {
-  if (config === void 0) {
-    config = {};
-  }
-
-  return resolveWith(config, InternalDistanceAngleOptionsNormalizers);
-}
-function getInternalDragOptions(config) {
-  if (config === void 0) {
-    config = {};
-  }
-
-  return resolveWith(config, InternalDragOptionsNormalizers);
-}
-
-function _buildMoveConfig(_ref) {
-  var domTarget = _ref.domTarget,
-      eventOptions = _ref.eventOptions,
-      window = _ref.window,
-      enabled = _ref.enabled,
-      rest = _objectWithoutPropertiesLoose(_ref, ["domTarget", "eventOptions", "window", "enabled"]);
-
-  var opts = getInternalGenericOptions({
-    domTarget: domTarget,
-    eventOptions: eventOptions,
-    window: window,
-    enabled: enabled
-  });
-  opts.move = getInternalCoordinatesOptions(rest);
-  return opts;
-}
-function _buildHoverConfig(_ref2) {
-  var domTarget = _ref2.domTarget,
-      eventOptions = _ref2.eventOptions,
-      window = _ref2.window,
-      enabled = _ref2.enabled,
-      rest = _objectWithoutPropertiesLoose(_ref2, ["domTarget", "eventOptions", "window", "enabled"]);
-
-  var opts = getInternalGenericOptions({
-    domTarget: domTarget,
-    eventOptions: eventOptions,
-    window: window,
-    enabled: enabled
-  });
-  opts.hover = _extends({
-    enabled: true
-  }, rest);
-  return opts;
-}
-function _buildDragConfig(_ref3) {
-  var domTarget = _ref3.domTarget,
-      eventOptions = _ref3.eventOptions,
-      window = _ref3.window,
-      enabled = _ref3.enabled,
-      rest = _objectWithoutPropertiesLoose(_ref3, ["domTarget", "eventOptions", "window", "enabled"]);
-
-  var opts = getInternalGenericOptions({
-    domTarget: domTarget,
-    eventOptions: eventOptions,
-    window: window,
-    enabled: enabled
-  });
-  opts.drag = getInternalDragOptions(rest);
-  return opts;
-}
-function _buildPinchConfig(_ref4) {
-  var domTarget = _ref4.domTarget,
-      eventOptions = _ref4.eventOptions,
-      window = _ref4.window,
-      enabled = _ref4.enabled,
-      rest = _objectWithoutPropertiesLoose(_ref4, ["domTarget", "eventOptions", "window", "enabled"]);
-
-  var opts = getInternalGenericOptions({
-    domTarget: domTarget,
-    eventOptions: eventOptions,
-    window: window,
-    enabled: enabled
-  });
-  opts.pinch = getInternalDistanceAngleOptions(rest);
-  return opts;
-}
-function _buildScrollConfig(_ref5) {
-  var domTarget = _ref5.domTarget,
-      eventOptions = _ref5.eventOptions,
-      window = _ref5.window,
-      enabled = _ref5.enabled,
-      rest = _objectWithoutPropertiesLoose(_ref5, ["domTarget", "eventOptions", "window", "enabled"]);
-
-  var opts = getInternalGenericOptions({
-    domTarget: domTarget,
-    eventOptions: eventOptions,
-    window: window,
-    enabled: enabled
-  });
-  opts.scroll = getInternalCoordinatesOptions(rest);
-  return opts;
-}
-function _buildWheelConfig(_ref6) {
-  var domTarget = _ref6.domTarget,
-      eventOptions = _ref6.eventOptions,
-      window = _ref6.window,
-      enabled = _ref6.enabled,
-      rest = _objectWithoutPropertiesLoose(_ref6, ["domTarget", "eventOptions", "window", "enabled"]);
-
-  var opts = getInternalGenericOptions({
-    domTarget: domTarget,
-    eventOptions: eventOptions,
-    window: window,
-    enabled: enabled
-  });
-  opts.wheel = getInternalCoordinatesOptions(rest);
-  return opts;
-}
-function buildComplexConfig(config, actions) {
-  if (config === void 0) {
-    config = {};
-  }
-
-  if (actions === void 0) {
-    actions = new Set();
-  }
-
-  var _config = config,
-      drag = _config.drag,
-      wheel = _config.wheel,
-      move = _config.move,
-      scroll = _config.scroll,
-      pinch = _config.pinch,
-      hover = _config.hover,
-      eventOptions = _config.eventOptions,
-      window = _config.window,
-      transform = _config.transform,
-      domTarget = _config.domTarget,
-      enabled = _config.enabled;
-  var mergedConfig = getInternalGenericOptions({
-    domTarget: domTarget,
-    eventOptions: eventOptions,
-    transform: transform,
-    window: window,
-    enabled: enabled
-  });
-  if (actions.has('onDrag')) mergedConfig.drag = getInternalDragOptions(drag);
-  if (actions.has('onWheel')) mergedConfig.wheel = getInternalCoordinatesOptions(wheel);
-  if (actions.has('onScroll')) mergedConfig.scroll = getInternalCoordinatesOptions(scroll);
-  if (actions.has('onMove')) mergedConfig.move = getInternalCoordinatesOptions(move);
-  if (actions.has('onPinch')) mergedConfig.pinch = getInternalDistanceAngleOptions(pinch);
-  if (actions.has('onHover')) mergedConfig.hover = _extends({
-    enabled: true
-  }, hover);
-  return mergedConfig;
-}
-
-function getInitial(mixed) {
-  return _extends({
-    _active: false,
-    _blocked: false,
-    _intentional: [false, false],
-    _movement: [0, 0],
-    _initial: [0, 0],
-    _bounds: [[-Infinity, Infinity], [-Infinity, Infinity]],
-    _threshold: [0, 0],
-    _lastEventType: undefined,
-    _dragStarted: false,
-    _dragPreventScroll: false,
-    _dragIsTap: true,
-    _dragDelayed: false,
-    event: undefined,
-    intentional: false,
-    values: [0, 0],
-    velocities: [0, 0],
-    delta: [0, 0],
-    movement: [0, 0],
-    offset: [0, 0],
-    lastOffset: [0, 0],
-    direction: [0, 0],
-    initial: [0, 0],
-    previous: [0, 0],
-    first: false,
-    last: false,
-    active: false,
-    timeStamp: 0,
-    startTime: 0,
-    elapsedTime: 0,
-    cancel: noop,
-    canceled: false,
-    memo: undefined,
-    args: undefined
-  }, mixed);
-}
-
-function getInitialState() {
-  var shared = {
-    hovering: false,
-    scrolling: false,
-    wheeling: false,
-    dragging: false,
-    moving: false,
-    pinching: false,
-    touches: 0,
-    buttons: 0,
-    down: false,
-    shiftKey: false,
-    altKey: false,
-    metaKey: false,
-    ctrlKey: false,
-    locked: false
-  };
-  var drag = getInitial({
-    _pointerId: undefined,
-    axis: undefined,
-    xy: [0, 0],
-    vxvy: [0, 0],
-    velocity: 0,
-    distance: 0,
-    tap: false,
-    swipe: [0, 0]
-  });
-  var pinch = getInitial({
-    // @ts-expect-error when used _pointerIds we can assert its type will be [number, number]
-    _pointerIds: [],
-    da: [0, 0],
-    vdva: [0, 0],
-    // @ts-expect-error origin can never be passed as undefined in userland
-    origin: undefined,
-    turns: 0
-  });
-  var wheel = getInitial({
-    axis: undefined,
-    xy: [0, 0],
-    vxvy: [0, 0],
-    velocity: 0,
-    distance: 0
-  });
-  var move = getInitial({
-    axis: undefined,
-    xy: [0, 0],
-    vxvy: [0, 0],
-    velocity: 0,
-    distance: 0
-  });
-  var scroll = getInitial({
-    axis: undefined,
-    xy: [0, 0],
-    vxvy: [0, 0],
-    velocity: 0,
-    distance: 0
-  });
-  return {
-    shared: shared,
-    drag: drag,
-    pinch: pinch,
-    wheel: wheel,
-    move: move,
-    scroll: scroll
-  };
-}
-
-var RecognizersMap = /*#__PURE__*/new Map();
-
-var identity$1 = function identity(xy) {
-  return xy;
-};
-/**
- * @private
- * Recognizer abstract class.
- */
-
-
-var Recognizer = /*#__PURE__*/function () {
-  /**
-   * Creates an instance of a gesture recognizer.
-   * @param stateKey drag, move, pinch, etc.
-   * @param controller the controller attached to the gesture
-   * @param [args] the args that should be passed to the gesture handler
-   */
-  function Recognizer(controller, args) {
-    var _this = this;
-
-    if (args === void 0) {
-      args = [];
-    }
-
-    this.controller = controller;
-    this.args = args;
-    this.debounced = true; // Convenience method to set a timeout for a given gesture
-
-    this.setTimeout = function (callback, ms) {
-      var _window;
-
-      if (ms === void 0) {
-        ms = 140;
-      }
-
-      clearTimeout(_this.controller.timeouts[_this.stateKey]);
-
-      for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
-        args[_key - 2] = arguments[_key];
-      }
-
-      _this.controller.timeouts[_this.stateKey] = (_window = window).setTimeout.apply(_window, [callback, ms].concat(args));
-    }; // Convenience method to clear a timeout for a given gesture
-
-
-    this.clearTimeout = function () {
-      clearTimeout(_this.controller.timeouts[_this.stateKey]);
-    };
-    /**
-     * Fires the gesture handler
-     */
-
-
-    this.fireGestureHandler = function (forceFlag) {
-      if (forceFlag === void 0) {
-        forceFlag = false;
-      }
-
-      /**
-       * If the gesture has been blocked (this can happen when the gesture has started in an unwanted direction),
-       * clean everything and don't do anything.
-       */
-      if (_this.state._blocked) {
-        // we need debounced gestures to end by themselves
-        if (!_this.debounced) {
-          _this.state._active = false;
-
-          _this.clean();
-        }
-
-        return null;
-      } // If the gesture has no intentional dimension, don't fire the handler.
-
-
-      if (!forceFlag && !_this.state.intentional && !_this.config.triggerAllEvents) return null;
-
-      if (_this.state.intentional) {
-        var prev_active = _this.state.active;
-        var next_active = _this.state._active;
-        _this.state.active = next_active;
-        _this.state.first = next_active && !prev_active;
-        _this.state.last = prev_active && !next_active;
-        _this.controller.state.shared[_this.ingKey] = next_active; // Sets dragging, pinching, etc. to the gesture active state
-      }
-
-      var touches = _this.controller.pointerIds.size || _this.controller.touchIds.size;
-      var down = _this.controller.state.shared.buttons > 0 || touches > 0;
-
-      var state = _extends({}, _this.controller.state.shared, _this.state, _this.mapStateValues(_this.state), {
-        locked: !!document.pointerLockElement,
-        touches: touches,
-        down: down
-      }); // @ts-expect-error
-
-
-      var newMemo = _this.handler(state); // Sets memo to the returned value of the handler (unless it's not undefined)
-
-
-      _this.state.memo = newMemo !== void 0 ? newMemo : _this.state.memo;
-      return state;
-    };
-
-    this.controller = controller;
-    this.args = args;
-  } // Returns the gesture config
-
-
-  var _proto = Recognizer.prototype;
-
-  // Convenience method to update the shared state
-  _proto.updateSharedState = function updateSharedState(sharedState) {
-    Object.assign(this.controller.state.shared, sharedState);
-  } // Convenience method to update the gesture state
-  ;
-
-  _proto.updateGestureState = function updateGestureState(gestureState) {
-    Object.assign(this.state, gestureState);
-  }
-  /**
-   * Returns state properties depending on the movement and state.
-   *
-   * Should be overriden for custom behavior, doesn't do anything in the implementation
-   * below.
-   */
-  ;
-
-  _proto.checkIntentionality = function checkIntentionality(_intentional, _movement) {
-    return {
-      _intentional: _intentional,
-      _blocked: false
-    };
-  }
-  /**
-   * Returns basic movement properties for the gesture based on the next values and current state.
-   */
-  ;
-
-  _proto.getMovement = function getMovement(values) {
-    var rubberband = this.config.rubberband;
-    var _this$state = this.state,
-        _bounds = _this$state._bounds,
-        _initial = _this$state._initial,
-        _active = _this$state._active,
-        wasIntentional = _this$state._intentional,
-        lastOffset = _this$state.lastOffset,
-        prevMovement = _this$state.movement,
-        _T = _this$state._threshold;
-    var M = this.getInternalMovement(values, this.state);
-    var i0 = wasIntentional[0] === false ? getIntentionalDisplacement(M[0], _T[0]) : wasIntentional[0];
-    var i1 = wasIntentional[1] === false ? getIntentionalDisplacement(M[1], _T[1]) : wasIntentional[1]; // Get gesture specific state properties based on intentionality and movement.
-
-    var intentionalityCheck = this.checkIntentionality([i0, i1], M);
-
-    if (intentionalityCheck._blocked) {
-      return _extends({}, intentionalityCheck, {
-        _movement: M,
-        delta: [0, 0]
-      });
-    }
-
-    var _intentional = intentionalityCheck._intentional;
-    var _movement = M;
-    /**
-     * The movement sent to the handler has 0 in its dimensions when intentionality is false.
-     * It is calculated from the actual movement minus the threshold.
-     */
-
-    var movement = [_intentional[0] !== false ? M[0] - _intentional[0] : 0, _intentional[1] !== false ? M[1] - _intentional[1] : 0];
-    var offset = addV(movement, lastOffset);
-    /**
-     * Rubberband should be 0 when the gesture is no longer active, so that movement
-     * and offset can return within their bounds.
-     */
-
-    var _rubberband = _active ? rubberband : [0, 0];
-
-    movement = computeRubberband(_bounds, addV(movement, _initial), _rubberband);
-    return _extends({}, intentionalityCheck, {
-      intentional: _intentional[0] !== false || _intentional[1] !== false,
-      _initial: _initial,
-      _movement: _movement,
-      movement: movement,
-      values: values,
-      offset: computeRubberband(_bounds, offset, _rubberband),
-      delta: subV(movement, prevMovement)
-    });
-  } // Cleans the gesture. Can be overriden by gestures.
-  ;
-
-  _proto.clean = function clean() {
-    this.clearTimeout();
-  };
-
-  _createClass(Recognizer, [{
-    key: "config",
-    get: function get() {
-      return this.controller.config[this.stateKey];
-    } // Is the gesture enabled
-
-  }, {
-    key: "enabled",
-    get: function get() {
-      return this.controller.config.enabled && this.config.enabled;
-    } // Returns the controller state for a given gesture
-
-  }, {
-    key: "state",
-    get: function get() {
-      return this.controller.state[this.stateKey];
-    } // Returns the gesture handler
-
-  }, {
-    key: "handler",
-    get: function get() {
-      return this.controller.handlers[this.stateKey];
-    }
-  }, {
-    key: "transform",
-    get: function get() {
-      return this.config.transform || this.controller.config.transform || identity$1;
-    }
-  }]);
-
-  return Recognizer;
-}(); //--------------------------------------------
-
-function getIntentionalDisplacement(movement, threshold) {
-  if (Math.abs(movement) >= threshold) {
-    return sign(movement) * threshold;
-  } else {
-    return false;
-  }
-}
-
-function computeRubberband(bounds, _ref, _ref2) {
-  var Vx = _ref[0],
-      Vy = _ref[1];
-  var Rx = _ref2[0],
-      Ry = _ref2[1];
-  var _bounds$ = bounds[0],
-      X1 = _bounds$[0],
-      X2 = _bounds$[1],
-      _bounds$2 = bounds[1],
-      Y1 = _bounds$2[0],
-      Y2 = _bounds$2[1];
-  return [rubberbandIfOutOfBounds(Vx, X1, X2, Rx), rubberbandIfOutOfBounds(Vy, Y1, Y2, Ry)];
-}
-/**
- * Returns a generic, common payload for all gestures from an event.
- */
-
-
-function getGenericPayload(_ref3, event, isStartEvent) {
-  var state = _ref3.state;
-  var timeStamp = event.timeStamp,
-      _lastEventType = event.type;
-  var previous = state.values;
-  var elapsedTime = isStartEvent ? 0 : timeStamp - state.startTime;
-  return {
-    _lastEventType: _lastEventType,
-    event: event,
-    timeStamp: timeStamp,
-    elapsedTime: elapsedTime,
-    previous: previous
-  };
-}
-/**
- * Returns the reinitialized start state for the gesture.
- * Should be common to all gestures.
- */
-
-function getStartGestureState(_ref4, values, event, initial) {
-  var state = _ref4.state,
-      config = _ref4.config,
-      stateKey = _ref4.stateKey,
-      args = _ref4.args,
-      transform = _ref4.transform;
-  var offset = state.offset;
-  var startTime = event.timeStamp;
-  var initialFn = config.initial,
-      bounds = config.bounds,
-      threshold = config.threshold; // the _threshold is the difference between a [0,0] offset converted to
-  // its new space coordinates
-
-  var _threshold = subV(transform(threshold), transform([0, 0])).map(Math.abs);
-
-  var _state = _extends({}, getInitialState()[stateKey], {
-    _active: true,
-    args: args,
-    values: values,
-    initial: initial != null ? initial : values,
-    _threshold: _threshold,
-    offset: offset,
-    lastOffset: offset,
-    startTime: startTime
-  });
-
-  return _extends({}, _state, {
-    _initial: valueFn(initialFn, _state),
-    _bounds: valueFn(bounds, _state)
-  });
-}
-
-/**
- * The controller will keep track of the state for all gestures and also keep
- * track of timeouts, and window listeners.
- */
-
-var Controller = function Controller(classes) {
-  var _this = this;
-
-  this.classes = classes;
-  this.pointerIds = new Set(); // register Pointer Events pointerIds
-
-  this.touchIds = new Set(); // register Touch Events identifiers
-
-  this.supportsTouchEvents = supportsTouchEvents();
-  this.supportsGestureEvents = supportsGestureEvents();
-
-  this.bind = function () {
-    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
-      args[_key] = arguments[_key];
-    }
-
-    var bindings = {};
-
-    for (var _iterator = _createForOfIteratorHelperLoose(_this.classes), _step; !(_step = _iterator()).done;) {
-      var RecognizerClass = _step.value;
-      new RecognizerClass(_this, args).addBindings(bindings);
-    } // // we also add event bindings for native handlers
-
-
-    var _loop = function _loop(eventKey) {
-      addBindings(bindings, eventKey, function (event) {
-        return _this.nativeRefs[eventKey](_extends({}, _this.state.shared, {
-          event: event,
-          args: args
-        }));
-      });
-    };
-
-    for (var eventKey in _this.nativeRefs) {
-      _loop(eventKey);
-    }
-
-    if (_this.config.domTarget) {
-      // If config.domTarget is set we add event listeners to it and return the clean function.
-      return updateDomListeners(_this, bindings);
-    } else {
-      // If not, we return an object that contains gesture handlers mapped to react handler event keys.
-      return getPropsListener(_this, bindings);
-    }
-  };
-
-  this.effect = function () {
-    if (_this.config.domTarget) _this.bind();
-    return _this.clean;
-  };
-  /**
-   * Function ran on component unmount: cleans timeouts and removes dom listeners set by the bind function.
-   */
-
-
-  this.clean = function () {
-    var domTarget = getDomTargetFromConfig(_this.config);
-    var eventOptions = _this.config.eventOptions;
-    if (domTarget) removeListeners(domTarget, takeAll(_this.domListeners), eventOptions);
-    Object.values(_this.timeouts).forEach(clearTimeout);
-    clearAllWindowListeners(_this);
-  };
-
-  this.classes = classes;
-  this.state = getInitialState();
-  this.timeouts = {};
-  this.domListeners = [];
-  this.windowListeners = {};
-};
-function addEventIds(controller, event) {
-  if ('pointerId' in event) {
-    controller.pointerIds.add(event.pointerId);
-  } else {
-    controller.touchIds = new Set(getTouchIds(event));
-  }
-}
-function removeEventIds(controller, event) {
-  if ('pointerId' in event) {
-    controller.pointerIds["delete"](event.pointerId);
-  } else {
-    getTouchIds(event).forEach(function (id) {
-      return controller.touchIds["delete"](id);
-    });
-  }
-}
-function clearAllWindowListeners(controller) {
-  var _controller$config = controller.config,
-      el = _controller$config.window,
-      eventOptions = _controller$config.eventOptions,
-      windowListeners = controller.windowListeners;
-  if (!el) return;
-
-  for (var stateKey in windowListeners) {
-    var handlers = windowListeners[stateKey];
-    removeListeners(el, handlers, eventOptions);
-  }
-
-  controller.windowListeners = {};
-}
-function clearWindowListeners(_ref, stateKey, options) {
-  var config = _ref.config,
-      windowListeners = _ref.windowListeners;
-
-  if (options === void 0) {
-    options = config.eventOptions;
-  }
-
-  if (!config.window) return;
-  removeListeners(config.window, windowListeners[stateKey], options);
-  delete windowListeners[stateKey];
-}
-function updateWindowListeners(_ref2, stateKey, listeners, options) {
-  var config = _ref2.config,
-      windowListeners = _ref2.windowListeners;
-
-  if (listeners === void 0) {
-    listeners = [];
-  }
-
-  if (options === void 0) {
-    options = config.eventOptions;
-  }
-
-  if (!config.window) return;
-  removeListeners(config.window, windowListeners[stateKey], options);
-  addListeners(config.window, windowListeners[stateKey] = listeners, options);
-}
-
-function updateDomListeners(_ref3, bindings) {
-  var config = _ref3.config,
-      domListeners = _ref3.domListeners;
-  var domTarget = getDomTargetFromConfig(config);
-  if (!domTarget) throw new Error('domTarget must be defined');
-  var eventOptions = config.eventOptions;
-  removeListeners(domTarget, takeAll(domListeners), eventOptions);
-
-  for (var _i = 0, _Object$entries = Object.entries(bindings); _i < _Object$entries.length; _i++) {
-    var _Object$entries$_i = _Object$entries[_i],
-        key = _Object$entries$_i[0],
-        fns = _Object$entries$_i[1];
-    var name = key.slice(2).toLowerCase();
-    domListeners.push([name, chainFns.apply(void 0, fns)]);
-  }
-
-  addListeners(domTarget, domListeners, eventOptions);
-}
-
-function getPropsListener(_ref4, bindings) {
-  var config = _ref4.config;
-  var props = {};
-  var captureString = config.eventOptions.capture ? 'Capture' : '';
-
-  for (var _i2 = 0, _Object$entries2 = Object.entries(bindings); _i2 < _Object$entries2.length; _i2++) {
-    var _Object$entries2$_i = _Object$entries2[_i2],
-        event = _Object$entries2$_i[0],
-        fns = _Object$entries2$_i[1];
-    var fnsArray = Array.isArray(fns) ? fns : [fns];
-    var key = event + captureString;
-    props[key] = chainFns.apply(void 0, fnsArray);
-  }
-
-  return props;
-}
-
-function takeAll(array) {
-  if (array === void 0) {
-    array = [];
-  }
-
-  return array.splice(0, array.length);
-}
-
-function getDomTargetFromConfig(_ref5) {
-  var domTarget = _ref5.domTarget;
-  return domTarget && 'current' in domTarget ? domTarget.current : domTarget;
-}
-/**
- * bindings is an object which keys match ReactEventHandlerKeys.
- * Since a recognizer might want to bind a handler function to an event key already used by a previously
- * added recognizer, we need to make sure that each event key is an array of all the functions mapped for
- * that key.
- */
-
-
-function addBindings(bindings, name, fn) {
-  if (!bindings[name]) bindings[name] = [];
-  bindings[name].push(fn);
-}
-
-function addListeners(el, listeners, options) {
-  if (listeners === void 0) {
-    listeners = [];
-  }
-
-  if (options === void 0) {
-    options = {};
-  }
-
-  for (var _iterator2 = _createForOfIteratorHelperLoose(listeners), _step2; !(_step2 = _iterator2()).done;) {
-    var _step2$value = _step2.value,
-        eventName = _step2$value[0],
-        eventHandler = _step2$value[1];
-    el.addEventListener(eventName, eventHandler, options);
-  }
-}
-
-function removeListeners(el, listeners, options) {
-  if (listeners === void 0) {
-    listeners = [];
-  }
-
-  if (options === void 0) {
-    options = {};
-  }
-
-  for (var _iterator3 = _createForOfIteratorHelperLoose(listeners), _step3; !(_step3 = _iterator3()).done;) {
-    var _step3$value = _step3.value,
-        eventName = _step3$value[0],
-        eventHandler = _step3$value[1];
-    el.removeEventListener(eventName, eventHandler, options);
-  }
-}
-
-/* eslint-disable react-hooks/exhaustive-deps */
-/**
- * Utility hook called by all gesture hooks and that will be responsible for the internals.
- *
- * @param handlers
- * @param classes
- * @param config
- * @param nativeHandlers - native handlers such as onClick, onMouseDown, etc.
- */
-
-function useRecognizers(handlers, config, nativeHandlers) {
-  if (nativeHandlers === void 0) {
-    nativeHandlers = {};
-  }
-
-  var classes = resolveClasses(handlers);
-  var controller = external_React_default.a.useMemo(function () {
-    return new Controller(classes);
-  }, []);
-  controller.config = config;
-  controller.handlers = handlers;
-  controller.nativeRefs = nativeHandlers;
-  external_React_default.a.useEffect(controller.effect, []); // @ts-ignore
-
-  if (controller.config.domTarget) return deprecationNoticeForDomTarget; // @ts-ignore
-
-  return controller.bind;
-}
-
-function deprecationNoticeForDomTarget() {
-  if (false) {}
-}
-
-function resolveClasses(internalHandlers) {
-  var classes = new Set();
-  if (internalHandlers.drag) classes.add(RecognizersMap.get('drag'));
-  if (internalHandlers.wheel) classes.add(RecognizersMap.get('wheel'));
-  if (internalHandlers.scroll) classes.add(RecognizersMap.get('scroll'));
-  if (internalHandlers.move) classes.add(RecognizersMap.get('move'));
-  if (internalHandlers.pinch) classes.add(RecognizersMap.get('pinch'));
-  if (internalHandlers.hover) classes.add(RecognizersMap.get('hover'));
-  return classes;
-}
-
-/**
- * @private
- * Abstract class for coordinates-based gesture recongizers
- */
-
-var CoordinatesRecognizer = /*#__PURE__*/function (_Recognizer) {
-  reactusegesture_esm_inheritsLoose(CoordinatesRecognizer, _Recognizer);
-
-  function CoordinatesRecognizer() {
-    return _Recognizer.apply(this, arguments) || this;
-  }
-
-  var _proto = CoordinatesRecognizer.prototype;
-
-  /**
-   * Returns the real movement (without taking intentionality into account)
-   */
-  _proto.getInternalMovement = function getInternalMovement(values, state) {
-    return subV(values, state.initial);
-  }
-  /**
-   * In coordinates-based gesture, this function will detect the first intentional axis,
-   * lock the gesture axis if lockDirection is specified in the config, block the gesture
-   * if the first intentional axis doesn't match the specified axis in config.
-   */
-  ;
-
-  _proto.checkIntentionality = function checkIntentionality(_intentional, _movement) {
-    if (_intentional[0] === false && _intentional[1] === false) {
-      return {
-        _intentional: _intentional,
-        axis: this.state.axis
-      };
-    }
-
-    var _movement$map = _movement.map(Math.abs),
-        absX = _movement$map[0],
-        absY = _movement$map[1];
-
-    var axis = this.state.axis || (absX > absY ? 'x' : absX < absY ? 'y' : undefined);
-    if (!this.config.axis && !this.config.lockDirection) return {
-      _intentional: _intentional,
-      _blocked: false,
-      axis: axis
-    };
-    if (!axis) return {
-      _intentional: [false, false],
-      _blocked: false,
-      axis: axis
-    };
-    if (!!this.config.axis && axis !== this.config.axis) return {
-      _intentional: _intentional,
-      _blocked: true,
-      axis: axis
-    };
-    _intentional[axis === 'x' ? 1 : 0] = false;
-    return {
-      _intentional: _intentional,
-      _blocked: false,
-      axis: axis
-    };
-  };
-
-  _proto.getKinematics = function getKinematics(values, event) {
-    var state = this.getMovement(values);
-
-    if (!state._blocked) {
-      var dt = event.timeStamp - this.state.timeStamp;
-      Object.assign(state, calculateAllKinematics(state.movement, state.delta, dt));
-    }
-
-    return state;
-  };
-
-  _proto.mapStateValues = function mapStateValues(state) {
-    return {
-      xy: state.values,
-      vxvy: state.velocities
-    };
-  };
-
-  return CoordinatesRecognizer;
-}(Recognizer);
-
-var TAP_DISTANCE_THRESHOLD = 3;
-
-function persistEvent(event) {
-  'persist' in event && typeof event.persist === 'function' && event.persist();
-}
-
-var DragRecognizer = /*#__PURE__*/function (_CoordinatesRecognize) {
-  reactusegesture_esm_inheritsLoose(DragRecognizer, _CoordinatesRecognize);
-
-  function DragRecognizer() {
-    var _this;
-
-    _this = _CoordinatesRecognize.apply(this, arguments) || this;
-    _this.ingKey = 'dragging';
-    _this.stateKey = 'drag'; // TODO add back when setPointerCapture is widely wupported
-    // https://caniuse.com/#search=setPointerCapture
-
-    _this.setPointerCapture = function (event) {
-      // don't perform pointere capture when user wants to use touch events or
-      // when a pointerLockElement exists as this would throw an error
-      if (_this.config.useTouch || document.pointerLockElement) return;
-      var target = event.target,
-          pointerId = event.pointerId;
-
-      if (target && 'setPointerCapture' in target) {
-        // this would work in the DOM but doesn't with react three fiber
-        // target.addEventListener('pointermove', this.onDragChange, this.controller.config.eventOptions)
-        // @ts-expect-error
-        target.setPointerCapture(pointerId);
-      }
-
-      _this.updateGestureState({
-        _dragTarget: target,
-        _dragPointerId: pointerId
-      });
-    };
-
-    _this.releasePointerCapture = function () {
-      if (_this.config.useTouch || document.pointerLockElement) return;
-      var _this$state = _this.state,
-          _dragTarget = _this$state._dragTarget,
-          _dragPointerId = _this$state._dragPointerId;
-
-      if (_dragPointerId && _dragTarget && 'releasePointerCapture' in _dragTarget) {
-        // this would work in the DOM but doesn't with react three fiber
-        // target.removeEventListener('pointermove', this.onDragChange, this.controller.config.eventOptions)
-        if (!('hasPointerCapture' in _dragTarget) || _dragTarget.hasPointerCapture(_dragPointerId)) try {
-          _dragTarget.releasePointerCapture(_dragPointerId);
-        } catch (e) {}
-      }
-    };
-
-    _this.preventScroll = function (event) {
-      if (_this.state._dragPreventScroll && event.cancelable) {
-        event.preventDefault();
-      }
-    };
-
-    _this.getEventId = function (event) {
-      if (_this.config.useTouch) return event.changedTouches[0].identifier;
-      return event.pointerId;
-    };
-
-    _this.isValidEvent = function (event) {
-      // if we were using pointer events only event.isPrimary === 1 would suffice
-      return _this.state._pointerId === _this.getEventId(event);
-    };
-
-    _this.shouldPreventWindowScrollY = _this.config.experimental_preventWindowScrollY && _this.controller.supportsTouchEvents;
-
-    _this.setUpWindowScrollDetection = function (event) {
-      persistEvent(event); // we add window listeners that will prevent the scroll when the user has started dragging
-
-      updateWindowListeners(_this.controller, _this.stateKey, [['touchmove', _this.preventScroll], ['touchend', _this.clean.bind(_assertThisInitialized(_this))], ['touchcancel', _this.clean.bind(_assertThisInitialized(_this))]], {
-        passive: false
-      });
-
-      _this.setTimeout(_this.startDrag.bind(_assertThisInitialized(_this)), 250, event);
-    };
-
-    _this.setUpDelayedDragTrigger = function (event) {
-      _this.state._dragDelayed = true;
-      persistEvent(event);
-
-      _this.setTimeout(_this.startDrag.bind(_assertThisInitialized(_this)), _this.config.delay, event);
-    };
-
-    _this.setStartState = function (event) {
-      var values = getPointerEventValues(event, _this.transform);
-
-      _this.updateSharedState(getGenericEventData(event));
-
-      _this.updateGestureState(_extends({}, getStartGestureState(_assertThisInitialized(_this), values, event), getGenericPayload(_assertThisInitialized(_this), event, true), {
-        _pointerId: _this.getEventId(event)
-      }));
-
-      _this.updateGestureState(_this.getMovement(values));
-    };
-
-    _this.onDragStart = function (event) {
-      addEventIds(_this.controller, event);
-      if (!_this.enabled || _this.state._active) return;
-
-      _this.setStartState(event);
-
-      _this.setPointerCapture(event);
-
-      if (_this.shouldPreventWindowScrollY) _this.setUpWindowScrollDetection(event);else if (_this.config.delay > 0) _this.setUpDelayedDragTrigger(event);else _this.startDrag(event, true); // we pass the values to the startDrag event
-    };
-
-    _this.onDragChange = function (event) {
-      if ( // if the gesture was canceled or
-      _this.state.canceled || // if onDragStart wasn't fired or
-      !_this.state._active || // if the event pointerId doesn't match the one that initiated the drag
-      !_this.isValidEvent(event) || // if the event has the same timestamp as the previous event
-      // note that checking type equality is ONLY for tests ¯\_(ツ)_/¯
-      _this.state._lastEventType === event.type && event.timeStamp === _this.state.timeStamp) return;
-      var values;
-
-      if (document.pointerLockElement) {
-        var movementX = event.movementX,
-            movementY = event.movementY;
-        values = addV(_this.transform([movementX, movementY]), _this.state.values);
-      } else values = getPointerEventValues(event, _this.transform);
-
-      var kinematics = _this.getKinematics(values, event); // if startDrag hasn't fired
-
-
-      if (!_this.state._dragStarted) {
-        // If the gesture isn't active then respond to the event only if
-        // it's been delayed via the `delay` option, in which case start
-        // the gesture immediately.
-        if (_this.state._dragDelayed) {
-          _this.startDrag(event);
-
-          return;
-        } // if the user wants to prevent vertical window scroll when user starts dragging
-
-
-        if (_this.shouldPreventWindowScrollY) {
-          if (!_this.state._dragPreventScroll && kinematics.axis) {
-            // if the user is dragging horizontally then we should allow the drag
-            if (kinematics.axis === 'x') {
-              _this.startDrag(event);
-            } else {
-              _this.state._active = false;
-              return;
-            }
-          } else return;
-        } else return;
-      }
-
-      var genericEventData = getGenericEventData(event);
-
-      _this.updateSharedState(genericEventData);
-
-      var genericPayload = getGenericPayload(_assertThisInitialized(_this), event); // This verifies if the drag can be assimilated to a tap by checking
-      // if the real distance of the drag (ie not accounting for the threshold) is
-      // greater than the TAP_DISTANCE_THRESHOLD.
-
-      var realDistance = calculateDistance(kinematics._movement);
-      var _dragIsTap = _this.state._dragIsTap;
-      if (_dragIsTap && realDistance >= TAP_DISTANCE_THRESHOLD) _dragIsTap = false;
-
-      _this.updateGestureState(_extends({}, genericPayload, kinematics, {
-        _dragIsTap: _dragIsTap
-      }));
-
-      _this.fireGestureHandler();
-    };
-
-    _this.onDragEnd = function (event) {
-      removeEventIds(_this.controller, event); // if the event pointerId doesn't match the one that initiated the drag
-      // we don't want to end the drag
-
-      if (!_this.isValidEvent(event)) return;
-
-      _this.clean(); // if the gesture is no longer active (ie canceled)
-      // don't do anything
-
-
-      if (!_this.state._active) return;
-      _this.state._active = false;
-      var tap = _this.state._dragIsTap;
-      var _this$state$velocitie = _this.state.velocities,
-          vx = _this$state$velocitie[0],
-          vy = _this$state$velocitie[1];
-      var _this$state$movement = _this.state.movement,
-          mx = _this$state$movement[0],
-          my = _this$state$movement[1];
-      var _this$state$_intentio = _this.state._intentional,
-          ix = _this$state$_intentio[0],
-          iy = _this$state$_intentio[1];
-      var _this$config$swipeVel = _this.config.swipeVelocity,
-          svx = _this$config$swipeVel[0],
-          svy = _this$config$swipeVel[1];
-      var _this$config$swipeDis = _this.config.swipeDistance,
-          sx = _this$config$swipeDis[0],
-          sy = _this$config$swipeDis[1];
-      var sd = _this.config.swipeDuration;
-
-      var endState = _extends({}, getGenericPayload(_assertThisInitialized(_this), event), _this.getMovement(_this.state.values));
-
-      var swipe = [0, 0];
-
-      if (endState.elapsedTime < sd) {
-        if (ix !== false && Math.abs(vx) > svx && Math.abs(mx) > sx) swipe[0] = sign(vx);
-        if (iy !== false && Math.abs(vy) > svy && Math.abs(my) > sy) swipe[1] = sign(vy);
-      }
-
-      _this.updateSharedState({
-        buttons: 0
-      });
-
-      _this.updateGestureState(_extends({}, endState, {
-        tap: tap,
-        swipe: swipe
-      }));
-
-      _this.fireGestureHandler(_this.config.filterTaps && tap === true);
-    };
-
-    _this.clean = function () {
-      _CoordinatesRecognize.prototype.clean.call(_assertThisInitialized(_this));
-
-      _this.state._dragStarted = false;
-
-      _this.releasePointerCapture();
-
-      clearWindowListeners(_this.controller, _this.stateKey);
-    };
-
-    _this.onCancel = function () {
-      if (_this.state.canceled) return;
-
-      _this.updateGestureState({
-        canceled: true,
-        _active: false
-      });
-
-      _this.updateSharedState({
-        buttons: 0
-      });
-
-      setTimeout(function () {
-        return _this.fireGestureHandler();
-      }, 0);
-    };
-
-    _this.onClick = function (event) {
-      if (!_this.state._dragIsTap) event.stopPropagation();
-    };
-
-    return _this;
-  }
-
-  var _proto = DragRecognizer.prototype;
-
-  _proto.startDrag = function startDrag(event, onDragIsStart) {
-    if (onDragIsStart === void 0) {
-      onDragIsStart = false;
-    }
-
-    // startDrag can happen after a timeout, so we need to check if the gesture is still active
-    // as the user might have lift up the pointer in between.
-    if ( // if the gesture isn't active (probably means)
-    !this.state._active || // if the drag has already started we should ignore subsequent attempts
-    this.state._dragStarted) return;
-    if (!onDragIsStart) this.setStartState(event);
-    this.updateGestureState({
-      _dragStarted: true,
-      _dragPreventScroll: true,
-      cancel: this.onCancel
-    });
-    this.clearTimeout();
-    this.fireGestureHandler();
-  };
-
-  _proto.addBindings = function addBindings$1(bindings) {
-    if (this.config.useTouch) {
-      addBindings(bindings, 'onTouchStart', this.onDragStart);
-
-      addBindings(bindings, 'onTouchMove', this.onDragChange); // this is needed for react-three-fiber
-
-
-      addBindings(bindings, 'onTouchEnd', this.onDragEnd);
-
-      addBindings(bindings, 'onTouchCancel', this.onDragEnd);
-    } else {
-      addBindings(bindings, 'onPointerDown', this.onDragStart);
-
-      addBindings(bindings, 'onPointerMove', this.onDragChange); // this is needed for react-three-fiber
-
-
-      addBindings(bindings, 'onPointerUp', this.onDragEnd);
-
-      addBindings(bindings, 'onPointerCancel', this.onDragEnd);
-    }
-
-    if (this.config.filterTaps) {
-      var handler = this.controller.config.eventOptions.capture ? 'onClick' : 'onClickCapture';
-
-      addBindings(bindings, handler, this.onClick);
-    }
-  };
-
-  return DragRecognizer;
-}(CoordinatesRecognizer);
-
-/**
- * Inlined from https://github.com/alexreardon/memoize-one
- */
-function memoizeOne(resultFn, isEqual) {
-  var lastThis;
-  var lastArgs = [];
-  var lastResult;
-  var calledOnce = false;
-
-  function memoized() {
-    for (var _len = arguments.length, newArgs = new Array(_len), _key = 0; _key < _len; _key++) {
-      newArgs[_key] = arguments[_key];
-    }
-
-    if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {
-      return lastResult;
-    }
-
-    lastResult = resultFn.apply(this, newArgs);
-    calledOnce = true;
-    lastThis = this;
-    lastArgs = newArgs;
-    return lastResult;
-  }
-
-  return memoized;
-}
-
-/**
- * Taken from https://github.com/FormidableLabs/react-fast-compare
- *
- * Dropped comments and ArrayBuffer handling
- */
-function equal(a, b) {
-  if (a === b) return true;
-
-  if (a && b && typeof a == 'object' && typeof b == 'object') {
-    if (a.constructor !== b.constructor) return false;
-    var length, i, keys;
-
-    if (Array.isArray(a)) {
-      length = a.length;
-      if (length !== b.length) return false;
-
-      for (i = length; i-- !== 0;) {
-        if (!equal(a[i], b[i])) return false;
-      }
-
-      return true;
-    }
-
-    var it;
-
-    if (typeof Map === 'function' && a instanceof Map && b instanceof Map) {
-      if (a.size !== b.size) return false;
-      it = a.entries();
-
-      while (!(i = it.next()).done) {
-        if (!b.has(i.value[0])) return false;
-      }
-
-      it = a.entries();
-
-      while (!(i = it.next()).done) {
-        if (!equal(i.value[1], b.get(i.value[0]))) return false;
-      }
-
-      return true;
-    }
-
-    if (typeof Set === 'function' && a instanceof Set && b instanceof Set) {
-      if (a.size !== b.size) return false;
-      it = a.entries();
-
-      while (!(i = it.next()).done) {
-        if (!b.has(i.value[0])) return false;
-      }
-
-      return true;
-    }
-
-    if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;
-    if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();
-    if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();
-    keys = Object.keys(a);
-    length = keys.length;
-    if (length !== Object.keys(b).length) return false;
-
-    for (i = length; i-- !== 0;) {
-      if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;
-    }
-
-    if (typeof Element !== 'undefined' && a instanceof Element) return false;
-
-    for (i = length; i-- !== 0;) {
-      if (keys[i] === '_owner' && a.$$typeof) continue;
-      if (!equal(a[keys[i]], b[keys[i]])) return false;
-    }
-
-    return true;
-  } // true if both NaN, false otherwise — NaN !== NaN → true
-  // eslint-disable-next-line no-self-compare
-
-
-  return a !== a && b !== b;
-}
-
-function isEqual(a, b) {
-  try {
-    return equal(a, b);
-  } catch (error) {
-    if ((error.message || '').match(/stack|recursion/i)) {
-      // eslint-disable-next-line no-console
-      console.warn('react-fast-compare cannot handle circular refs');
-      return false;
-    }
-
-    throw error;
-  }
-}
-
-/**
- * Drag hook.
- *
- * @param handler - the function fired every time the drag gesture updates
- * @param [config={}] - the config object including generic options and drag options
- */
-
-function useDrag(handler, config) {
-  if (config === void 0) {
-    config = {};
-  }
-
-  RecognizersMap.set('drag', DragRecognizer);
-  var buildDragConfig = Object(external_React_["useRef"])();
-
-  if (!buildDragConfig.current) {
-    buildDragConfig.current = memoizeOne(_buildDragConfig, isEqual);
-  }
-
-  return useRecognizers({
-    drag: handler
-  }, buildDragConfig.current(config));
-}
-
-/**
- * @private
- * Abstract class for distance/angle-based gesture recongizers
- */
-
-var DistanceAngleRecognizer = /*#__PURE__*/function (_Recognizer) {
-  reactusegesture_esm_inheritsLoose(DistanceAngleRecognizer, _Recognizer);
-
-  function DistanceAngleRecognizer() {
-    return _Recognizer.apply(this, arguments) || this;
-  }
-
-  var _proto = DistanceAngleRecognizer.prototype;
-
-  _proto.getInternalMovement = function getInternalMovement(values, state) {
-    var prev_a = state.values[1]; // not be defined if ctrl+wheel is used for zoom only
-
-    var d = values[0],
-        _values$ = values[1],
-        a = _values$ === void 0 ? prev_a : _values$;
-    var delta_a = a - prev_a;
-    var next_turns = state.turns;
-    if (Math.abs(delta_a) > 270) next_turns += sign(delta_a);
-    return subV([d, a - 360 * next_turns], state.initial);
-  };
-
-  _proto.getKinematics = function getKinematics(values, event) {
-    var state = this.getMovement(values);
-    var turns = (values[1] - state._movement[1] - this.state.initial[1]) / 360;
-    var dt = event.timeStamp - this.state.timeStamp;
-
-    var _calculateAllKinemati = calculateAllKinematics(state.movement, state.delta, dt),
-        kinematics = _objectWithoutPropertiesLoose(_calculateAllKinemati, ["distance", "velocity"]);
-
-    return _extends({
-      turns: turns
-    }, state, kinematics);
-  };
-
-  _proto.mapStateValues = function mapStateValues(state) {
-    return {
-      da: state.values,
-      vdva: state.velocities
-    };
-  };
-
-  return DistanceAngleRecognizer;
-}(Recognizer);
-
-var ZOOM_CONSTANT = 7;
-var WEBKIT_DISTANCE_SCALE_FACTOR = 260;
-var PinchRecognizer = /*#__PURE__*/function (_DistanceAngleRecogni) {
-  reactusegesture_esm_inheritsLoose(PinchRecognizer, _DistanceAngleRecogni);
-
-  function PinchRecognizer() {
-    var _this;
-
-    _this = _DistanceAngleRecogni.apply(this, arguments) || this;
-    _this.ingKey = 'pinching';
-    _this.stateKey = 'pinch';
-
-    _this.onPinchStart = function (event) {
-      addEventIds(_this.controller, event);
-      var touchIds = _this.controller.touchIds;
-      if (!_this.enabled) return;
-
-      if (_this.state._active) {
-        // check that the pointerIds that initiated the gesture
-        // are still enabled. This is useful for when the page
-        // loses track of the pointers (minifying gesture on iPad).
-        if (_this.state._pointerIds.every(function (id) {
-          return touchIds.has(id);
-        })) return; // something was wrong with the pointers but we let it go.
-      } // until we reach two fingers on the target don't react
-
-
-      if (touchIds.size < 2) return;
-
-      var _pointerIds = Array.from(touchIds).slice(0, 2);
-
-      var _getTwoTouchesEventVa = getTwoTouchesEventValues(event, _pointerIds, _this.transform),
-          values = _getTwoTouchesEventVa.values,
-          origin = _getTwoTouchesEventVa.origin;
-
-      _this.updateSharedState(getGenericEventData(event));
-
-      _this.updateGestureState(_extends({}, getStartGestureState(_assertThisInitialized(_this), values, event), getGenericPayload(_assertThisInitialized(_this), event, true), {
-        _pointerIds: _pointerIds,
-        cancel: _this.onCancel,
-        origin: origin
-      }));
-
-      _this.updateGestureState(_this.getMovement(values));
-
-      _this.fireGestureHandler();
-    };
-
-    _this.onPinchChange = function (event) {
-      var _this$state = _this.state,
-          canceled = _this$state.canceled,
-          _active = _this$state._active;
-      if (canceled || !_active || // if the event has the same timestamp as the previous event
-      event.timeStamp === _this.state.timeStamp) return;
-      var genericEventData = getGenericEventData(event);
-
-      _this.updateSharedState(genericEventData);
-
-      try {
-        var _getTwoTouchesEventVa2 = getTwoTouchesEventValues(event, _this.state._pointerIds, _this.transform),
-            values = _getTwoTouchesEventVa2.values,
-            origin = _getTwoTouchesEventVa2.origin;
-
-        var kinematics = _this.getKinematics(values, event);
-
-        _this.updateGestureState(_extends({}, getGenericPayload(_assertThisInitialized(_this), event), kinematics, {
-          origin: origin
-        }));
-
-        _this.fireGestureHandler();
-      } catch (e) {
-        _this.onPinchEnd(event);
-      }
-    };
-
-    _this.onPinchEnd = function (event) {
-      removeEventIds(_this.controller, event);
-      var pointerIds = getTouchIds(event); // if none of the lifted pointerIds is in the state pointerIds don't do anything
-
-      if (_this.state._pointerIds.every(function (id) {
-        return !pointerIds.includes(id);
-      })) return;
-
-      _this.clean();
-
-      if (!_this.state._active) return;
-
-      _this.updateGestureState(_extends({}, getGenericPayload(_assertThisInitialized(_this), event), _this.getMovement(_this.state.values), {
-        _active: false
-      }));
-
-      _this.fireGestureHandler();
-    };
-
-    _this.onCancel = function () {
-      if (_this.state.canceled) return;
-
-      _this.updateGestureState({
-        _active: false,
-        canceled: true
-      });
-
-      setTimeout(function () {
-        return _this.fireGestureHandler();
-      }, 0);
-    };
-    /**
-     * PINCH WITH WEBKIT GESTURES
-     */
-
-
-    _this.onGestureStart = function (event) {
-      if (!_this.enabled) return;
-      event.preventDefault();
-      var values = getWebkitGestureEventValues(event, _this.transform);
-
-      _this.updateSharedState(getGenericEventData(event));
-
-      _this.updateGestureState(_extends({}, getStartGestureState(_assertThisInitialized(_this), values, event), getGenericPayload(_assertThisInitialized(_this), event, true), {
-        origin: [event.clientX, event.clientY],
-        cancel: _this.onCancel
-      }));
-
-      _this.updateGestureState(_this.getMovement(values));
-
-      _this.fireGestureHandler();
-    };
-
-    _this.onGestureChange = function (event) {
-      var _this$state2 = _this.state,
-          canceled = _this$state2.canceled,
-          _active = _this$state2._active;
-      if (canceled || !_active) return;
-      event.preventDefault();
-      var genericEventData = getGenericEventData(event);
-
-      _this.updateSharedState(genericEventData); // this normalizes the values of the Safari's WebKitEvent by calculating
-      // the delta and then multiplying it by a constant.
-
-
-      var values = getWebkitGestureEventValues(event, _this.transform);
-      values[0] = (values[0] - _this.state.event.scale) * WEBKIT_DISTANCE_SCALE_FACTOR + _this.state.values[0];
-
-      var kinematics = _this.getKinematics(values, event);
-
-      _this.updateGestureState(_extends({}, getGenericPayload(_assertThisInitialized(_this), event), kinematics, {
-        origin: [event.clientX, event.clientY]
-      }));
-
-      _this.fireGestureHandler();
-    };
-
-    _this.onGestureEnd = function (event) {
-      _this.clean();
-
-      if (!_this.state._active) return;
-
-      _this.updateGestureState(_extends({}, getGenericPayload(_assertThisInitialized(_this), event), _this.getMovement(_this.state.values), {
-        _active: false,
-        origin: [event.clientX, event.clientY]
-      }));
-
-      _this.fireGestureHandler();
-    };
-    /**
-     * PINCH WITH WHEEL
-     */
-
-
-    _this.wheelShouldRun = function (event) {
-      return _this.enabled && event.ctrlKey;
-    };
-
-    _this.getWheelValuesFromEvent = function (event) {
-      var _getWheelEventValues = getWheelEventValues(event, _this.transform),
-          delta_d = _getWheelEventValues[1];
-
-      var _this$state$values = _this.state.values,
-          prev_d = _this$state$values[0],
-          prev_a = _this$state$values[1]; // ZOOM_CONSTANT is based on Safari trackpad natural zooming
-
-      var _delta_d = -delta_d * ZOOM_CONSTANT; // new distance is the previous state distance added to the delta
-
-
-      var d = prev_d + _delta_d;
-      var a = prev_a !== void 0 ? prev_a : 0;
-      return {
-        values: [d, a],
-        origin: [event.clientX, event.clientY],
-        delta: [_delta_d, a]
-      };
-    };
-
-    _this.onWheel = function (event) {
-      if (!_this.wheelShouldRun(event)) return;
-
-      _this.setTimeout(_this.onWheelEnd);
-
-      if (!_this.state._active) _this.onWheelStart(event);else _this.onWheelChange(event);
-    };
-
-    _this.onWheelStart = function (event) {
-      var _this$getWheelValuesF = _this.getWheelValuesFromEvent(event),
-          values = _this$getWheelValuesF.values,
-          delta = _this$getWheelValuesF.delta,
-          origin = _this$getWheelValuesF.origin;
-
-      if (event.cancelable) event.preventDefault();else if (false) {}
-
-      _this.updateSharedState(getGenericEventData(event));
-
-      _this.updateGestureState(_extends({}, getStartGestureState(_assertThisInitialized(_this), values, event, _this.state.values), getGenericPayload(_assertThisInitialized(_this), event, true), {
-        offset: values,
-        delta: delta,
-        origin: origin
-      }));
-
-      _this.updateGestureState(_this.getMovement(values));
-
-      _this.fireGestureHandler();
-    };
-
-    _this.onWheelChange = function (event) {
-      if (event.cancelable) event.preventDefault();
-
-      _this.updateSharedState(getGenericEventData(event));
-
-      var _this$getWheelValuesF2 = _this.getWheelValuesFromEvent(event),
-          values = _this$getWheelValuesF2.values,
-          origin = _this$getWheelValuesF2.origin,
-          delta = _this$getWheelValuesF2.delta;
-
-      _this.updateGestureState(_extends({}, getGenericPayload(_assertThisInitialized(_this), event), _this.getKinematics(values, event), {
-        origin: origin,
-        delta: delta
-      }));
-
-      _this.fireGestureHandler();
-    };
-
-    _this.onWheelEnd = function () {
-      _this.clean();
-
-      if (!_this.state._active) return;
-      _this.state._active = false;
-
-      _this.updateGestureState(_this.getMovement(_this.state.values));
-
-      _this.fireGestureHandler();
-    };
-
-    return _this;
-  }
-
-  var _proto = PinchRecognizer.prototype;
-
-  _proto.addBindings = function addBindings$1(bindings) {
-    // Only try to use gesture events when they are supported and domTarget is set
-    // as React doesn't support gesture handlers.
-    if (this.controller.config.domTarget && !this.controller.supportsTouchEvents && this.controller.supportsGestureEvents) {
-      addBindings(bindings, 'onGestureStart', this.onGestureStart);
-
-      addBindings(bindings, 'onGestureChange', this.onGestureChange);
-
-      addBindings(bindings, 'onGestureEnd', this.onGestureEnd);
-    } else {
-      addBindings(bindings, 'onTouchStart', this.onPinchStart);
-
-      addBindings(bindings, 'onTouchMove', this.onPinchChange);
-
-      addBindings(bindings, 'onTouchEnd', this.onPinchEnd);
-
-      addBindings(bindings, 'onTouchCancel', this.onPinchEnd);
-
-      addBindings(bindings, 'onWheel', this.onWheel);
-    }
-  };
-
-  return PinchRecognizer;
-}(DistanceAngleRecognizer);
-
-/**
- * Pinch hook.
- *
- * @param handler - the function fired every time the pinch gesture updates
- * @param [config={}] - the config object including generic options and pinch options
- */
-
-function usePinch(handler, config) {
-  if (config === void 0) {
-    config = {};
-  }
-
-  RecognizersMap.set('pinch', PinchRecognizer);
-  var buildPinchConfig = Object(external_React_["useRef"])();
-
-  if (!buildPinchConfig.current) {
-    buildPinchConfig.current = memoizeOne(_buildPinchConfig, isEqual);
-  }
-
-  return useRecognizers({
-    pinch: handler
-  }, buildPinchConfig.current(config));
-}
-
-var WheelRecognizer = /*#__PURE__*/function (_CoordinatesRecognize) {
-  reactusegesture_esm_inheritsLoose(WheelRecognizer, _CoordinatesRecognize);
-
-  function WheelRecognizer() {
-    var _this;
-
-    _this = _CoordinatesRecognize.apply(this, arguments) || this;
-    _this.ingKey = 'wheeling';
-    _this.stateKey = 'wheel';
-    _this.debounced = true;
-
-    _this.handleEvent = function (event) {
-      if (event.ctrlKey && 'pinch' in _this.controller.handlers) return;
-      if (!_this.enabled) return;
-
-      _this.setTimeout(_this.onEnd);
-
-      _this.updateSharedState(getGenericEventData(event));
-
-      var values = addV(getWheelEventValues(event, _this.transform), _this.state.values);
-
-      if (!_this.state._active) {
-        _this.updateGestureState(_extends({}, getStartGestureState(_assertThisInitialized(_this), values, event, _this.state.values), getGenericPayload(_assertThisInitialized(_this), event, true)));
-
-        var movement = _this.getMovement(values);
-
-        var geometry = calculateAllGeometry(movement.delta);
-
-        _this.updateGestureState(movement);
-
-        _this.updateGestureState(geometry);
-      } else {
-        _this.updateGestureState(_extends({}, getGenericPayload(_assertThisInitialized(_this), event), _this.getKinematics(values, event)));
-      }
-
-      _this.fireGestureHandler();
-    };
-
-    _this.onEnd = function () {
-      _this.clean();
-
-      if (!_this.state._active) return;
-
-      var movement = _this.getMovement(_this.state.values);
-
-      _this.updateGestureState(movement);
-
-      _this.updateGestureState({
-        _active: false,
-        velocities: [0, 0],
-        velocity: 0
-      });
-
-      _this.fireGestureHandler();
-    };
-
-    return _this;
-  }
-
-  var _proto = WheelRecognizer.prototype;
-
-  _proto.addBindings = function addBindings$1(bindings) {
-    addBindings(bindings, 'onWheel', this.handleEvent);
-  };
-
-  return WheelRecognizer;
-}(CoordinatesRecognizer);
-
-/**
- * Wheel hook.
- *
- * @param handler - the function fired every time the wheel gesture updates
- * @param the config object including generic options and wheel options
- */
-
-function useWheel(handler, config) {
-  if (config === void 0) {
-    config = {};
-  }
-
-  RecognizersMap.set('wheel', WheelRecognizer);
-  var buildWheelConfig = Object(external_React_["useRef"])();
-
-  if (!buildWheelConfig.current) {
-    buildWheelConfig.current = memoizeOne(_buildWheelConfig, isEqual);
-  }
-
-  return useRecognizers({
-    wheel: handler
-  }, buildWheelConfig.current(config));
-}
-
-var MoveRecognizer = /*#__PURE__*/function (_CoordinatesRecognize) {
-  reactusegesture_esm_inheritsLoose(MoveRecognizer, _CoordinatesRecognize);
-
-  function MoveRecognizer() {
-    var _this;
-
-    _this = _CoordinatesRecognize.apply(this, arguments) || this;
-    _this.ingKey = 'moving';
-    _this.stateKey = 'move';
-    _this.debounced = true;
-
-    _this.onMove = function (event) {
-      if (!_this.enabled) return;
-
-      _this.setTimeout(_this.onMoveEnd);
-
-      if (!_this.state._active) _this.onMoveStart(event);else _this.onMoveChange(event);
-    };
-
-    _this.onMoveStart = function (event) {
-      _this.updateSharedState(getGenericEventData(event));
-
-      var values = getPointerEventValues(event, _this.transform);
-
-      _this.updateGestureState(_extends({}, getStartGestureState(_assertThisInitialized(_this), values, event), getGenericPayload(_assertThisInitialized(_this), event, true)));
-
-      _this.updateGestureState(_this.getMovement(values));
-
-      _this.fireGestureHandler();
-    };
-
-    _this.onMoveChange = function (event) {
-      _this.updateSharedState(getGenericEventData(event));
-
-      var values = getPointerEventValues(event, _this.transform);
-
-      _this.updateGestureState(_extends({}, getGenericPayload(_assertThisInitialized(_this), event), _this.getKinematics(values, event)));
-
-      _this.fireGestureHandler();
-    };
-
-    _this.onMoveEnd = function () {
-      _this.clean();
-
-      if (!_this.state._active) return;
-      var values = _this.state.values;
-
-      _this.updateGestureState(_this.getMovement(values));
-
-      _this.updateGestureState({
-        velocities: [0, 0],
-        velocity: 0,
-        _active: false
-      });
-
-      _this.fireGestureHandler();
-    };
-
-    _this.hoverTransform = function () {
-      return _this.controller.config.hover.transform || _this.controller.config.transform;
-    };
-
-    _this.onPointerEnter = function (event) {
-      _this.controller.state.shared.hovering = true;
-      if (!_this.controller.config.enabled) return;
-
-      if (_this.controller.config.hover.enabled) {
-        var values = getPointerEventValues(event, _this.hoverTransform());
-
-        var state = _extends({}, _this.controller.state.shared, _this.state, getGenericPayload(_assertThisInitialized(_this), event, true), {
-          args: _this.args,
-          values: values,
-          active: true,
-          hovering: true
-        });
-
-        _this.controller.handlers.hover(_extends({}, state, _this.mapStateValues(state)));
-      }
-
-      if ('move' in _this.controller.handlers) _this.onMoveStart(event);
-    };
-
-    _this.onPointerLeave = function (event) {
-      _this.controller.state.shared.hovering = false;
-      if ('move' in _this.controller.handlers) _this.onMoveEnd();
-      if (!_this.controller.config.hover.enabled) return;
-      var values = getPointerEventValues(event, _this.hoverTransform());
-
-      var state = _extends({}, _this.controller.state.shared, _this.state, getGenericPayload(_assertThisInitialized(_this), event), {
-        args: _this.args,
-        values: values,
-        active: false
-      });
-
-      _this.controller.handlers.hover(_extends({}, state, _this.mapStateValues(state)));
-    };
-
-    return _this;
-  }
-
-  var _proto = MoveRecognizer.prototype;
-
-  _proto.addBindings = function addBindings$1(bindings) {
-    if ('move' in this.controller.handlers) {
-      addBindings(bindings, 'onPointerMove', this.onMove);
-    }
-
-    if ('hover' in this.controller.handlers) {
-      addBindings(bindings, 'onPointerEnter', this.onPointerEnter);
-
-      addBindings(bindings, 'onPointerLeave', this.onPointerLeave);
-    }
-  };
-
-  return MoveRecognizer;
-}(CoordinatesRecognizer);
-
-/**
- * Move hook.
- *
- * @param handler - the function fired every time the move gesture updates
- * @param [config={}] - the config object including generic options and move options
- */
-
-function useMove(handler, config) {
-  if (config === void 0) {
-    config = {};
-  }
-
-  RecognizersMap.set('move', MoveRecognizer);
-  var buildMoveConfig = Object(external_React_["useRef"])();
-
-  if (!buildMoveConfig.current) {
-    buildMoveConfig.current = memoizeOne(_buildMoveConfig, isEqual);
-  }
-
-  return useRecognizers({
-    move: handler
-  }, buildMoveConfig.current(config));
-}
-
-/**
- * Hover hook.
- *
- * @param handler - the function fired every time the hover gesture updates
- * @param [config={}] - the config object including generic options and hover options
- */
-
-function useHover(handler, config) {
-  if (config === void 0) {
-    config = {};
-  }
-
-  RecognizersMap.set('hover', MoveRecognizer);
-  var buildHoverConfig = Object(external_React_["useRef"])();
-
-  if (!buildHoverConfig.current) {
-    buildHoverConfig.current = memoizeOne(_buildHoverConfig, isEqual);
-  }
-
-  return useRecognizers({
-    hover: handler
-  }, buildHoverConfig.current(config));
-}
-
-var ScrollRecognizer = /*#__PURE__*/function (_CoordinatesRecognize) {
-  reactusegesture_esm_inheritsLoose(ScrollRecognizer, _CoordinatesRecognize);
-
-  function ScrollRecognizer() {
-    var _this;
-
-    _this = _CoordinatesRecognize.apply(this, arguments) || this;
-    _this.ingKey = 'scrolling';
-    _this.stateKey = 'scroll';
-    _this.debounced = true;
-
-    _this.handleEvent = function (event) {
-      if (!_this.enabled) return;
-
-      _this.clearTimeout();
-
-      _this.setTimeout(_this.onEnd);
-
-      var values = getScrollEventValues(event, _this.transform);
-
-      _this.updateSharedState(getGenericEventData(event));
-
-      if (!_this.state._active) {
-        _this.updateGestureState(_extends({}, getStartGestureState(_assertThisInitialized(_this), values, event, _this.state.values), getGenericPayload(_assertThisInitialized(_this), event, true)));
-
-        var movementDetection = _this.getMovement(values);
-
-        var geometry = calculateAllGeometry(movementDetection.delta);
-
-        _this.updateGestureState(movementDetection);
-
-        _this.updateGestureState(geometry);
-      } else {
-        _this.updateGestureState(_extends({}, getGenericPayload(_assertThisInitialized(_this), event), _this.getKinematics(values, event)));
-      }
-
-      _this.fireGestureHandler();
-    };
-
-    _this.onEnd = function () {
-      _this.clean();
-
-      if (!_this.state._active) return;
-
-      _this.updateGestureState(_extends({}, _this.getMovement(_this.state.values), {
-        _active: false,
-        velocities: [0, 0],
-        velocity: 0
-      }));
-
-      _this.fireGestureHandler();
-    };
-
-    return _this;
-  }
-
-  var _proto = ScrollRecognizer.prototype;
-
-  _proto.addBindings = function addBindings$1(bindings) {
-    addBindings(bindings, 'onScroll', this.handleEvent);
-  };
-
-  return ScrollRecognizer;
-}(CoordinatesRecognizer);
-
-/**
- * Scroll hook.
- *
- * @param handler - the function fired every time the scroll gesture updates
- * @param [config={}] - the config object including generic options and scroll options
- */
-
-function useScroll(handler, config) {
-  if (config === void 0) {
-    config = {};
-  }
-
-  RecognizersMap.set('scroll', ScrollRecognizer);
-  var buildScrollConfig = Object(external_React_["useRef"])();
-
-  if (!buildScrollConfig.current) {
-    buildScrollConfig.current = memoizeOne(_buildScrollConfig, isEqual);
-  }
-
-  return useRecognizers({
-    scroll: handler
-  }, buildScrollConfig.current(config));
-}
-
-var RE_NOT_NATIVE = /^on(Drag|Wheel|Scroll|Move|Pinch|Hover)/;
-
-function sortHandlers(handlers) {
-  var _native = {};
-  var handle = {};
-  var actions = new Set();
-
-  for (var key in handlers) {
-    if (RE_NOT_NATIVE.test(key)) {
-      actions.add(RegExp.lastMatch);
-      handle[key] = handlers[key];
-    } else {
-      _native[key] = handlers[key];
-    }
-  }
-
-  return [handle, _native, actions];
-}
-/**
- * @public
- *
- * The most complete gesture hook, allowing support for multiple gestures.
- *
- * @param {Handlers} handlers - an object with on[Gesture] keys containg gesture handlers
- * @param {UseGestureConfig} [config={}] - the full config object
- * @returns {(...args: any[]) => HookReturnType<Config>}
- */
-
-
-function useGesture(_handlers, config) {
-  if (config === void 0) {
-    config = {};
-  }
-
-  var _sortHandlers = sortHandlers(_handlers),
-      handlers = _sortHandlers[0],
-      nativeHandlers = _sortHandlers[1],
-      actions = _sortHandlers[2];
-
-  RecognizersMap.set('drag', DragRecognizer);
-  RecognizersMap.set('hover', MoveRecognizer);
-  RecognizersMap.set('move', MoveRecognizer);
-  RecognizersMap.set('pinch', PinchRecognizer);
-  RecognizersMap.set('scroll', ScrollRecognizer);
-  RecognizersMap.set('wheel', WheelRecognizer);
-  var mergedConfig = buildComplexConfig(config, actions);
-  var internalHandlers = {};
-  if (actions.has('onDrag')) internalHandlers.drag = includeStartEndHandlers(handlers, 'onDrag');
-  if (actions.has('onWheel')) internalHandlers.wheel = includeStartEndHandlers(handlers, 'onWheel');
-  if (actions.has('onScroll')) internalHandlers.scroll = includeStartEndHandlers(handlers, 'onScroll');
-  if (actions.has('onMove')) internalHandlers.move = includeStartEndHandlers(handlers, 'onMove');
-  if (actions.has('onPinch')) internalHandlers.pinch = includeStartEndHandlers(handlers, 'onPinch');
-  if (actions.has('onHover')) internalHandlers.hover = handlers.onHover;
-  return useRecognizers(internalHandlers, mergedConfig, nativeHandlers);
-}
-
-function includeStartEndHandlers(handlers, handlerKey) {
-  var startKey = handlerKey + 'Start';
-  var endKey = handlerKey + 'End';
-
-  var fn = function fn(state) {
-    var memo = undefined;
-    if (state.first && startKey in handlers) handlers[startKey](state);
-    if (handlerKey in handlers) memo = handlers[handlerKey](state);
-    if (state.last && endKey in handlers) handlers[endKey](state);
-    return memo;
-  };
-
-  return fn;
-}
-
-
-
-// EXTERNAL MODULE: external ["wp","keycodes"]
-var external_wp_keycodes_ = __webpack_require__("RxS6");
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/input-control/utils.js
-/**
- * WordPress dependencies
- */
-
-/**
- * Gets a CSS cursor value based on a drag direction.
- *
- * @param {string} dragDirection The drag direction.
- * @return {string} The CSS cursor value.
- */
-
-function getDragCursor(dragDirection) {
-  let dragCursor = 'ns-resize';
-
-  switch (dragDirection) {
-    case 'n':
-    case 's':
-      dragCursor = 'ns-resize';
-      break;
-
-    case 'e':
-    case 'w':
-      dragCursor = 'ew-resize';
-      break;
-  }
-
-  return dragCursor;
-}
-/**
- * Custom hook that renders a drag cursor when dragging.
- *
- * @param {boolean} isDragging The dragging state.
- * @param {string} dragDirection The drag direction.
- *
- * @return {string} The CSS cursor value.
- */
-
-function useDragCursor(isDragging, dragDirection) {
-  const dragCursor = getDragCursor(dragDirection);
-  Object(external_wp_element_["useEffect"])(() => {
-    if (isDragging) {
-      document.documentElement.style.cursor = dragCursor;
-    } else {
-      document.documentElement.style.cursor = null;
-    }
-  }, [isDragging]);
-  return dragCursor;
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/input-control/state.js
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-const initialStateReducer = state => state;
-
-const initialInputControlState = {
-  _event: {},
-  error: null,
-  initialValue: '',
-  isDirty: false,
-  isDragEnabled: false,
-  isDragging: false,
-  isPressEnterToChange: false,
-  value: ''
-};
-const actionTypes = {
-  CHANGE: 'CHANGE',
-  COMMIT: 'COMMIT',
-  DRAG_END: 'DRAG_END',
-  DRAG_START: 'DRAG_START',
-  DRAG: 'DRAG',
-  INVALIDATE: 'INVALIDATE',
-  PRESS_DOWN: 'PRESS_DOWN',
-  PRESS_ENTER: 'PRESS_ENTER',
-  PRESS_UP: 'PRESS_UP',
-  RESET: 'RESET',
-  UPDATE: 'UPDATE'
-};
-const inputControlActionTypes = actionTypes;
-/**
- * Prepares initialState for the reducer.
- *
- * @param {Object} initialState The initial state.
- * @return {Object} Prepared initialState for the reducer
- */
-
-function mergeInitialState(initialState = initialInputControlState) {
-  const {
-    value
-  } = initialState;
-  return { ...initialInputControlState,
-    ...initialState,
-    initialValue: value
-  };
-}
-/**
- * Composes multiple stateReducers into a single stateReducer, building
- * the pipeline to control the flow for state and actions.
- *
- * @param  {...Function} fns State reducers.
- * @return {Function} The single composed stateReducer.
- */
-
-
-const composeStateReducers = (...fns) => {
-  return (...args) => {
-    return fns.reduceRight((state, fn) => {
-      const fnState = fn(...args);
-      return Object(external_lodash_["isEmpty"])(fnState) ? state : { ...state,
-        ...fnState
-      };
-    }, {});
-  };
-};
-/**
- * Creates a reducer that opens the channel for external state subscription
- * and modification.
- *
- * This technique uses the "stateReducer" design pattern:
- * https://kentcdodds.com/blog/the-state-reducer-pattern/
- *
- * @param {Function} composedStateReducers A custom reducer that can subscribe and modify state.
- * @return {Function} The reducer.
- */
-
-function inputControlStateReducer(composedStateReducers) {
-  return (state, action) => {
-    const nextState = { ...state
-    };
-    const {
-      type,
-      payload
-    } = action;
-
-    switch (type) {
-      /**
-       * Keyboard events
-       */
-      case actionTypes.PRESS_UP:
-        nextState.isDirty = false;
-        break;
-
-      case actionTypes.PRESS_DOWN:
-        nextState.isDirty = false;
-        break;
-
-      /**
-       * Drag events
-       */
-
-      case actionTypes.DRAG_START:
-        nextState.isDragging = true;
-        break;
-
-      case actionTypes.DRAG_END:
-        nextState.isDragging = false;
-        break;
-
-      /**
-       * Input events
-       */
-
-      case actionTypes.CHANGE:
-        nextState.error = null;
-        nextState.value = payload.value;
-
-        if (state.isPressEnterToChange) {
-          nextState.isDirty = true;
-        }
-
-        break;
-
-      case actionTypes.COMMIT:
-        nextState.value = payload.value;
-        nextState.isDirty = false;
-        break;
-
-      case actionTypes.RESET:
-        nextState.error = null;
-        nextState.isDirty = false;
-        nextState.value = payload.value || state.initialValue;
-        break;
-
-      case actionTypes.UPDATE:
-        nextState.value = payload.value;
-        nextState.isDirty = false;
-        break;
-
-      /**
-       * Validation
-       */
-
-      case actionTypes.INVALIDATE:
-        nextState.error = payload.error;
-        break;
-    }
-
-    if (payload.event) {
-      nextState._event = payload.event;
-    }
-    /**
-     * Send the nextState + action to the composedReducers via
-     * this "bridge" mechanism. This allows external stateReducers
-     * to hook into actions, and modify state if needed.
-     */
-
-
-    return composedStateReducers(nextState, action);
-  };
-}
-/**
- * A custom hook that connects and external stateReducer with an internal
- * reducer. This hook manages the internal state of InputControl.
- * However, by connecting an external stateReducer function, other
- * components can react to actions as well as modify state before it is
- * applied.
- *
- * This technique uses the "stateReducer" design pattern:
- * https://kentcdodds.com/blog/the-state-reducer-pattern/
- *
- * @param {Function} stateReducer An external state reducer.
- * @param {Object} initialState The initial state for the reducer.
- * @return {Object} State, dispatch, and a collection of actions.
- */
-
-
-function useInputControlStateReducer(stateReducer = initialStateReducer, initialState = initialInputControlState) {
-  const [state, dispatch] = Object(external_wp_element_["useReducer"])(inputControlStateReducer(stateReducer), mergeInitialState(initialState));
-
-  const createChangeEvent = type => (nextValue, event) => {
-    /**
-     * Persist allows for the (Synthetic) event to be used outside of
-     * this function call.
-     * https://reactjs.org/docs/events.html#event-pooling
-     */
-    if (event && event.persist) {
-      event.persist();
-    }
-
-    dispatch({
-      type,
-      payload: {
-        value: nextValue,
-        event
-      }
-    });
-  };
-
-  const createKeyEvent = type => event => {
-    /**
-     * Persist allows for the (Synthetic) event to be used outside of
-     * this function call.
-     * https://reactjs.org/docs/events.html#event-pooling
-     */
-    if (event && event.persist) {
-      event.persist();
-    }
-
-    dispatch({
-      type,
-      payload: {
-        event
-      }
-    });
-  };
-
-  const createDragEvent = type => dragProps => {
-    dispatch({
-      type,
-      payload: dragProps
-    });
-  };
-  /**
-   * Actions for the reducer
-   */
-
-
-  const change = createChangeEvent(actionTypes.CHANGE);
-  const invalidate = createChangeEvent(actionTypes.INVALIDATE);
-  const reset = createChangeEvent(actionTypes.RESET);
-  const commit = createChangeEvent(actionTypes.COMMIT);
-  const update = createChangeEvent(actionTypes.UPDATE);
-  const dragStart = createDragEvent(actionTypes.DRAG_START);
-  const drag = createDragEvent(actionTypes.DRAG);
-  const dragEnd = createDragEvent(actionTypes.DRAG_END);
-  const pressUp = createKeyEvent(actionTypes.PRESS_UP);
-  const pressDown = createKeyEvent(actionTypes.PRESS_DOWN);
-  const pressEnter = createKeyEvent(actionTypes.PRESS_ENTER);
-  return {
-    change,
-    commit,
-    dispatch,
-    drag,
-    dragEnd,
-    dragStart,
-    invalidate,
-    pressDown,
-    pressEnter,
-    pressUp,
-    reset,
-    state,
-    update
-  };
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/values.js
-/* eslint-disable jsdoc/valid-types */
-
-/**
- * Determines if a value is null or undefined.
- *
- * @template T
- *
- * @param {T | null | undefined} value The value to check.
- * @return {value is T} Whether value is not null or undefined.
- */
-function isValueDefined(value) {
-  return value !== undefined && value !== null;
-}
-/* eslint-enable jsdoc/valid-types */
-
-/* eslint-disable jsdoc/valid-types */
-
-/**
- * Determines if a value is empty, null, or undefined.
- *
- * @template T
- *
- * @param {T | "" | null | undefined} value The value to check.
- * @return {value is T} Whether value is empty.
- */
-
-function isValueEmpty(value) {
-  const isEmptyString = value === '';
-  return !isValueDefined(value) || isEmptyString;
-}
-/* eslint-enable jsdoc/valid-types */
-
-/**
- * Get the first defined/non-null value from an array.
- *
- * @template T
- *
- * @param {Array<T | null | undefined>} values Values to derive from.
- * @param {T} fallbackValue Fallback value if there are no defined values.
- * @return {T} A defined value or the fallback value.
- */
-
-function getDefinedValue(values = [], fallbackValue) {
-  var _values$find;
-
-  return (_values$find = values.find(isValueDefined)) !== null && _values$find !== void 0 ? _values$find : fallbackValue;
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/hooks/use-update-effect.js
-/**
- * WordPress dependencies
- */
-
-/**
- * A `React.useEffect` that will not run on the first render.
- * Source:
- * https://github.com/reakit/reakit/blob/HEAD/packages/reakit-utils/src/useUpdateEffect.ts
- *
- * @param {import('react').EffectCallback} effect
- * @param {import('react').DependencyList} deps
- */
-
-function useUpdateEffect(effect, deps) {
-  const mounted = Object(external_wp_element_["useRef"])(false);
-  Object(external_wp_element_["useEffect"])(() => {
-    if (mounted.current) {
-      return effect();
-    }
-
-    mounted.current = true;
-    return undefined;
-  }, deps);
-}
-
-/* harmony default export */ var use_update_effect = (useUpdateEffect);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/input-control/input-field.js
-
-
-
-/**
- * External dependencies
- */
-
-
-/**
- * WordPress dependencies
- */
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-
-
-function InputField({
-  disabled = false,
-  dragDirection = 'n',
-  dragThreshold = 10,
-  id,
-  isDragEnabled = false,
-  isFocused,
-  isPressEnterToChange = false,
-  onBlur = external_lodash_["noop"],
-  onChange = external_lodash_["noop"],
-  onDrag = external_lodash_["noop"],
-  onDragEnd = external_lodash_["noop"],
-  onDragStart = external_lodash_["noop"],
-  onFocus = external_lodash_["noop"],
-  onKeyDown = external_lodash_["noop"],
-  onValidate = external_lodash_["noop"],
-  size = 'default',
-  setIsFocused,
-  stateReducer = state => state,
-  value: valueProp,
-  type,
-  ...props
-}, ref) {
-  const {
-    // State
-    state,
-    // Actions
-    change,
-    commit,
-    drag,
-    dragEnd,
-    dragStart,
-    invalidate,
-    pressDown,
-    pressEnter,
-    pressUp,
-    reset,
-    update
-  } = useInputControlStateReducer(stateReducer, {
-    isDragEnabled,
-    value: valueProp,
-    isPressEnterToChange
-  });
-  const {
-    _event,
-    value,
-    isDragging,
-    isDirty
-  } = state;
-  const wasDirtyOnBlur = Object(external_wp_element_["useRef"])(false);
-  const dragCursor = useDragCursor(isDragging, dragDirection);
-  /*
-   * Handles synchronization of external and internal value state.
-   * If not focused and did not hold a dirty value[1] on blur
-   * updates the value from the props. Otherwise if not holding
-   * a dirty value[1] propagates the value and event through onChange.
-   * [1] value is only made dirty if isPressEnterToChange is true
-   */
-
-  use_update_effect(() => {
-    if (valueProp === value) {
-      return;
-    }
-
-    if (!isFocused && !wasDirtyOnBlur.current) {
-      update(valueProp);
-    } else if (!isDirty) {
-      onChange(value, {
-        event: _event
-      });
-      wasDirtyOnBlur.current = false;
-    }
-  }, [value, isDirty, isFocused, valueProp]);
-
-  const handleOnBlur = event => {
-    onBlur(event);
-    setIsFocused(false);
-    /**
-     * If isPressEnterToChange is set, this commits the value to
-     * the onChange callback.
-     */
-
-    if (isPressEnterToChange && isDirty) {
-      wasDirtyOnBlur.current = true;
-
-      if (!isValueEmpty(value)) {
-        handleOnCommit(event);
-      } else {
-        reset(valueProp);
-      }
-    }
-  };
-
-  const handleOnFocus = event => {
-    onFocus(event);
-    setIsFocused(true);
-  };
-
-  const handleOnChange = event => {
-    const nextValue = event.target.value;
-    change(nextValue, event);
-  };
-
-  const handleOnCommit = event => {
-    const nextValue = event.target.value;
-
-    try {
-      onValidate(nextValue, event);
-      commit(nextValue, event);
-    } catch (err) {
-      invalidate(err, event);
-    }
-  };
-
-  const handleOnKeyDown = event => {
-    const {
-      keyCode
-    } = event;
-    onKeyDown(event);
-
-    switch (keyCode) {
-      case external_wp_keycodes_["UP"]:
-        pressUp(event);
-        break;
-
-      case external_wp_keycodes_["DOWN"]:
-        pressDown(event);
-        break;
-
-      case external_wp_keycodes_["ENTER"]:
-        pressEnter(event);
-
-        if (isPressEnterToChange) {
-          event.preventDefault();
-          handleOnCommit(event);
-        }
-
-        break;
-    }
-  };
-
-  const dragGestureProps = useDrag(dragProps => {
-    const {
-      distance,
-      dragging,
-      event
-    } = dragProps; // The event is persisted to prevent errors in components using this
-    // to check if a modifier key was held while dragging.
-
-    event.persist();
-    if (!distance) return;
-    event.stopPropagation();
-    /**
-     * Quick return if no longer dragging.
-     * This prevents unnecessary value calculations.
-     */
-
-    if (!dragging) {
-      onDragEnd(dragProps);
-      dragEnd(dragProps);
-      return;
-    }
-
-    onDrag(dragProps);
-    drag(dragProps);
-
-    if (!isDragging) {
-      onDragStart(dragProps);
-      dragStart(dragProps);
-    }
-  }, {
-    threshold: dragThreshold,
-    enabled: isDragEnabled
-  });
-  const dragProps = isDragEnabled ? dragGestureProps() : {};
-  /*
-   * Works around the odd UA (e.g. Firefox) that does not focus inputs of
-   * type=number when their spinner arrows are pressed.
-   */
-
-  let handleOnMouseDown;
-
-  if (type === 'number') {
-    handleOnMouseDown = event => {
-      var _props$onMouseDown;
-
-      (_props$onMouseDown = props.onMouseDown) === null || _props$onMouseDown === void 0 ? void 0 : _props$onMouseDown.call(props, event);
-
-      if (event.target !== event.target.ownerDocument.activeElement) {
-        event.target.focus();
-      }
-    };
-  }
-
-  return Object(external_wp_element_["createElement"])(input_control_styles_Input, Object(esm_extends["a" /* default */])({}, props, dragProps, {
-    className: "components-input-control__input",
-    disabled: disabled,
-    dragCursor: dragCursor,
-    isDragging: isDragging,
-    id: id,
-    onBlur: handleOnBlur,
-    onChange: handleOnChange,
-    onFocus: handleOnFocus,
-    onKeyDown: handleOnKeyDown,
-    onMouseDown: handleOnMouseDown,
-    ref: ref,
-    size: size,
-    value: value,
-    type: type
-  }));
-}
-
-const ForwardedComponent = Object(external_wp_element_["forwardRef"])(InputField);
-/* harmony default export */ var input_field = (ForwardedComponent);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/input-control/index.js
-
-
-
-/**
- * External dependencies
- */
-
-
-/**
- * WordPress dependencies
- */
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-function input_control_useUniqueId(idProp) {
-  const instanceId = Object(external_wp_compose_["useInstanceId"])(InputControl);
-  const id = `inspector-input-control-${instanceId}`;
-  return idProp || id;
-}
-
-function InputControl({
-  __unstableStateReducer: stateReducer = state => state,
-  __unstableInputWidth,
-  className,
-  disabled = false,
-  hideLabelFromVision = false,
-  id: idProp,
-  isPressEnterToChange = false,
-  label,
-  labelPosition = 'top',
-  onChange = external_lodash_["noop"],
-  onValidate = external_lodash_["noop"],
-  onKeyDown = external_lodash_["noop"],
-  prefix,
-  size = 'default',
-  suffix,
-  value,
-  ...props
-}, ref) {
-  const [isFocused, setIsFocused] = Object(external_wp_element_["useState"])(false);
-  const id = input_control_useUniqueId(idProp);
-  const classes = classnames_default()('components-input-control', className);
-  return Object(external_wp_element_["createElement"])(input_base, {
-    __unstableInputWidth: __unstableInputWidth,
-    className: classes,
-    disabled: disabled,
-    gap: 3,
-    hideLabelFromVision: hideLabelFromVision,
-    id: id,
-    isFocused: isFocused,
-    justify: "left",
-    label: label,
-    labelPosition: labelPosition,
-    prefix: prefix,
-    size: size,
-    suffix: suffix
-  }, Object(external_wp_element_["createElement"])(input_field, Object(esm_extends["a" /* default */])({}, props, {
-    className: "components-input-control__input",
-    disabled: disabled,
-    id: id,
-    isFocused: isFocused,
-    isPressEnterToChange: isPressEnterToChange,
-    onChange: onChange,
-    onKeyDown: onKeyDown,
-    onValidate: onValidate,
-    ref: ref,
-    setIsFocused: setIsFocused,
-    size: size,
-    stateReducer: stateReducer,
-    value: value
-  })));
-}
-const input_control_ForwardedComponent = Object(external_wp_element_["forwardRef"])(InputControl);
-/* harmony default export */ var input_control = (input_control_ForwardedComponent);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/number-control/styles/number-control-styles.js
-
-
-function number_control_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
-
-/**
- * External dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-var number_control_styles_ref =  true ? {
-  name: "1b9wwt5",
-  styles: "&::-webkit-outer-spin-button,&::-webkit-inner-spin-button{-webkit-appearance:none !important;margin:0 !important;}"
-} : undefined;
-
-const htmlArrowStyles = ({
-  hideHTMLArrows
-}) => {
-  if (!hideHTMLArrows) return ``;
-  return number_control_styles_ref;
-};
-
-const number_control_styles_Input = /*#__PURE__*/styled_base_browser_esm(input_control, {
-  target: "ep48uk90",
-  label: "Input"
-})(htmlArrowStyles, ";" + ( true ? "" : undefined));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/math.js
-/**
- * External dependencies
- */
-
-/**
- * Parses and retrieves a number value.
- *
- * @param {unknown} value The incoming value.
- *
- * @return {number} The parsed number value.
- */
-
-function getNumber(value) {
-  const number = Number(value);
-  return isNaN(number) ? 0 : number;
-}
-/**
- * Safely adds 2 values.
- *
- * @param {Array<number|string>} args Values to add together.
- *
- * @return {number} The sum of values.
- */
-
-function add(...args) {
-  return args.reduce(
-  /** @type {(sum:number, arg: number|string) => number} */
-  (sum, arg) => sum + getNumber(arg), 0);
-}
-/**
- * Safely subtracts 2 values.
- *
- * @param {Array<number|string>} args Values to subtract together.
- *
- * @return {number} The difference of the values.
- */
-
-function subtract(...args) {
-  return args.reduce(
-  /** @type {(diff:number, arg: number|string, index:number) => number} */
-  (diff, arg, index) => {
-    const value = getNumber(arg);
-    return index === 0 ? value : diff - value;
-  }, 0);
-}
-/**
- * Determines the decimal position of a number value.
- *
- * @param {number} value The number to evaluate.
- *
- * @return {number} The number of decimal places.
- */
-
-function getPrecision(value) {
-  const split = (value + '').split('.');
-  return split[1] !== undefined ? split[1].length : 0;
-}
-/**
- * Clamps a value based on a min/max range with rounding
- *
- * @param {number} value The value.
- * @param {number} min The minimum range.
- * @param {number} max The maximum range.
- * @param {number} step A multiplier for the value.
- *
- * @return {number} The rounded and clamped value.
- */
-
-
-function roundClamp(value = 0, min = Infinity, max = Infinity, step = 1) {
-  const baseValue = getNumber(value);
-  const stepValue = getNumber(step);
-  const precision = getPrecision(step);
-  const rounded = Math.round(baseValue / stepValue) * stepValue;
-  const clampedValue = Object(external_lodash_["clamp"])(rounded, min, max);
-  return precision ? getNumber(clampedValue.toFixed(precision)) : clampedValue;
-}
-/**
- * Clamps a value based on a min/max range with rounding.
- * Returns a string.
- *
- * @param {Parameters<typeof roundClamp>} args Arguments for roundClamp().
- * @return {string} The rounded and clamped value.
- */
-
-function roundClampString(...args) {
-  return roundClamp(...args).toString();
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/hooks/use-jump-step.js
-/**
- * WordPress dependencies
- */
-
-/**
- * A custom hook that calculates a step value (used by elements like input
- * [type="number"]). This value can be modified based on whether the Shift
- * key is being held down.
- *
- * For example, a shiftStep of 10, and a step of 1...
- * Starting from 10, the next incremented value will be 11.
- *
- * Holding down shift...
- * Starting from 10, the next incremented value will be 20.
- *
- * @param {Object} props Properties for the hook.
- * @param {boolean} [props.isShiftStepEnabled=true] Determines if jumping values with shift is enabled
- * @param {number} [props.shiftStep=10] Multiplier to jump by, when holding shift key.
- * @param {number} [props.step=1] Multiplier to jump by, when not-holding shift key.
- *
- * @return {number} The jump step value.
- */
-
-function useJumpStep({
-  isShiftStepEnabled = true,
-  shiftStep = 10,
-  step = 1
-}) {
-  const [isShiftKey, setIsShiftKey] = Object(external_wp_element_["useState"])(false);
-  Object(external_wp_element_["useEffect"])(() => {
-    /** @type {(event: KeyboardEvent)=>void} */
-    const handleShiftKeyToggle = event => {
-      setIsShiftKey(event.shiftKey);
-    };
-
-    window.addEventListener('keydown', handleShiftKeyToggle);
-    window.addEventListener('keyup', handleShiftKeyToggle);
-    return () => {
-      window.removeEventListener('keydown', handleShiftKeyToggle);
-      window.removeEventListener('keyup', handleShiftKeyToggle);
-    };
-  }, []);
-  const isEnabled = isShiftStepEnabled && isShiftKey;
-  return isEnabled ? shiftStep * step : step;
-}
-
-/* harmony default export */ var use_jump_step = (useJumpStep);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/number-control/index.js
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-
-function NumberControl({
-  __unstableStateReducer: stateReducer = state => state,
-  className,
-  dragDirection = 'n',
-  hideHTMLArrows = false,
-  isDragEnabled = true,
-  isShiftStepEnabled = true,
-  label,
-  max = Infinity,
-  min = -Infinity,
-  shiftStep = 10,
-  step = 1,
-  type: typeProp = 'number',
-  value: valueProp,
-  ...props
-}, ref) {
-  const baseValue = roundClamp(0, min, max, step);
-  const jumpStep = use_jump_step({
-    step,
-    shiftStep,
-    isShiftStepEnabled
-  });
-  const autoComplete = typeProp === 'number' ? 'off' : null;
-  const classes = classnames_default()('components-number-control', className);
-  /**
-   * "Middleware" function that intercepts updates from InputControl.
-   * This allows us to tap into actions to transform the (next) state for
-   * InputControl.
-   *
-   * @param {Object} state State from InputControl
-   * @param {Object} action Action triggering state change
-   * @return {Object} The updated state to apply to InputControl
-   */
-
-  const numberControlStateReducer = (state, action) => {
-    const {
-      type,
-      payload
-    } = action;
-    const event = payload === null || payload === void 0 ? void 0 : payload.event;
-    const currentValue = state.value;
-    /**
-     * Handles custom UP and DOWN Keyboard events
-     */
-
-    if (type === inputControlActionTypes.PRESS_UP || type === inputControlActionTypes.PRESS_DOWN) {
-      const enableShift = event.shiftKey && isShiftStepEnabled;
-      const incrementalValue = enableShift ? parseFloat(shiftStep) * parseFloat(step) : parseFloat(step);
-      let nextValue = isValueEmpty(currentValue) ? baseValue : currentValue;
-
-      if (event !== null && event !== void 0 && event.preventDefault) {
-        event.preventDefault();
-      }
-
-      if (type === inputControlActionTypes.PRESS_UP) {
-        nextValue = add(nextValue, incrementalValue);
-      }
-
-      if (type === inputControlActionTypes.PRESS_DOWN) {
-        nextValue = subtract(nextValue, incrementalValue);
-      }
-
-      nextValue = roundClamp(nextValue, min, max, incrementalValue);
-      state.value = nextValue;
-    }
-    /**
-     * Handles drag to update events
-     */
-
-
-    if (type === inputControlActionTypes.DRAG && isDragEnabled) {
-      const {
-        delta,
-        shiftKey
-      } = payload;
-      const [x, y] = delta;
-      const modifier = shiftKey ? parseFloat(shiftStep) * parseFloat(step) : parseFloat(step);
-      let directionModifier;
-      let directionBaseValue;
-
-      switch (dragDirection) {
-        case 'n':
-          directionBaseValue = y;
-          directionModifier = -1;
-          break;
-
-        case 'e':
-          directionBaseValue = x;
-          directionModifier = Object(external_wp_i18n_["isRTL"])() ? -1 : 1;
-          break;
-
-        case 's':
-          directionBaseValue = y;
-          directionModifier = 1;
-          break;
-
-        case 'w':
-          directionBaseValue = x;
-          directionModifier = Object(external_wp_i18n_["isRTL"])() ? 1 : -1;
-          break;
-      }
-
-      const distance = directionBaseValue * modifier * directionModifier;
-      let nextValue;
-
-      if (distance !== 0) {
-        nextValue = roundClamp(add(currentValue, distance), min, max, modifier);
-        state.value = nextValue;
-      }
-    }
-    /**
-     * Handles commit (ENTER key press or on blur if isPressEnterToChange)
-     */
-
-
-    if (type === inputControlActionTypes.PRESS_ENTER || type === inputControlActionTypes.COMMIT) {
-      state.value = roundClamp(currentValue, min, max);
-    }
-
-    return state;
-  };
-
-  return Object(external_wp_element_["createElement"])(number_control_styles_Input, Object(esm_extends["a" /* default */])({
-    autoComplete: autoComplete,
-    inputMode: "numeric"
-  }, props, {
-    className: classes,
-    dragDirection: dragDirection,
-    hideHTMLArrows: hideHTMLArrows,
-    isDragEnabled: isDragEnabled,
-    label: label,
-    max: max,
-    min: min,
-    ref: ref,
-    step: jumpStep,
-    type: typeProp,
-    value: valueProp,
-    __unstableStateReducer: composeStateReducers(numberControlStateReducer, stateReducer)
-  }));
-}
-/* harmony default export */ var number_control = (Object(external_wp_element_["forwardRef"])(NumberControl));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/angle-picker-control/styles/angle-picker-control-styles.js
-
-
-function angle_picker_control_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
-
-/**
- * Internal dependencies
- */
-
-
-const CIRCLE_SIZE = 30;
-const angle_picker_control_styles_Root = /*#__PURE__*/styled_base_browser_esm(flex_component, {
-  target: "e65ony40",
-  label: "Root"
-})( true ? {
-  name: "tn9ygg",
-  styles: "max-width:200px;"
-} : undefined);
-const CircleRoot = styled_base_browser_esm("div", {
-  target: "e65ony41",
-  label: "CircleRoot"
-})("border-radius:50%;border:1px solid ", COLORS.ui.borderLight, ";box-sizing:border-box;cursor:grab;height:", CIRCLE_SIZE, "px;overflow:hidden;width:", CIRCLE_SIZE, "px;" + ( true ? "" : undefined));
-const CircleIndicatorWrapper = styled_base_browser_esm("div", {
-  target: "e65ony42",
-  label: "CircleIndicatorWrapper"
-})( true ? {
-  name: "11t5m37",
-  styles: "box-sizing:border-box;position:relative;width:100%;height:100%;"
-} : undefined);
-const CircleIndicator = styled_base_browser_esm("div", {
-  target: "e65ony43",
-  label: "CircleIndicator"
-})("background:", COLORS.ui.border, ";border-radius:50%;border:3px solid ", COLORS.ui.border, ";bottom:0;box-sizing:border-box;display:block;height:1px;left:0;margin:auto;position:absolute;right:0;top:-", CIRCLE_SIZE / 2, "px;width:1px;" + ( true ? "" : undefined));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/angle-picker-control/angle-circle.js
-
-
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-function AngleCircle({
-  value,
-  onChange,
-  ...props
-}) {
-  const angleCircleRef = Object(external_wp_element_["useRef"])();
-  const angleCircleCenter = Object(external_wp_element_["useRef"])();
-  const previousCursorValue = Object(external_wp_element_["useRef"])();
-
-  const setAngleCircleCenter = () => {
-    const rect = angleCircleRef.current.getBoundingClientRect();
-    angleCircleCenter.current = {
-      x: rect.x + rect.width / 2,
-      y: rect.y + rect.height / 2
-    };
-  };
-
-  const changeAngleToPosition = event => {
-    const {
-      x: centerX,
-      y: centerY
-    } = angleCircleCenter.current;
-    const {
-      ownerDocument
-    } = angleCircleRef.current; // Prevent (drag) mouse events from selecting and accidentally
-    // triggering actions from other elements.
-
-    event.preventDefault(); // Ensure the input isn't focused as preventDefault would leave it
-
-    ownerDocument.activeElement.blur();
-    onChange(getAngle(centerX, centerY, event.clientX, event.clientY));
-  };
-
-  const {
-    startDrag,
-    isDragging
-  } = Object(external_wp_compose_["__experimentalUseDragging"])({
-    onDragStart: event => {
-      setAngleCircleCenter();
-      changeAngleToPosition(event);
-    },
-    onDragMove: changeAngleToPosition,
-    onDragEnd: changeAngleToPosition
-  });
-  Object(external_wp_element_["useEffect"])(() => {
-    if (isDragging) {
-      if (previousCursorValue.current === undefined) {
-        previousCursorValue.current = document.body.style.cursor;
-      }
-
-      document.body.style.cursor = 'grabbing';
-    } else {
-      document.body.style.cursor = previousCursorValue.current || null;
-      previousCursorValue.current = undefined;
-    }
-  }, [isDragging]);
-  return (
-    /* eslint-disable jsx-a11y/no-static-element-interactions */
-    Object(external_wp_element_["createElement"])(CircleRoot, Object(esm_extends["a" /* default */])({
-      ref: angleCircleRef,
-      onMouseDown: startDrag,
-      className: "components-angle-picker-control__angle-circle",
-      style: isDragging ? {
-        cursor: 'grabbing'
-      } : undefined
-    }, props), Object(external_wp_element_["createElement"])(CircleIndicatorWrapper, {
-      style: value ? {
-        transform: `rotate(${value}deg)`
-      } : undefined,
-      className: "components-angle-picker-control__angle-circle-indicator-wrapper"
-    }, Object(external_wp_element_["createElement"])(CircleIndicator, {
-      className: "components-angle-picker-control__angle-circle-indicator"
-    })))
-    /* eslint-enable jsx-a11y/no-static-element-interactions */
-
-  );
-}
-
-function getAngle(centerX, centerY, pointX, pointY) {
-  const y = pointY - centerY;
-  const x = pointX - centerX;
-  const angleInRadians = Math.atan2(y, x);
-  const angleInDeg = Math.round(angleInRadians * (180 / Math.PI)) + 90;
-
-  if (angleInDeg < 0) {
-    return 360 + angleInDeg;
-  }
-
-  return angleInDeg;
-}
-
-/* harmony default export */ var angle_circle = (AngleCircle);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/angle-picker-control/index.js
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-
-function AnglePickerControl({
-  className,
-  hideLabelFromVision,
-  id: idProp,
-  label = Object(external_wp_i18n_["__"])('Angle'),
-  onChange,
-  value,
-  ...props
-}) {
-  const instanceId = Object(external_wp_compose_["useInstanceId"])(AnglePickerControl, 'components-angle-picker-control__input');
-  const id = idProp || instanceId;
-
-  const handleOnNumberChange = unprocessedValue => {
-    const inputValue = unprocessedValue !== '' ? parseInt(unprocessedValue, 10) : 0;
-    onChange(inputValue);
-  };
-
-  const classes = classnames_default()('components-angle-picker-control', className);
-  return Object(external_wp_element_["createElement"])(base_control, Object(esm_extends["a" /* default */])({
-    className: classes,
-    hideLabelFromVision: hideLabelFromVision,
-    id: id,
-    label: label
-  }, props), Object(external_wp_element_["createElement"])(angle_picker_control_styles_Root, null, Object(external_wp_element_["createElement"])(flex_block_component, null, Object(external_wp_element_["createElement"])(number_control, {
-    className: "components-angle-picker-control__input-field",
-    id: id,
-    max: 360,
-    min: 0,
-    onChange: handleOnNumberChange,
-    step: "1",
-    value: value
-  })), Object(external_wp_element_["createElement"])(flex_item_component, null, Object(external_wp_element_["createElement"])(angle_circle, {
-    "aria-hidden": "true",
-    value: value,
-    onChange: onChange
-  }))));
-}
-
-// EXTERNAL MODULE: external ["wp","richText"]
-var external_wp_richText_ = __webpack_require__("qRz9");
-
-// EXTERNAL MODULE: external ["wp","a11y"]
-var external_wp_a11y_ = __webpack_require__("gdqT");
-
-// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/button/index.js
-var build_module_button = __webpack_require__("kA6J");
-
-// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/popover/index.js + 1 modules
-var build_module_popover = __webpack_require__("oXO/");
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/autocomplete/index.js
-
-
-/**
- * External dependencies
- */
-
-
-/**
- * WordPress dependencies
- */
-
-
-
-
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-/**
- * A raw completer option.
- *
- * @typedef {*} CompleterOption
- */
-
-/**
- * @callback FnGetOptions
- *
- * @return {(CompleterOption[]|Promise.<CompleterOption[]>)} The completer options or a promise for them.
- */
-
-/**
- * @callback FnGetOptionKeywords
- * @param {CompleterOption} option a completer option.
- *
- * @return {string[]} list of key words to search.
- */
-
-/**
- * @callback FnIsOptionDisabled
- * @param {CompleterOption} option a completer option.
- *
- * @return {string[]} whether or not the given option is disabled.
- */
-
-/**
- * @callback FnGetOptionLabel
- * @param {CompleterOption} option a completer option.
- *
- * @return {(string|Array.<(string|WPElement)>)} list of react components to render.
- */
-
-/**
- * @callback FnAllowContext
- * @param {string} before the string before the auto complete trigger and query.
- * @param {string} after  the string after the autocomplete trigger and query.
- *
- * @return {boolean} true if the completer can handle.
- */
-
-/**
- * @typedef {Object} OptionCompletion
- * @property {'insert-at-caret'|'replace'} action the intended placement of the completion.
- * @property {OptionCompletionValue} value the completion value.
- */
-
-/**
- * A completion value.
- *
- * @typedef {(string|WPElement|Object)} OptionCompletionValue
- */
-
-/**
- * @callback FnGetOptionCompletion
- * @param {CompleterOption} value the value of the completer option.
- * @param {string} query the text value of the autocomplete query.
- *
- * @return {(OptionCompletion|OptionCompletionValue)} the completion for the given option. If an
- * 													   OptionCompletionValue is returned, the
- * 													   completion action defaults to `insert-at-caret`.
- */
-
-/**
- * @typedef {Object} WPCompleter
- * @property {string} name a way to identify a completer, useful for selective overriding.
- * @property {?string} className A class to apply to the popup menu.
- * @property {string} triggerPrefix the prefix that will display the menu.
- * @property {(CompleterOption[]|FnGetOptions)} options the completer options or a function to get them.
- * @property {?FnGetOptionKeywords} getOptionKeywords get the keywords for a given option.
- * @property {?FnIsOptionDisabled} isOptionDisabled get whether or not the given option is disabled.
- * @property {FnGetOptionLabel} getOptionLabel get the label for a given option.
- * @property {?FnAllowContext} allowContext filter the context under which the autocomplete activates.
- * @property {FnGetOptionCompletion} getOptionCompletion get the completion associated with a given option.
- */
-
-function filterOptions(search, options = [], maxResults = 10) {
-  const filtered = [];
-
-  for (let i = 0; i < options.length; i++) {
-    const option = options[i]; // Merge label into keywords
-
-    let {
-      keywords = []
-    } = option;
-
-    if ('string' === typeof option.label) {
-      keywords = [...keywords, option.label];
-    }
-
-    const isMatch = keywords.some(keyword => search.test(Object(external_lodash_["deburr"])(keyword)));
-
-    if (!isMatch) {
-      continue;
-    }
-
-    filtered.push(option); // Abort early if max reached
-
-    if (filtered.length === maxResults) {
-      break;
-    }
-  }
-
-  return filtered;
-}
-
-const getAutoCompleterUI = autocompleter => {
-  const useItems = autocompleter.useItems ? autocompleter.useItems : filterValue => {
-    const [items, setItems] = Object(external_wp_element_["useState"])([]);
-    /*
-     * We support both synchronous and asynchronous retrieval of completer options
-     * but internally treat all as async so we maintain a single, consistent code path.
-     *
-     * Because networks can be slow, and the internet is wonderfully unpredictable,
-     * we don't want two promises updating the state at once. This ensures that only
-     * the most recent promise will act on `optionsData`. This doesn't use the state
-     * because `setState` is batched, and so there's no guarantee that setting
-     * `activePromise` in the state would result in it actually being in `this.state`
-     * before the promise resolves and we check to see if this is the active promise or not.
-     */
-
-    Object(external_wp_element_["useLayoutEffect"])(() => {
-      const {
-        options,
-        isDebounced
-      } = autocompleter;
-      const loadOptions = Object(external_lodash_["debounce"])(() => {
-        const promise = Promise.resolve(typeof options === 'function' ? options(filterValue) : options).then(optionsData => {
-          if (promise.canceled) {
-            return;
-          }
-
-          const keyedOptions = optionsData.map((optionData, optionIndex) => ({
-            key: `${autocompleter.name}-${optionIndex}`,
-            value: optionData,
-            label: autocompleter.getOptionLabel(optionData),
-            keywords: autocompleter.getOptionKeywords ? autocompleter.getOptionKeywords(optionData) : [],
-            isDisabled: autocompleter.isOptionDisabled ? autocompleter.isOptionDisabled(optionData) : false
-          })); // create a regular expression to filter the options
-
-          const search = new RegExp('(?:\\b|\\s|^)' + Object(external_lodash_["escapeRegExp"])(filterValue), 'i');
-          setItems(filterOptions(search, keyedOptions));
-        });
-        return promise;
-      }, isDebounced ? 250 : 0);
-      const promise = loadOptions();
-      return () => {
-        loadOptions.cancel();
-
-        if (promise) {
-          promise.canceled = true;
-        }
-      };
-    }, [filterValue]);
-    return [items];
-  };
-
-  function AutocompleterUI({
-    filterValue,
-    instanceId,
-    listBoxId,
-    className,
-    selectedIndex,
-    onChangeOptions,
-    onSelect,
-    onReset,
-    value,
-    contentRef
-  }) {
-    const [items] = useItems(filterValue);
-    const anchorRef = Object(external_wp_richText_["useAnchorRef"])({
-      ref: contentRef,
-      value
-    });
-    Object(external_wp_element_["useLayoutEffect"])(() => {
-      onChangeOptions(items);
-    }, [items]);
-
-    if (!items.length > 0) {
-      return null;
-    }
-
-    return Object(external_wp_element_["createElement"])(build_module_popover["a" /* default */], {
-      focusOnMount: false,
-      onClose: onReset,
-      position: "top right",
-      className: "components-autocomplete__popover",
-      anchorRef: anchorRef
-    }, Object(external_wp_element_["createElement"])("div", {
-      id: listBoxId,
-      role: "listbox",
-      className: "components-autocomplete__results"
-    }, Object(external_lodash_["map"])(items, (option, index) => Object(external_wp_element_["createElement"])(build_module_button["a" /* default */], {
-      key: option.key,
-      id: `components-autocomplete-item-${instanceId}-${option.key}`,
-      role: "option",
-      "aria-selected": index === selectedIndex,
-      disabled: option.isDisabled,
-      className: classnames_default()('components-autocomplete__result', className, {
-        'is-selected': index === selectedIndex
-      }),
-      onClick: () => onSelect(option)
-    }, option.label))));
-  }
-
-  return AutocompleterUI;
-};
-
-function useAutocomplete({
-  record,
-  onChange,
-  onReplace,
-  completers,
-  contentRef
-}) {
-  const debouncedSpeak = Object(external_wp_compose_["useDebounce"])(external_wp_a11y_["speak"], 500);
-  const instanceId = Object(external_wp_compose_["useInstanceId"])(useAutocomplete);
-  const [selectedIndex, setSelectedIndex] = Object(external_wp_element_["useState"])(0);
-  const [filteredOptions, setFilteredOptions] = Object(external_wp_element_["useState"])([]);
-  const [filterValue, setFilterValue] = Object(external_wp_element_["useState"])('');
-  const [autocompleter, setAutocompleter] = Object(external_wp_element_["useState"])(null);
-  const [AutocompleterUI, setAutocompleterUI] = Object(external_wp_element_["useState"])(null);
-  const [backspacing, setBackspacing] = Object(external_wp_element_["useState"])(false);
-
-  function insertCompletion(replacement) {
-    const end = record.start;
-    const start = end - autocompleter.triggerPrefix.length - filterValue.length;
-    const toInsert = Object(external_wp_richText_["create"])({
-      html: Object(external_wp_element_["renderToString"])(replacement)
-    });
-    onChange(Object(external_wp_richText_["insert"])(record, toInsert, start, end));
-  }
-
-  function select(option) {
-    const {
-      getOptionCompletion
-    } = autocompleter || {};
-
-    if (option.isDisabled) {
-      return;
-    }
-
-    if (getOptionCompletion) {
-      const completion = getOptionCompletion(option.value, filterValue);
-      const {
-        action,
-        value
-      } = undefined === completion.action || undefined === completion.value ? {
-        action: 'insert-at-caret',
-        value: completion
-      } : completion;
-
-      if ('replace' === action) {
-        onReplace([value]);
-      } else if ('insert-at-caret' === action) {
-        insertCompletion(value);
-      }
-    } // Reset autocomplete state after insertion rather than before
-    // so insertion events don't cause the completion menu to redisplay.
-
-
-    reset();
-  }
-
-  function reset() {
-    setSelectedIndex(0);
-    setFilteredOptions([]);
-    setFilterValue('');
-    setAutocompleter(null);
-    setAutocompleterUI(null);
-  }
-
-  function announce(options) {
-    if (!debouncedSpeak) {
-      return;
-    }
-
-    if (!!options.length) {
-      debouncedSpeak(Object(external_wp_i18n_["sprintf"])(
-      /* translators: %d: number of results. */
-      Object(external_wp_i18n_["_n"])('%d result found, use up and down arrow keys to navigate.', '%d results found, use up and down arrow keys to navigate.', options.length), options.length), 'assertive');
-    } else {
-      debouncedSpeak(Object(external_wp_i18n_["__"])('No results.'), 'assertive');
-    }
-  }
-  /**
-   * Load options for an autocompleter.
-   *
-   * @param {Array} options
-   */
-
-
-  function onChangeOptions(options) {
-    setSelectedIndex(options.length === filteredOptions.length ? selectedIndex : 0);
-    setFilteredOptions(options);
-    announce(options);
-  }
-
-  function handleKeyDown(event) {
-    setBackspacing(event.keyCode === external_wp_keycodes_["BACKSPACE"]);
-
-    if (!autocompleter) {
-      return;
-    }
-
-    if (filteredOptions.length === 0) {
-      return;
-    }
-
-    switch (event.keyCode) {
-      case external_wp_keycodes_["UP"]:
-        setSelectedIndex((selectedIndex === 0 ? filteredOptions.length : selectedIndex) - 1);
-        break;
-
-      case external_wp_keycodes_["DOWN"]:
-        setSelectedIndex((selectedIndex + 1) % filteredOptions.length);
-        break;
-
-      case external_wp_keycodes_["ESCAPE"]:
-        setAutocompleter(null);
-        setAutocompleterUI(null);
-        break;
-
-      case external_wp_keycodes_["ENTER"]:
-        select(filteredOptions[selectedIndex]);
-        break;
-
-      case external_wp_keycodes_["LEFT"]:
-      case external_wp_keycodes_["RIGHT"]:
-        reset();
-        return;
-
-      default:
-        return;
-    } // Any handled keycode should prevent original behavior. This relies on
-    // the early return in the default case.
-
-
-    event.preventDefault();
-    event.stopPropagation();
-  }
-
-  let textContent;
-
-  if (Object(external_wp_richText_["isCollapsed"])(record)) {
-    textContent = Object(external_wp_richText_["getTextContent"])(Object(external_wp_richText_["slice"])(record, 0));
-  }
-
-  Object(external_wp_element_["useEffect"])(() => {
-    if (!textContent) {
-      reset();
-      return;
-    }
-
-    const text = Object(external_lodash_["deburr"])(textContent);
-    const textAfterSelection = Object(external_wp_richText_["getTextContent"])(Object(external_wp_richText_["slice"])(record, undefined, Object(external_wp_richText_["getTextContent"])(record).length));
-    const completer = Object(external_lodash_["find"])(completers, ({
-      triggerPrefix,
-      allowContext
-    }) => {
-      const index = text.lastIndexOf(triggerPrefix);
-
-      if (index === -1) {
-        return false;
-      }
-
-      const textWithoutTrigger = text.slice(index + triggerPrefix.length);
-      const tooDistantFromTrigger = textWithoutTrigger.length > 50; // 50 chars seems to be a good limit.
-      // This is a final barrier to prevent the effect from completing with
-      // an extremely long string, which causes the editor to slow-down
-      // significantly. This could happen, for example, if `matchingWhileBackspacing`
-      // is true and one of the "words" end up being too long. If that's the case,
-      // it will be caught by this guard.
-
-      if (tooDistantFromTrigger) return false;
-      const mismatch = filteredOptions.length === 0;
-      const wordsFromTrigger = textWithoutTrigger.split(/\s/); // We need to allow the effect to run when not backspacing and if there
-      // was a mismatch. i.e when typing a trigger + the match string or when
-      // clicking in an existing trigger word on the page. We do that if we
-      // detect that we have one word from trigger in the current textual context.
-      //
-      // Ex.: "Some text @a" <-- "@a" will be detected as the trigger word and
-      // allow the effect to run. It will run until there's a mismatch.
-
-      const hasOneTriggerWord = wordsFromTrigger.length === 1; // This is used to allow the effect to run when backspacing and if
-      // "touching" a word that "belongs" to a trigger. We consider a "trigger
-      // word" any word up to the limit of 3 from the trigger character.
-      // Anything beyond that is ignored if there's a mismatch. This allows
-      // us to "escape" a mismatch when backspacing, but still imposing some
-      // sane limits.
-      //
-      // Ex: "Some text @marcelo sekkkk" <--- "kkkk" caused a mismatch, but
-      // if the user presses backspace here, it will show the completion popup again.
-
-      const matchingWhileBackspacing = backspacing && textWithoutTrigger.split(/\s/).length <= 3;
-
-      if (mismatch && !(matchingWhileBackspacing || hasOneTriggerWord)) {
-        return false;
-      }
-
-      if (allowContext && !allowContext(text.slice(0, index), textAfterSelection)) {
-        return false;
-      }
-
-      if (/^\s/.test(textWithoutTrigger) || /\s\s+$/.test(textWithoutTrigger)) {
-        return false;
-      }
-
-      return /[\u0000-\uFFFF]*$/.test(textWithoutTrigger);
-    });
-
-    if (!completer) {
-      reset();
-      return;
-    }
-
-    const safeTrigger = Object(external_lodash_["escapeRegExp"])(completer.triggerPrefix);
-    const match = text.slice(text.lastIndexOf(completer.triggerPrefix)).match(new RegExp(`${safeTrigger}([\u0000-\uFFFF]*)$`));
-    const query = match && match[1];
-    setAutocompleter(completer);
-    setAutocompleterUI(() => completer !== autocompleter ? getAutoCompleterUI(completer) : AutocompleterUI);
-    setFilterValue(query);
-  }, [textContent]);
-  const {
-    key: selectedKey = ''
-  } = filteredOptions[selectedIndex] || {};
-  const {
-    className
-  } = autocompleter || {};
-  const isExpanded = !!autocompleter && filteredOptions.length > 0;
-  const listBoxId = isExpanded ? `components-autocomplete-listbox-${instanceId}` : null;
-  const activeId = isExpanded ? `components-autocomplete-item-${instanceId}-${selectedKey}` : null;
-  const hasSelection = record.start !== undefined;
-  return {
-    listBoxId,
-    activeId,
-    onKeyDown: handleKeyDown,
-    popover: hasSelection && AutocompleterUI && Object(external_wp_element_["createElement"])(AutocompleterUI, {
-      className: className,
-      filterValue: filterValue,
-      instanceId: instanceId,
-      listBoxId: listBoxId,
-      selectedIndex: selectedIndex,
-      onChangeOptions: onChangeOptions,
-      onSelect: select,
-      value: record,
-      contentRef: contentRef
-    })
-  };
-}
-
-function useAutocompleteProps(options) {
-  const ref = Object(external_wp_element_["useRef"])();
-  const onKeyDownRef = Object(external_wp_element_["useRef"])();
-  const {
-    popover,
-    listBoxId,
-    activeId,
-    onKeyDown
-  } = useAutocomplete({ ...options,
-    contentRef: ref
-  });
-  onKeyDownRef.current = onKeyDown;
-  return {
-    ref: Object(external_wp_compose_["useMergeRefs"])([ref, Object(external_wp_compose_["useRefEffect"])(element => {
-      function _onKeyDown(event) {
-        onKeyDownRef.current(event);
-      }
-
-      element.addEventListener('keydown', _onKeyDown);
-      return () => {
-        element.removeEventListener('keydown', _onKeyDown);
-      };
-    }, [])]),
-    children: popover,
-    'aria-autocomplete': listBoxId ? 'list' : undefined,
-    'aria-owns': listBoxId,
-    'aria-activedescendant': activeId
-  };
-}
-function Autocomplete({
-  children,
-  isSelected,
-  ...options
-}) {
-  const {
-    popover,
-    ...props
-  } = useAutocomplete(options);
-  return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, children(props), isSelected && popover);
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/unit-control/styles/unit-control-styles.js
-
-
-function unit_control_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
-
-/**
- * External dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-const unit_control_styles_Root = styled_base_browser_esm("div", {
-  target: "e1agakv00",
-  label: "Root"
-})( true ? {
-  name: "1bt0omd",
-  styles: "box-sizing:border-box;position:relative;"
-} : undefined);
-
-const paddingStyles = ({
-  disableUnits
-}) => {
-  const value = disableUnits ? 3 : 24;
-  return /*#__PURE__*/css_browser_esm(rtl_rtl({
-    paddingRight: value
-  })(), ";" + ( true ? "" : undefined));
-};
-
-var unit_control_styles_ref =  true ? {
-  name: "1y65o8",
-  styles: "&::-webkit-outer-spin-button,&::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}"
-} : undefined;
-
-const arrowStyles = ({
-  disableUnits
-}) => {
-  if (disableUnits) return '';
-  return unit_control_styles_ref;
-}; // TODO: Resolve need to use &&& to increase specificity
-// https://github.com/WordPress/gutenberg/issues/18483
-
-
-const ValueInput = /*#__PURE__*/styled_base_browser_esm(number_control, {
-  target: "e1agakv01",
-  label: "ValueInput"
-})("&&&{input{appearance:none;-moz-appearance:textfield;display:block;width:100%;", arrowStyles, ";", paddingStyles, ";}}" + ( true ? "" : undefined));
-
-const unitSizeStyles = ({
-  size
-}) => {
-  const sizes = {
-    default: {
-      height: 28,
-      lineHeight: '24px',
-      minHeight: 28,
-      top: 1
-    },
-    small: {
-      height: 22,
-      lineHeight: '18px',
-      minHeight: 22,
-      top: 1
-    }
-  };
-  return /*#__PURE__*/css_browser_esm(sizes[size],  true ? "" : undefined);
-};
-
-const baseUnitLabelStyles = props => {
-  return /*#__PURE__*/css_browser_esm("appearance:none;background:transparent;border-radius:2px;border:none;box-sizing:border-box;color:", COLORS.darkGray[500], ";display:block;font-size:8px;line-height:1;letter-spacing:-0.5px;outline:none;padding:2px 1px;position:absolute;text-align-last:center;text-transform:uppercase;width:20px;", rtl_rtl({
-    borderTopLeftRadius: 0,
-    borderBottomLeftRadius: 0
-  })(), " ", rtl_rtl({
-    right: 0
-  })(), " ", unitSizeStyles(props),  true ? "" : undefined);
-};
-
-const UnitLabel = styled_base_browser_esm("div", {
-  target: "e1agakv02",
-  label: "UnitLabel"
-})("&&&{pointer-events:none;", baseUnitLabelStyles, ";}" + ( true ? "" : undefined));
-const UnitSelect = styled_base_browser_esm("select", {
-  target: "e1agakv03",
-  label: "UnitSelect"
-})("&&&{", baseUnitLabelStyles, ";cursor:pointer;border:1px solid transparent;&:hover{background-color:", COLORS.lightGray[300], ";}&:focus{border-color:", COLORS.ui.borderFocus, ";outline:2px solid transparent;outline-offset:0;}&:disabled{cursor:initial;&:hover{background-color:transparent;}}}" + ( true ? "" : undefined));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/unit-control/utils.js
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-const isWeb = external_wp_element_["Platform"].OS === 'web';
-/**
- * An array of all available CSS length units.
- */
-
-const ALL_CSS_UNITS = [{
-  value: 'px',
-  label: isWeb ? 'px' : Object(external_wp_i18n_["__"])('Pixels (px)'),
-  default: '',
-  a11yLabel: Object(external_wp_i18n_["__"])('Pixels (px)')
-}, {
-  value: '%',
-  label: isWeb ? '%' : Object(external_wp_i18n_["__"])('Percentage (%)'),
-  default: '',
-  a11yLabel: Object(external_wp_i18n_["__"])('Percent (%)')
-}, {
-  value: 'em',
-  label: isWeb ? 'em' : Object(external_wp_i18n_["__"])('Relative to parent font size (em)'),
-  default: '',
-  a11yLabel: Object(external_wp_i18n_["__"])('Relative to parent font size (em)')
-}, {
-  value: 'rem',
-  label: isWeb ? 'rem' : Object(external_wp_i18n_["__"])('Relative to root font size (rem)'),
-  default: '',
-  a11yLabel: Object(external_wp_i18n_["__"])('Relative to root font size (rem)')
-}, {
-  value: 'vw',
-  label: isWeb ? 'vw' : Object(external_wp_i18n_["__"])('Viewport width (vw)'),
-  default: '',
-  a11yLabel: Object(external_wp_i18n_["__"])('Viewport width (vw)')
-}, {
-  value: 'vh',
-  label: isWeb ? 'vh' : Object(external_wp_i18n_["__"])('Viewport height (vh)'),
-  default: '',
-  a11yLabel: Object(external_wp_i18n_["__"])('Viewport height (vh)')
-}, {
-  value: 'vmin',
-  label: isWeb ? 'vmin' : Object(external_wp_i18n_["__"])('Viewport smallest dimension (vmin)'),
-  default: '',
-  a11yLabel: Object(external_wp_i18n_["__"])('Viewport smallest dimension (vmin)')
-}, {
-  value: 'vmax',
-  label: isWeb ? 'vmax' : Object(external_wp_i18n_["__"])('Viewport largest dimension (vmax)'),
-  default: '',
-  a11yLabel: Object(external_wp_i18n_["__"])('Viewport largest dimension (vmax)')
-}, {
-  value: 'ch',
-  label: isWeb ? 'ch' : Object(external_wp_i18n_["__"])('Width of the zero (0) character (ch)'),
-  default: '',
-  a11yLabel: Object(external_wp_i18n_["__"])('Width of the zero (0) character (ch)')
-}, {
-  value: 'ex',
-  label: isWeb ? 'ex' : Object(external_wp_i18n_["__"])('x-height of the font (ex)'),
-  default: '',
-  a11yLabel: Object(external_wp_i18n_["__"])('x-height of the font (ex)')
-}, {
-  value: 'cm',
-  label: isWeb ? 'cm' : Object(external_wp_i18n_["__"])('Centimeters (cm)'),
-  default: '',
-  a11yLabel: Object(external_wp_i18n_["__"])('Centimeters (cm)')
-}, {
-  value: 'mm',
-  label: isWeb ? 'mm' : Object(external_wp_i18n_["__"])('Millimeters (mm)'),
-  default: '',
-  a11yLabel: Object(external_wp_i18n_["__"])('Millimeters (mm)')
-}, {
-  value: 'in',
-  label: isWeb ? 'in' : Object(external_wp_i18n_["__"])('Inches (in)'),
-  default: '',
-  a11yLabel: Object(external_wp_i18n_["__"])('Inches (in)')
-}, {
-  value: 'pc',
-  label: isWeb ? 'pc' : Object(external_wp_i18n_["__"])('Picas (pc)'),
-  default: '',
-  a11yLabel: Object(external_wp_i18n_["__"])('Picas (pc)')
-}, {
-  value: 'pt',
-  label: isWeb ? 'pt' : Object(external_wp_i18n_["__"])('Points (pt)'),
-  default: '',
-  a11yLabel: Object(external_wp_i18n_["__"])('Points (pt)')
-}];
-/**
- * Units of measurements. `a11yLabel` is used by screenreaders.
- */
-
-const CSS_UNITS = [{
-  value: 'px',
-  label: 'px',
-  default: 0,
-  a11yLabel: Object(external_wp_i18n_["__"])('pixels')
-}, {
-  value: '%',
-  label: '%',
-  default: 10,
-  a11yLabel: Object(external_wp_i18n_["__"])('percent')
-}, {
-  value: 'em',
-  label: 'em',
-  default: 0,
-  a11yLabel: Object(external_wp_i18n_["_x"])('ems', 'Relative to parent font size (em)')
-}, {
-  value: 'rem',
-  label: 'rem',
-  default: 0,
-  a11yLabel: Object(external_wp_i18n_["_x"])('rems', 'Relative to root font size (rem)')
-}, {
-  value: 'vw',
-  label: 'vw',
-  default: 10,
-  a11yLabel: Object(external_wp_i18n_["__"])('viewport widths')
-}, {
-  value: 'vh',
-  label: 'vh',
-  default: 10,
-  a11yLabel: Object(external_wp_i18n_["__"])('viewport heights')
-}];
-const DEFAULT_UNIT = CSS_UNITS[0];
-/**
- * Handles legacy value + unit handling.
- * This component use to manage both incoming value and units separately.
- *
- * Moving forward, ideally the value should be a string that contains both
- * the value and unit, example: '10px'
- *
- * @param {number|string} value Value
- * @param {string} unit Unit value
- * @param {Array<Object>} units Units to derive from.
- * @return {Array<number, string>} The extracted number and unit.
- */
-
-function getParsedValue(value, unit, units) {
-  const initialValue = unit ? `${value}${unit}` : value;
-  return parseUnit(initialValue, units);
-}
-/**
- * Checks if units are defined.
- *
- * @param {any} units Units to check.
- * @return {boolean} Whether units are defined.
- */
-
-function utils_hasUnits(units) {
-  return !Object(external_lodash_["isEmpty"])(units) && units.length > 1 && units !== false;
-}
-/**
- * Parses a number and unit from a value.
- *
- * @param {string} initialValue Value to parse
- * @param {Array<Object>} units Units to derive from.
- * @return {Array<number, string>} The extracted number and unit.
- */
-
-function parseUnit(initialValue, units = ALL_CSS_UNITS) {
-  const value = String(initialValue).trim();
-  let num = parseFloat(value, 10);
-  num = isNaN(num) ? '' : num;
-  const unitMatch = value.match(/[\d.\-\+]*\s*(.*)/)[1];
-  let unit = unitMatch !== undefined ? unitMatch : '';
-  unit = unit.toLowerCase();
-
-  if (utils_hasUnits(units)) {
-    const match = units.find(item => item.value === unit);
-    unit = match === null || match === void 0 ? void 0 : match.value;
-  } else {
-    unit = DEFAULT_UNIT.value;
-  }
-
-  return [num, unit];
-}
-/**
- * Parses a number and unit from a value. Validates parsed value, using fallback
- * value if invalid.
- *
- * @param {number|string} next The next value.
- * @param {Array<Object>} units Units to derive from.
- * @param {number|string} fallbackValue The fallback value.
- * @param {string} fallbackUnit The fallback value.
- * @return {Array<number, string>} The extracted number and unit.
- */
-
-function getValidParsedUnit(next, units, fallbackValue, fallbackUnit) {
-  const [parsedValue, parsedUnit] = parseUnit(next, units);
-  let baseValue = parsedValue;
-  let baseUnit;
-
-  if (isNaN(parsedValue) || parsedValue === '') {
-    baseValue = fallbackValue;
-  }
-
-  baseUnit = parsedUnit || fallbackUnit;
-  /**
-   * If no unit is found, attempt to use the first value from the collection
-   * of units as a default fallback.
-   */
-
-  if (utils_hasUnits(units) && !baseUnit) {
-    var _units$;
-
-    baseUnit = (_units$ = units[0]) === null || _units$ === void 0 ? void 0 : _units$.value;
-  }
-
-  return [baseValue, baseUnit];
-}
-/**
- * Takes a unit value and finds the matching accessibility label for the
- * unit abbreviation.
- *
- * @param {string} unit Unit value (example: px)
- * @return {string} a11y label for the unit abbreviation
- */
-
-function parseA11yLabelForUnit(unit) {
-  const match = ALL_CSS_UNITS.find(item => item.value === unit);
-  return match !== null && match !== void 0 && match.a11yLabel ? match === null || match === void 0 ? void 0 : match.a11yLabel : match === null || match === void 0 ? void 0 : match.value;
-}
-/**
- * Filters available units based on values defined by settings.
- *
- * @param {Array} settings Collection of preferred units.
- * @param {Array} units Collection of available units.
- *
- * @return {Array} Filtered units based on settings.
- */
-
-function filterUnitsWithSettings(settings = [], units = []) {
-  return units.filter(unit => {
-    return settings.includes(unit.value);
-  });
-}
-/**
- * Custom hook to retrieve and consolidate units setting from add_theme_support().
- * TODO: ideally this hook shouldn't be needed
- * https://github.com/WordPress/gutenberg/pull/31822#discussion_r633280823
- *
- * @param {Object} args                An object containing units, settingPath & defaultUnits.
- * @param {Object} args.units          Collection of available units.
- * @param {string} args.availableUnits The setting path. Defaults to 'spacing.units'.
- * @param {Object} args.defaultValues  Collection of default values for defined units. Example: { px: '350', em: '15' }.
- *
- * @return {Array} Filtered units based on settings.
- */
-
-
-const useCustomUnits = ({
-  units,
-  availableUnits,
-  defaultValues
-}) => {
-  units = units || ALL_CSS_UNITS;
-  const usedUnits = filterUnitsWithSettings(!availableUnits ? [] : availableUnits, units);
-
-  if (defaultValues) {
-    usedUnits.forEach((unit, i) => {
-      if (defaultValues[unit.value]) {
-        usedUnits[i].default = defaultValues[unit.value];
-      }
-    });
-  }
-
-  return usedUnits.length === 0 ? false : usedUnits;
-};
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/unit-control/unit-select-control.js
-
-
-
-/**
- * External dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-/**
- * Renders a `select` if there are multiple units.
- * Otherwise, renders a non-selectable label.
- *
- * @param {Object}   props                     Component props.
- * @param {string}   [props.className]         Class to set on the `select` element.
- * @param {boolean}  [props.isTabbable=true]   Whether the control can be focused via keyboard navigation.
- * @param {Array}    [props.options=CSS_UNITS] Available units to select from.
- * @param {Function} [props.onChange=noop]     A callback function invoked when the value is changed.
- * @param {string}   [props.size="default"]    Size of the control option. Supports "default" and "small".
- * @param {string}   [props.value="px"]        Current unit.
- */
-
-function UnitSelectControl({
-  className,
-  isTabbable = true,
-  options = CSS_UNITS,
-  onChange = external_lodash_["noop"],
-  size = 'default',
-  value = 'px',
-  ...props
-}) {
-  if (!utils_hasUnits(options)) {
-    return Object(external_wp_element_["createElement"])(UnitLabel, {
-      className: "components-unit-control__unit-label",
-      size: size
-    }, value);
-  }
-
-  const handleOnChange = event => {
-    const {
-      value: unitValue
-    } = event.target;
-    const data = options.find(option => option.value === unitValue);
-    onChange(unitValue, {
-      event,
-      data
-    });
-  };
-
-  const classes = classnames_default()('components-unit-control__select', className);
-  return Object(external_wp_element_["createElement"])(UnitSelect, Object(esm_extends["a" /* default */])({
-    className: classes,
-    onChange: handleOnChange,
-    size: size,
-    tabIndex: isTabbable ? null : '-1',
-    value: value
-  }, props), options.map(option => Object(external_wp_element_["createElement"])("option", {
-    value: option.value,
-    key: option.value
-  }, option.label)));
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/hooks/use-controlled-state.js
-/**
- * WordPress dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-/**
- * @template T
- * @typedef Options
- * @property {T | undefined} initial  Initial value
- * @property {T | ""}        fallback Fallback value
- */
-
-/** @type {Readonly<{ initial: undefined, fallback: '' }>} */
-
-const defaultOptions = {
-  initial: undefined,
-
-  /**
-   * Defaults to empty string, as that is preferred for usage with
-   * <input />, <textarea />, and <select /> form elements.
-   */
-  fallback: ''
-};
-/**
- * Custom hooks for "controlled" components to track and consolidate internal
- * state and incoming values. This is useful for components that render
- * `input`, `textarea`, or `select` HTML elements.
- *
- * https://reactjs.org/docs/forms.html#controlled-components
- *
- * At first, a component using useControlledState receives an initial prop
- * value, which is used as initial internal state.
- *
- * This internal state can be maintained and updated without
- * relying on new incoming prop values.
- *
- * Unlike the basic useState hook, useControlledState's state can
- * be updated if a new incoming prop value is changed.
- *
- * @template T
- *
- * @param {T | undefined} currentState The current value.
- * @param {Options<T>} [options=defaultOptions] Additional options for the hook.
- *
- * @return {[T | "", (nextState: T) => void]} The controlled value and the value setter.
- */
-
-function useControlledState(currentState, options = defaultOptions) {
-  const {
-    initial,
-    fallback
-  } = { ...defaultOptions,
-    ...options
-  };
-  const [internalState, setInternalState] = Object(external_wp_element_["useState"])(currentState);
-  const hasCurrentState = isValueDefined(currentState);
-  /*
-   * Resets internal state if value every changes from uncontrolled <-> controlled.
-   */
-
-  Object(external_wp_element_["useEffect"])(() => {
-    if (hasCurrentState && internalState) {
-      setInternalState(undefined);
-    }
-  }, [hasCurrentState, internalState]);
-  const state = getDefinedValue([currentState, internalState, initial], fallback);
-  /* eslint-disable jsdoc/no-undefined-types */
-
-  /** @type {(nextState: T) => void} */
-
-  const setState = nextState => {
-    if (!hasCurrentState) {
-      setInternalState(nextState);
-    }
-  };
-  /* eslint-enable jsdoc/no-undefined-types */
-
-
-  return [state, setState];
-}
-
-/* harmony default export */ var use_controlled_state = (useControlledState);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/unit-control/index.js
-
-
-
-/**
- * External dependencies
- */
-
-
-/**
- * WordPress dependencies
- */
-
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-
-
-function UnitControl({
-  __unstableStateReducer: stateReducer = state => state,
-  autoComplete = 'off',
-  className,
-  disabled = false,
-  disableUnits = false,
-  isPressEnterToChange = false,
-  isResetValueOnUnitChange = false,
-  isUnitSelectTabbable = true,
-  label,
-  onChange = external_lodash_["noop"],
-  onUnitChange = external_lodash_["noop"],
-  size = 'default',
-  style,
-  unit: unitProp,
-  units = CSS_UNITS,
-  value: valueProp,
-  ...props
-}, ref) {
-  const [value, initialUnit] = getParsedValue(valueProp, unitProp, units);
-  const [unit, setUnit] = use_controlled_state(unitProp, {
-    initial: initialUnit
-  }); // Stores parsed value for hand-off in state reducer
-
-  const refParsedValue = Object(external_wp_element_["useRef"])(null);
-  const classes = classnames_default()('components-unit-control', className);
-
-  const handleOnChange = (next, changeProps) => {
-    if (next === '') {
-      onChange('', changeProps);
-      return;
-    }
-    /*
-     * Customizing the onChange callback.
-     * This allows as to broadcast a combined value+unit to onChange.
-     */
-
-
-    next = getValidParsedUnit(next, units, value, unit).join('');
-    onChange(next, changeProps);
-  };
-
-  const handleOnUnitChange = (next, changeProps) => {
-    const {
-      data
-    } = changeProps;
-    let nextValue = `${value}${next}`;
-
-    if (isResetValueOnUnitChange && (data === null || data === void 0 ? void 0 : data.default) !== undefined) {
-      nextValue = `${data.default}${next}`;
-    }
-
-    onChange(nextValue, changeProps);
-    onUnitChange(next, changeProps);
-    setUnit(next);
-  };
-
-  const mayUpdateUnit = event => {
-    if (!isNaN(event.target.value)) {
-      refParsedValue.current = null;
-      return;
-    }
-
-    const [parsedValue, parsedUnit] = getValidParsedUnit(event.target.value, units, value, unit);
-    refParsedValue.current = parsedValue;
-
-    if (isPressEnterToChange && parsedUnit !== unit) {
-      const data = units.find(option => option.value === parsedUnit);
-      const changeProps = {
-        event,
-        data
-      };
-      onChange(`${parsedValue}${parsedUnit}`, changeProps);
-      onUnitChange(parsedUnit, changeProps);
-      setUnit(parsedUnit);
-    }
-  };
-
-  const handleOnBlur = mayUpdateUnit;
-
-  const handleOnKeyDown = event => {
-    const {
-      keyCode
-    } = event;
-
-    if (keyCode === external_wp_keycodes_["ENTER"]) {
-      mayUpdateUnit(event);
-    }
-  };
-  /**
-   * "Middleware" function that intercepts updates from InputControl.
-   * This allows us to tap into actions to transform the (next) state for
-   * InputControl.
-   *
-   * @param {Object} state State from InputControl
-   * @param {Object} action Action triggering state change
-   * @return {Object} The updated state to apply to InputControl
-   */
-
-
-  const unitControlStateReducer = (state, action) => {
-    /*
-     * On commits (when pressing ENTER and on blur if
-     * isPressEnterToChange is true), if a parse has been performed
-     * then use that result to update the state.
-     */
-    if (action.type === inputControlActionTypes.COMMIT) {
-      if (refParsedValue.current !== null) {
-        state.value = refParsedValue.current;
-        refParsedValue.current = null;
-      }
-    }
-
-    return state;
-  };
-
-  const inputSuffix = !disableUnits ? Object(external_wp_element_["createElement"])(UnitSelectControl, {
-    "aria-label": Object(external_wp_i18n_["__"])('Select unit'),
-    disabled: disabled,
-    isTabbable: isUnitSelectTabbable,
-    options: units,
-    onChange: handleOnUnitChange,
-    size: size,
-    value: unit
-  }) : null;
-  let step = props.step;
-  /*
-   * If no step prop has been passed, lookup the active unit and
-   * try to get step from `units`, or default to a value of `1`
-   */
-
-  if (!step && units) {
-    var _activeUnit$step;
-
-    const activeUnit = units.find(option => option.value === unit);
-    step = (_activeUnit$step = activeUnit === null || activeUnit === void 0 ? void 0 : activeUnit.step) !== null && _activeUnit$step !== void 0 ? _activeUnit$step : 1;
-  }
-
-  return Object(external_wp_element_["createElement"])(unit_control_styles_Root, {
-    className: "components-unit-control-wrapper",
-    style: style
-  }, Object(external_wp_element_["createElement"])(ValueInput, Object(esm_extends["a" /* default */])({
-    "aria-label": label,
-    type: isPressEnterToChange ? 'text' : 'number'
-  }, Object(external_lodash_["omit"])(props, ['children']), {
-    autoComplete: autoComplete,
-    className: classes,
-    disabled: disabled,
-    disableUnits: disableUnits,
-    isPressEnterToChange: isPressEnterToChange,
-    label: label,
-    onBlur: handleOnBlur,
-    onKeyDown: handleOnKeyDown,
-    onChange: handleOnChange,
-    ref: ref,
-    size: size,
-    suffix: inputSuffix,
-    value: value,
-    step: step,
-    __unstableStateReducer: composeStateReducers(unitControlStateReducer, stateReducer)
-  })));
-}
-
-const ForwardedUnitControl = Object(external_wp_element_["forwardRef"])(UnitControl);
-
-/* harmony default export */ var unit_control = (ForwardedUnitControl);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/box-control/styles/box-control-styles.js
-
-
-function box_control_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
-
-/**
- * External dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-const box_control_styles_Root = styled_base_browser_esm("div", {
-  target: "e7pk0lh0",
-  label: "Root"
-})( true ? {
-  name: "vho1ao",
-  styles: "box-sizing:border-box;max-width:235px;padding-bottom:12px;width:100%;"
-} : undefined);
-const Header = /*#__PURE__*/styled_base_browser_esm(flex_component, {
-  target: "e7pk0lh1",
-  label: "Header"
-})("color:", COLORS.ui.label, ";padding-bottom:8px;" + ( true ? "" : undefined));
-const HeaderControlWrapper = /*#__PURE__*/styled_base_browser_esm(flex_component, {
-  target: "e7pk0lh2",
-  label: "HeaderControlWrapper"
-})( true ? {
-  name: "19de7qh",
-  styles: "min-height:30px;"
-} : undefined);
-const UnitControlWrapper = styled_base_browser_esm("div", {
-  target: "e7pk0lh3",
-  label: "UnitControlWrapper"
-})( true ? {
-  name: "zypm0w",
-  styles: "box-sizing:border-box;max-width:80px;"
-} : undefined);
-const LayoutContainer = /*#__PURE__*/styled_base_browser_esm(flex_component, {
-  target: "e7pk0lh4",
-  label: "LayoutContainer"
-})( true ? {
-  name: "39f89t",
-  styles: "justify-content:center;padding-top:8px;"
-} : undefined);
-const Layout = /*#__PURE__*/styled_base_browser_esm(flex_component, {
-  target: "e7pk0lh5",
-  label: "Layout"
-})( true ? {
-  name: "qpveuy",
-  styles: "position:relative;height:100%;width:100%;justify-content:flex-start;"
-} : undefined);
-
-var box_control_styles_ref =  true ? {
-  name: "icip60",
-  styles: "border-radius:2px;"
-} : undefined;
-
-var box_control_styles_ref2 =  true ? {
-  name: "1k07npk",
-  styles: "border-radius:0;"
-} : undefined;
-
-const unitControlBorderRadiusStyles = ({
-  isFirst,
-  isLast,
-  isOnly
-}) => {
-  if (isFirst) {
-    return rtl_rtl({
-      borderTopRightRadius: 0,
-      borderBottomRightRadius: 0
-    })();
-  }
-
-  if (isLast) {
-    return rtl_rtl({
-      borderTopLeftRadius: 0,
-      borderBottomLeftRadius: 0
-    })();
-  }
-
-  if (isOnly) {
-    return box_control_styles_ref;
-  }
-
-  return box_control_styles_ref2;
-};
-
-const unitControlMarginStyles = ({
-  isFirst
-}) => {
-  const marginLeft = isFirst ? 0 : -1;
-  return rtl_rtl({
-    marginLeft
-  })();
-};
-
-const box_control_styles_UnitControl = /*#__PURE__*/styled_base_browser_esm(unit_control, {
-  target: "e7pk0lh6",
-  label: "UnitControl"
-})("max-width:60px;", unitControlBorderRadiusStyles, ";", unitControlMarginStyles, ";" + ( true ? "" : undefined));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/box-control/unit-control.js
-
-
-
-/**
- * External dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-function BoxUnitControl({
-  isFirst,
-  isLast,
-  isOnly,
-  onHoverOn = external_lodash_["noop"],
-  onHoverOff = external_lodash_["noop"],
-  label,
-  value,
-  ...props
-}) {
-  const bindHoverGesture = useHover(({
-    event,
-    ...state
-  }) => {
-    if (state.hovering) {
-      onHoverOn(event, state);
-    } else {
-      onHoverOff(event, state);
-    }
-  });
-  return Object(external_wp_element_["createElement"])(UnitControlWrapper, bindHoverGesture(), Object(external_wp_element_["createElement"])(Tooltip, {
-    text: label
-  }, Object(external_wp_element_["createElement"])(box_control_styles_UnitControl, Object(esm_extends["a" /* default */])({
-    "aria-label": label,
-    className: "component-box-control__unit-control",
-    hideHTMLArrows: true,
-    isFirst: isFirst,
-    isLast: isLast,
-    isOnly: isOnly,
-    isPressEnterToChange: true,
-    isResetValueOnUnitChange: false,
-    value: value
-  }, props))));
-}
-
-function Tooltip({
-  children,
-  text
-}) {
-  if (!text) return children;
-  /**
-   * Wrapping the children in a `<div />` as Tooltip as it attempts
-   * to render the <UnitControl />. Using a plain `<div />` appears to
-   * resolve this issue.
-   *
-   * Originally discovered and referenced here:
-   * https://github.com/WordPress/gutenberg/pull/24966#issuecomment-685875026
-   */
-
-  return Object(external_wp_element_["createElement"])(build_module_tooltip["a" /* default */], {
-    text: text,
-    position: "top"
-  }, Object(external_wp_element_["createElement"])("div", null, children));
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/box-control/utils.js
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-const LABELS = {
-  all: Object(external_wp_i18n_["__"])('All'),
-  top: Object(external_wp_i18n_["__"])('Top'),
-  bottom: Object(external_wp_i18n_["__"])('Bottom'),
-  left: Object(external_wp_i18n_["__"])('Left'),
-  right: Object(external_wp_i18n_["__"])('Right'),
-  mixed: Object(external_wp_i18n_["__"])('Mixed')
-};
-const DEFAULT_VALUES = {
-  top: null,
-  right: null,
-  bottom: null,
-  left: null
-};
-const DEFAULT_VISUALIZER_VALUES = {
-  top: false,
-  right: false,
-  bottom: false,
-  left: false
-};
-/**
- * Gets an items with the most occurance within an array
- * https://stackoverflow.com/a/20762713
- *
- * @param {Array<any>} arr Array of items to check.
- * @return {any} The item with the most occurances.
- */
-
-function mode(arr) {
-  return arr.sort((a, b) => arr.filter(v => v === a).length - arr.filter(v => v === b).length).pop();
-}
-/**
- * Gets the 'all' input value and unit from values data.
- *
- * @param {Object} values Box values.
- * @return {string} A value + unit for the 'all' input.
- */
-
-
-function getAllValue(values = {}) {
-  const parsedValues = Object.values(values).map(value => parseUnit(value));
-  const allValues = parsedValues.map(value => value[0]);
-  const allUnits = parsedValues.map(value => value[1]);
-  const value = allValues.every(v => v === allValues[0]) ? allValues[0] : '';
-  const unit = mode(allUnits);
-  /**
-   * The isNumber check is important. On reset actions, the incoming value
-   * may be null or an empty string.
-   *
-   * Also, the value may also be zero (0), which is considered a valid unit value.
-   *
-   * isNumber() is more specific for these cases, rather than relying on a
-   * simple truthy check.
-   */
-
-  const allValue = Object(external_lodash_["isNumber"])(value) ? `${value}${unit}` : null;
-  return allValue;
-}
-/**
- * Checks to determine if values are mixed.
- *
- * @param {Object} values Box values.
- * @return {boolean} Whether values are mixed.
- */
-
-function isValuesMixed(values = {}) {
-  const allValue = getAllValue(values);
-  const isMixed = isNaN(parseFloat(allValue));
-  return isMixed;
-}
-/**
- * Checks to determine if values are defined.
- *
- * @param {Object} values Box values.
- *
- * @return {boolean} Whether values are mixed.
- */
-
-function isValuesDefined(values) {
-  return values !== undefined && !Object(external_lodash_["isEmpty"])(Object.values(values).filter( // Switching units when input is empty causes values only
-  // containing units. This gives false positive on mixed values
-  // unless filtered.
-  value => !!value && /\d/.test(value)));
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/box-control/all-input-control.js
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-
-function AllInputControl({
-  onChange = external_lodash_["noop"],
-  onFocus = external_lodash_["noop"],
-  onHoverOn = external_lodash_["noop"],
-  onHoverOff = external_lodash_["noop"],
-  values,
-  sides,
-  ...props
-}) {
-  const allValue = getAllValue(values);
-  const hasValues = isValuesDefined(values);
-  const isMixed = hasValues && isValuesMixed(values);
-  const allPlaceholder = isMixed ? LABELS.mixed : null;
-
-  const handleOnFocus = event => {
-    onFocus(event, {
-      side: 'all'
-    });
-  };
-
-  const handleOnChange = next => {
-    const nextValues = { ...values
-    };
-    const selectedSides = sides !== null && sides !== void 0 && sides.length ? sides : ['top', 'right', 'bottom', 'left'];
-    selectedSides.forEach(side => nextValues[side] = next);
-    onChange(nextValues);
-  };
-
-  const handleOnHoverOn = () => {
-    onHoverOn({
-      top: true,
-      bottom: true,
-      left: true,
-      right: true
-    });
-  };
-
-  const handleOnHoverOff = () => {
-    onHoverOff({
-      top: false,
-      bottom: false,
-      left: false,
-      right: false
-    });
-  };
-
-  return Object(external_wp_element_["createElement"])(BoxUnitControl, Object(esm_extends["a" /* default */])({}, props, {
-    disableUnits: isMixed,
-    isOnly: true,
-    value: allValue,
-    onChange: handleOnChange,
-    onFocus: handleOnFocus,
-    onHoverOn: handleOnHoverOn,
-    onHoverOff: handleOnHoverOff,
-    placeholder: allPlaceholder
-  }));
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/box-control/input-controls.js
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-
-
-const allSides = ['top', 'right', 'bottom', 'left'];
-function BoxInputControls({
-  onChange = external_lodash_["noop"],
-  onFocus = external_lodash_["noop"],
-  onHoverOn = external_lodash_["noop"],
-  onHoverOff = external_lodash_["noop"],
-  values,
-  sides,
-  ...props
-}) {
-  const createHandleOnFocus = side => event => {
-    onFocus(event, {
-      side
-    });
-  };
-
-  const createHandleOnHoverOn = side => () => {
-    onHoverOn({
-      [side]: true
-    });
-  };
-
-  const createHandleOnHoverOff = side => () => {
-    onHoverOff({
-      [side]: false
-    });
-  };
-
-  const handleOnChange = nextValues => {
-    onChange(nextValues);
-  };
-
-  const createHandleOnChange = side => (next, {
-    event
-  }) => {
-    const {
-      altKey
-    } = event;
-    const nextValues = { ...values
-    };
-    nextValues[side] = next;
-    /**
-     * Supports changing pair sides. For example, holding the ALT key
-     * when changing the TOP will also update BOTTOM.
-     */
-
-    if (altKey) {
-      switch (side) {
-        case 'top':
-          nextValues.bottom = next;
-          break;
-
-        case 'bottom':
-          nextValues.top = next;
-          break;
-
-        case 'left':
-          nextValues.right = next;
-          break;
-
-        case 'right':
-          nextValues.left = next;
-          break;
-      }
-    }
-
-    handleOnChange(nextValues);
-  }; // Filter sides if custom configuration provided, maintaining default order.
-
-
-  const filteredSides = sides !== null && sides !== void 0 && sides.length ? allSides.filter(side => sides.includes(side)) : allSides;
-  const first = filteredSides[0];
-  const last = filteredSides[filteredSides.length - 1];
-  const only = first === last && first;
-  return Object(external_wp_element_["createElement"])(LayoutContainer, {
-    className: "component-box-control__input-controls-wrapper"
-  }, Object(external_wp_element_["createElement"])(Layout, {
-    gap: 0,
-    align: "top",
-    className: "component-box-control__input-controls"
-  }, filteredSides.map(side => Object(external_wp_element_["createElement"])(BoxUnitControl, Object(esm_extends["a" /* default */])({}, props, {
-    isFirst: first === side,
-    isLast: last === side,
-    isOnly: only === side,
-    value: values[side],
-    onChange: createHandleOnChange(side),
-    onFocus: createHandleOnFocus(side),
-    onHoverOn: createHandleOnHoverOn(side),
-    onHoverOff: createHandleOnHoverOff(side),
-    label: LABELS[side],
-    key: `box-control-${side}`
-  })))));
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/box-control/styles/box-control-icon-styles.js
-
-
-function box_control_icon_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
-
-/**
- * External dependencies
- */
-
-const box_control_icon_styles_Root = styled_base_browser_esm("span", {
-  target: "eaw9yqk0",
-  label: "Root"
-})( true ? {
-  name: "1qtciqq",
-  styles: "box-sizing:border-box;display:block;width:24px;height:24px;position:relative;padding:4px;"
-} : undefined);
-const Viewbox = styled_base_browser_esm("span", {
-  target: "eaw9yqk1",
-  label: "Viewbox"
-})( true ? {
-  name: "be7uli",
-  styles: "box-sizing:border-box;display:block;position:relative;width:100%;height:100%;"
-} : undefined);
-
-const strokeFocus = ({
-  isFocused
-}) => {
-  return /*#__PURE__*/css_browser_esm({
-    backgroundColor: 'currentColor',
-    opacity: isFocused ? 1 : 0.3
-  },  true ? "" : undefined);
-};
-
-const Stroke = styled_base_browser_esm("span", {
-  target: "eaw9yqk2",
-  label: "Stroke"
-})("box-sizing:border-box;display:block;pointer-events:none;position:absolute;", strokeFocus, ";" + ( true ? "" : undefined));
-
-const VerticalStroke = /*#__PURE__*/styled_base_browser_esm(Stroke, {
-  target: "eaw9yqk3",
-  label: "VerticalStroke"
-})( true ? {
-  name: "r820ty",
-  styles: "bottom:3px;top:3px;width:2px;"
-} : undefined);
-
-const HorizontalStroke = /*#__PURE__*/styled_base_browser_esm(Stroke, {
-  target: "eaw9yqk4",
-  label: "HorizontalStroke"
-})( true ? {
-  name: "1gteeqa",
-  styles: "height:2px;left:3px;right:3px;"
-} : undefined);
-
-const TopStroke = /*#__PURE__*/styled_base_browser_esm(HorizontalStroke, {
-  target: "eaw9yqk5",
-  label: "TopStroke"
-})( true ? {
-  name: "1etxbbi",
-  styles: "top:0;"
-} : undefined);
-const RightStroke = /*#__PURE__*/styled_base_browser_esm(VerticalStroke, {
-  target: "eaw9yqk6",
-  label: "RightStroke"
-})( true ? {
-  name: "19zs6va",
-  styles: "right:0;"
-} : undefined);
-const BottomStroke = /*#__PURE__*/styled_base_browser_esm(HorizontalStroke, {
-  target: "eaw9yqk7",
-  label: "BottomStroke"
-})( true ? {
-  name: "lh0t43",
-  styles: "bottom:0;"
-} : undefined);
-const LeftStroke = /*#__PURE__*/styled_base_browser_esm(VerticalStroke, {
-  target: "eaw9yqk8",
-  label: "LeftStroke"
-})( true ? {
-  name: "260zpl",
-  styles: "left:0;"
-} : undefined);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/box-control/icon.js
-
-
-
-/**
- * Internal dependencies
- */
-
-const BASE_ICON_SIZE = 24;
-function BoxControlIcon({
-  size = 24,
-  side = 'all',
-  sides,
-  ...props
-}) {
-  const isSideDisabled = value => (sides === null || sides === void 0 ? void 0 : sides.length) && !sides.includes(value);
-
-  const getSide = value => {
-    if (isSideDisabled(value)) {
-      return false;
-    }
-
-    return side === 'all' || side === value;
-  };
-
-  const top = getSide('top');
-  const right = getSide('right');
-  const bottom = getSide('bottom');
-  const left = getSide('left'); // Simulates SVG Icon scaling
-
-  const scale = size / BASE_ICON_SIZE;
-  return Object(external_wp_element_["createElement"])(box_control_icon_styles_Root, Object(esm_extends["a" /* default */])({
-    style: {
-      transform: `scale(${scale})`
-    }
-  }, props), Object(external_wp_element_["createElement"])(Viewbox, null, Object(external_wp_element_["createElement"])(TopStroke, {
-    isFocused: top
-  }), Object(external_wp_element_["createElement"])(RightStroke, {
-    isFocused: right
-  }), Object(external_wp_element_["createElement"])(BottomStroke, {
-    isFocused: bottom
-  }), Object(external_wp_element_["createElement"])(LeftStroke, {
-    isFocused: left
-  })));
-}
-
-// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/link.js
-var library_link = __webpack_require__("Bpkj");
-
-// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/link-off.js
-var link_off = __webpack_require__("Mp0b");
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/box-control/linked-button.js
-
-
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-function LinkedButton({
-  isLinked,
-  ...props
-}) {
-  const label = isLinked ? Object(external_wp_i18n_["__"])('Unlink Sides') : Object(external_wp_i18n_["__"])('Link Sides');
-  return Object(external_wp_element_["createElement"])(build_module_tooltip["a" /* default */], {
-    text: label
-  }, Object(external_wp_element_["createElement"])("span", null, Object(external_wp_element_["createElement"])(build_module_button["a" /* default */], Object(esm_extends["a" /* default */])({}, props, {
-    className: "component-box-control__linked-button",
-    isPrimary: isLinked,
-    isSecondary: !isLinked,
-    isSmall: true,
-    icon: isLinked ? library_link["a" /* default */] : link_off["a" /* default */],
-    iconSize: 16,
-    "aria-label": label
-  }))));
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/box-control/styles/box-control-visualizer-styles.js
-
-
-function box_control_visualizer_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
-
-/**
- * External dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-var box_control_visualizer_styles_ref =  true ? {
-  name: "tbck19",
-  styles: "bottom:0;left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:1;"
-} : undefined;
-
-const containerPositionStyles = ({
-  isPositionAbsolute
-}) => {
-  if (!isPositionAbsolute) return '';
-  return box_control_visualizer_styles_ref;
-};
-
-const box_control_visualizer_styles_Container = styled_base_browser_esm("div", {
-  target: "e1df9b4q0",
-  label: "Container"
-})("box-sizing:border-box;position:relative;", containerPositionStyles, ";" + ( true ? "" : undefined));
-const Side = styled_base_browser_esm("div", {
-  target: "e1df9b4q1",
-  label: "Side"
-})("box-sizing:border-box;background:", COLORS.blue.wordpress[700], ";background:", COLORS.ui.theme, ";filter:brightness( 1 );opacity:0;position:absolute;pointer-events:none;transition:opacity 120ms linear;z-index:1;", ({
-  isActive
-}) => isActive && `
-		opacity: 0.3;
-	`,  true ? "" : undefined);
-const TopView = /*#__PURE__*/styled_base_browser_esm(Side, {
-  target: "e1df9b4q2",
-  label: "TopView"
-})( true ? {
-  name: "1pb21am",
-  styles: "top:0;left:0;right:0;"
-} : undefined);
-const RightView = /*#__PURE__*/styled_base_browser_esm(Side, {
-  target: "e1df9b4q3",
-  label: "RightView"
-})("top:0;bottom:0;", rtl_rtl({
-  right: 0
-}), ";" + ( true ? "" : undefined));
-const BottomView = /*#__PURE__*/styled_base_browser_esm(Side, {
-  target: "e1df9b4q4",
-  label: "BottomView"
-})( true ? {
-  name: "w87m56",
-  styles: "bottom:0;left:0;right:0;"
-} : undefined);
-const LeftView = /*#__PURE__*/styled_base_browser_esm(Side, {
-  target: "e1df9b4q5",
-  label: "LeftView"
-})("top:0;bottom:0;", rtl_rtl({
-  left: 0
-}), ";" + ( true ? "" : undefined));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/box-control/visualizer.js
-
-
-
-/**
- * WordPress dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-
-function BoxControlVisualizer({
-  children,
-  showValues = DEFAULT_VISUALIZER_VALUES,
-  values: valuesProp = DEFAULT_VALUES,
-  ...props
-}) {
-  const isPositionAbsolute = !children;
-  return Object(external_wp_element_["createElement"])(box_control_visualizer_styles_Container, Object(esm_extends["a" /* default */])({}, props, {
-    isPositionAbsolute: isPositionAbsolute,
-    "aria-hidden": "true"
-  }), Object(external_wp_element_["createElement"])(Sides, {
-    showValues: showValues,
-    values: valuesProp
-  }), children);
-}
-
-function Sides({
-  showValues = DEFAULT_VISUALIZER_VALUES,
-  values
-}) {
-  const {
-    top,
-    right,
-    bottom,
-    left
-  } = values;
-  return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(Top, {
-    isVisible: showValues.top,
-    value: top
-  }), Object(external_wp_element_["createElement"])(Right, {
-    isVisible: showValues.right,
-    value: right
-  }), Object(external_wp_element_["createElement"])(Bottom, {
-    isVisible: showValues.bottom,
-    value: bottom
-  }), Object(external_wp_element_["createElement"])(Left, {
-    isVisible: showValues.left,
-    value: left
-  }));
-}
-
-function Top({
-  isVisible = false,
-  value
-}) {
-  const height = value;
-  const animationProps = useSideAnimation(height);
-  const isActive = animationProps.isActive || isVisible;
-  return Object(external_wp_element_["createElement"])(TopView, {
-    isActive: isActive,
-    style: {
-      height
-    }
-  });
-}
-
-function Right({
-  isVisible = false,
-  value
-}) {
-  const width = value;
-  const animationProps = useSideAnimation(width);
-  const isActive = animationProps.isActive || isVisible;
-  return Object(external_wp_element_["createElement"])(RightView, {
-    isActive: isActive,
-    style: {
-      width
-    }
-  });
-}
-
-function Bottom({
-  isVisible = false,
-  value
-}) {
-  const height = value;
-  const animationProps = useSideAnimation(height);
-  const isActive = animationProps.isActive || isVisible;
-  return Object(external_wp_element_["createElement"])(BottomView, {
-    isActive: isActive,
-    style: {
-      height
-    }
-  });
-}
-
-function Left({
-  isVisible = false,
-  value
-}) {
-  const width = value;
-  const animationProps = useSideAnimation(width);
-  const isActive = animationProps.isActive || isVisible;
-  return Object(external_wp_element_["createElement"])(LeftView, {
-    isActive: isActive,
-    style: {
-      width
-    }
-  });
-}
-/**
- * Custom hook that renders the "flash" animation whenever the value changes.
- *
- * @param {string} value Value of (box) side.
- */
-
-
-function useSideAnimation(value) {
-  const [isActive, setIsActive] = Object(external_wp_element_["useState"])(false);
-  const valueRef = Object(external_wp_element_["useRef"])(value);
-  const timeoutRef = Object(external_wp_element_["useRef"])();
-
-  const clearTimer = () => {
-    if (timeoutRef.current) {
-      window.clearTimeout(timeoutRef.current);
-    }
-  };
-
-  Object(external_wp_element_["useEffect"])(() => {
-    if (value !== valueRef.current) {
-      setIsActive(true);
-      valueRef.current = value;
-      clearTimer();
-      timeoutRef.current = setTimeout(() => {
-        setIsActive(false);
-      }, 400);
-    }
-
-    return () => clearTimer();
-  }, [value]);
-  return {
-    isActive
-  };
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/box-control/index.js
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-
-
-
-
-
-
-
-const defaultInputProps = {
-  min: 0
-};
-
-function box_control_useUniqueId(idProp) {
-  const instanceId = Object(external_wp_compose_["useInstanceId"])(BoxControl, 'inspector-box-control');
-  return idProp || instanceId;
-}
-
-function BoxControl({
-  id: idProp,
-  inputProps = defaultInputProps,
-  onChange = external_lodash_["noop"],
-  onChangeShowVisualizer = external_lodash_["noop"],
-  label = Object(external_wp_i18n_["__"])('Box Control'),
-  values: valuesProp,
-  units,
-  sides,
-  resetValues = DEFAULT_VALUES
-}) {
-  const [values, setValues] = use_controlled_state(valuesProp, {
-    fallback: DEFAULT_VALUES
-  });
-  const inputValues = values || DEFAULT_VALUES;
-  const hasInitialValue = isValuesDefined(valuesProp);
-  const hasOneSide = (sides === null || sides === void 0 ? void 0 : sides.length) === 1;
-  const [isDirty, setIsDirty] = Object(external_wp_element_["useState"])(hasInitialValue);
-  const [isLinked, setIsLinked] = Object(external_wp_element_["useState"])(!hasInitialValue || !isValuesMixed(inputValues) || hasOneSide);
-  const [side, setSide] = Object(external_wp_element_["useState"])(isLinked ? 'all' : 'top');
-  const id = box_control_useUniqueId(idProp);
-  const headingId = `${id}-heading`;
-
-  const toggleLinked = () => {
-    setIsLinked(!isLinked);
-    setSide(!isLinked ? 'all' : 'top');
-  };
-
-  const handleOnFocus = (event, {
-    side: nextSide
-  }) => {
-    setSide(nextSide);
-  };
-
-  const handleOnChange = nextValues => {
-    onChange(nextValues);
-    setValues(nextValues);
-    setIsDirty(true);
-  };
-
-  const handleOnHoverOn = (next = {}) => {
-    onChangeShowVisualizer({ ...DEFAULT_VISUALIZER_VALUES,
-      ...next
-    });
-  };
-
-  const handleOnHoverOff = (next = {}) => {
-    onChangeShowVisualizer({ ...DEFAULT_VISUALIZER_VALUES,
-      ...next
-    });
-  };
-
-  const handleOnReset = () => {
-    onChange(resetValues);
-    setValues(resetValues);
-    setIsDirty(false);
-  };
-
-  const inputControlProps = { ...inputProps,
-    onChange: handleOnChange,
-    onFocus: handleOnFocus,
-    onHoverOn: handleOnHoverOn,
-    onHoverOff: handleOnHoverOff,
-    isLinked,
-    units,
-    sides,
-    values: inputValues
-  };
-  return Object(external_wp_element_["createElement"])(box_control_styles_Root, {
-    id: id,
-    role: "region",
-    "aria-labelledby": headingId
-  }, Object(external_wp_element_["createElement"])(Header, {
-    className: "component-box-control__header"
-  }, Object(external_wp_element_["createElement"])(flex_item_component, null, Object(external_wp_element_["createElement"])(text_component, {
-    id: headingId,
-    className: "component-box-control__label"
-  }, label)), Object(external_wp_element_["createElement"])(flex_item_component, null, Object(external_wp_element_["createElement"])(build_module_button["a" /* default */], {
-    className: "component-box-control__reset-button",
-    isSecondary: true,
-    isSmall: true,
-    onClick: handleOnReset,
-    disabled: !isDirty
-  }, Object(external_wp_i18n_["__"])('Reset')))), Object(external_wp_element_["createElement"])(HeaderControlWrapper, {
-    className: "component-box-control__header-control-wrapper"
-  }, Object(external_wp_element_["createElement"])(flex_item_component, null, Object(external_wp_element_["createElement"])(BoxControlIcon, {
-    side: side,
-    sides: sides
-  })), isLinked && Object(external_wp_element_["createElement"])(flex_block_component, null, Object(external_wp_element_["createElement"])(AllInputControl, Object(esm_extends["a" /* default */])({
-    "aria-label": label
-  }, inputControlProps))), !hasOneSide && Object(external_wp_element_["createElement"])(flex_item_component, null, Object(external_wp_element_["createElement"])(LinkedButton, {
-    onClick: toggleLinked,
-    isLinked: isLinked
-  }))), !isLinked && Object(external_wp_element_["createElement"])(BoxInputControls, inputControlProps));
-}
-BoxControl.__Visualizer = BoxControlVisualizer;
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/button-group/index.js
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-function ButtonGroup({
-  className,
-  ...props
-}, ref) {
-  const classes = classnames_default()('components-button-group', className);
-  return Object(external_wp_element_["createElement"])("div", Object(esm_extends["a" /* default */])({
-    ref: ref,
-    role: "group",
-    className: classes
-  }, props));
-}
-
-/* harmony default export */ var button_group = (Object(external_wp_element_["forwardRef"])(ButtonGroup));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/card/context.js
-/**
- * WordPress dependencies
- */
-
-const CardContext = Object(external_wp_element_["createContext"])({});
-const useCardContext = () => Object(external_wp_element_["useContext"])(CardContext);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/card/styles/card-styles.js
-
-
-/**
- * WordPress dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-
-const styleProps = {
-  borderColor: COLORS.lightGray[500],
-  borderRadius: '3px',
-  backgroundShady: COLORS.lightGray[200]
-};
-const {
-  borderColor: card_styles_borderColor,
-  borderRadius,
-  backgroundShady
-} = styleProps;
-const CardUI = styled_base_browser_esm("div", {
-  target: "e1q7k77g0",
-  label: "CardUI"
-})("background:", COLORS.white, ";box-sizing:border-box;border-radius:", borderRadius, ";border:1px solid ", card_styles_borderColor, ";", handleBorderless, ";&.is-elevated{box-shadow:0px 1px 3px 0px rgba( 0,0,0,0.2 ),0px 1px 1px 0px rgba( 0,0,0,0.14 ),0px 2px 1px -1px rgba( 0,0,0,0.12 );}" + ( true ? "" : undefined));
-const HeaderUI = /*#__PURE__*/styled_base_browser_esm(flex_component, {
-  target: "e1q7k77g1",
-  label: "HeaderUI"
-})("border-bottom:1px solid ", card_styles_borderColor, ";border-top-left-radius:", borderRadius, ";border-top-right-radius:", borderRadius, ";box-sizing:border-box;&:last-child{border-bottom:none;}", headerFooterSizes, ";", handleBorderless, ";", handleShady, ";" + ( true ? "" : undefined));
-const MediaUI = styled_base_browser_esm("div", {
-  target: "e1q7k77g2",
-  label: "MediaUI"
-})("box-sizing:border-box;overflow:hidden;& > img,& > iframe{display:block;height:auto;max-width:100%;width:100%;}&:first-of-type{border-top-left-radius:", borderRadius, ";border-top-right-radius:", borderRadius, ";}&:last-of-type{border-bottom-left-radius:", borderRadius, ";border-bottom-right-radius:", borderRadius, ";}" + ( true ? "" : undefined));
-const BodyUI = styled_base_browser_esm("div", {
-  target: "e1q7k77g3",
-  label: "BodyUI"
-})("box-sizing:border-box;", bodySize, ";", handleShady, ";" + ( true ? "" : undefined));
-const FooterUI = /*#__PURE__*/styled_base_browser_esm(flex_component, {
-  target: "e1q7k77g4",
-  label: "FooterUI"
-})("border-top:1px solid ", card_styles_borderColor, ";border-bottom-left-radius:", borderRadius, ";border-bottom-right-radius:", borderRadius, ";box-sizing:border-box;&:first-of-type{border-top:none;}", headerFooterSizes, ";", handleBorderless, ";", handleShady, ";" + ( true ? "" : undefined));
-const DividerUI = /*#__PURE__*/styled_base_browser_esm(external_wp_primitives_["HorizontalRule"], {
-  target: "e1q7k77g5",
-  label: "DividerUI"
-})("all:unset;border-top:1px solid ", card_styles_borderColor, ";box-sizing:border-box;display:block;height:0;width:100%;" + ( true ? "" : undefined));
-function bodySize() {
-  return `
-		&.is-size {
-			&-large {
-				padding: ${space(3)} ${space(4)};
-			}
-			&-medium {
-				padding: ${space(2)} ${space(3)};
-			}
-			&-small {
-				padding: ${space(2)};
-			}
-			&-extraSmall {
-				padding: ${space(1)};
-			}
-		}
-	`;
-}
-function headerFooterSizes() {
-  return `
-		&.is-size {
-			&-large {
-				padding: ${space(3)} ${space(4)};
-			}
-			&-medium {
-				padding: ${space(2)} ${space(3)};
-			}
-			&-small {
-				padding: ${space(2)};
-			}
-			&-extraSmall {
-				padding: ${space(1)};
-			}
-		}
-	`;
-}
-function handleBorderless() {
-  return `
-		&.is-borderless {
-			border: none;
-		}
-	`;
-}
-function handleShady() {
-  return `
-		&.is-shady {
-			background: ${backgroundShady};
-		}
-	`;
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/card/index.js
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-
-const card_defaultProps = {
-  isBorderless: false,
-  isElevated: false,
-  size: 'medium'
-};
-function Card(props) {
-  const {
-    className,
-    isBorderless,
-    isElevated,
-    size,
-    ...additionalProps
-  } = props;
-  const {
-    Provider
-  } = CardContext;
-  const contextProps = {
-    isBorderless,
-    isElevated,
-    size
-  };
-  const classes = classnames_default()('components-card', isBorderless && 'is-borderless', isElevated && 'is-elevated', size && `is-size-${size}`, className);
-  return Object(external_wp_element_["createElement"])(Provider, {
-    value: contextProps
-  }, Object(external_wp_element_["createElement"])(CardUI, Object(esm_extends["a" /* default */])({}, additionalProps, {
-    className: classes
-  })));
-}
-Card.defaultProps = card_defaultProps;
-/* harmony default export */ var card = (Card);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/card/body.js
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-
-const body_defaultProps = {
-  isShady: false,
-  size: 'medium'
-};
-function CardBody(props) {
-  const {
-    className,
-    isShady,
-    ...additionalProps
-  } = props;
-  const mergedProps = { ...body_defaultProps,
-    ...useCardContext(),
-    ...props
-  };
-  const {
-    size
-  } = mergedProps;
-  const classes = classnames_default()('components-card__body', isShady && 'is-shady', size && `is-size-${size}`, className);
-  return Object(external_wp_element_["createElement"])(BodyUI, Object(esm_extends["a" /* default */])({}, additionalProps, {
-    className: classes
-  }));
-}
-/* harmony default export */ var card_body = (CardBody);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/card/divider.js
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-function CardDivider(props) {
-  const {
-    className,
-    ...additionalProps
-  } = props;
-  const classes = classnames_default()('components-card__divider', className);
-  return Object(external_wp_element_["createElement"])(DividerUI, Object(esm_extends["a" /* default */])({}, additionalProps, {
-    children: null,
-    className: classes,
-    role: "separator"
-  }));
-}
-/* harmony default export */ var divider = (CardDivider);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/card/footer.js
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-
-const footer_defaultProps = {
-  isBorderless: false,
-  isShady: false,
-  size: 'medium'
-};
-function CardFooter(props) {
-  const {
-    className,
-    isShady,
-    ...additionalProps
-  } = props;
-  const mergedProps = { ...footer_defaultProps,
-    ...useCardContext(),
-    ...props
-  };
-  const {
-    isBorderless,
-    size
-  } = mergedProps;
-  const classes = classnames_default()('components-card__footer', isBorderless && 'is-borderless', isShady && 'is-shady', size && `is-size-${size}`, className);
-  return Object(external_wp_element_["createElement"])(FooterUI, Object(esm_extends["a" /* default */])({}, additionalProps, {
-    className: classes
-  }));
-}
-/* harmony default export */ var footer = (CardFooter);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/card/header.js
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-
-const header_defaultProps = {
-  isBorderless: false,
-  isShady: false,
-  size: 'medium'
-};
-function CardHeader(props) {
-  const {
-    className,
-    isShady,
-    ...additionalProps
-  } = props;
-  const mergedProps = { ...header_defaultProps,
-    ...useCardContext(),
-    ...props
-  };
-  const {
-    isBorderless,
-    size
-  } = mergedProps;
-  const classes = classnames_default()('components-card__header', isBorderless && 'is-borderless', isShady && 'is-shady', size && `is-size-${size}`, className);
-  return Object(external_wp_element_["createElement"])(HeaderUI, Object(esm_extends["a" /* default */])({}, additionalProps, {
-    className: classes
-  }));
-}
-/* harmony default export */ var card_header = (CardHeader);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/card/media.js
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-function CardMedia(props) {
-  const {
-    className,
-    ...additionalProps
-  } = props;
-  const classes = classnames_default()('components-card__media', className);
-  return Object(external_wp_element_["createElement"])(MediaUI, Object(esm_extends["a" /* default */])({}, additionalProps, {
-    className: classes
-  }));
-}
-/* harmony default export */ var media = (CardMedia);
-
-// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/icon/index.js
-var build_module_icon = __webpack_require__("iClF");
-
-// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/check.js
-var check = __webpack_require__("RMJe");
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/checkbox-control/index.js
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-
-/**
- * Internal dependencies
- */
-
-
-function CheckboxControl({
-  label,
-  className,
-  heading,
-  checked,
-  help,
-  onChange,
-  ...props
-}) {
-  if (heading) {
-    external_wp_deprecated_default()('`heading` prop in `CheckboxControl`', {
-      alternative: 'a separate element to implement a heading',
-      plugin: 'Gutenberg'
-    });
-  }
-
-  const instanceId = Object(external_wp_compose_["useInstanceId"])(CheckboxControl);
-  const id = `inspector-checkbox-control-${instanceId}`;
-
-  const onChangeValue = event => onChange(event.target.checked);
-
-  return Object(external_wp_element_["createElement"])(base_control, {
-    label: heading,
-    id: id,
-    help: help,
-    className: classnames_default()('components-checkbox-control', className)
-  }, Object(external_wp_element_["createElement"])("span", {
-    className: "components-checkbox-control__input-container"
-  }, Object(external_wp_element_["createElement"])("input", Object(esm_extends["a" /* default */])({
-    id: id,
-    className: "components-checkbox-control__input",
-    type: "checkbox",
-    value: "1",
-    onChange: onChangeValue,
-    checked: checked,
-    "aria-describedby": !!help ? id + '__help' : undefined
-  }, props)), checked ? Object(external_wp_element_["createElement"])(build_module_icon["a" /* default */], {
-    icon: check["a" /* default */],
-    className: "components-checkbox-control__checked",
-    role: "presentation"
-  }) : null), Object(external_wp_element_["createElement"])("label", {
-    className: "components-checkbox-control__label",
-    htmlFor: id
-  }, label));
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/clipboard-button/index.js
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-
-/**
- * Internal dependencies
- */
-
-
-const TIMEOUT = 4000;
-function ClipboardButton({
-  className,
-  children,
-  onCopy,
-  onFinishCopy,
-  text,
-  ...buttonProps
-}) {
-  external_wp_deprecated_default()('wp.components.ClipboardButton', {
-    since: '10.3',
-    plugin: 'Gutenberg',
-    alternative: 'wp.compose.useCopyToClipboard'
-  });
-  const timeoutId = Object(external_wp_element_["useRef"])();
-  const ref = Object(external_wp_compose_["useCopyToClipboard"])(text, () => {
-    onCopy();
-    clearTimeout(timeoutId.current);
-
-    if (onFinishCopy) {
-      timeoutId.current = setTimeout(() => onFinishCopy(), TIMEOUT);
-    }
-  });
-  Object(external_wp_element_["useEffect"])(() => {
-    clearTimeout(timeoutId.current);
-  }, []);
-  const classes = classnames_default()('components-clipboard-button', className); // Workaround for inconsistent behavior in Safari, where <textarea> is not
-  // the document.activeElement at the moment when the copy event fires.
-  // This causes documentHasSelection() in the copy-handler component to
-  // mistakenly override the ClipboardButton, and copy a serialized string
-  // of the current block instead.
-
-  const focusOnCopyEventTarget = event => {
-    event.target.focus();
-  };
-
-  return Object(external_wp_element_["createElement"])(build_module_button["a" /* default */], Object(esm_extends["a" /* default */])({}, buttonProps, {
-    className: classes,
-    ref: ref,
-    onCopy: focusOnCopyEventTarget
-  }), children);
-}
-
-// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/edit.js + 1 modules
-var edit = __webpack_require__("B9Az");
-
-// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/close.js
-var library_close = __webpack_require__("w95h");
-
-// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/chevron-up.js
-var chevron_up = __webpack_require__("XgzB");
-
-// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/chevron-down.js
-var chevron_down = __webpack_require__("NWDH");
-
-// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/plus.js
-var plus = __webpack_require__("Q4Sy");
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/dropdown/index.js
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-function useObservableState(initialState, onStateChange) {
-  const [state, setState] = Object(external_wp_element_["useState"])(initialState);
-  return [state, value => {
-    setState(value);
-
-    if (onStateChange) {
-      onStateChange(value);
-    }
-  }];
-}
-
-function Dropdown({
-  renderContent,
-  renderToggle,
-  position = 'bottom right',
-  className,
-  contentClassName,
-  expandOnMobile,
-  headerTitle,
-  focusOnMount,
-  popoverProps,
-  onClose,
-  onToggle
-}) {
-  var _popoverProps$anchorR;
-
-  const containerRef = Object(external_wp_element_["useRef"])();
-  const [isOpen, setIsOpen] = useObservableState(false, onToggle);
-  Object(external_wp_element_["useEffect"])(() => () => {
-    if (onToggle) {
-      onToggle(false);
-    }
-  }, []);
-
-  function toggle() {
-    setIsOpen(!isOpen);
-  }
-  /**
-   * Closes the dropdown if a focus leaves the dropdown wrapper. This is
-   * intentionally distinct from `onClose` since focus loss from the popover
-   * is expected to occur when using the Dropdown's toggle button, in which
-   * case the correct behavior is to keep the dropdown closed. The same applies
-   * in case when focus is moved to the modal dialog.
-   */
-
-
-  function closeIfFocusOutside() {
-    const {
-      ownerDocument
-    } = containerRef.current;
-
-    if (!containerRef.current.contains(ownerDocument.activeElement) && !ownerDocument.activeElement.closest('[role="dialog"]')) {
-      close();
-    }
-  }
-
-  function close() {
-    if (onClose) {
-      onClose();
-    }
-
-    setIsOpen(false);
-  }
-
-  const args = {
-    isOpen,
-    onToggle: toggle,
-    onClose: close
-  };
-  return Object(external_wp_element_["createElement"])("div", {
-    className: classnames_default()('components-dropdown', className),
-    ref: containerRef
-  }, renderToggle(args), isOpen && Object(external_wp_element_["createElement"])(build_module_popover["a" /* default */], Object(esm_extends["a" /* default */])({
-    position: position,
-    onClose: close,
-    onFocusOutside: closeIfFocusOutside,
-    expandOnMobile: expandOnMobile,
-    headerTitle: headerTitle,
-    focusOnMount: focusOnMount
-  }, popoverProps, {
-    anchorRef: (_popoverProps$anchorR = popoverProps === null || popoverProps === void 0 ? void 0 : popoverProps.anchorRef) !== null && _popoverProps$anchorR !== void 0 ? _popoverProps$anchorR : containerRef.current,
-    className: classnames_default()('components-dropdown__content', popoverProps ? popoverProps.className : undefined, contentClassName)
-  }), renderContent(args)));
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/circular-option-picker/index.js
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-function Option({
-  className,
-  isSelected,
-  selectedIconProps,
-  tooltipText,
-  ...additionalProps
-}) {
-  const optionButton = Object(external_wp_element_["createElement"])(build_module_button["a" /* default */], Object(esm_extends["a" /* default */])({
-    isPressed: isSelected,
-    className: classnames_default()(className, 'components-circular-option-picker__option')
-  }, additionalProps));
-  return Object(external_wp_element_["createElement"])("div", {
-    className: "components-circular-option-picker__option-wrapper"
-  }, tooltipText ? Object(external_wp_element_["createElement"])(build_module_tooltip["a" /* default */], {
-    text: tooltipText
-  }, optionButton) : optionButton, isSelected && Object(external_wp_element_["createElement"])(build_module_icon["a" /* default */], Object(esm_extends["a" /* default */])({
-    icon: check["a" /* default */]
-  }, selectedIconProps ? selectedIconProps : {})));
-}
-
-function DropdownLinkAction({
-  buttonProps,
-  className,
-  dropdownProps,
-  linkText
-}) {
-  return Object(external_wp_element_["createElement"])(Dropdown, Object(esm_extends["a" /* default */])({
-    className: classnames_default()('components-circular-option-picker__dropdown-link-action', className),
-    renderToggle: ({
-      isOpen,
-      onToggle
-    }) => Object(external_wp_element_["createElement"])(build_module_button["a" /* default */], Object(esm_extends["a" /* default */])({
-      "aria-expanded": isOpen,
-      "aria-haspopup": "true",
-      onClick: onToggle,
-      isLink: true
-    }, buttonProps), linkText)
-  }, dropdownProps));
-}
-
-function ButtonAction({
-  className,
-  children,
-  ...additionalProps
-}) {
-  return Object(external_wp_element_["createElement"])(build_module_button["a" /* default */], Object(esm_extends["a" /* default */])({
-    className: classnames_default()('components-circular-option-picker__clear', className),
-    isSmall: true,
-    isSecondary: true
-  }, additionalProps), children);
-}
-
-function CircularOptionPicker({
-  actions,
-  className,
-  options,
-  children
-}) {
-  return Object(external_wp_element_["createElement"])("div", {
-    className: classnames_default()('components-circular-option-picker', className)
-  }, Object(external_wp_element_["createElement"])("div", {
-    className: "components-circular-option-picker__swatches"
-  }, options), children, actions && Object(external_wp_element_["createElement"])("div", {
-    className: "components-circular-option-picker__custom-clear-wrapper"
-  }, actions));
-}
-CircularOptionPicker.Option = Option;
-CircularOptionPicker.ButtonAction = ButtonAction;
-CircularOptionPicker.DropdownLinkAction = DropdownLinkAction;
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/color-picker/utils.js
-/**
- * Parts of this source were derived and modified from react-color,
- * released under the MIT license.
- *
- * https://github.com/casesandberg/react-color/
- *
- * Copyright (c) 2015 Case Sandberg
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-/**
- * External dependencies
- */
-
-
-/**
- * Given a hex color, get all other color properties (rgb, alpha, etc).
- *
- * @param {Object|string} data A hex color string or an object with a hex property
- * @param {string} oldHue A reference to the hue of the previous color, otherwise dragging the saturation to zero will reset the current hue to zero as well. See https://github.com/casesandberg/react-color/issues/29#issuecomment-132686909.
- * @return {Object} An object of different color representations.
- */
-
-function colorToState(data = {}, oldHue = false) {
-  const color = data.hex ? tinycolor_default()(data.hex) : tinycolor_default()(data);
-  const hsl = color.toHsl();
-  hsl.h = Math.round(hsl.h);
-  hsl.s = Math.round(hsl.s * 100);
-  hsl.l = Math.round(hsl.l * 100);
-  const hsv = color.toHsv();
-  hsv.h = Math.round(hsv.h);
-  hsv.s = Math.round(hsv.s * 100);
-  hsv.v = Math.round(hsv.v * 100);
-  const rgb = color.toRgb();
-  const hex = color.toHex();
-
-  if (hsl.s === 0) {
-    hsl.h = oldHue || 0;
-    hsv.h = oldHue || 0;
-  }
-
-  const transparent = hex === '000000' && rgb.a === 0;
-  return {
-    color,
-    hex: transparent ? 'transparent' : `#${hex}`,
-    hsl,
-    hsv,
-    oldHue: data.h || oldHue || hsl.h,
-    rgb,
-    source: data.source
-  };
-}
-/**
- * Get the top/left offsets of a point in a container, also returns the container width/height.
- *
- * @param {Event} e Mouse or touch event with a location coordinate.
- * @param {HTMLElement} container The container div, returned point is relative to this container.
- * @return {Object} An object of the offset positions & container size.
- */
-
-function getPointOffset(e, container) {
-  e.preventDefault();
-  const {
-    left: containerLeft,
-    top: containerTop,
-    width,
-    height
-  } = container.getBoundingClientRect();
-  const x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX;
-  const y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY;
-  let left = x - (containerLeft + window.pageXOffset);
-  let top = y - (containerTop + window.pageYOffset);
-
-  if (left < 0) {
-    left = 0;
-  } else if (left > width) {
-    left = width;
-  } else if (top < 0) {
-    top = 0;
-  } else if (top > height) {
-    top = height;
-  }
-
-  return {
-    top,
-    left,
-    width,
-    height
-  };
-}
-/**
- * Check if a string is a valid hex color code.
- *
- * @param {string} hex A possible hex color.
- * @return {boolean} True if the color is a valid hex color.
- */
-
-
-function isValidHex(hex) {
-  // disable hex4 and hex8
-  const lh = String(hex).charAt(0) === '#' ? 1 : 0;
-  return hex.length !== 4 + lh && hex.length < 7 + lh && tinycolor_default()(hex).isValid();
-}
-/**
- * Check an object for any valid color properties.
- *
- * @param {Object} data A possible object representing a color.
- * @return {Object|boolean} If a valid representation of color, returns the data object. Otherwise returns false.
- */
-
-function simpleCheckForValidColor(data) {
-  const keysToCheck = ['r', 'g', 'b', 'a', 'h', 's', 'l', 'v'];
-  let checked = 0;
-  let passed = 0;
-  Object(external_lodash_["each"])(keysToCheck, letter => {
-    if (data[letter]) {
-      checked += 1;
-
-      if (!isNaN(data[letter])) {
-        passed += 1;
-      }
-    }
-  });
-  return checked === passed ? data : false;
-}
-/**
- * Calculate the current alpha based on a mouse or touch event
- *
- * @param {Event} e A mouse or touch event on the alpha bar.
- * @param {Object} props The current component props
- * @param {HTMLElement} container The container div for the alpha bar graph.
- * @return {Object|null} If the alpha value has changed, returns a new color object.
- */
-
-function calculateAlphaChange(e, props, container) {
-  const {
-    left,
-    width
-  } = getPointOffset(e, container);
-  const a = left < 0 ? 0 : Math.round(left * 100 / width) / 100;
-
-  if (props.hsl.a !== a) {
-    return {
-      h: props.hsl.h,
-      s: props.hsl.s,
-      l: props.hsl.l,
-      a,
-      source: 'rgb'
-    };
-  }
-
-  return null;
-}
-/**
- * Calculate the current hue based on a mouse or touch event
- *
- * @param {Event} e A mouse or touch event on the hue bar.
- * @param {Object} props The current component props
- * @param {HTMLElement} container The container div for the hue bar graph.
- * @return {Object|null} If the hue value has changed, returns a new color object.
- */
-
-function calculateHueChange(e, props, container) {
-  const {
-    left,
-    width
-  } = getPointOffset(e, container);
-  const percent = left * 100 / width;
-  const h = left >= width ? 359 : 360 * percent / 100;
-
-  if (props.hsl.h !== h) {
-    return {
-      h,
-      s: props.hsl.s,
-      l: props.hsl.l,
-      a: props.hsl.a,
-      source: 'rgb'
-    };
-  }
-
-  return null;
-}
-/**
- * Calculate the current saturation & brightness based on a mouse or touch event
- *
- * @param {Event} e A mouse or touch event on the saturation graph.
- * @param {Object} props The current component props
- * @param {HTMLElement} container The container div for the 2D saturation graph.
- * @return {Object} Returns a new color object.
- */
-
-function calculateSaturationChange(e, props, container) {
-  const {
-    top,
-    left,
-    width,
-    height
-  } = getPointOffset(e, container);
-  const saturation = left < 0 ? 0 : left * 100 / width;
-  let bright = top >= height ? 0 : -(top * 100 / height) + 100; // `v` values less than 1 are considered in the [0,1] range, causing unexpected behavior at the bottom
-  // of the chart. To fix this, we assume any value less than 1 should be 0 brightness.
-
-  if (bright < 1) {
-    bright = 0;
-  }
-
-  return {
-    h: props.hsl.h,
-    s: saturation,
-    v: bright,
-    a: props.hsl.a,
-    source: 'rgb'
-  };
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/keyboard-shortcuts/index.js
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-
-function KeyboardShortcut({
-  target,
-  callback,
-  shortcut,
-  bindGlobal,
-  eventName
-}) {
-  Object(external_wp_compose_["useKeyboardShortcut"])(shortcut, callback, {
-    bindGlobal,
-    target,
-    eventName
-  });
-  return null;
-}
-
-function KeyboardShortcuts({
-  children,
-  shortcuts,
-  bindGlobal,
-  eventName
-}) {
-  const target = Object(external_wp_element_["useRef"])();
-  const element = Object(external_lodash_["map"])(shortcuts, (callback, shortcut) => Object(external_wp_element_["createElement"])(KeyboardShortcut, {
-    key: shortcut,
-    shortcut: shortcut,
-    callback: callback,
-    bindGlobal: bindGlobal,
-    eventName: eventName,
-    target: target
-  })); // Render as non-visual if there are no children pressed. Keyboard
-  // events will be bound to the document instead.
-
-  if (!external_wp_element_["Children"].count(children)) {
-    return element;
-  }
-
-  return Object(external_wp_element_["createElement"])("div", {
-    ref: target
-  }, element, children);
-}
-
-/* harmony default export */ var keyboard_shortcuts = (KeyboardShortcuts);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/color-picker/alpha.js
-
-
-/**
- * Parts of this source were derived and modified from react-color,
- * released under the MIT license.
- *
- * https://github.com/casesandberg/react-color/
- *
- * Copyright (c) 2015 Case Sandberg
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-class alpha_Alpha extends external_wp_element_["Component"] {
-  constructor() {
-    super(...arguments);
-    this.container = Object(external_wp_element_["createRef"])();
-    this.increase = this.increase.bind(this);
-    this.decrease = this.decrease.bind(this);
-    this.handleChange = this.handleChange.bind(this);
-    this.handleMouseDown = this.handleMouseDown.bind(this);
-    this.handleMouseUp = this.handleMouseUp.bind(this);
-  }
-
-  componentWillUnmount() {
-    this.unbindEventListeners();
-  }
-
-  increase(amount = 0.01) {
-    const {
-      hsl,
-      onChange = external_lodash_["noop"]
-    } = this.props;
-    amount = parseInt(amount * 100, 10);
-    const change = {
-      h: hsl.h,
-      s: hsl.s,
-      l: hsl.l,
-      a: (parseInt(hsl.a * 100, 10) + amount) / 100,
-      source: 'rgb'
-    };
-    onChange(change);
-  }
-
-  decrease(amount = 0.01) {
-    const {
-      hsl,
-      onChange = external_lodash_["noop"]
-    } = this.props;
-    const intValue = parseInt(hsl.a * 100, 10) - parseInt(amount * 100, 10);
-    const change = {
-      h: hsl.h,
-      s: hsl.s,
-      l: hsl.l,
-      a: hsl.a <= amount ? 0 : intValue / 100,
-      source: 'rgb'
-    };
-    onChange(change);
-  }
-
-  handleChange(e) {
-    const {
-      onChange = external_lodash_["noop"]
-    } = this.props;
-    const change = calculateAlphaChange(e, this.props, this.container.current);
-
-    if (change) {
-      onChange(change, e);
-    }
-  }
-
-  handleMouseDown(e) {
-    this.handleChange(e);
-    window.addEventListener('mousemove', this.handleChange);
-    window.addEventListener('mouseup', this.handleMouseUp);
-  }
-
-  handleMouseUp() {
-    this.unbindEventListeners();
-  }
-
-  preventKeyEvents(event) {
-    if (event.keyCode === external_wp_keycodes_["TAB"]) {
-      return;
-    }
-
-    event.preventDefault();
-  }
-
-  unbindEventListeners() {
-    window.removeEventListener('mousemove', this.handleChange);
-    window.removeEventListener('mouseup', this.handleMouseUp);
-  }
-
-  render() {
-    const {
-      rgb
-    } = this.props;
-    const rgbString = `${rgb.r},${rgb.g},${rgb.b}`;
-    const gradient = {
-      background: `linear-gradient(to right, rgba(${rgbString}, 0) 0%, rgba(${rgbString}, 1) 100%)`
-    };
-    const pointerLocation = {
-      left: `${rgb.a * 100}%`
-    };
-    const shortcuts = {
-      up: () => this.increase(),
-      right: () => this.increase(),
-      'shift+up': () => this.increase(0.1),
-      'shift+right': () => this.increase(0.1),
-      pageup: () => this.increase(0.1),
-      end: () => this.increase(1),
-      down: () => this.decrease(),
-      left: () => this.decrease(),
-      'shift+down': () => this.decrease(0.1),
-      'shift+left': () => this.decrease(0.1),
-      pagedown: () => this.decrease(0.1),
-      home: () => this.decrease(1)
-    };
-    return Object(external_wp_element_["createElement"])(keyboard_shortcuts, {
-      shortcuts: shortcuts
-    }, Object(external_wp_element_["createElement"])("div", {
-      className: "components-color-picker__alpha"
-    }, Object(external_wp_element_["createElement"])("div", {
-      className: "components-color-picker__alpha-gradient",
-      style: gradient
-    }), Object(external_wp_element_["createElement"])("div", {
-      className: "components-color-picker__alpha-bar",
-      ref: this.container,
-      onMouseDown: this.handleMouseDown,
-      onTouchMove: this.handleChange,
-      onTouchStart: this.handleChange
-    }, Object(external_wp_element_["createElement"])("div", {
-      tabIndex: "0",
-      role: "slider",
-      "aria-valuemax": "1",
-      "aria-valuemin": "0",
-      "aria-valuenow": rgb.a,
-      "aria-orientation": "horizontal",
-      "aria-label": Object(external_wp_i18n_["__"])('Alpha value, from 0 (transparent) to 1 (fully opaque).'),
-      className: "components-color-picker__alpha-pointer",
-      style: pointerLocation,
-      onKeyDown: this.preventKeyEvents
-    }))));
-  }
-
-}
-/* harmony default export */ var color_picker_alpha = (Object(external_wp_compose_["pure"])(alpha_Alpha));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/color-picker/hue.js
-
-
-/**
- * Parts of this source were derived and modified from react-color,
- * released under the MIT license.
- *
- * https://github.com/casesandberg/react-color/
- *
- * Copyright (c) 2015 Case Sandberg
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-class hue_Hue extends external_wp_element_["Component"] {
-  constructor() {
-    super(...arguments);
-    this.container = Object(external_wp_element_["createRef"])();
-    this.increase = this.increase.bind(this);
-    this.decrease = this.decrease.bind(this);
-    this.handleChange = this.handleChange.bind(this);
-    this.handleMouseDown = this.handleMouseDown.bind(this);
-    this.handleMouseUp = this.handleMouseUp.bind(this);
-  }
-
-  componentWillUnmount() {
-    this.unbindEventListeners();
-  }
-
-  increase(amount = 1) {
-    const {
-      hsl,
-      onChange = external_lodash_["noop"]
-    } = this.props;
-    const change = {
-      h: hsl.h + amount >= 359 ? 359 : hsl.h + amount,
-      s: hsl.s,
-      l: hsl.l,
-      a: hsl.a,
-      source: 'rgb'
-    };
-    onChange(change);
-  }
-
-  decrease(amount = 1) {
-    const {
-      hsl,
-      onChange = external_lodash_["noop"]
-    } = this.props;
-    const change = {
-      h: hsl.h <= amount ? 0 : hsl.h - amount,
-      s: hsl.s,
-      l: hsl.l,
-      a: hsl.a,
-      source: 'rgb'
-    };
-    onChange(change);
-  }
-
-  handleChange(e) {
-    const {
-      onChange = external_lodash_["noop"]
-    } = this.props;
-    const change = calculateHueChange(e, this.props, this.container.current);
-
-    if (change) {
-      onChange(change, e);
-    }
-  }
-
-  handleMouseDown(e) {
-    this.handleChange(e);
-    window.addEventListener('mousemove', this.handleChange);
-    window.addEventListener('mouseup', this.handleMouseUp);
-  }
-
-  handleMouseUp() {
-    this.unbindEventListeners();
-  }
-
-  preventKeyEvents(event) {
-    if (event.keyCode === external_wp_keycodes_["TAB"]) {
-      return;
-    }
-
-    event.preventDefault();
-  }
-
-  unbindEventListeners() {
-    window.removeEventListener('mousemove', this.handleChange);
-    window.removeEventListener('mouseup', this.handleMouseUp);
-  }
-
-  render() {
-    const {
-      hsl = {},
-      instanceId
-    } = this.props;
-    const pointerLocation = {
-      left: `${hsl.h * 100 / 360}%`
-    };
-    const shortcuts = {
-      up: () => this.increase(),
-      right: () => this.increase(),
-      'shift+up': () => this.increase(10),
-      'shift+right': () => this.increase(10),
-      pageup: () => this.increase(10),
-      end: () => this.increase(359),
-      down: () => this.decrease(),
-      left: () => this.decrease(),
-      'shift+down': () => this.decrease(10),
-      'shift+left': () => this.decrease(10),
-      pagedown: () => this.decrease(10),
-      home: () => this.decrease(359)
-    };
-    return Object(external_wp_element_["createElement"])(keyboard_shortcuts, {
-      shortcuts: shortcuts
-    }, Object(external_wp_element_["createElement"])("div", {
-      className: "components-color-picker__hue"
-    }, Object(external_wp_element_["createElement"])("div", {
-      className: "components-color-picker__hue-gradient"
-    }), Object(external_wp_element_["createElement"])("div", {
-      className: "components-color-picker__hue-bar",
-      ref: this.container,
-      onMouseDown: this.handleMouseDown,
-      onTouchMove: this.handleChange,
-      onTouchStart: this.handleChange
-    }, Object(external_wp_element_["createElement"])("div", {
-      tabIndex: "0",
-      role: "slider",
-      "aria-valuemax": "1",
-      "aria-valuemin": "359",
-      "aria-valuenow": hsl.h,
-      "aria-orientation": "horizontal",
-      "aria-label": Object(external_wp_i18n_["__"])('Hue value in degrees, from 0 to 359.'),
-      "aria-describedby": `components-color-picker__hue-description-${instanceId}`,
-      className: "components-color-picker__hue-pointer",
-      style: pointerLocation,
-      onKeyDown: this.preventKeyEvents
-    }), Object(external_wp_element_["createElement"])(visually_hidden["a" /* default */], {
-      as: "p",
-      id: `components-color-picker__hue-description-${instanceId}`
-    }, Object(external_wp_i18n_["__"])('Move the arrow left or right to change hue.')))));
-  }
-
-}
-/* harmony default export */ var hue = (Object(external_wp_compose_["compose"])(external_wp_compose_["pure"], external_wp_compose_["withInstanceId"])(hue_Hue));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/text-control/index.js
-
-
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-/**
- * @typedef OwnProps
- * @property {string} label Label for the control.
- * @property {boolean} [hideLabelFromVision] Whether to accessibly hide the label.
- * @property {string} value Value of the input.
- * @property {string} [help] Optional help text for the control.
- * @property {string} [className] Classname passed to BaseControl wrapper
- * @property {(value: string) => void} onChange Handle changes.
- * @property {string} [type='text'] Type of the input.
- */
-
-/** @typedef {OwnProps & import('react').ComponentProps<'input'>} Props */
-
-/**
- *
- * @param {Props} props Props
- * @param {import('react').Ref<HTMLInputElement>} [ref]
- */
-
-function TextControl({
-  label,
-  hideLabelFromVision,
-  value,
-  help,
-  className,
-  onChange,
-  type = 'text',
-  ...props
-}, ref) {
-  const instanceId = Object(external_wp_compose_["useInstanceId"])(TextControl);
-  const id = `inspector-text-control-${instanceId}`;
-
-  const onChangeValue =
-  /** @type {import('react').ChangeEvent<HTMLInputElement>} */
-  event => onChange(event.target.value);
-
-  return Object(external_wp_element_["createElement"])(base_control, {
-    label: label,
-    hideLabelFromVision: hideLabelFromVision,
-    id: id,
-    help: help,
-    className: className
-  }, Object(external_wp_element_["createElement"])("input", Object(esm_extends["a" /* default */])({
-    className: "components-text-control__input",
-    type: type,
-    id: id,
-    value: value,
-    onChange: onChangeValue,
-    "aria-describedby": !!help ? id + '__help' : undefined,
-    ref: ref
-  }, props)));
-}
-
-/* harmony default export */ var text_control = (Object(external_wp_element_["forwardRef"])(TextControl));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/color-picker/inputs.js
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-/* Wrapper for TextControl, only used to handle intermediate state while typing. */
-
-class inputs_Input extends external_wp_element_["Component"] {
-  constructor() {
-    super(...arguments);
-    this.handleBlur = this.handleBlur.bind(this);
-    this.handleChange = this.handleChange.bind(this);
-    this.handleKeyDown = this.handleKeyDown.bind(this);
-  }
-
-  handleBlur() {
-    const {
-      value,
-      valueKey,
-      onChange,
-      source
-    } = this.props;
-    onChange({
-      source,
-      state: 'commit',
-      value,
-      valueKey
-    });
-  }
-
-  handleChange(value) {
-    const {
-      valueKey,
-      onChange,
-      source
-    } = this.props;
-
-    if (value.length > 4 && isValidHex(value)) {
-      onChange({
-        source,
-        state: 'commit',
-        value,
-        valueKey
-      });
-    } else {
-      onChange({
-        source,
-        state: 'draft',
-        value,
-        valueKey
-      });
-    }
-  }
-
-  handleKeyDown({
-    keyCode
-  }) {
-    if (keyCode !== external_wp_keycodes_["ENTER"] && keyCode !== external_wp_keycodes_["UP"] && keyCode !== external_wp_keycodes_["DOWN"]) {
-      return;
-    }
-
-    const {
-      value,
-      valueKey,
-      onChange,
-      source
-    } = this.props;
-    onChange({
-      source,
-      state: 'commit',
-      value,
-      valueKey
-    });
-  }
-
-  render() {
-    const {
-      label,
-      value,
-      ...props
-    } = this.props;
-    return Object(external_wp_element_["createElement"])(text_control, Object(esm_extends["a" /* default */])({
-      className: "components-color-picker__inputs-field",
-      label: label,
-      value: value,
-      onChange: newValue => this.handleChange(newValue),
-      onBlur: this.handleBlur,
-      onKeyDown: this.handleKeyDown
-    }, Object(external_lodash_["omit"])(props, ['onChange', 'valueKey', 'source'])));
-  }
-
-}
-const PureButton = Object(external_wp_compose_["pure"])(build_module_button["a" /* default */]);
-class inputs_Inputs extends external_wp_element_["Component"] {
-  constructor({
-    hsl
-  }) {
-    super(...arguments);
-    const view = hsl.a === 1 ? 'hex' : 'rgb';
-    this.state = {
-      view
-    };
-    this.toggleViews = this.toggleViews.bind(this);
-    this.resetDraftValues = this.resetDraftValues.bind(this);
-    this.handleChange = this.handleChange.bind(this);
-    this.normalizeValue = this.normalizeValue.bind(this);
-  }
-
-  static getDerivedStateFromProps(props, state) {
-    if (props.hsl.a !== 1 && state.view === 'hex') {
-      return {
-        view: 'rgb'
-      };
-    }
-
-    return null;
-  }
-
-  toggleViews() {
-    if (this.state.view === 'hex') {
-      this.setState({
-        view: 'rgb'
-      }, this.resetDraftValues);
-      Object(external_wp_a11y_["speak"])(Object(external_wp_i18n_["__"])('RGB mode active'));
-    } else if (this.state.view === 'rgb') {
-      this.setState({
-        view: 'hsl'
-      }, this.resetDraftValues);
-      Object(external_wp_a11y_["speak"])(Object(external_wp_i18n_["__"])('Hue/saturation/lightness mode active'));
-    } else if (this.state.view === 'hsl') {
-      if (this.props.hsl.a === 1) {
-        this.setState({
-          view: 'hex'
-        }, this.resetDraftValues);
-        Object(external_wp_a11y_["speak"])(Object(external_wp_i18n_["__"])('Hex color mode active'));
-      } else {
-        this.setState({
-          view: 'rgb'
-        }, this.resetDraftValues);
-        Object(external_wp_a11y_["speak"])(Object(external_wp_i18n_["__"])('RGB mode active'));
-      }
-    }
-  }
-
-  resetDraftValues() {
-    return this.props.onChange({
-      state: 'reset'
-    });
-  }
-
-  normalizeValue(valueKey, value) {
-    if (valueKey !== 'a') {
-      return value;
-    }
-
-    if (value < 0) {
-      return 0;
-    } else if (value > 1) {
-      return 1;
-    }
-
-    return Math.round(value * 100) / 100;
-  }
-
-  handleChange({
-    source,
-    state,
-    value,
-    valueKey
-  }) {
-    this.props.onChange({
-      source,
-      state,
-      valueKey,
-      value: this.normalizeValue(valueKey, value)
-    });
-  }
-
-  renderFields() {
-    const {
-      disableAlpha = false
-    } = this.props;
-
-    if (this.state.view === 'hex') {
-      return Object(external_wp_element_["createElement"])("div", {
-        className: "components-color-picker__inputs-fields"
-      }, Object(external_wp_element_["createElement"])(inputs_Input, {
-        source: this.state.view,
-        label: Object(external_wp_i18n_["__"])('Color value in hexadecimal'),
-        valueKey: "hex",
-        value: this.props.hex,
-        onChange: this.handleChange
-      }));
-    } else if (this.state.view === 'rgb') {
-      const legend = disableAlpha ? Object(external_wp_i18n_["__"])('Color value in RGB') : Object(external_wp_i18n_["__"])('Color value in RGBA');
-      return Object(external_wp_element_["createElement"])("fieldset", null, Object(external_wp_element_["createElement"])(visually_hidden["a" /* default */], {
-        as: "legend"
-      }, legend), Object(external_wp_element_["createElement"])("div", {
-        className: "components-color-picker__inputs-fields"
-      }, Object(external_wp_element_["createElement"])(inputs_Input, {
-        source: this.state.view,
-        label: "r",
-        valueKey: "r",
-        value: this.props.rgb.r,
-        onChange: this.handleChange,
-        type: "number",
-        min: "0",
-        max: "255"
-      }), Object(external_wp_element_["createElement"])(inputs_Input, {
-        source: this.state.view,
-        label: "g",
-        valueKey: "g",
-        value: this.props.rgb.g,
-        onChange: this.handleChange,
-        type: "number",
-        min: "0",
-        max: "255"
-      }), Object(external_wp_element_["createElement"])(inputs_Input, {
-        source: this.state.view,
-        label: "b",
-        valueKey: "b",
-        value: this.props.rgb.b,
-        onChange: this.handleChange,
-        type: "number",
-        min: "0",
-        max: "255"
-      }), disableAlpha ? null : Object(external_wp_element_["createElement"])(inputs_Input, {
-        source: this.state.view,
-        label: "a",
-        valueKey: "a",
-        value: this.props.rgb.a,
-        onChange: this.handleChange,
-        type: "number",
-        min: "0",
-        max: "1",
-        step: "0.01"
-      })));
-    } else if (this.state.view === 'hsl') {
-      const legend = disableAlpha ? Object(external_wp_i18n_["__"])('Color value in HSL') : Object(external_wp_i18n_["__"])('Color value in HSLA');
-      return Object(external_wp_element_["createElement"])("fieldset", null, Object(external_wp_element_["createElement"])(visually_hidden["a" /* default */], {
-        as: "legend"
-      }, legend), Object(external_wp_element_["createElement"])("div", {
-        className: "components-color-picker__inputs-fields"
-      }, Object(external_wp_element_["createElement"])(inputs_Input, {
-        source: this.state.view,
-        label: "h",
-        valueKey: "h",
-        value: this.props.hsl.h,
-        onChange: this.handleChange,
-        type: "number",
-        min: "0",
-        max: "359"
-      }), Object(external_wp_element_["createElement"])(inputs_Input, {
-        source: this.state.view,
-        label: "s",
-        valueKey: "s",
-        value: this.props.hsl.s,
-        onChange: this.handleChange,
-        type: "number",
-        min: "0",
-        max: "100"
-      }), Object(external_wp_element_["createElement"])(inputs_Input, {
-        source: this.state.view,
-        label: "l",
-        valueKey: "l",
-        value: this.props.hsl.l,
-        onChange: this.handleChange,
-        type: "number",
-        min: "0",
-        max: "100"
-      }), disableAlpha ? null : Object(external_wp_element_["createElement"])(inputs_Input, {
-        source: this.state.view,
-        label: "a",
-        valueKey: "a",
-        value: this.props.hsl.a,
-        onChange: this.handleChange,
-        type: "number",
-        min: "0",
-        max: "1",
-        step: "0.05"
-      })));
-    }
-  }
-
-  render() {
-    return Object(external_wp_element_["createElement"])("div", {
-      className: "components-color-picker__inputs-wrapper"
-    }, this.renderFields(), Object(external_wp_element_["createElement"])("div", {
-      className: "components-color-picker__inputs-toggle-wrapper"
-    }, Object(external_wp_element_["createElement"])(PureButton, {
-      className: "components-color-picker__inputs-toggle",
-      icon: chevron_down["a" /* default */],
-      label: Object(external_wp_i18n_["__"])('Change color format'),
-      onClick: this.toggleViews
-    })));
-  }
-
-}
-/* harmony default export */ var inputs = (inputs_Inputs);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/color-picker/saturation.js
-
-
-/**
- * Parts of this source were derived and modified from react-color,
- * released under the MIT license.
- *
- * https://github.com/casesandberg/react-color/
- *
- * Copyright (c) 2015 Case Sandberg
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-class saturation_Saturation extends external_wp_element_["Component"] {
-  constructor(props) {
-    super(props);
-    this.throttle = Object(external_lodash_["throttle"])((fn, data, e) => {
-      fn(data, e);
-    }, 50);
-    this.container = Object(external_wp_element_["createRef"])();
-    this.saturate = this.saturate.bind(this);
-    this.brighten = this.brighten.bind(this);
-    this.handleChange = this.handleChange.bind(this);
-    this.handleMouseDown = this.handleMouseDown.bind(this);
-    this.handleMouseUp = this.handleMouseUp.bind(this);
-  }
-
-  componentWillUnmount() {
-    this.throttle.cancel();
-    this.unbindEventListeners();
-  }
-
-  saturate(amount = 0.01) {
-    const {
-      hsv,
-      onChange = external_lodash_["noop"]
-    } = this.props;
-    const intSaturation = Object(external_lodash_["clamp"])(hsv.s + Math.round(amount * 100), 0, 100);
-    const change = {
-      h: hsv.h,
-      s: intSaturation,
-      v: hsv.v,
-      a: hsv.a,
-      source: 'rgb'
-    };
-    onChange(change);
-  }
-
-  brighten(amount = 0.01) {
-    const {
-      hsv,
-      onChange = external_lodash_["noop"]
-    } = this.props;
-    const intValue = Object(external_lodash_["clamp"])(hsv.v + Math.round(amount * 100), 0, 100);
-    const change = {
-      h: hsv.h,
-      s: hsv.s,
-      v: intValue,
-      a: hsv.a,
-      source: 'rgb'
-    };
-    onChange(change);
-  }
-
-  handleChange(e) {
-    const {
-      onChange = external_lodash_["noop"]
-    } = this.props;
-    const change = calculateSaturationChange(e, this.props, this.container.current);
-    this.throttle(onChange, change, e);
-  }
-
-  handleMouseDown(e) {
-    this.handleChange(e);
-    window.addEventListener('mousemove', this.handleChange);
-    window.addEventListener('mouseup', this.handleMouseUp);
-  }
-
-  handleMouseUp() {
-    this.unbindEventListeners();
-  }
-
-  preventKeyEvents(event) {
-    if (event.keyCode === external_wp_keycodes_["TAB"]) {
-      return;
-    }
-
-    event.preventDefault();
-  }
-
-  unbindEventListeners() {
-    window.removeEventListener('mousemove', this.handleChange);
-    window.removeEventListener('mouseup', this.handleMouseUp);
-  }
-
-  render() {
-    const {
-      hsv,
-      hsl,
-      instanceId
-    } = this.props;
-    const pointerLocation = {
-      top: `${-hsv.v + 100}%`,
-      left: `${hsv.s}%`
-    };
-    const shortcuts = {
-      up: () => this.brighten(),
-      'shift+up': () => this.brighten(0.1),
-      pageup: () => this.brighten(1),
-      down: () => this.brighten(-0.01),
-      'shift+down': () => this.brighten(-0.1),
-      pagedown: () => this.brighten(-1),
-      right: () => this.saturate(),
-      'shift+right': () => this.saturate(0.1),
-      end: () => this.saturate(1),
-      left: () => this.saturate(-0.01),
-      'shift+left': () => this.saturate(-0.1),
-      home: () => this.saturate(-1)
-    };
-    /* eslint-disable jsx-a11y/no-noninteractive-element-interactions */
-
-    return Object(external_wp_element_["createElement"])(keyboard_shortcuts, {
-      shortcuts: shortcuts
-    }, Object(external_wp_element_["createElement"])("div", {
-      style: {
-        background: `hsl(${hsl.h},100%, 50%)`
-      },
-      className: "components-color-picker__saturation-color",
-      ref: this.container,
-      onMouseDown: this.handleMouseDown,
-      onTouchMove: this.handleChange,
-      onTouchStart: this.handleChange,
-      role: "application"
-    }, Object(external_wp_element_["createElement"])("div", {
-      className: "components-color-picker__saturation-white"
-    }), Object(external_wp_element_["createElement"])("div", {
-      className: "components-color-picker__saturation-black"
-    }), Object(external_wp_element_["createElement"])(build_module_button["a" /* default */], {
-      "aria-label": Object(external_wp_i18n_["__"])('Choose a shade'),
-      "aria-describedby": `color-picker-saturation-${instanceId}`,
-      className: "components-color-picker__saturation-pointer",
-      style: pointerLocation,
-      onKeyDown: this.preventKeyEvents
-    }), Object(external_wp_element_["createElement"])(visually_hidden["a" /* default */], {
-      id: `color-picker-saturation-${instanceId}`
-    }, Object(external_wp_i18n_["__"])('Use your arrow keys to change the base color. Move up to lighten the color, down to darken, left to decrease saturation, and right to increase saturation.'))));
-    /* eslint-enable jsx-a11y/no-noninteractive-element-interactions */
-  }
-
-}
-/* harmony default export */ var saturation = (Object(external_wp_compose_["compose"])(external_wp_compose_["pure"], external_wp_compose_["withInstanceId"])(saturation_Saturation));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/color-picker/index.js
-
-
-/**
- * Parts of this source were derived and modified from react-color,
- * released under the MIT license.
- *
- * https://github.com/casesandberg/react-color/
- *
- * Copyright (c) 2015 Case Sandberg
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-/**
- * External dependencies
- */
-
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-
-
-const toLowerCase = value => String(value).toLowerCase();
-
-const color_picker_isValueEmpty = data => {
-  if (data.source === 'hex' && data.hex === undefined) {
-    return true;
-  }
-
-  if (data.source === 'hsl' && (data.h === undefined || data.s === undefined || data.l === undefined)) {
-    return true;
-  }
-  /**
-   * Check that if source is `rgb`:
-   * `r`, `g` or `b` properties are not undefined
-   * OR (||) `h`, `s`, `v` or `a` properties are not undefined
-   * OR (||) `h`, `s`, `l` or `a` properties are not undefined
-   *
-   * before it was checking with NOT(!) statement witch for `0` (bool|int) values returns `true`
-   * this is a typecasting issue only visible for hex values that derive from #000000
-   */
-
-
-  return data.source === 'rgb' && (data.r === undefined || data.g === undefined || data.b === undefined) && (data.h === undefined || data.s === undefined || data.v === undefined || data.a === undefined) && (data.h === undefined || data.s === undefined || data.l === undefined || data.a === undefined);
-};
-
-const isValidColor = colors => colors.hex ? isValidHex(colors.hex) : simpleCheckForValidColor(colors);
-/**
- * Function that creates the new color object
- * from old data and the new value.
- *
- * @param {Object} oldColors The old color object.
- * @param {string} oldColors.hex
- * @param {Object} oldColors.rgb
- * @param {number} oldColors.rgb.r
- * @param {number} oldColors.rgb.g
- * @param {number} oldColors.rgb.b
- * @param {number} oldColors.rgb.a
- * @param {Object} oldColors.hsl
- * @param {number} oldColors.hsl.h
- * @param {number} oldColors.hsl.s
- * @param {number} oldColors.hsl.l
- * @param {number} oldColors.hsl.a
- * @param {string} oldColors.draftHex Same format as oldColors.hex
- * @param {Object} oldColors.draftRgb Same format as oldColors.rgb
- * @param {Object} oldColors.draftHsl Same format as oldColors.hsl
- * @param {Object} data Data containing the new value to update.
- * @param {Object} data.source One of `hex`, `rgb`, `hsl`.
- * @param {string|number} data.value Value to update.
- * @param {string} data.valueKey Depends on `data.source` values:
- *   - when source = `rgb`, valuKey can be `r`, `g`, `b`, or `a`.
- *   - when source = `hsl`, valuKey can be `h`, `s`, `l`, or `a`.
- * @return {Object} A new color object for a specific source. For example:
- * { source: 'rgb', r: 1, g: 2, b:3, a:0 }
- */
-
-
-const dataToColors = (oldColors, {
-  source,
-  valueKey,
-  value
-}) => {
-  if (source === 'hex') {
-    return {
-      source,
-      [source]: value
-    };
-  }
-
-  return {
-    source,
-    ...{ ...oldColors[source],
-      ...{
-        [valueKey]: value
-      }
-    }
-  };
-};
-
-class color_picker_ColorPicker extends external_wp_element_["Component"] {
-  constructor({
-    color = '0071a1'
-  }) {
-    super(...arguments);
-    const colors = colorToState(color);
-    this.state = { ...colors,
-      draftHex: toLowerCase(colors.hex),
-      draftRgb: colors.rgb,
-      draftHsl: colors.hsl
-    };
-    this.commitValues = this.commitValues.bind(this);
-    this.setDraftValues = this.setDraftValues.bind(this);
-    this.resetDraftValues = this.resetDraftValues.bind(this);
-    this.handleInputChange = this.handleInputChange.bind(this);
-  }
-
-  commitValues(data) {
-    const {
-      oldHue,
-      onChangeComplete = external_lodash_["noop"]
-    } = this.props;
-
-    if (isValidColor(data)) {
-      const colors = colorToState(data, data.h || oldHue);
-      this.setState({ ...colors,
-        draftHex: toLowerCase(colors.hex),
-        draftHsl: colors.hsl,
-        draftRgb: colors.rgb
-      }, Object(external_lodash_["debounce"])(Object(external_lodash_["partial"])(onChangeComplete, colors), 100));
-    }
-  }
-
-  resetDraftValues() {
-    this.setState({
-      draftHex: this.state.hex,
-      draftHsl: this.state.hsl,
-      draftRgb: this.state.rgb
-    });
-  }
-
-  setDraftValues(data) {
-    switch (data.source) {
-      case 'hex':
-        this.setState({
-          draftHex: toLowerCase(data.hex)
-        });
-        break;
-
-      case 'rgb':
-        this.setState({
-          draftRgb: data
-        });
-        break;
-
-      case 'hsl':
-        this.setState({
-          draftHsl: data
-        });
-        break;
-    }
-  }
-
-  handleInputChange(data) {
-    switch (data.state) {
-      case 'reset':
-        this.resetDraftValues();
-        break;
-
-      case 'commit':
-        const colors = dataToColors(this.state, data);
-
-        if (!color_picker_isValueEmpty(colors)) {
-          this.commitValues(colors);
-        }
-
-        break;
-
-      case 'draft':
-        this.setDraftValues(dataToColors(this.state, data));
-        break;
-    }
-  }
-
-  render() {
-    const {
-      className,
-      disableAlpha
-    } = this.props;
-    const {
-      color,
-      hsl,
-      hsv,
-      rgb,
-      draftHex,
-      draftHsl,
-      draftRgb
-    } = this.state;
-    const classes = classnames_default()(className, {
-      'components-color-picker': true,
-      'is-alpha-disabled': disableAlpha,
-      'is-alpha-enabled': !disableAlpha
-    });
-    return Object(external_wp_element_["createElement"])("div", {
-      className: classes
-    }, Object(external_wp_element_["createElement"])("div", {
-      className: "components-color-picker__saturation"
-    }, Object(external_wp_element_["createElement"])(saturation, {
-      hsl: hsl,
-      hsv: hsv,
-      onChange: this.commitValues
-    })), Object(external_wp_element_["createElement"])("div", {
-      className: "components-color-picker__body"
-    }, Object(external_wp_element_["createElement"])("div", {
-      className: "components-color-picker__controls"
-    }, Object(external_wp_element_["createElement"])("div", {
-      className: "components-color-picker__swatch"
-    }, Object(external_wp_element_["createElement"])("div", {
-      className: "components-color-picker__active",
-      style: {
-        backgroundColor: color && color.toRgbString()
-      }
-    })), Object(external_wp_element_["createElement"])("div", {
-      className: "components-color-picker__toggles"
-    }, Object(external_wp_element_["createElement"])(hue, {
-      hsl: hsl,
-      onChange: this.commitValues
-    }), disableAlpha ? null : Object(external_wp_element_["createElement"])(color_picker_alpha, {
-      rgb: rgb,
-      hsl: hsl,
-      onChange: this.commitValues
-    }))), Object(external_wp_element_["createElement"])(inputs, {
-      rgb: draftRgb,
-      hsl: draftHsl,
-      hex: draftHex,
-      onChange: this.handleInputChange,
-      disableAlpha: disableAlpha
-    })));
-  }
-
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/color-edit/index.js
-
-
-/**
- * External dependencies
- */
-
-
-/**
- * WordPress dependencies
- */
-
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-
-
-
-function DropdownOpenOnMount({
-  shouldOpen,
-  isOpen,
-  onToggle
-}) {
-  Object(external_wp_element_["useEffect"])(() => {
-    if (shouldOpen && !isOpen) {
-      onToggle();
-    }
-  }, []);
-  return null;
-}
-
-function ColorOption({
-  color,
-  name,
-  slug,
-  onChange,
-  onRemove,
-  onConfirm,
-  confirmLabel = Object(external_wp_i18n_["__"])('OK'),
-  isEditingNameOnMount = false,
-  isEditingColorOnMount = false,
-  onCancel,
-  immutableColorSlugs = []
-}) {
-  const [isHover, setIsHover] = Object(external_wp_element_["useState"])(false);
-  const [isFocused, setIsFocused] = Object(external_wp_element_["useState"])(false);
-  const [isEditingName, setIsEditingName] = Object(external_wp_element_["useState"])(isEditingNameOnMount);
-  const [isShowingAdvancedPanel, setIsShowingAdvancedPanel] = Object(external_wp_element_["useState"])(false);
-  const isShowingControls = (isHover || isFocused || isEditingName || isShowingAdvancedPanel) && !immutableColorSlugs.includes(slug);
-  return Object(external_wp_element_["createElement"])("div", {
-    tabIndex: 0,
-    className: classnames_default()('components-color-edit__color-option', {
-      'is-hover': isHover && !isEditingName && !isShowingAdvancedPanel
-    }),
-    onMouseEnter: () => setIsHover(true),
-    onMouseLeave: () => setIsHover(false),
-    onFocus: () => setIsFocused(true),
-    onBlur: () => setIsFocused(false),
-    "aria-label": name ? // translators: %s: The name of the color e.g: "vivid red".
-    Object(external_wp_i18n_["sprintf"])(Object(external_wp_i18n_["__"])('Color: %s'), name) : // translators: %s: color hex code e.g: "#f00".
-    Object(external_wp_i18n_["sprintf"])(Object(external_wp_i18n_["__"])('Color code: %s'), color)
-  }, Object(external_wp_element_["createElement"])("div", {
-    className: "components-color-edit__color-option-main-area"
-  }, Object(external_wp_element_["createElement"])(Dropdown, {
-    renderToggle: ({
-      isOpen,
-      onToggle
-    }) => Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(DropdownOpenOnMount, {
-      shouldOpen: isEditingColorOnMount,
-      isOpen: isOpen,
-      onToggle: onToggle
-    }), Object(external_wp_element_["createElement"])(CircularOptionPicker.Option, {
-      style: {
-        backgroundColor: color,
-        color
-      },
-      "aria-expanded": isOpen,
-      "aria-haspopup": "true",
-      onClick: onToggle,
-      "aria-label": Object(external_wp_i18n_["__"])('Edit color value')
-    })),
-    renderContent: () => Object(external_wp_element_["createElement"])(color_picker_ColorPicker, {
-      color: color,
-      onChangeComplete: newColor => onChange({
-        color: newColor.hex,
-        slug,
-        name
-      }),
-      disableAlpha: true
-    })
-  }), !isEditingName && Object(external_wp_element_["createElement"])("div", {
-    className: "components-color-edit__color-option-color-name"
-  }, name), isEditingName && Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(text_control, {
-    className: "components-color-edit__color-option-color-name-input",
-    hideLabelFromVision: true,
-    onChange: newColorName => onChange({
-      color,
-      slug: Object(external_lodash_["kebabCase"])(newColorName),
-      name: newColorName
-    }),
-    label: Object(external_wp_i18n_["__"])('Color name'),
-    placeholder: Object(external_wp_i18n_["__"])('Name'),
-    value: name
-  }), Object(external_wp_element_["createElement"])(build_module_button["a" /* default */], {
-    onClick: () => {
-      setIsEditingName(false);
-      setIsFocused(false);
-
-      if (onConfirm) {
-        onConfirm();
-      }
-    },
-    isPrimary: true
-  }, confirmLabel)), !isEditingName && Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(build_module_button["a" /* default */], {
-    className: classnames_default()({
-      'components-color-edit__hidden-control': !isShowingControls
-    }),
-    icon: edit["a" /* default */],
-    label: Object(external_wp_i18n_["__"])('Edit color name'),
-    onClick: () => setIsEditingName(true)
-  }), Object(external_wp_element_["createElement"])(build_module_button["a" /* default */], {
-    className: classnames_default()({
-      'components-color-edit__hidden-control': !isShowingControls
-    }),
-    icon: library_close["a" /* default */],
-    label: Object(external_wp_i18n_["__"])('Remove color'),
-    onClick: onRemove
-  })), Object(external_wp_element_["createElement"])(build_module_button["a" /* default */], {
-    className: classnames_default()({
-      'components-color-edit__hidden-control': !isShowingControls
-    }),
-    icon: isShowingAdvancedPanel ? chevron_up["a" /* default */] : chevron_down["a" /* default */],
-    label: Object(external_wp_i18n_["__"])('Additional color settings'),
-    onClick: () => {
-      if (isShowingAdvancedPanel) {
-        setIsFocused(false);
-      }
-
-      setIsShowingAdvancedPanel(!isShowingAdvancedPanel);
-    },
-    "aria-expanded": isShowingAdvancedPanel
-  })), onCancel && Object(external_wp_element_["createElement"])(build_module_button["a" /* default */], {
-    className: "components-color-edit__cancel-button",
-    onClick: onCancel
-  }, Object(external_wp_i18n_["__"])('Cancel')), isShowingAdvancedPanel && Object(external_wp_element_["createElement"])(text_control, {
-    className: "components-color-edit__slug-input",
-    onChange: newSlug => onChange({
-      color,
-      slug: newSlug,
-      name
-    }),
-    label: Object(external_wp_i18n_["__"])('Slug'),
-    value: slug
-  }));
-}
-
-function ColorInserter({
-  onInsert,
-  onCancel
-}) {
-  const [color, setColor] = Object(external_wp_element_["useState"])({
-    color: '#fff',
-    name: '',
-    slug: ''
-  });
-  return Object(external_wp_element_["createElement"])(ColorOption, {
-    color: color.color,
-    name: color.name,
-    slug: color.slug,
-    onChange: setColor,
-    confirmLabel: Object(external_wp_i18n_["__"])('Save'),
-    onConfirm: () => onInsert(color),
-    isEditingNameOnMount: true,
-    isEditingColorOnMount: true,
-    onCancel: onCancel
-  });
-}
-
-function ColorEdit({
-  colors,
-  onChange,
-  emptyUI,
-  immutableColorSlugs,
-  canReset = true
-}) {
-  const [isInsertingColor, setIsInsertingColor] = Object(external_wp_element_["useState"])(false);
-  return Object(external_wp_element_["createElement"])(base_control, null, Object(external_wp_element_["createElement"])("fieldset", null, Object(external_wp_element_["createElement"])("div", {
-    className: "components-color-edit__label-and-insert-container"
-  }, Object(external_wp_element_["createElement"])("legend", null, Object(external_wp_element_["createElement"])("div", null, Object(external_wp_element_["createElement"])(base_control.VisualLabel, null, Object(external_wp_i18n_["__"])('Color palette')))), !isInsertingColor && Object(external_wp_element_["createElement"])(build_module_button["a" /* default */], {
-    onClick: () => {
-      setIsInsertingColor(true);
-    },
-    className: "components-color-edit__insert-button",
-    icon: plus["a" /* default */]
-  })), Object(external_wp_element_["createElement"])("div", null, !Object(external_lodash_["isEmpty"])(colors) && colors.map((color, index) => {
-    return Object(external_wp_element_["createElement"])(ColorOption, {
-      key: index,
-      color: color.color,
-      name: color.name,
-      slug: color.slug,
-      immutableColorSlugs: immutableColorSlugs,
-      onChange: newColor => {
-        onChange(colors.map((currentColor, currentIndex) => {
-          if (currentIndex === index) {
-            return newColor;
-          }
-
-          return currentColor;
-        }));
-      },
-      onRemove: () => {
-        onChange(colors.filter((_currentColor, currentIndex) => {
-          if (currentIndex === index) {
-            return false;
-          }
-
-          return true;
-        }));
-      }
-    });
-  }), isInsertingColor && Object(external_wp_element_["createElement"])(ColorInserter, {
-    onInsert: newColor => {
-      setIsInsertingColor(false);
-      onChange([...(colors || []), newColor]);
-    },
-    onCancel: () => setIsInsertingColor(false)
-  }), !isInsertingColor && Object(external_lodash_["isEmpty"])(colors) && emptyUI), !!canReset && Object(external_wp_element_["createElement"])(build_module_button["a" /* default */], {
-    isSmall: true,
-    isSecondary: true,
-    className: "components-color-edit__reset-button",
-    onClick: () => onChange()
-  }, Object(external_wp_i18n_["__"])('Reset'))));
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/color-indicator/index.js
-
-
-
-/**
- * External dependencies
- */
-
-
-const ColorIndicator = ({
-  className,
-  colorValue,
-  ...props
-}) => Object(external_wp_element_["createElement"])("span", Object(esm_extends["a" /* default */])({
-  className: classnames_default()('component-color-indicator', className),
-  style: {
-    background: colorValue
-  }
-}, props));
-
-/* harmony default export */ var color_indicator = (ColorIndicator);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/color-palette/index.js
-
-
-/**
- * External dependencies
- */
-
-
-/**
- * WordPress dependencies
- */
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-function ColorPalette({
-  clearable = true,
-  className,
-  colors,
-  disableCustomColors = false,
-  onChange,
-  value
-}) {
-  const clearColor = Object(external_wp_element_["useCallback"])(() => onChange(undefined), [onChange]);
-  const colorOptions = Object(external_wp_element_["useMemo"])(() => {
-    return Object(external_lodash_["map"])(colors, ({
-      color,
-      name
-    }) => Object(external_wp_element_["createElement"])(CircularOptionPicker.Option, {
-      key: color,
-      isSelected: value === color,
-      selectedIconProps: value === color ? {
-        fill: tinycolor_default.a.mostReadable(color, ['#000', '#fff']).toHexString()
-      } : {},
-      tooltipText: name || // translators: %s: color hex code e.g: "#f00".
-      Object(external_wp_i18n_["sprintf"])(Object(external_wp_i18n_["__"])('Color code: %s'), color),
-      style: {
-        backgroundColor: color,
-        color
-      },
-      onClick: value === color ? clearColor : () => onChange(color),
-      "aria-label": name ? // translators: %s: The name of the color e.g: "vivid red".
-      Object(external_wp_i18n_["sprintf"])(Object(external_wp_i18n_["__"])('Color: %s'), name) : // translators: %s: color hex code e.g: "#f00".
-      Object(external_wp_i18n_["sprintf"])(Object(external_wp_i18n_["__"])('Color code: %s'), color)
-    }));
-  }, [colors, value, onChange, clearColor]);
-
-  const renderCustomColorPicker = () => Object(external_wp_element_["createElement"])(color_picker_ColorPicker, {
-    color: value,
-    onChangeComplete: color => onChange(color.hex),
-    disableAlpha: true
-  });
-
-  return Object(external_wp_element_["createElement"])(CircularOptionPicker, {
-    className: className,
-    options: colorOptions,
-    actions: Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, !disableCustomColors && Object(external_wp_element_["createElement"])(CircularOptionPicker.DropdownLinkAction, {
-      dropdownProps: {
-        renderContent: renderCustomColorPicker,
-        contentClassName: 'components-color-palette__picker'
-      },
-      buttonProps: {
-        'aria-label': Object(external_wp_i18n_["__"])('Custom color picker')
-      },
-      linkText: Object(external_wp_i18n_["__"])('Custom color')
-    }), !!clearable && Object(external_wp_element_["createElement"])(CircularOptionPicker.ButtonAction, {
-      onClick: clearColor
-    }, Object(external_wp_i18n_["__"])('Clear')))
-  });
-}
-
-// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/close-small.js
-var close_small = __webpack_require__("bWcr");
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/form-token-field/token-input.js
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-class token_input_TokenInput extends external_wp_element_["Component"] {
-  constructor() {
-    super(...arguments);
-    this.onChange = this.onChange.bind(this);
-    this.bindInput = this.bindInput.bind(this);
-  }
-
-  focus() {
-    this.input.focus();
-  }
-
-  hasFocus() {
-    return this.input === this.input.ownerDocument.activeElement;
-  }
-
-  bindInput(ref) {
-    this.input = ref;
-  }
-
-  onChange(event) {
-    this.props.onChange({
-      value: event.target.value
-    });
-  }
-
-  render() {
-    const {
-      value,
-      isExpanded,
-      instanceId,
-      selectedSuggestionIndex,
-      className,
-      ...props
-    } = this.props;
-    const size = value ? value.length + 1 : 0;
-    return Object(external_wp_element_["createElement"])("input", Object(esm_extends["a" /* default */])({
-      ref: this.bindInput,
-      id: `components-form-token-input-${instanceId}`,
-      type: "text"
-    }, props, {
-      value: value || '',
-      onChange: this.onChange,
-      size: size,
-      className: classnames_default()(className, 'components-form-token-field__input'),
-      autoComplete: "off",
-      role: "combobox",
-      "aria-expanded": isExpanded,
-      "aria-autocomplete": "list",
-      "aria-owns": isExpanded ? `components-form-token-suggestions-${instanceId}` : undefined,
-      "aria-activedescendant": selectedSuggestionIndex !== -1 ? `components-form-token-suggestions-${instanceId}-${selectedSuggestionIndex}` : undefined,
-      "aria-describedby": `components-form-token-suggestions-howto-${instanceId}`
-    }));
-  }
-
-}
-
-/* harmony default export */ var token_input = (token_input_TokenInput);
-
-// EXTERNAL MODULE: ./node_modules/dom-scroll-into-view/lib/index.js
-var lib = __webpack_require__("9Do8");
-var lib_default = /*#__PURE__*/__webpack_require__.n(lib);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/form-token-field/suggestions-list.js
-
-
-/**
- * External dependencies
- */
-
-
-
-/**
- * WordPress dependencies
- */
-
-
-
-
-class suggestions_list_SuggestionsList extends external_wp_element_["Component"] {
-  constructor() {
-    super(...arguments);
-    this.handleMouseDown = this.handleMouseDown.bind(this);
-    this.bindList = this.bindList.bind(this);
-  }
-
-  componentDidUpdate() {
-    // only have to worry about scrolling selected suggestion into view
-    // when already expanded
-    if (this.props.selectedIndex > -1 && this.props.scrollIntoView && this.list.children[this.props.selectedIndex]) {
-      this.scrollingIntoView = true;
-      lib_default()(this.list.children[this.props.selectedIndex], this.list, {
-        onlyScrollIfNeeded: true
-      });
-      this.props.setTimeout(() => {
-        this.scrollingIntoView = false;
-      }, 100);
-    }
-  }
-
-  bindList(ref) {
-    this.list = ref;
-  }
-
-  handleHover(suggestion) {
-    return () => {
-      if (!this.scrollingIntoView) {
-        this.props.onHover(suggestion);
-      }
-    };
-  }
-
-  handleClick(suggestion) {
-    return () => {
-      this.props.onSelect(suggestion);
-    };
-  }
-
-  handleMouseDown(e) {
-    // By preventing default here, we will not lose focus of <input> when clicking a suggestion
-    e.preventDefault();
-  }
-
-  computeSuggestionMatch(suggestion) {
-    const match = this.props.displayTransform(this.props.match || '').toLocaleLowerCase();
-
-    if (match.length === 0) {
-      return null;
-    }
-
-    suggestion = this.props.displayTransform(suggestion);
-    const indexOfMatch = suggestion.toLocaleLowerCase().indexOf(match);
-    return {
-      suggestionBeforeMatch: suggestion.substring(0, indexOfMatch),
-      suggestionMatch: suggestion.substring(indexOfMatch, indexOfMatch + match.length),
-      suggestionAfterMatch: suggestion.substring(indexOfMatch + match.length)
-    };
-  }
-
-  render() {
-    // We set `tabIndex` here because otherwise Firefox sets focus on this
-    // div when tabbing off of the input in `TokenField` -- not really sure
-    // why, since usually a div isn't focusable by default
-    // TODO does this still apply now that it's a <ul> and not a <div>?
-    return Object(external_wp_element_["createElement"])("ul", {
-      ref: this.bindList,
-      className: "components-form-token-field__suggestions-list",
-      id: `components-form-token-suggestions-${this.props.instanceId}`,
-      role: "listbox"
-    }, Object(external_lodash_["map"])(this.props.suggestions, (suggestion, index) => {
-      const match = this.computeSuggestionMatch(suggestion);
-      const classeName = classnames_default()('components-form-token-field__suggestion', {
-        'is-selected': index === this.props.selectedIndex
-      });
-      /* eslint-disable jsx-a11y/click-events-have-key-events */
-
-      return Object(external_wp_element_["createElement"])("li", {
-        id: `components-form-token-suggestions-${this.props.instanceId}-${index}`,
-        role: "option",
-        className: classeName,
-        key: suggestion !== null && suggestion !== void 0 && suggestion.value ? suggestion.value : this.props.displayTransform(suggestion),
-        onMouseDown: this.handleMouseDown,
-        onClick: this.handleClick(suggestion),
-        onMouseEnter: this.handleHover(suggestion),
-        "aria-selected": index === this.props.selectedIndex
-      }, match ? Object(external_wp_element_["createElement"])("span", {
-        "aria-label": this.props.displayTransform(suggestion)
-      }, match.suggestionBeforeMatch, Object(external_wp_element_["createElement"])("strong", {
-        className: "components-form-token-field__suggestion-match"
-      }, match.suggestionMatch), match.suggestionAfterMatch) : this.props.displayTransform(suggestion));
-      /* eslint-enable jsx-a11y/click-events-have-key-events */
-    }));
-  }
-
-}
-
-suggestions_list_SuggestionsList.defaultProps = {
-  match: '',
-  onHover: () => {},
-  onSelect: () => {},
-  suggestions: Object.freeze([])
-};
-/* harmony default export */ var suggestions_list = (Object(external_wp_compose_["withSafeTimeout"])(suggestions_list_SuggestionsList));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/higher-order/with-focus-outside/index.js
-
-
-
-/**
- * WordPress dependencies
- */
-
-
-/* harmony default export */ var with_focus_outside = (Object(external_wp_compose_["createHigherOrderComponent"])(WrappedComponent => props => {
-  const [handleFocusOutside, setHandleFocusOutside] = Object(external_wp_element_["useState"])();
-  const bindFocusOutsideHandler = Object(external_wp_element_["useCallback"])(node => setHandleFocusOutside(() => node !== null && node !== void 0 && node.handleFocusOutside ? node.handleFocusOutside.bind(node) : undefined), []);
-  return Object(external_wp_element_["createElement"])("div", Object(external_wp_compose_["__experimentalUseFocusOutside"])(handleFocusOutside), Object(external_wp_element_["createElement"])(WrappedComponent, Object(esm_extends["a" /* default */])({
-    ref: bindFocusOutsideHandler
-  }, props)));
-}, 'withFocusOutside'));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/combobox-control/index.js
-
-
-/**
- * External dependencies
- */
-
-
-/**
- * WordPress dependencies
- */
-
-
-
-
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-
-
-const DetectOutside = with_focus_outside(class extends external_wp_element_["Component"] {
-  handleFocusOutside(event) {
-    this.props.onFocusOutside(event);
-  }
-
-  render() {
-    return this.props.children;
-  }
-
-});
-
-function ComboboxControl({
-  value,
-  label,
-  options,
-  onChange,
-  onFilterValueChange = external_lodash_["noop"],
-  hideLabelFromVision,
-  help,
-  allowReset = true,
-  className,
-  messages = {
-    selected: Object(external_wp_i18n_["__"])('Item selected.')
-  }
-}) {
-  var _currentOption$label;
-
-  const instanceId = Object(external_wp_compose_["useInstanceId"])(ComboboxControl);
-  const [selectedSuggestion, setSelectedSuggestion] = Object(external_wp_element_["useState"])(null);
-  const [isExpanded, setIsExpanded] = Object(external_wp_element_["useState"])(false);
-  const [inputValue, setInputValue] = Object(external_wp_element_["useState"])('');
-  const inputContainer = Object(external_wp_element_["useRef"])();
-  const currentOption = options.find(option => option.value === value);
-  const currentLabel = (_currentOption$label = currentOption === null || currentOption === void 0 ? void 0 : currentOption.label) !== null && _currentOption$label !== void 0 ? _currentOption$label : '';
-  const matchingSuggestions = Object(external_wp_element_["useMemo"])(() => {
-    const startsWithMatch = [];
-    const containsMatch = [];
-    const match = Object(external_lodash_["deburr"])(inputValue.toLocaleLowerCase());
-    options.forEach(option => {
-      const index = Object(external_lodash_["deburr"])(option.label).toLocaleLowerCase().indexOf(match);
-
-      if (index === 0) {
-        startsWithMatch.push(option);
-      } else if (index > 0) {
-        containsMatch.push(option);
-      }
-    });
-    return startsWithMatch.concat(containsMatch);
-  }, [inputValue, options, value]);
-
-  const onSuggestionSelected = newSelectedSuggestion => {
-    onChange(newSelectedSuggestion.value);
-    Object(external_wp_a11y_["speak"])(messages.selected, 'assertive');
-    setSelectedSuggestion(newSelectedSuggestion);
-    setInputValue('');
-    setIsExpanded(false);
-  };
-
-  const handleArrowNavigation = (offset = 1) => {
-    const index = matchingSuggestions.indexOf(selectedSuggestion);
-    let nextIndex = index + offset;
-
-    if (nextIndex < 0) {
-      nextIndex = matchingSuggestions.length - 1;
-    } else if (nextIndex >= matchingSuggestions.length) {
-      nextIndex = 0;
-    }
-
-    setSelectedSuggestion(matchingSuggestions[nextIndex]);
-    setIsExpanded(true);
-  };
-
-  const onKeyDown = event => {
-    let preventDefault = false;
-
-    switch (event.keyCode) {
-      case external_wp_keycodes_["ENTER"]:
-        if (selectedSuggestion) {
-          onSuggestionSelected(selectedSuggestion);
-          preventDefault = true;
-        }
-
-        break;
-
-      case external_wp_keycodes_["UP"]:
-        handleArrowNavigation(-1);
-        preventDefault = true;
-        break;
-
-      case external_wp_keycodes_["DOWN"]:
-        handleArrowNavigation(1);
-        preventDefault = true;
-        break;
-
-      case external_wp_keycodes_["ESCAPE"]:
-        setIsExpanded(false);
-        setSelectedSuggestion(null);
-        preventDefault = true;
-        event.stopPropagation();
-        break;
-
-      default:
-        break;
-    }
-
-    if (preventDefault) {
-      event.preventDefault();
-    }
-  };
-
-  const onFocus = () => {
-    setIsExpanded(true);
-    onFilterValueChange('');
-    setInputValue('');
-  };
-
-  const onFocusOutside = () => {
-    setIsExpanded(false);
-  };
-
-  const onInputChange = event => {
-    const text = event.value;
-    setInputValue(text);
-    onFilterValueChange(text);
-    setIsExpanded(true);
-  };
-
-  const handleOnReset = () => {
-    onChange(null);
-    inputContainer.current.input.focus();
-  }; // Announcements
-
-
-  Object(external_wp_element_["useEffect"])(() => {
-    const hasMatchingSuggestions = matchingSuggestions.length > 0;
-
-    if (isExpanded) {
-      const message = hasMatchingSuggestions ? Object(external_wp_i18n_["sprintf"])(
-      /* translators: %d: number of results. */
-      Object(external_wp_i18n_["_n"])('%d result found, use up and down arrow keys to navigate.', '%d results found, use up and down arrow keys to navigate.', matchingSuggestions.length), matchingSuggestions.length) : Object(external_wp_i18n_["__"])('No results.');
-      Object(external_wp_a11y_["speak"])(message, 'polite');
-    }
-  }, [matchingSuggestions, isExpanded]); // Disable reason: There is no appropriate role which describes the
-  // input container intended accessible usability.
-  // TODO: Refactor click detection to use blur to stop propagation.
-
-  /* eslint-disable jsx-a11y/no-static-element-interactions */
-
-  return Object(external_wp_element_["createElement"])(DetectOutside, {
-    onFocusOutside: onFocusOutside
-  }, Object(external_wp_element_["createElement"])(base_control, {
-    className: classnames_default()(className, 'components-combobox-control'),
-    tabIndex: "-1",
-    label: label,
-    id: `components-form-token-input-${instanceId}`,
-    hideLabelFromVision: hideLabelFromVision,
-    help: help
-  }, Object(external_wp_element_["createElement"])("div", {
-    className: "components-combobox-control__suggestions-container",
-    tabIndex: "-1",
-    onKeyDown: onKeyDown
-  }, Object(external_wp_element_["createElement"])(flex_component, null, Object(external_wp_element_["createElement"])(flex_block_component, null, Object(external_wp_element_["createElement"])(token_input, {
-    className: "components-combobox-control__input",
-    instanceId: instanceId,
-    ref: inputContainer,
-    value: isExpanded ? inputValue : currentLabel,
-    "aria-label": currentLabel ? `${currentLabel}, ${label}` : null,
-    onFocus: onFocus,
-    isExpanded: isExpanded,
-    selectedSuggestionIndex: matchingSuggestions.indexOf(selectedSuggestion),
-    onChange: onInputChange
-  })), allowReset && Object(external_wp_element_["createElement"])(flex_item_component, null, Object(external_wp_element_["createElement"])(build_module_button["a" /* default */], {
-    className: "components-combobox-control__reset",
-    icon: close_small["a" /* default */],
-    disabled: !value,
-    onClick: handleOnReset,
-    label: Object(external_wp_i18n_["__"])('Reset')
-  }))), isExpanded && Object(external_wp_element_["createElement"])(suggestions_list, {
-    instanceId: instanceId,
-    match: {
-      label: inputValue
-    },
-    displayTransform: suggestion => suggestion.label,
-    suggestions: matchingSuggestions,
-    selectedIndex: matchingSuggestions.indexOf(selectedSuggestion),
-    onHover: setSelectedSuggestion,
-    onSelect: onSuggestionSelected,
-    scrollIntoView: true
-  }))));
-  /* eslint-enable jsx-a11y/no-static-element-interactions */
-}
-
-/* harmony default export */ var combobox_control = (ComboboxControl);
-
-// CONCATENATED MODULE: ./node_modules/downshift/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js
-function objectWithoutPropertiesLoose_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;
-}
-// CONCATENATED MODULE: ./node_modules/downshift/node_modules/@babel/runtime/helpers/esm/extends.js
-function extends_extends() {
-  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_extends.apply(this, arguments);
-}
-// CONCATENATED MODULE: ./node_modules/downshift/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js
-function assertThisInitialized_assertThisInitialized(self) {
-  if (self === void 0) {
-    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
-  }
-
-  return self;
-}
-// CONCATENATED MODULE: ./node_modules/downshift/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js
-function setPrototypeOf_setPrototypeOf(o, p) {
-  setPrototypeOf_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
-    o.__proto__ = p;
-    return o;
-  };
-
-  return setPrototypeOf_setPrototypeOf(o, p);
-}
-// CONCATENATED MODULE: ./node_modules/downshift/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js
-
-function inheritsLoose_inheritsLoose(subClass, superClass) {
-  subClass.prototype = Object.create(superClass.prototype);
-  subClass.prototype.constructor = subClass;
-  setPrototypeOf_setPrototypeOf(subClass, superClass);
-}
-// EXTERNAL MODULE: ./node_modules/prop-types/index.js
-var prop_types = __webpack_require__("17x9");
-var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
-
-// EXTERNAL MODULE: ./node_modules/downshift/node_modules/react-is/index.js
-var react_is = __webpack_require__("cD2C");
-
-// CONCATENATED MODULE: ./node_modules/compute-scroll-into-view/dist/index.module.js
-function t(t){return"object"==typeof t&&null!=t&&1===t.nodeType}function index_module_e(t,e){return(!e||"hidden"!==t)&&"visible"!==t&&"clip"!==t}function n(t,n){if(t.clientHeight<t.scrollHeight||t.clientWidth<t.scrollWidth){var r=getComputedStyle(t,null);return index_module_e(r.overflowY,n)||index_module_e(r.overflowX,n)||function(t){var e=function(t){if(!t.ownerDocument||!t.ownerDocument.defaultView)return null;try{return t.ownerDocument.defaultView.frameElement}catch(t){return null}}(t);return!!e&&(e.clientHeight<t.scrollHeight||e.clientWidth<t.scrollWidth)}(t)}return!1}function index_module_r(t,e,n,r,i,o,l,d){return o<t&&l>e||o>t&&l<e?0:o<=t&&d<=n||l>=e&&d>=n?o-t-r:l>e&&d<n||o<t&&d>n?l-e+i:0}/* harmony default export */ var index_module = (function(e,i){var o=window,l=i.scrollMode,d=i.block,u=i.inline,h=i.boundary,a=i.skipOverflowHiddenElements,c="function"==typeof h?h:function(t){return t!==h};if(!t(e))throw new TypeError("Invalid target");for(var f=document.scrollingElement||document.documentElement,s=[],p=e;t(p)&&c(p);){if((p=p.parentElement)===f){s.push(p);break}null!=p&&p===document.body&&n(p)&&!n(document.documentElement)||null!=p&&n(p,a)&&s.push(p)}for(var m=o.visualViewport?o.visualViewport.width:innerWidth,g=o.visualViewport?o.visualViewport.height:innerHeight,w=window.scrollX||pageXOffset,v=window.scrollY||pageYOffset,W=e.getBoundingClientRect(),b=W.height,H=W.width,y=W.top,E=W.right,M=W.bottom,V=W.left,x="start"===d||"nearest"===d?y:"end"===d?M:y+b/2,I="center"===u?V+H/2:"end"===u?E:V,C=[],T=0;T<s.length;T++){var k=s[T],B=k.getBoundingClientRect(),D=B.height,O=B.width,R=B.top,X=B.right,Y=B.bottom,L=B.left;if("if-needed"===l&&y>=0&&V>=0&&M<=g&&E<=m&&y>=R&&M<=Y&&V>=L&&E<=X)return C;var S=getComputedStyle(k),j=parseInt(S.borderLeftWidth,10),q=parseInt(S.borderTopWidth,10),z=parseInt(S.borderRightWidth,10),A=parseInt(S.borderBottomWidth,10),F=0,G=0,J="offsetWidth"in k?k.offsetWidth-k.clientWidth-j-z:0,K="offsetHeight"in k?k.offsetHeight-k.clientHeight-q-A:0;if(f===k)F="start"===d?x:"end"===d?x-g:"nearest"===d?index_module_r(v,v+g,g,q,A,v+x,v+x+b,b):x-g/2,G="start"===u?I:"center"===u?I-m/2:"end"===u?I-m:index_module_r(w,w+m,m,j,z,w+I,w+I+H,H),F=Math.max(0,F+v),G=Math.max(0,G+w);else{F="start"===d?x-R-q:"end"===d?x-Y+A+K:"nearest"===d?index_module_r(R,Y,D,q,A+K,x,x+b,b):x-(R+D/2)+K/2,G="start"===u?I-L-j:"center"===u?I-(L+O/2)+J/2:"end"===u?I-X+z+J:index_module_r(L,X,O,j,z+J,I,I+H,H);var N=k.scrollLeft,P=k.scrollTop;x+=P-(F=Math.max(0,Math.min(P+F,k.scrollHeight-D+K))),I+=N-(G=Math.max(0,Math.min(N+G,k.scrollWidth-O+J)))}C.push({el:k,top:F,left:G})}return C});
-
-// CONCATENATED MODULE: ./node_modules/downshift/node_modules/tslib/tslib.es6.js
-/*! *****************************************************************************
-Copyright (c) Microsoft Corporation.
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-***************************************************************************** */
-/* global Reflect, Promise */
-
-var extendStatics = function(d, b) {
-    extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
-    return extendStatics(d, b);
-};
-
-function __extends(d, b) {
-    if (typeof b !== "function" && b !== null)
-        throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-    extendStatics(d, b);
-    function __() { this.constructor = d; }
-    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-}
-
-var __assign = function() {
-    __assign = Object.assign || function __assign(t) {
-        for (var s, i = 1, n = arguments.length; i < n; i++) {
-            s = arguments[i];
-            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
-        }
-        return t;
-    }
-    return __assign.apply(this, arguments);
-}
-
-function __rest(s, e) {
-    var t = {};
-    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
-        t[p] = s[p];
-    if (s != null && typeof Object.getOwnPropertySymbols === "function")
-        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
-            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
-                t[p[i]] = s[p[i]];
-        }
-    return t;
-}
-
-function __decorate(decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-}
-
-function __param(paramIndex, decorator) {
-    return function (target, key) { decorator(target, key, paramIndex); }
-}
-
-function __metadata(metadataKey, metadataValue) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
-}
-
-function __awaiter(thisArg, _arguments, P, generator) {
-    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
-    return new (P || (P = Promise))(function (resolve, reject) {
-        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
-        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
-        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
-        step((generator = generator.apply(thisArg, _arguments || [])).next());
-    });
-}
-
-function __generator(thisArg, body) {
-    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
-    return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
-    function verb(n) { return function (v) { return step([n, v]); }; }
-    function step(op) {
-        if (f) throw new TypeError("Generator is already executing.");
-        while (_) try {
-            if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
-            if (y = 0, t) op = [op[0] & 2, t.value];
-            switch (op[0]) {
-                case 0: case 1: t = op; break;
-                case 4: _.label++; return { value: op[1], done: false };
-                case 5: _.label++; y = op[1]; op = [0]; continue;
-                case 7: op = _.ops.pop(); _.trys.pop(); continue;
-                default:
-                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
-                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
-                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
-                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
-                    if (t[2]) _.ops.pop();
-                    _.trys.pop(); continue;
-            }
-            op = body.call(thisArg, _);
-        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
-        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
-    }
-}
-
-var __createBinding = Object.create ? (function(o, m, k, k2) {
-    if (k2 === undefined) k2 = k;
-    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
-}) : (function(o, m, k, k2) {
-    if (k2 === undefined) k2 = k;
-    o[k2] = m[k];
-});
-
-function __exportStar(m, o) {
-    for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);
-}
-
-function __values(o) {
-    var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
-    if (m) return m.call(o);
-    if (o && typeof o.length === "number") return {
-        next: function () {
-            if (o && i >= o.length) o = void 0;
-            return { value: o && o[i++], done: !o };
-        }
-    };
-    throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
-}
-
-function __read(o, n) {
-    var m = typeof Symbol === "function" && o[Symbol.iterator];
-    if (!m) return o;
-    var i = m.call(o), r, ar = [], e;
-    try {
-        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
-    }
-    catch (error) { e = { error: error }; }
-    finally {
-        try {
-            if (r && !r.done && (m = i["return"])) m.call(i);
-        }
-        finally { if (e) throw e.error; }
-    }
-    return ar;
-}
-
-/** @deprecated */
-function __spread() {
-    for (var ar = [], i = 0; i < arguments.length; i++)
-        ar = ar.concat(__read(arguments[i]));
-    return ar;
-}
-
-/** @deprecated */
-function __spreadArrays() {
-    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
-    for (var r = Array(s), k = 0, i = 0; i < il; i++)
-        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
-            r[k] = a[j];
-    return r;
-}
-
-function __spreadArray(to, from, pack) {
-    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
-        if (ar || !(i in from)) {
-            if (!ar) ar = Array.prototype.slice.call(from, 0, i);
-            ar[i] = from[i];
-        }
-    }
-    return to.concat(ar || Array.prototype.slice.call(from));
-}
-
-function __await(v) {
-    return this instanceof __await ? (this.v = v, this) : new __await(v);
-}
-
-function __asyncGenerator(thisArg, _arguments, generator) {
-    if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
-    var g = generator.apply(thisArg, _arguments || []), i, q = [];
-    return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
-    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
-    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
-    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
-    function fulfill(value) { resume("next", value); }
-    function reject(value) { resume("throw", value); }
-    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
-}
-
-function __asyncDelegator(o) {
-    var i, p;
-    return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
-    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }
-}
-
-function __asyncValues(o) {
-    if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
-    var m = o[Symbol.asyncIterator], i;
-    return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
-    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
-    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
-}
-
-function __makeTemplateObject(cooked, raw) {
-    if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
-    return cooked;
-};
-
-var __setModuleDefault = Object.create ? (function(o, v) {
-    Object.defineProperty(o, "default", { enumerable: true, value: v });
-}) : function(o, v) {
-    o["default"] = v;
-};
-
-function __importStar(mod) {
-    if (mod && mod.__esModule) return mod;
-    var result = {};
-    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
-    __setModuleDefault(result, mod);
-    return result;
-}
-
-function __importDefault(mod) {
-    return (mod && mod.__esModule) ? mod : { default: mod };
-}
-
-function __classPrivateFieldGet(receiver, state, kind, f) {
-    if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
-    if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
-    return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
-}
-
-function __classPrivateFieldSet(receiver, state, value, kind, f) {
-    if (kind === "m") throw new TypeError("Private method is not writable");
-    if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
-    if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
-    return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
-}
-
-// CONCATENATED MODULE: ./node_modules/downshift/dist/downshift.esm.js
-
-
-
-
-
-
-
-
-
-
-var idCounter = 0;
-/**
- * Accepts a parameter and returns it if it's a function
- * or a noop function if it's not. This allows us to
- * accept a callback, but not worry about it if it's not
- * passed.
- * @param {Function} cb the callback
- * @return {Function} a function
- */
-
-function cbToCb(cb) {
-  return typeof cb === 'function' ? cb : downshift_esm_noop;
-}
-
-function downshift_esm_noop() {}
-/**
- * Scroll node into view if necessary
- * @param {HTMLElement} node the element that should scroll into view
- * @param {HTMLElement} menuNode the menu element of the component
- */
-
-
-function downshift_esm_scrollIntoView(node, menuNode) {
-  if (!node) {
-    return;
-  }
-
-  var actions = index_module(node, {
-    boundary: menuNode,
-    block: 'nearest',
-    scrollMode: 'if-needed'
-  });
-  actions.forEach(function (_ref) {
-    var el = _ref.el,
-        top = _ref.top,
-        left = _ref.left;
-    el.scrollTop = top;
-    el.scrollLeft = left;
-  });
-}
-/**
- * @param {HTMLElement} parent the parent node
- * @param {HTMLElement} child the child node
- * @param {Window} environment The window context where downshift renders.
- * @return {Boolean} whether the parent is the child or the child is in the parent
- */
-
-
-function isOrContainsNode(parent, child, environment) {
-  var result = parent === child || child instanceof environment.Node && parent.contains && parent.contains(child);
-  return result;
-}
-/**
- * Simple debounce implementation. Will call the given
- * function once after the time given has passed since
- * it was last called.
- * @param {Function} fn the function to call after the time
- * @param {Number} time the time to wait
- * @return {Function} the debounced function
- */
-
-
-function debounce(fn, time) {
-  var timeoutId;
-
-  function cancel() {
-    if (timeoutId) {
-      clearTimeout(timeoutId);
-    }
-  }
-
-  function wrapper() {
-    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
-      args[_key] = arguments[_key];
-    }
-
-    cancel();
-    timeoutId = setTimeout(function () {
-      timeoutId = null;
-      fn.apply(void 0, args);
-    }, time);
-  }
-
-  wrapper.cancel = cancel;
-  return wrapper;
-}
-/**
- * This is intended to be used to compose event handlers.
- * They are executed in order until one of them sets
- * `event.preventDownshiftDefault = true`.
- * @param {...Function} fns the event handler functions
- * @return {Function} the event handler to add to an element
- */
-
-
-function callAllEventHandlers() {
-  for (var _len2 = arguments.length, fns = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
-    fns[_key2] = arguments[_key2];
-  }
-
-  return function (event) {
-    for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {
-      args[_key3 - 1] = arguments[_key3];
-    }
-
-    return fns.some(function (fn) {
-      if (fn) {
-        fn.apply(void 0, [event].concat(args));
-      }
-
-      return event.preventDownshiftDefault || event.hasOwnProperty('nativeEvent') && event.nativeEvent.preventDownshiftDefault;
-    });
-  };
-}
-
-function handleRefs() {
-  for (var _len4 = arguments.length, refs = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
-    refs[_key4] = arguments[_key4];
-  }
-
-  return function (node) {
-    refs.forEach(function (ref) {
-      if (typeof ref === 'function') {
-        ref(node);
-      } else if (ref) {
-        ref.current = node;
-      }
-    });
-  };
-}
-/**
- * This generates a unique ID for an instance of Downshift
- * @return {String} the unique ID
- */
-
-
-function downshift_esm_generateId() {
-  return String(idCounter++);
-}
-/**
- * Resets idCounter to 0. Used for SSR.
- */
-
-
-function resetIdCounter() {
-  idCounter = 0;
-}
-/**
- * Default implementation for status message. Only added when menu is open.
- * Will specify if there are results in the list, and if so, how many,
- * and what keys are relevant.
- *
- * @param {Object} param the downshift state and other relevant properties
- * @return {String} the a11y status message
- */
-
-
-function getA11yStatusMessage$1(_ref2) {
-  var isOpen = _ref2.isOpen,
-      resultCount = _ref2.resultCount,
-      previousResultCount = _ref2.previousResultCount;
-
-  if (!isOpen) {
-    return '';
-  }
-
-  if (!resultCount) {
-    return 'No results are available.';
-  }
-
-  if (resultCount !== previousResultCount) {
-    return resultCount + " result" + (resultCount === 1 ? ' is' : 's are') + " available, use up and down arrow keys to navigate. Press Enter key to select.";
-  }
-
-  return '';
-}
-/**
- * Takes an argument and if it's an array, returns the first item in the array
- * otherwise returns the argument
- * @param {*} arg the maybe-array
- * @param {*} defaultValue the value if arg is falsey not defined
- * @return {*} the arg or it's first item
- */
-
-
-function unwrapArray(arg, defaultValue) {
-  arg = Array.isArray(arg) ?
-  /* istanbul ignore next (preact) */
-  arg[0] : arg;
-
-  if (!arg && defaultValue) {
-    return defaultValue;
-  } else {
-    return arg;
-  }
-}
-/**
- * @param {Object} element (P)react element
- * @return {Boolean} whether it's a DOM element
- */
-
-
-function isDOMElement(element) {
-
-
-  return typeof element.type === 'string';
-}
-/**
- * @param {Object} element (P)react element
- * @return {Object} the props
- */
-
-
-function getElementProps(element) {
-
-  return element.props;
-}
-/**
- * Throws a helpful error message for required properties. Useful
- * to be used as a default in destructuring or object params.
- * @param {String} fnName the function name
- * @param {String} propName the prop name
- */
-
-
-function requiredProp(fnName, propName) {
-  // eslint-disable-next-line no-console
-  console.error("The property \"" + propName + "\" is required in \"" + fnName + "\"");
-}
-
-var stateKeys = ['highlightedIndex', 'inputValue', 'isOpen', 'selectedItem', 'type'];
-/**
- * @param {Object} state the state object
- * @return {Object} state that is relevant to downshift
- */
-
-function pickState(state) {
-  if (state === void 0) {
-    state = {};
-  }
-
-  var result = {};
-  stateKeys.forEach(function (k) {
-    if (state.hasOwnProperty(k)) {
-      result[k] = state[k];
-    }
-  });
-  return result;
-}
-/**
- * This will perform a shallow merge of the given state object
- * with the state coming from props
- * (for the controlled component scenario)
- * This is used in state updater functions so they're referencing
- * the right state regardless of where it comes from.
- *
- * @param {Object} state The state of the component/hook.
- * @param {Object} props The props that may contain controlled values.
- * @returns {Object} The merged controlled state.
- */
-
-
-function getState(state, props) {
-  return Object.keys(state).reduce(function (prevState, key) {
-    prevState[key] = isControlledProp(props, key) ? props[key] : state[key];
-    return prevState;
-  }, {});
-}
-/**
- * This determines whether a prop is a "controlled prop" meaning it is
- * state which is controlled by the outside of this component rather
- * than within this component.
- *
- * @param {Object} props The props that may contain controlled values.
- * @param {String} key the key to check
- * @return {Boolean} whether it is a controlled controlled prop
- */
-
-
-function isControlledProp(props, key) {
-  return props[key] !== undefined;
-}
-/**
- * Normalizes the 'key' property of a KeyboardEvent in IE/Edge
- * @param {Object} event a keyboardEvent object
- * @return {String} keyboard key
- */
-
-
-function normalizeArrowKey(event) {
-  var key = event.key,
-      keyCode = event.keyCode;
-  /* istanbul ignore next (ie) */
-
-  if (keyCode >= 37 && keyCode <= 40 && key.indexOf('Arrow') !== 0) {
-    return "Arrow" + key;
-  }
-
-  return key;
-}
-/**
- * Simple check if the value passed is object literal
- * @param {*} obj any things
- * @return {Boolean} whether it's object literal
- */
-
-
-function isPlainObject(obj) {
-  return Object.prototype.toString.call(obj) === '[object Object]';
-}
-/**
- * Returns the new index in the list, in a circular way. If next value is out of bonds from the total,
- * it will wrap to either 0 or itemCount - 1.
- *
- * @param {number} moveAmount Number of positions to move. Negative to move backwards, positive forwards.
- * @param {number} baseIndex The initial position to move from.
- * @param {number} itemCount The total number of items.
- * @param {Function} getItemNodeFromIndex Used to check if item is disabled.
- * @param {boolean} circular Specify if navigation is circular. Default is true.
- * @returns {number} The new index after the move.
- */
-
-
-function getNextWrappingIndex(moveAmount, baseIndex, itemCount, getItemNodeFromIndex, circular) {
-  if (circular === void 0) {
-    circular = true;
-  }
-
-  if (itemCount === 0) {
-    return -1;
-  }
-
-  var itemsLastIndex = itemCount - 1;
-
-  if (typeof baseIndex !== 'number' || baseIndex < 0 || baseIndex >= itemCount) {
-    baseIndex = moveAmount > 0 ? -1 : itemsLastIndex + 1;
-  }
-
-  var newIndex = baseIndex + moveAmount;
-
-  if (newIndex < 0) {
-    newIndex = circular ? itemsLastIndex : 0;
-  } else if (newIndex > itemsLastIndex) {
-    newIndex = circular ? 0 : itemsLastIndex;
-  }
-
-  var nonDisabledNewIndex = getNextNonDisabledIndex(moveAmount, newIndex, itemCount, getItemNodeFromIndex, circular);
-
-  if (nonDisabledNewIndex === -1) {
-    return baseIndex >= itemCount ? -1 : baseIndex;
-  }
-
-  return nonDisabledNewIndex;
-}
-/**
- * Returns the next index in the list of an item that is not disabled.
- *
- * @param {number} moveAmount Number of positions to move. Negative to move backwards, positive forwards.
- * @param {number} baseIndex The initial position to move from.
- * @param {number} itemCount The total number of items.
- * @param {Function} getItemNodeFromIndex Used to check if item is disabled.
- * @param {boolean} circular Specify if navigation is circular. Default is true.
- * @returns {number} The new index. Returns baseIndex if item is not disabled. Returns next non-disabled item otherwise. If no non-disabled found it will return -1.
- */
-
-
-function getNextNonDisabledIndex(moveAmount, baseIndex, itemCount, getItemNodeFromIndex, circular) {
-  var currentElementNode = getItemNodeFromIndex(baseIndex);
-
-  if (!currentElementNode || !currentElementNode.hasAttribute('disabled')) {
-    return baseIndex;
-  }
-
-  if (moveAmount > 0) {
-    for (var index = baseIndex + 1; index < itemCount; index++) {
-      if (!getItemNodeFromIndex(index).hasAttribute('disabled')) {
-        return index;
-      }
-    }
-  } else {
-    for (var _index = baseIndex - 1; _index >= 0; _index--) {
-      if (!getItemNodeFromIndex(_index).hasAttribute('disabled')) {
-        return _index;
-      }
-    }
-  }
-
-  if (circular) {
-    return moveAmount > 0 ? getNextNonDisabledIndex(1, 0, itemCount, getItemNodeFromIndex, false) : getNextNonDisabledIndex(-1, itemCount - 1, itemCount, getItemNodeFromIndex, false);
-  }
-
-  return -1;
-}
-/**
- * Checks if event target is within the downshift elements.
- *
- * @param {EventTarget} target Target to check.
- * @param {HTMLElement[]} downshiftElements The elements that form downshift (list, toggle button etc).
- * @param {Window} environment The window context where downshift renders.
- * @param {boolean} checkActiveElement Whether to also check activeElement.
- *
- * @returns {boolean} Whether or not the target is within downshift elements.
- */
-
-
-function targetWithinDownshift(target, downshiftElements, environment, checkActiveElement) {
-  if (checkActiveElement === void 0) {
-    checkActiveElement = true;
-  }
-
-  return downshiftElements.some(function (contextNode) {
-    return contextNode && (isOrContainsNode(contextNode, target, environment) || checkActiveElement && isOrContainsNode(contextNode, environment.document.activeElement, environment));
-  });
-} // eslint-disable-next-line import/no-mutable-exports
-
-
-var validateControlledUnchanged = downshift_esm_noop;
-/* istanbul ignore next */
-
-if (false) {}
-
-var cleanupStatus = debounce(function (documentProp) {
-  getStatusDiv(documentProp).textContent = '';
-}, 500);
-/**
- * @param {String} status the status message
- * @param {Object} documentProp document passed by the user.
- */
-
-function setStatus(status, documentProp) {
-  var div = getStatusDiv(documentProp);
-
-  if (!status) {
-    return;
-  }
-
-  div.textContent = status;
-  cleanupStatus(documentProp);
-}
-/**
- * Get the status node or create it if it does not already exist.
- * @param {Object} documentProp document passed by the user.
- * @return {HTMLElement} the status node.
- */
-
-
-function getStatusDiv(documentProp) {
-  if (documentProp === void 0) {
-    documentProp = document;
-  }
-
-  var statusDiv = documentProp.getElementById('a11y-status-message');
-
-  if (statusDiv) {
-    return statusDiv;
-  }
-
-  statusDiv = documentProp.createElement('div');
-  statusDiv.setAttribute('id', 'a11y-status-message');
-  statusDiv.setAttribute('role', 'status');
-  statusDiv.setAttribute('aria-live', 'polite');
-  statusDiv.setAttribute('aria-relevant', 'additions text');
-  Object.assign(statusDiv.style, {
-    border: '0',
-    clip: 'rect(0 0 0 0)',
-    height: '1px',
-    margin: '-1px',
-    overflow: 'hidden',
-    padding: '0',
-    position: 'absolute',
-    width: '1px'
-  });
-  documentProp.body.appendChild(statusDiv);
-  return statusDiv;
-}
-
-var unknown =  false ? undefined : 0;
-var mouseUp =  false ? undefined : 1;
-var itemMouseEnter =  false ? undefined : 2;
-var keyDownArrowUp =  false ? undefined : 3;
-var keyDownArrowDown =  false ? undefined : 4;
-var keyDownEscape =  false ? undefined : 5;
-var keyDownEnter =  false ? undefined : 6;
-var keyDownHome =  false ? undefined : 7;
-var keyDownEnd =  false ? undefined : 8;
-var clickItem =  false ? undefined : 9;
-var blurInput =  false ? undefined : 10;
-var changeInput =  false ? undefined : 11;
-var keyDownSpaceButton =  false ? undefined : 12;
-var clickButton =  false ? undefined : 13;
-var blurButton =  false ? undefined : 14;
-var controlledPropUpdatedSelectedItem =  false ? undefined : 15;
-var touchEnd =  false ? undefined : 16;
-
-var stateChangeTypes$3 = /*#__PURE__*/Object.freeze({
-  __proto__: null,
-  unknown: unknown,
-  mouseUp: mouseUp,
-  itemMouseEnter: itemMouseEnter,
-  keyDownArrowUp: keyDownArrowUp,
-  keyDownArrowDown: keyDownArrowDown,
-  keyDownEscape: keyDownEscape,
-  keyDownEnter: keyDownEnter,
-  keyDownHome: keyDownHome,
-  keyDownEnd: keyDownEnd,
-  clickItem: clickItem,
-  blurInput: blurInput,
-  changeInput: changeInput,
-  keyDownSpaceButton: keyDownSpaceButton,
-  clickButton: clickButton,
-  blurButton: blurButton,
-  controlledPropUpdatedSelectedItem: controlledPropUpdatedSelectedItem,
-  touchEnd: touchEnd
-});
-
-var _excluded$4 = ["refKey", "ref"],
-    _excluded2$3 = ["onClick", "onPress", "onKeyDown", "onKeyUp", "onBlur"],
-    _excluded3$2 = ["onKeyDown", "onBlur", "onChange", "onInput", "onChangeText"],
-    _excluded4$1 = ["refKey", "ref"],
-    _excluded5$1 = ["onMouseMove", "onMouseDown", "onClick", "onPress", "index", "item"];
-
-var downshift_esm_Downshift = /*#__PURE__*/function () {
-  var Downshift = /*#__PURE__*/function (_Component) {
-    inheritsLoose_inheritsLoose(Downshift, _Component);
-
-    function Downshift(_props) {
-      var _this;
-
-      _this = _Component.call(this, _props) || this; // fancy destructuring + defaults + aliases
-      // this basically says each value of state should either be set to
-      // the initial value or the default value if the initial value is not provided
-
-      _this.id = _this.props.id || "downshift-" + downshift_esm_generateId();
-      _this.menuId = _this.props.menuId || _this.id + "-menu";
-      _this.labelId = _this.props.labelId || _this.id + "-label";
-      _this.inputId = _this.props.inputId || _this.id + "-input";
-
-      _this.getItemId = _this.props.getItemId || function (index) {
-        return _this.id + "-item-" + index;
-      };
-
-      _this.input = null;
-      _this.items = [];
-      _this.itemCount = null;
-      _this.previousResultCount = 0;
-      _this.timeoutIds = [];
-
-      _this.internalSetTimeout = function (fn, time) {
-        var id = setTimeout(function () {
-          _this.timeoutIds = _this.timeoutIds.filter(function (i) {
-            return i !== id;
-          });
-          fn();
-        }, time);
-
-        _this.timeoutIds.push(id);
-      };
-
-      _this.setItemCount = function (count) {
-        _this.itemCount = count;
-      };
-
-      _this.unsetItemCount = function () {
-        _this.itemCount = null;
-      };
-
-      _this.setHighlightedIndex = function (highlightedIndex, otherStateToSet) {
-        if (highlightedIndex === void 0) {
-          highlightedIndex = _this.props.defaultHighlightedIndex;
-        }
-
-        if (otherStateToSet === void 0) {
-          otherStateToSet = {};
-        }
-
-        otherStateToSet = pickState(otherStateToSet);
-
-        _this.internalSetState(extends_extends({
-          highlightedIndex: highlightedIndex
-        }, otherStateToSet));
-      };
-
-      _this.clearSelection = function (cb) {
-        _this.internalSetState({
-          selectedItem: null,
-          inputValue: '',
-          highlightedIndex: _this.props.defaultHighlightedIndex,
-          isOpen: _this.props.defaultIsOpen
-        }, cb);
-      };
-
-      _this.selectItem = function (item, otherStateToSet, cb) {
-        otherStateToSet = pickState(otherStateToSet);
-
-        _this.internalSetState(extends_extends({
-          isOpen: _this.props.defaultIsOpen,
-          highlightedIndex: _this.props.defaultHighlightedIndex,
-          selectedItem: item,
-          inputValue: _this.props.itemToString(item)
-        }, otherStateToSet), cb);
-      };
-
-      _this.selectItemAtIndex = function (itemIndex, otherStateToSet, cb) {
-        var item = _this.items[itemIndex];
-
-        if (item == null) {
-          return;
-        }
-
-        _this.selectItem(item, otherStateToSet, cb);
-      };
-
-      _this.selectHighlightedItem = function (otherStateToSet, cb) {
-        return _this.selectItemAtIndex(_this.getState().highlightedIndex, otherStateToSet, cb);
-      };
-
-      _this.internalSetState = function (stateToSet, cb) {
-        var isItemSelected, onChangeArg;
-        var onStateChangeArg = {};
-        var isStateToSetFunction = typeof stateToSet === 'function'; // we want to call `onInputValueChange` before the `setState` call
-        // so someone controlling the `inputValue` state gets notified of
-        // the input change as soon as possible. This avoids issues with
-        // preserving the cursor position.
-        // See https://github.com/downshift-js/downshift/issues/217 for more info.
-
-        if (!isStateToSetFunction && stateToSet.hasOwnProperty('inputValue')) {
-          _this.props.onInputValueChange(stateToSet.inputValue, extends_extends({}, _this.getStateAndHelpers(), stateToSet));
-        }
-
-        return _this.setState(function (state) {
-          state = _this.getState(state);
-          var newStateToSet = isStateToSetFunction ? stateToSet(state) : stateToSet; // Your own function that could modify the state that will be set.
-
-          newStateToSet = _this.props.stateReducer(state, newStateToSet); // checks if an item is selected, regardless of if it's different from
-          // what was selected before
-          // used to determine if onSelect and onChange callbacks should be called
-
-          isItemSelected = newStateToSet.hasOwnProperty('selectedItem'); // this keeps track of the object we want to call with setState
-
-          var nextState = {}; // this is just used to tell whether the state changed
-
-          var nextFullState = {}; // we need to call on change if the outside world is controlling any of our state
-          // and we're trying to update that state. OR if the selection has changed and we're
-          // trying to update the selection
-
-          if (isItemSelected && newStateToSet.selectedItem !== state.selectedItem) {
-            onChangeArg = newStateToSet.selectedItem;
-          }
-
-          newStateToSet.type = newStateToSet.type || unknown;
-          Object.keys(newStateToSet).forEach(function (key) {
-            // onStateChangeArg should only have the state that is
-            // actually changing
-            if (state[key] !== newStateToSet[key]) {
-              onStateChangeArg[key] = newStateToSet[key];
-            } // the type is useful for the onStateChangeArg
-            // but we don't actually want to set it in internal state.
-            // this is an undocumented feature for now... Not all internalSetState
-            // calls support it and I'm not certain we want them to yet.
-            // But it enables users controlling the isOpen state to know when
-            // the isOpen state changes due to mouseup events which is quite handy.
-
-
-            if (key === 'type') {
-              return;
-            }
-
-            nextFullState[key] = newStateToSet[key]; // if it's coming from props, then we don't care to set it internally
-
-            if (!isControlledProp(_this.props, key)) {
-              nextState[key] = newStateToSet[key];
-            }
-          }); // if stateToSet is a function, then we weren't able to call onInputValueChange
-          // earlier, so we'll call it now that we know what the inputValue state will be.
-
-          if (isStateToSetFunction && newStateToSet.hasOwnProperty('inputValue')) {
-            _this.props.onInputValueChange(newStateToSet.inputValue, extends_extends({}, _this.getStateAndHelpers(), newStateToSet));
-          }
-
-          return nextState;
-        }, function () {
-          // call the provided callback if it's a function
-          cbToCb(cb)(); // only call the onStateChange and onChange callbacks if
-          // we have relevant information to pass them.
-
-          var hasMoreStateThanType = Object.keys(onStateChangeArg).length > 1;
-
-          if (hasMoreStateThanType) {
-            _this.props.onStateChange(onStateChangeArg, _this.getStateAndHelpers());
-          }
-
-          if (isItemSelected) {
-            _this.props.onSelect(stateToSet.selectedItem, _this.getStateAndHelpers());
-          }
-
-          if (onChangeArg !== undefined) {
-            _this.props.onChange(onChangeArg, _this.getStateAndHelpers());
-          } // this is currently undocumented and therefore subject to change
-          // We'll try to not break it, but just be warned.
-
-
-          _this.props.onUserAction(onStateChangeArg, _this.getStateAndHelpers());
-        });
-      };
-
-      _this.rootRef = function (node) {
-        return _this._rootNode = node;
-      };
-
-      _this.getRootProps = function (_temp, _temp2) {
-        var _extends2;
-
-        var _ref = _temp === void 0 ? {} : _temp,
-            _ref$refKey = _ref.refKey,
-            refKey = _ref$refKey === void 0 ? 'ref' : _ref$refKey,
-            ref = _ref.ref,
-            rest = objectWithoutPropertiesLoose_objectWithoutPropertiesLoose(_ref, _excluded$4);
-
-        var _ref2 = _temp2 === void 0 ? {} : _temp2,
-            _ref2$suppressRefErro = _ref2.suppressRefError,
-            suppressRefError = _ref2$suppressRefErro === void 0 ? false : _ref2$suppressRefErro;
-
-        // this is used in the render to know whether the user has called getRootProps.
-        // It uses that to know whether to apply the props automatically
-        _this.getRootProps.called = true;
-        _this.getRootProps.refKey = refKey;
-        _this.getRootProps.suppressRefError = suppressRefError;
-
-        var _this$getState = _this.getState(),
-            isOpen = _this$getState.isOpen;
-
-        return extends_extends((_extends2 = {}, _extends2[refKey] = handleRefs(ref, _this.rootRef), _extends2.role = 'combobox', _extends2['aria-expanded'] = isOpen, _extends2['aria-haspopup'] = 'listbox', _extends2['aria-owns'] = isOpen ? _this.menuId : null, _extends2['aria-labelledby'] = _this.labelId, _extends2), rest);
-      };
-
-      _this.keyDownHandlers = {
-        ArrowDown: function ArrowDown(event) {
-          var _this2 = this;
-
-          event.preventDefault();
-
-          if (this.getState().isOpen) {
-            var amount = event.shiftKey ? 5 : 1;
-            this.moveHighlightedIndex(amount, {
-              type: keyDownArrowDown
-            });
-          } else {
-            this.internalSetState({
-              isOpen: true,
-              type: keyDownArrowDown
-            }, function () {
-              var itemCount = _this2.getItemCount();
-
-              if (itemCount > 0) {
-                var _this2$getState = _this2.getState(),
-                    highlightedIndex = _this2$getState.highlightedIndex;
-
-                var nextHighlightedIndex = getNextWrappingIndex(1, highlightedIndex, itemCount, function (index) {
-                  return _this2.getItemNodeFromIndex(index);
-                });
-
-                _this2.setHighlightedIndex(nextHighlightedIndex, {
-                  type: keyDownArrowDown
-                });
-              }
-            });
-          }
-        },
-        ArrowUp: function ArrowUp(event) {
-          var _this3 = this;
-
-          event.preventDefault();
-
-          if (this.getState().isOpen) {
-            var amount = event.shiftKey ? -5 : -1;
-            this.moveHighlightedIndex(amount, {
-              type: keyDownArrowUp
-            });
-          } else {
-            this.internalSetState({
-              isOpen: true,
-              type: keyDownArrowUp
-            }, function () {
-              var itemCount = _this3.getItemCount();
-
-              if (itemCount > 0) {
-                var _this3$getState = _this3.getState(),
-                    highlightedIndex = _this3$getState.highlightedIndex;
-
-                var nextHighlightedIndex = getNextWrappingIndex(-1, highlightedIndex, itemCount, function (index) {
-                  return _this3.getItemNodeFromIndex(index);
-                });
-
-                _this3.setHighlightedIndex(nextHighlightedIndex, {
-                  type: keyDownArrowUp
-                });
-              }
-            });
-          }
-        },
-        Enter: function Enter(event) {
-          if (event.which === 229) {
-            return;
-          }
-
-          var _this$getState2 = this.getState(),
-              isOpen = _this$getState2.isOpen,
-              highlightedIndex = _this$getState2.highlightedIndex;
-
-          if (isOpen && highlightedIndex != null) {
-            event.preventDefault();
-            var item = this.items[highlightedIndex];
-            var itemNode = this.getItemNodeFromIndex(highlightedIndex);
-
-            if (item == null || itemNode && itemNode.hasAttribute('disabled')) {
-              return;
-            }
-
-            this.selectHighlightedItem({
-              type: keyDownEnter
-            });
-          }
-        },
-        Escape: function Escape(event) {
-          event.preventDefault();
-          this.reset(extends_extends({
-            type: keyDownEscape
-          }, !this.state.isOpen && {
-            selectedItem: null,
-            inputValue: ''
-          }));
-        }
-      };
-      _this.buttonKeyDownHandlers = extends_extends({}, _this.keyDownHandlers, {
-        ' ': function _(event) {
-          event.preventDefault();
-          this.toggleMenu({
-            type: keyDownSpaceButton
-          });
-        }
-      });
-      _this.inputKeyDownHandlers = extends_extends({}, _this.keyDownHandlers, {
-        Home: function Home(event) {
-          var _this4 = this;
-
-          var _this$getState3 = this.getState(),
-              isOpen = _this$getState3.isOpen;
-
-          if (!isOpen) {
-            return;
-          }
-
-          event.preventDefault();
-          var itemCount = this.getItemCount();
-
-          if (itemCount <= 0 || !isOpen) {
-            return;
-          } // get next non-disabled starting downwards from 0 if that's disabled.
-
-
-          var newHighlightedIndex = getNextNonDisabledIndex(1, 0, itemCount, function (index) {
-            return _this4.getItemNodeFromIndex(index);
-          }, false);
-          this.setHighlightedIndex(newHighlightedIndex, {
-            type: keyDownHome
-          });
-        },
-        End: function End(event) {
-          var _this5 = this;
-
-          var _this$getState4 = this.getState(),
-              isOpen = _this$getState4.isOpen;
-
-          if (!isOpen) {
-            return;
-          }
-
-          event.preventDefault();
-          var itemCount = this.getItemCount();
-
-          if (itemCount <= 0 || !isOpen) {
-            return;
-          } // get next non-disabled starting upwards from last index if that's disabled.
-
-
-          var newHighlightedIndex = getNextNonDisabledIndex(-1, itemCount - 1, itemCount, function (index) {
-            return _this5.getItemNodeFromIndex(index);
-          }, false);
-          this.setHighlightedIndex(newHighlightedIndex, {
-            type: keyDownEnd
-          });
-        }
-      });
-
-      _this.getToggleButtonProps = function (_temp3) {
-        var _ref3 = _temp3 === void 0 ? {} : _temp3,
-            onClick = _ref3.onClick;
-            _ref3.onPress;
-            var onKeyDown = _ref3.onKeyDown,
-            onKeyUp = _ref3.onKeyUp,
-            onBlur = _ref3.onBlur,
-            rest = objectWithoutPropertiesLoose_objectWithoutPropertiesLoose(_ref3, _excluded2$3);
-
-        var _this$getState5 = _this.getState(),
-            isOpen = _this$getState5.isOpen;
-
-        var enabledEventHandlers = {
-          onClick: callAllEventHandlers(onClick, _this.buttonHandleClick),
-          onKeyDown: callAllEventHandlers(onKeyDown, _this.buttonHandleKeyDown),
-          onKeyUp: callAllEventHandlers(onKeyUp, _this.buttonHandleKeyUp),
-          onBlur: callAllEventHandlers(onBlur, _this.buttonHandleBlur)
-        };
-        var eventHandlers = rest.disabled ? {} : enabledEventHandlers;
-        return extends_extends({
-          type: 'button',
-          role: 'button',
-          'aria-label': isOpen ? 'close menu' : 'open menu',
-          'aria-haspopup': true,
-          'data-toggle': true
-        }, eventHandlers, rest);
-      };
-
-      _this.buttonHandleKeyUp = function (event) {
-        // Prevent click event from emitting in Firefox
-        event.preventDefault();
-      };
-
-      _this.buttonHandleKeyDown = function (event) {
-        var key = normalizeArrowKey(event);
-
-        if (_this.buttonKeyDownHandlers[key]) {
-          _this.buttonKeyDownHandlers[key].call(assertThisInitialized_assertThisInitialized(_this), event);
-        }
-      };
-
-      _this.buttonHandleClick = function (event) {
-        event.preventDefault(); // handle odd case for Safari and Firefox which
-        // don't give the button the focus properly.
-
-        /* istanbul ignore if (can't reasonably test this) */
-
-        if (_this.props.environment.document.activeElement === _this.props.environment.document.body) {
-          event.target.focus();
-        } // to simplify testing components that use downshift, we'll not wrap this in a setTimeout
-        // if the NODE_ENV is test. With the proper build system, this should be dead code eliminated
-        // when building for production and should therefore have no impact on production code.
-
-
-        if (false) {} else {
-          // Ensure that toggle of menu occurs after the potential blur event in iOS
-          _this.internalSetTimeout(function () {
-            return _this.toggleMenu({
-              type: clickButton
-            });
-          });
-        }
-      };
-
-      _this.buttonHandleBlur = function (event) {
-        var blurTarget = event.target; // Save blur target for comparison with activeElement later
-        // Need setTimeout, so that when the user presses Tab, the activeElement is the next focused element, not body element
-
-        _this.internalSetTimeout(function () {
-          if (!_this.isMouseDown && (_this.props.environment.document.activeElement == null || _this.props.environment.document.activeElement.id !== _this.inputId) && _this.props.environment.document.activeElement !== blurTarget // Do nothing if we refocus the same element again (to solve issue in Safari on iOS)
-          ) {
-            _this.reset({
-              type: blurButton
-            });
-          }
-        });
-      };
-
-      _this.getLabelProps = function (props) {
-        return extends_extends({
-          htmlFor: _this.inputId,
-          id: _this.labelId
-        }, props);
-      };
-
-      _this.getInputProps = function (_temp4) {
-        var _ref4 = _temp4 === void 0 ? {} : _temp4,
-            onKeyDown = _ref4.onKeyDown,
-            onBlur = _ref4.onBlur,
-            onChange = _ref4.onChange,
-            onInput = _ref4.onInput;
-            _ref4.onChangeText;
-            var rest = objectWithoutPropertiesLoose_objectWithoutPropertiesLoose(_ref4, _excluded3$2);
-
-        var onChangeKey;
-        var eventHandlers = {};
-        /* istanbul ignore next (preact) */
-
-        {
-          onChangeKey = 'onChange';
-        }
-
-        var _this$getState6 = _this.getState(),
-            inputValue = _this$getState6.inputValue,
-            isOpen = _this$getState6.isOpen,
-            highlightedIndex = _this$getState6.highlightedIndex;
-
-        if (!rest.disabled) {
-          var _eventHandlers;
-
-          eventHandlers = (_eventHandlers = {}, _eventHandlers[onChangeKey] = callAllEventHandlers(onChange, onInput, _this.inputHandleChange), _eventHandlers.onKeyDown = callAllEventHandlers(onKeyDown, _this.inputHandleKeyDown), _eventHandlers.onBlur = callAllEventHandlers(onBlur, _this.inputHandleBlur), _eventHandlers);
-        }
-
-        return extends_extends({
-          'aria-autocomplete': 'list',
-          'aria-activedescendant': isOpen && typeof highlightedIndex === 'number' && highlightedIndex >= 0 ? _this.getItemId(highlightedIndex) : null,
-          'aria-controls': isOpen ? _this.menuId : null,
-          'aria-labelledby': _this.labelId,
-          // https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion
-          // revert back since autocomplete="nope" is ignored on latest Chrome and Opera
-          autoComplete: 'off',
-          value: inputValue,
-          id: _this.inputId
-        }, eventHandlers, rest);
-      };
-
-      _this.inputHandleKeyDown = function (event) {
-        var key = normalizeArrowKey(event);
-
-        if (key && _this.inputKeyDownHandlers[key]) {
-          _this.inputKeyDownHandlers[key].call(assertThisInitialized_assertThisInitialized(_this), event);
-        }
-      };
-
-      _this.inputHandleChange = function (event) {
-        _this.internalSetState({
-          type: changeInput,
-          isOpen: true,
-          inputValue: event.target.value,
-          highlightedIndex: _this.props.defaultHighlightedIndex
-        });
-      };
-
-      _this.inputHandleBlur = function () {
-        // Need setTimeout, so that when the user presses Tab, the activeElement is the next focused element, not the body element
-        _this.internalSetTimeout(function () {
-          var downshiftButtonIsActive = _this.props.environment.document && !!_this.props.environment.document.activeElement && !!_this.props.environment.document.activeElement.dataset && _this.props.environment.document.activeElement.dataset.toggle && _this._rootNode && _this._rootNode.contains(_this.props.environment.document.activeElement);
-
-          if (!_this.isMouseDown && !downshiftButtonIsActive) {
-            _this.reset({
-              type: blurInput
-            });
-          }
-        });
-      };
-
-      _this.menuRef = function (node) {
-        _this._menuNode = node;
-      };
-
-      _this.getMenuProps = function (_temp5, _temp6) {
-        var _extends3;
-
-        var _ref5 = _temp5 === void 0 ? {} : _temp5,
-            _ref5$refKey = _ref5.refKey,
-            refKey = _ref5$refKey === void 0 ? 'ref' : _ref5$refKey,
-            ref = _ref5.ref,
-            props = objectWithoutPropertiesLoose_objectWithoutPropertiesLoose(_ref5, _excluded4$1);
-
-        var _ref6 = _temp6 === void 0 ? {} : _temp6,
-            _ref6$suppressRefErro = _ref6.suppressRefError,
-            suppressRefError = _ref6$suppressRefErro === void 0 ? false : _ref6$suppressRefErro;
-
-        _this.getMenuProps.called = true;
-        _this.getMenuProps.refKey = refKey;
-        _this.getMenuProps.suppressRefError = suppressRefError;
-        return extends_extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, _this.menuRef), _extends3.role = 'listbox', _extends3['aria-labelledby'] = props && props['aria-label'] ? null : _this.labelId, _extends3.id = _this.menuId, _extends3), props);
-      };
-
-      _this.getItemProps = function (_temp7) {
-        var _enabledEventHandlers;
-
-        var _ref7 = _temp7 === void 0 ? {} : _temp7,
-            onMouseMove = _ref7.onMouseMove,
-            onMouseDown = _ref7.onMouseDown,
-            onClick = _ref7.onClick;
-            _ref7.onPress;
-            var index = _ref7.index,
-            _ref7$item = _ref7.item,
-            item = _ref7$item === void 0 ?  true ?
-        /* istanbul ignore next */
-        undefined : undefined : _ref7$item,
-            rest = objectWithoutPropertiesLoose_objectWithoutPropertiesLoose(_ref7, _excluded5$1);
-
-        if (index === undefined) {
-          _this.items.push(item);
-
-          index = _this.items.indexOf(item);
-        } else {
-          _this.items[index] = item;
-        }
-
-        var onSelectKey = 'onClick';
-        var customClickHandler = onClick;
-        var enabledEventHandlers = (_enabledEventHandlers = {
-          // onMouseMove is used over onMouseEnter here. onMouseMove
-          // is only triggered on actual mouse movement while onMouseEnter
-          // can fire on DOM changes, interrupting keyboard navigation
-          onMouseMove: callAllEventHandlers(onMouseMove, function () {
-            if (index === _this.getState().highlightedIndex) {
-              return;
-            }
-
-            _this.setHighlightedIndex(index, {
-              type: itemMouseEnter
-            }); // We never want to manually scroll when changing state based
-            // on `onMouseMove` because we will be moving the element out
-            // from under the user which is currently scrolling/moving the
-            // cursor
-
-
-            _this.avoidScrolling = true;
-
-            _this.internalSetTimeout(function () {
-              return _this.avoidScrolling = false;
-            }, 250);
-          }),
-          onMouseDown: callAllEventHandlers(onMouseDown, function (event) {
-            // This prevents the activeElement from being changed
-            // to the item so it can remain with the current activeElement
-            // which is a more common use case.
-            event.preventDefault();
-          })
-        }, _enabledEventHandlers[onSelectKey] = callAllEventHandlers(customClickHandler, function () {
-          _this.selectItemAtIndex(index, {
-            type: clickItem
-          });
-        }), _enabledEventHandlers); // Passing down the onMouseDown handler to prevent redirect
-        // of the activeElement if clicking on disabled items
-
-        var eventHandlers = rest.disabled ? {
-          onMouseDown: enabledEventHandlers.onMouseDown
-        } : enabledEventHandlers;
-        return extends_extends({
-          id: _this.getItemId(index),
-          role: 'option',
-          'aria-selected': _this.getState().highlightedIndex === index
-        }, eventHandlers, rest);
-      };
-
-      _this.clearItems = function () {
-        _this.items = [];
-      };
-
-      _this.reset = function (otherStateToSet, cb) {
-        if (otherStateToSet === void 0) {
-          otherStateToSet = {};
-        }
-
-        otherStateToSet = pickState(otherStateToSet);
-
-        _this.internalSetState(function (_ref8) {
-          var selectedItem = _ref8.selectedItem;
-          return extends_extends({
-            isOpen: _this.props.defaultIsOpen,
-            highlightedIndex: _this.props.defaultHighlightedIndex,
-            inputValue: _this.props.itemToString(selectedItem)
-          }, otherStateToSet);
-        }, cb);
-      };
-
-      _this.toggleMenu = function (otherStateToSet, cb) {
-        if (otherStateToSet === void 0) {
-          otherStateToSet = {};
-        }
-
-        otherStateToSet = pickState(otherStateToSet);
-
-        _this.internalSetState(function (_ref9) {
-          var isOpen = _ref9.isOpen;
-          return extends_extends({
-            isOpen: !isOpen
-          }, isOpen && {
-            highlightedIndex: _this.props.defaultHighlightedIndex
-          }, otherStateToSet);
-        }, function () {
-          var _this$getState7 = _this.getState(),
-              isOpen = _this$getState7.isOpen,
-              highlightedIndex = _this$getState7.highlightedIndex;
-
-          if (isOpen) {
-            if (_this.getItemCount() > 0 && typeof highlightedIndex === 'number') {
-              _this.setHighlightedIndex(highlightedIndex, otherStateToSet);
-            }
-          }
-
-          cbToCb(cb)();
-        });
-      };
-
-      _this.openMenu = function (cb) {
-        _this.internalSetState({
-          isOpen: true
-        }, cb);
-      };
-
-      _this.closeMenu = function (cb) {
-        _this.internalSetState({
-          isOpen: false
-        }, cb);
-      };
-
-      _this.updateStatus = debounce(function () {
-        var state = _this.getState();
-
-        var item = _this.items[state.highlightedIndex];
-
-        var resultCount = _this.getItemCount();
-
-        var status = _this.props.getA11yStatusMessage(extends_extends({
-          itemToString: _this.props.itemToString,
-          previousResultCount: _this.previousResultCount,
-          resultCount: resultCount,
-          highlightedItem: item
-        }, state));
-
-        _this.previousResultCount = resultCount;
-        setStatus(status, _this.props.environment.document);
-      }, 200);
-
-      var _this$props = _this.props,
-          defaultHighlightedIndex = _this$props.defaultHighlightedIndex,
-          _this$props$initialHi = _this$props.initialHighlightedIndex,
-          _highlightedIndex = _this$props$initialHi === void 0 ? defaultHighlightedIndex : _this$props$initialHi,
-          defaultIsOpen = _this$props.defaultIsOpen,
-          _this$props$initialIs = _this$props.initialIsOpen,
-          _isOpen = _this$props$initialIs === void 0 ? defaultIsOpen : _this$props$initialIs,
-          _this$props$initialIn = _this$props.initialInputValue,
-          _inputValue = _this$props$initialIn === void 0 ? '' : _this$props$initialIn,
-          _this$props$initialSe = _this$props.initialSelectedItem,
-          _selectedItem = _this$props$initialSe === void 0 ? null : _this$props$initialSe;
-
-      var _state = _this.getState({
-        highlightedIndex: _highlightedIndex,
-        isOpen: _isOpen,
-        inputValue: _inputValue,
-        selectedItem: _selectedItem
-      });
-
-      if (_state.selectedItem != null && _this.props.initialInputValue === undefined) {
-        _state.inputValue = _this.props.itemToString(_state.selectedItem);
-      }
-
-      _this.state = _state;
-      return _this;
-    }
-
-    var _proto = Downshift.prototype;
-
-    /**
-     * Clear all running timeouts
-     */
-    _proto.internalClearTimeouts = function internalClearTimeouts() {
-      this.timeoutIds.forEach(function (id) {
-        clearTimeout(id);
-      });
-      this.timeoutIds = [];
-    }
-    /**
-     * Gets the state based on internal state or props
-     * If a state value is passed via props, then that
-     * is the value given, otherwise it's retrieved from
-     * stateToMerge
-     *
-     * @param {Object} stateToMerge defaults to this.state
-     * @return {Object} the state
-     */
-    ;
-
-    _proto.getState = function getState$1(stateToMerge) {
-      if (stateToMerge === void 0) {
-        stateToMerge = this.state;
-      }
-
-      return getState(stateToMerge, this.props);
-    };
-
-    _proto.getItemCount = function getItemCount() {
-      // things read better this way. They're in priority order:
-      // 1. `this.itemCount`
-      // 2. `this.props.itemCount`
-      // 3. `this.items.length`
-      var itemCount = this.items.length;
-
-      if (this.itemCount != null) {
-        itemCount = this.itemCount;
-      } else if (this.props.itemCount !== undefined) {
-        itemCount = this.props.itemCount;
-      }
-
-      return itemCount;
-    };
-
-    _proto.getItemNodeFromIndex = function getItemNodeFromIndex(index) {
-      return this.props.environment.document.getElementById(this.getItemId(index));
-    };
-
-    _proto.scrollHighlightedItemIntoView = function scrollHighlightedItemIntoView() {
-      /* istanbul ignore else (react-native) */
-      {
-        var node = this.getItemNodeFromIndex(this.getState().highlightedIndex);
-        this.props.scrollIntoView(node, this._menuNode);
-      }
-    };
-
-    _proto.moveHighlightedIndex = function moveHighlightedIndex(amount, otherStateToSet) {
-      var _this6 = this;
-
-      var itemCount = this.getItemCount();
-
-      var _this$getState8 = this.getState(),
-          highlightedIndex = _this$getState8.highlightedIndex;
-
-      if (itemCount > 0) {
-        var nextHighlightedIndex = getNextWrappingIndex(amount, highlightedIndex, itemCount, function (index) {
-          return _this6.getItemNodeFromIndex(index);
-        });
-        this.setHighlightedIndex(nextHighlightedIndex, otherStateToSet);
-      }
-    };
-
-    _proto.getStateAndHelpers = function getStateAndHelpers() {
-      var _this$getState9 = this.getState(),
-          highlightedIndex = _this$getState9.highlightedIndex,
-          inputValue = _this$getState9.inputValue,
-          selectedItem = _this$getState9.selectedItem,
-          isOpen = _this$getState9.isOpen;
-
-      var itemToString = this.props.itemToString;
-      var id = this.id;
-      var getRootProps = this.getRootProps,
-          getToggleButtonProps = this.getToggleButtonProps,
-          getLabelProps = this.getLabelProps,
-          getMenuProps = this.getMenuProps,
-          getInputProps = this.getInputProps,
-          getItemProps = this.getItemProps,
-          openMenu = this.openMenu,
-          closeMenu = this.closeMenu,
-          toggleMenu = this.toggleMenu,
-          selectItem = this.selectItem,
-          selectItemAtIndex = this.selectItemAtIndex,
-          selectHighlightedItem = this.selectHighlightedItem,
-          setHighlightedIndex = this.setHighlightedIndex,
-          clearSelection = this.clearSelection,
-          clearItems = this.clearItems,
-          reset = this.reset,
-          setItemCount = this.setItemCount,
-          unsetItemCount = this.unsetItemCount,
-          setState = this.internalSetState;
-      return {
-        // prop getters
-        getRootProps: getRootProps,
-        getToggleButtonProps: getToggleButtonProps,
-        getLabelProps: getLabelProps,
-        getMenuProps: getMenuProps,
-        getInputProps: getInputProps,
-        getItemProps: getItemProps,
-        // actions
-        reset: reset,
-        openMenu: openMenu,
-        closeMenu: closeMenu,
-        toggleMenu: toggleMenu,
-        selectItem: selectItem,
-        selectItemAtIndex: selectItemAtIndex,
-        selectHighlightedItem: selectHighlightedItem,
-        setHighlightedIndex: setHighlightedIndex,
-        clearSelection: clearSelection,
-        clearItems: clearItems,
-        setItemCount: setItemCount,
-        unsetItemCount: unsetItemCount,
-        setState: setState,
-        // props
-        itemToString: itemToString,
-        // derived
-        id: id,
-        // state
-        highlightedIndex: highlightedIndex,
-        inputValue: inputValue,
-        isOpen: isOpen,
-        selectedItem: selectedItem
-      };
-    } //////////////////////////// ROOT
-    ;
-
-    _proto.componentDidMount = function componentDidMount() {
-      var _this7 = this;
-
-      /* istanbul ignore if (react-native) */
-      if (false) {}
-      /* istanbul ignore if (react-native) */
-
-
-      {
-        // this.isMouseDown helps us track whether the mouse is currently held down.
-        // This is useful when the user clicks on an item in the list, but holds the mouse
-        // down long enough for the list to disappear (because the blur event fires on the input)
-        // this.isMouseDown is used in the blur handler on the input to determine whether the blur event should
-        // trigger hiding the menu.
-        var onMouseDown = function onMouseDown() {
-          _this7.isMouseDown = true;
-        };
-
-        var onMouseUp = function onMouseUp(event) {
-          _this7.isMouseDown = false; // if the target element or the activeElement is within a downshift node
-          // then we don't want to reset downshift
-
-          var contextWithinDownshift = targetWithinDownshift(event.target, [_this7._rootNode, _this7._menuNode], _this7.props.environment);
-
-          if (!contextWithinDownshift && _this7.getState().isOpen) {
-            _this7.reset({
-              type: mouseUp
-            }, function () {
-              return _this7.props.onOuterClick(_this7.getStateAndHelpers());
-            });
-          }
-        }; // Touching an element in iOS gives focus and hover states, but touching out of
-        // the element will remove hover, and persist the focus state, resulting in the
-        // blur event not being triggered.
-        // this.isTouchMove helps us track whether the user is tapping or swiping on a touch screen.
-        // If the user taps outside of Downshift, the component should be reset,
-        // but not if the user is swiping
-
-
-        var onTouchStart = function onTouchStart() {
-          _this7.isTouchMove = false;
-        };
-
-        var onTouchMove = function onTouchMove() {
-          _this7.isTouchMove = true;
-        };
-
-        var onTouchEnd = function onTouchEnd(event) {
-          var contextWithinDownshift = targetWithinDownshift(event.target, [_this7._rootNode, _this7._menuNode], _this7.props.environment, false);
-
-          if (!_this7.isTouchMove && !contextWithinDownshift && _this7.getState().isOpen) {
-            _this7.reset({
-              type: touchEnd
-            }, function () {
-              return _this7.props.onOuterClick(_this7.getStateAndHelpers());
-            });
-          }
-        };
-
-        var environment = this.props.environment;
-        environment.addEventListener('mousedown', onMouseDown);
-        environment.addEventListener('mouseup', onMouseUp);
-        environment.addEventListener('touchstart', onTouchStart);
-        environment.addEventListener('touchmove', onTouchMove);
-        environment.addEventListener('touchend', onTouchEnd);
-
-        this.cleanup = function () {
-          _this7.internalClearTimeouts();
-
-          _this7.updateStatus.cancel();
-
-          environment.removeEventListener('mousedown', onMouseDown);
-          environment.removeEventListener('mouseup', onMouseUp);
-          environment.removeEventListener('touchstart', onTouchStart);
-          environment.removeEventListener('touchmove', onTouchMove);
-          environment.removeEventListener('touchend', onTouchEnd);
-        };
-      }
-    };
-
-    _proto.shouldScroll = function shouldScroll(prevState, prevProps) {
-      var _ref10 = this.props.highlightedIndex === undefined ? this.getState() : this.props,
-          currentHighlightedIndex = _ref10.highlightedIndex;
-
-      var _ref11 = prevProps.highlightedIndex === undefined ? prevState : prevProps,
-          prevHighlightedIndex = _ref11.highlightedIndex;
-
-      var scrollWhenOpen = currentHighlightedIndex && this.getState().isOpen && !prevState.isOpen;
-      var scrollWhenNavigating = currentHighlightedIndex !== prevHighlightedIndex;
-      return scrollWhenOpen || scrollWhenNavigating;
-    };
-
-    _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {
-      if (false) {}
-
-      if (isControlledProp(this.props, 'selectedItem') && this.props.selectedItemChanged(prevProps.selectedItem, this.props.selectedItem)) {
-        this.internalSetState({
-          type: controlledPropUpdatedSelectedItem,
-          inputValue: this.props.itemToString(this.props.selectedItem)
-        });
-      }
-
-      if (!this.avoidScrolling && this.shouldScroll(prevState, prevProps)) {
-        this.scrollHighlightedItemIntoView();
-      }
-      /* istanbul ignore else (react-native) */
-
-
-      {
-        this.updateStatus();
-      }
-    };
-
-    _proto.componentWillUnmount = function componentWillUnmount() {
-      this.cleanup(); // avoids memory leak
-    };
-
-    _proto.render = function render() {
-      var children = unwrapArray(this.props.children, downshift_esm_noop); // because the items are rerendered every time we call the children
-      // we clear this out each render and it will be populated again as
-      // getItemProps is called.
-
-      this.clearItems(); // we reset this so we know whether the user calls getRootProps during
-      // this render. If they do then we don't need to do anything,
-      // if they don't then we need to clone the element they return and
-      // apply the props for them.
-
-      this.getRootProps.called = false;
-      this.getRootProps.refKey = undefined;
-      this.getRootProps.suppressRefError = undefined; // we do something similar for getMenuProps
-
-      this.getMenuProps.called = false;
-      this.getMenuProps.refKey = undefined;
-      this.getMenuProps.suppressRefError = undefined; // we do something similar for getLabelProps
-
-      this.getLabelProps.called = false; // and something similar for getInputProps
-
-      this.getInputProps.called = false;
-      var element = unwrapArray(children(this.getStateAndHelpers()));
-
-      if (!element) {
-        return null;
-      }
-
-      if (this.getRootProps.called || this.props.suppressRefError) {
-        if (false) {}
-
-        return element;
-      } else if (isDOMElement(element)) {
-        // they didn't apply the root props, but we can clone
-        // this and apply the props ourselves
-        return /*#__PURE__*/Object(external_React_["cloneElement"])(element, this.getRootProps(getElementProps(element)));
-      }
-      /* istanbul ignore else */
-
-
-      if (false) {}
-      /* istanbul ignore next */
-
-
-      return undefined;
-    };
-
-    return Downshift;
-  }(external_React_["Component"]);
-
-  Downshift.defaultProps = {
-    defaultHighlightedIndex: null,
-    defaultIsOpen: false,
-    getA11yStatusMessage: getA11yStatusMessage$1,
-    itemToString: function itemToString(i) {
-      if (i == null) {
-        return '';
-      }
-
-      if (false) {}
-
-      return String(i);
-    },
-    onStateChange: downshift_esm_noop,
-    onInputValueChange: downshift_esm_noop,
-    onUserAction: downshift_esm_noop,
-    onChange: downshift_esm_noop,
-    onSelect: downshift_esm_noop,
-    onOuterClick: downshift_esm_noop,
-    selectedItemChanged: function selectedItemChanged(prevItem, item) {
-      return prevItem !== item;
-    },
-    environment:
-    /* istanbul ignore next (ssr) */
-    typeof window === 'undefined' ? {} : window,
-    stateReducer: function stateReducer(state, stateToSet) {
-      return stateToSet;
-    },
-    suppressRefError: false,
-    scrollIntoView: downshift_esm_scrollIntoView
-  };
-  Downshift.stateChangeTypes = stateChangeTypes$3;
-  return Downshift;
-}();
-
- false ? undefined : void 0;
-var Downshift$1 = downshift_esm_Downshift;
-
-function validateGetMenuPropsCalledCorrectly(node, _ref12) {
-  var refKey = _ref12.refKey;
-
-  if (!node) {
-    // eslint-disable-next-line no-console
-    console.error("downshift: The ref prop \"" + refKey + "\" from getMenuProps was not applied correctly on your menu element.");
-  }
-}
-
-function validateGetRootPropsCalledCorrectly(element, _ref13) {
-  var refKey = _ref13.refKey;
-  var refKeySpecified = refKey !== 'ref';
-  var isComposite = !isDOMElement(element);
-
-  if (isComposite && !refKeySpecified && !Object(react_is["isForwardRef"])(element)) {
-    // eslint-disable-next-line no-console
-    console.error('downshift: You returned a non-DOM element. You must specify a refKey in getRootProps');
-  } else if (!isComposite && refKeySpecified) {
-    // eslint-disable-next-line no-console
-    console.error("downshift: You returned a DOM element. You should not specify a refKey in getRootProps. You specified \"" + refKey + "\"");
-  }
-
-  if (!Object(react_is["isForwardRef"])(element) && !getElementProps(element)[refKey]) {
-    // eslint-disable-next-line no-console
-    console.error("downshift: You must apply the ref prop \"" + refKey + "\" from getRootProps onto your root element.");
-  }
-}
-
-var _excluded$3 = ["isInitialMount", "highlightedIndex", "items", "environment"];
-var dropdownDefaultStateValues = {
-  highlightedIndex: -1,
-  isOpen: false,
-  selectedItem: null,
-  inputValue: ''
-};
-
-function callOnChangeProps(action, state, newState) {
-  var props = action.props,
-      type = action.type;
-  var changes = {};
-  Object.keys(state).forEach(function (key) {
-    invokeOnChangeHandler(key, action, state, newState);
-
-    if (newState[key] !== state[key]) {
-      changes[key] = newState[key];
-    }
-  });
-
-  if (props.onStateChange && Object.keys(changes).length) {
-    props.onStateChange(extends_extends({
-      type: type
-    }, changes));
-  }
-}
-
-function invokeOnChangeHandler(key, action, state, newState) {
-  var props = action.props,
-      type = action.type;
-  var handler = "on" + capitalizeString(key) + "Change";
-
-  if (props[handler] && newState[key] !== undefined && newState[key] !== state[key]) {
-    props[handler](extends_extends({
-      type: type
-    }, newState));
-  }
-}
-/**
- * Default state reducer that returns the changes.
- *
- * @param {Object} s state.
- * @param {Object} a action with changes.
- * @returns {Object} changes.
- */
-
-
-function downshift_esm_stateReducer(s, a) {
-  return a.changes;
-}
-/**
- * Returns a message to be added to aria-live region when item is selected.
- *
- * @param {Object} selectionParameters Parameters required to build the message.
- * @returns {string} The a11y message.
- */
-
-
-function downshift_esm_getA11ySelectionMessage(selectionParameters) {
-  var selectedItem = selectionParameters.selectedItem,
-      itemToStringLocal = selectionParameters.itemToString;
-  return selectedItem ? itemToStringLocal(selectedItem) + " has been selected." : '';
-}
-/**
- * Debounced call for updating the a11y message.
- */
-
-
-var updateA11yStatus = debounce(function (getA11yMessage, document) {
-  setStatus(getA11yMessage(), document);
-}, 200); // istanbul ignore next
-
-var useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? external_React_["useLayoutEffect"] : external_React_["useEffect"];
-
-function useElementIds(_ref) {
-  var _ref$id = _ref.id,
-      id = _ref$id === void 0 ? "downshift-" + downshift_esm_generateId() : _ref$id,
-      labelId = _ref.labelId,
-      menuId = _ref.menuId,
-      getItemId = _ref.getItemId,
-      toggleButtonId = _ref.toggleButtonId,
-      inputId = _ref.inputId;
-  var elementIdsRef = Object(external_React_["useRef"])({
-    labelId: labelId || id + "-label",
-    menuId: menuId || id + "-menu",
-    getItemId: getItemId || function (index) {
-      return id + "-item-" + index;
-    },
-    toggleButtonId: toggleButtonId || id + "-toggle-button",
-    inputId: inputId || id + "-input"
-  });
-  return elementIdsRef.current;
-}
-
-function getItemIndex(index, item, items) {
-  if (index !== undefined) {
-    return index;
-  }
-
-  if (items.length === 0) {
-    return -1;
-  }
-
-  return items.indexOf(item);
-}
-
-function downshift_esm_itemToString(item) {
-  return item ? String(item) : '';
-}
-
-function isAcceptedCharacterKey(key) {
-  return /^\S{1}$/.test(key);
-}
-
-function capitalizeString(string) {
-  return "" + string.slice(0, 1).toUpperCase() + string.slice(1);
-}
-
-function useLatestRef(val) {
-  var ref = Object(external_React_["useRef"])(val); // technically this is not "concurrent mode safe" because we're manipulating
-  // the value during render (so it's not idempotent). However, the places this
-  // hook is used is to support memoizing callbacks which will be called
-  // *during* render, so we need the latest values *during* render.
-  // If not for this, then we'd probably want to use useLayoutEffect instead.
-
-  ref.current = val;
-  return ref;
-}
-/**
- * Computes the controlled state using a the previous state, props,
- * two reducers, one from downshift and an optional one from the user.
- * Also calls the onChange handlers for state values that have changed.
- *
- * @param {Function} reducer Reducer function from downshift.
- * @param {Object} initialState Initial state of the hook.
- * @param {Object} props The hook props.
- * @returns {Array} An array with the state and an action dispatcher.
- */
-
-
-function useEnhancedReducer(reducer, initialState, props) {
-  var prevStateRef = Object(external_React_["useRef"])();
-  var actionRef = Object(external_React_["useRef"])();
-  var enhancedReducer = Object(external_React_["useCallback"])(function (state, action) {
-    actionRef.current = action;
-    state = getState(state, action.props);
-    var changes = reducer(state, action);
-    var newState = action.props.stateReducer(state, extends_extends({}, action, {
-      changes: changes
-    }));
-    return newState;
-  }, [reducer]);
-
-  var _useReducer = Object(external_React_["useReducer"])(enhancedReducer, initialState),
-      state = _useReducer[0],
-      dispatch = _useReducer[1];
-
-  var propsRef = useLatestRef(props);
-  var dispatchWithProps = Object(external_React_["useCallback"])(function (action) {
-    return dispatch(extends_extends({
-      props: propsRef.current
-    }, action));
-  }, [propsRef]);
-  var action = actionRef.current;
-  Object(external_React_["useEffect"])(function () {
-    if (action && prevStateRef.current && prevStateRef.current !== state) {
-      callOnChangeProps(action, getState(prevStateRef.current, action.props), state);
-    }
-
-    prevStateRef.current = state;
-  }, [state, props, action]);
-  return [state, dispatchWithProps];
-}
-/**
- * Wraps the useEnhancedReducer and applies the controlled prop values before
- * returning the new state.
- *
- * @param {Function} reducer Reducer function from downshift.
- * @param {Object} initialState Initial state of the hook.
- * @param {Object} props The hook props.
- * @returns {Array} An array with the state and an action dispatcher.
- */
-
-
-function useControlledReducer$1(reducer, initialState, props) {
-  var _useEnhancedReducer = useEnhancedReducer(reducer, initialState, props),
-      state = _useEnhancedReducer[0],
-      dispatch = _useEnhancedReducer[1];
-
-  return [getState(state, props), dispatch];
-}
-
-var defaultProps$3 = {
-  itemToString: downshift_esm_itemToString,
-  stateReducer: downshift_esm_stateReducer,
-  getA11ySelectionMessage: downshift_esm_getA11ySelectionMessage,
-  scrollIntoView: downshift_esm_scrollIntoView,
-  circularNavigation: false,
-  environment:
-  /* istanbul ignore next (ssr) */
-  typeof window === 'undefined' ? {} : window
-};
-
-function getDefaultValue$1(props, propKey, defaultStateValues) {
-  if (defaultStateValues === void 0) {
-    defaultStateValues = dropdownDefaultStateValues;
-  }
-
-  var defaultPropKey = "default" + capitalizeString(propKey);
-
-  if (defaultPropKey in props) {
-    return props[defaultPropKey];
-  }
-
-  return defaultStateValues[propKey];
-}
-
-function getInitialValue$1(props, propKey, defaultStateValues) {
-  if (defaultStateValues === void 0) {
-    defaultStateValues = dropdownDefaultStateValues;
-  }
-
-  if (propKey in props) {
-    return props[propKey];
-  }
-
-  var initialPropKey = "initial" + capitalizeString(propKey);
-
-  if (initialPropKey in props) {
-    return props[initialPropKey];
-  }
-
-  return getDefaultValue$1(props, propKey, defaultStateValues);
-}
-
-function getInitialState$2(props) {
-  var selectedItem = getInitialValue$1(props, 'selectedItem');
-  var isOpen = getInitialValue$1(props, 'isOpen');
-  var highlightedIndex = getInitialValue$1(props, 'highlightedIndex');
-  var inputValue = getInitialValue$1(props, 'inputValue');
-  return {
-    highlightedIndex: highlightedIndex < 0 && selectedItem && isOpen ? props.items.indexOf(selectedItem) : highlightedIndex,
-    isOpen: isOpen,
-    selectedItem: selectedItem,
-    inputValue: inputValue
-  };
-}
-
-function getHighlightedIndexOnOpen(props, state, offset, getItemNodeFromIndex) {
-  var items = props.items,
-      initialHighlightedIndex = props.initialHighlightedIndex,
-      defaultHighlightedIndex = props.defaultHighlightedIndex;
-  var selectedItem = state.selectedItem,
-      highlightedIndex = state.highlightedIndex;
-
-  if (items.length === 0) {
-    return -1;
-  } // initialHighlightedIndex will give value to highlightedIndex on initial state only.
-
-
-  if (initialHighlightedIndex !== undefined && highlightedIndex === initialHighlightedIndex) {
-    return initialHighlightedIndex;
-  }
-
-  if (defaultHighlightedIndex !== undefined) {
-    return defaultHighlightedIndex;
-  }
-
-  if (selectedItem) {
-    if (offset === 0) {
-      return items.indexOf(selectedItem);
-    }
-
-    return getNextWrappingIndex(offset, items.indexOf(selectedItem), items.length, getItemNodeFromIndex, false);
-  }
-
-  if (offset === 0) {
-    return -1;
-  }
-
-  return offset < 0 ? items.length - 1 : 0;
-}
-/**
- * Reuse the movement tracking of mouse and touch events.
- *
- * @param {boolean} isOpen Whether the dropdown is open or not.
- * @param {Array<Object>} downshiftElementRefs Downshift element refs to track movement (toggleButton, menu etc.)
- * @param {Object} environment Environment where component/hook exists.
- * @param {Function} handleBlur Handler on blur from mouse or touch.
- * @returns {Object} Ref containing whether mouseDown or touchMove event is happening
- */
-
-
-function useMouseAndTouchTracker(isOpen, downshiftElementRefs, environment, handleBlur) {
-  var mouseAndTouchTrackersRef = Object(external_React_["useRef"])({
-    isMouseDown: false,
-    isTouchMove: false
-  });
-  Object(external_React_["useEffect"])(function () {
-    // The same strategy for checking if a click occurred inside or outside downsift
-    // as in downshift.js.
-    var onMouseDown = function onMouseDown() {
-      mouseAndTouchTrackersRef.current.isMouseDown = true;
-    };
-
-    var onMouseUp = function onMouseUp(event) {
-      mouseAndTouchTrackersRef.current.isMouseDown = false;
-
-      if (isOpen && !targetWithinDownshift(event.target, downshiftElementRefs.map(function (ref) {
-        return ref.current;
-      }), environment)) {
-        handleBlur();
-      }
-    };
-
-    var onTouchStart = function onTouchStart() {
-      mouseAndTouchTrackersRef.current.isTouchMove = false;
-    };
-
-    var onTouchMove = function onTouchMove() {
-      mouseAndTouchTrackersRef.current.isTouchMove = true;
-    };
-
-    var onTouchEnd = function onTouchEnd(event) {
-      if (isOpen && !mouseAndTouchTrackersRef.current.isTouchMove && !targetWithinDownshift(event.target, downshiftElementRefs.map(function (ref) {
-        return ref.current;
-      }), environment, false)) {
-        handleBlur();
-      }
-    };
-
-    environment.addEventListener('mousedown', onMouseDown);
-    environment.addEventListener('mouseup', onMouseUp);
-    environment.addEventListener('touchstart', onTouchStart);
-    environment.addEventListener('touchmove', onTouchMove);
-    environment.addEventListener('touchend', onTouchEnd);
-    return function cleanup() {
-      environment.removeEventListener('mousedown', onMouseDown);
-      environment.removeEventListener('mouseup', onMouseUp);
-      environment.removeEventListener('touchstart', onTouchStart);
-      environment.removeEventListener('touchmove', onTouchMove);
-      environment.removeEventListener('touchend', onTouchEnd);
-    }; // eslint-disable-next-line react-hooks/exhaustive-deps
-  }, [isOpen, environment]);
-  return mouseAndTouchTrackersRef;
-}
-/* istanbul ignore next */
-// eslint-disable-next-line import/no-mutable-exports
-
-
-var useGetterPropsCalledChecker = function useGetterPropsCalledChecker() {
-  return downshift_esm_noop;
-};
-/**
- * Custom hook that checks if getter props are called correctly.
- *
- * @param  {...any} propKeys Getter prop names to be handled.
- * @returns {Function} Setter function called inside getter props to set call information.
- */
-
-/* istanbul ignore next */
-
-
-if (false) {}
-
-function useA11yMessageSetter(getA11yMessage, dependencyArray, _ref2) {
-  var isInitialMount = _ref2.isInitialMount,
-      highlightedIndex = _ref2.highlightedIndex,
-      items = _ref2.items,
-      environment = _ref2.environment,
-      rest = objectWithoutPropertiesLoose_objectWithoutPropertiesLoose(_ref2, _excluded$3);
-
-  // Sets a11y status message on changes in state.
-  Object(external_React_["useEffect"])(function () {
-    if (isInitialMount || false) {
-      return;
-    }
-
-    updateA11yStatus(function () {
-      return getA11yMessage(extends_extends({
-        highlightedIndex: highlightedIndex,
-        highlightedItem: items[highlightedIndex],
-        resultCount: items.length
-      }, rest));
-    }, environment.document); // eslint-disable-next-line react-hooks/exhaustive-deps
-  }, dependencyArray);
-}
-
-function useScrollIntoView(_ref3) {
-  var highlightedIndex = _ref3.highlightedIndex,
-      isOpen = _ref3.isOpen,
-      itemRefs = _ref3.itemRefs,
-      getItemNodeFromIndex = _ref3.getItemNodeFromIndex,
-      menuElement = _ref3.menuElement,
-      scrollIntoViewProp = _ref3.scrollIntoView;
-  // used not to scroll on highlight by mouse.
-  var shouldScrollRef = Object(external_React_["useRef"])(true); // Scroll on highlighted item if change comes from keyboard.
-
-  useIsomorphicLayoutEffect(function () {
-    if (highlightedIndex < 0 || !isOpen || !Object.keys(itemRefs.current).length) {
-      return;
-    }
-
-    if (shouldScrollRef.current === false) {
-      shouldScrollRef.current = true;
-    } else {
-      scrollIntoViewProp(getItemNodeFromIndex(highlightedIndex), menuElement);
-    } // eslint-disable-next-line react-hooks/exhaustive-deps
-
-  }, [highlightedIndex]);
-  return shouldScrollRef;
-} // eslint-disable-next-line import/no-mutable-exports
-
-
-var useControlPropsValidator = downshift_esm_noop;
-/* istanbul ignore next */
-
-if (false) {}
-
-/* eslint-disable complexity */
-
-function downshiftCommonReducer(state, action, stateChangeTypes) {
-  var type = action.type,
-      props = action.props;
-  var changes;
-
-  switch (type) {
-    case stateChangeTypes.ItemMouseMove:
-      changes = {
-        highlightedIndex: action.index
-      };
-      break;
-
-    case stateChangeTypes.MenuMouseLeave:
-      changes = {
-        highlightedIndex: -1
-      };
-      break;
-
-    case stateChangeTypes.ToggleButtonClick:
-    case stateChangeTypes.FunctionToggleMenu:
-      changes = {
-        isOpen: !state.isOpen,
-        highlightedIndex: state.isOpen ? -1 : getHighlightedIndexOnOpen(props, state, 0)
-      };
-      break;
-
-    case stateChangeTypes.FunctionOpenMenu:
-      changes = {
-        isOpen: true,
-        highlightedIndex: getHighlightedIndexOnOpen(props, state, 0)
-      };
-      break;
-
-    case stateChangeTypes.FunctionCloseMenu:
-      changes = {
-        isOpen: false
-      };
-      break;
-
-    case stateChangeTypes.FunctionSetHighlightedIndex:
-      changes = {
-        highlightedIndex: action.highlightedIndex
-      };
-      break;
-
-    case stateChangeTypes.FunctionSetInputValue:
-      changes = {
-        inputValue: action.inputValue
-      };
-      break;
-
-    case stateChangeTypes.FunctionReset:
-      changes = {
-        highlightedIndex: getDefaultValue$1(props, 'highlightedIndex'),
-        isOpen: getDefaultValue$1(props, 'isOpen'),
-        selectedItem: getDefaultValue$1(props, 'selectedItem'),
-        inputValue: getDefaultValue$1(props, 'inputValue')
-      };
-      break;
-
-    default:
-      throw new Error('Reducer called without proper action type.');
-  }
-
-  return extends_extends({}, state, changes);
-}
-/* eslint-enable complexity */
-
-function getItemIndexByCharacterKey(_a) {
-    var keysSoFar = _a.keysSoFar, highlightedIndex = _a.highlightedIndex, items = _a.items, itemToString = _a.itemToString, getItemNodeFromIndex = _a.getItemNodeFromIndex;
-    var lowerCasedKeysSoFar = keysSoFar.toLowerCase();
-    for (var index = 0; index < items.length; index++) {
-        var offsetIndex = (index + highlightedIndex + 1) % items.length;
-        var item = items[offsetIndex];
-        if (item !== undefined &&
-            itemToString(item)
-                .toLowerCase()
-                .startsWith(lowerCasedKeysSoFar)) {
-            var element = getItemNodeFromIndex(offsetIndex);
-            if (!(element === null || element === void 0 ? void 0 : element.hasAttribute('disabled'))) {
-                return offsetIndex;
-            }
-        }
-    }
-    return highlightedIndex;
-}
-var propTypes$2 = {
-    items: prop_types_default.a.array.isRequired,
-    itemToString: prop_types_default.a.func,
-    getA11yStatusMessage: prop_types_default.a.func,
-    getA11ySelectionMessage: prop_types_default.a.func,
-    circularNavigation: prop_types_default.a.bool,
-    highlightedIndex: prop_types_default.a.number,
-    defaultHighlightedIndex: prop_types_default.a.number,
-    initialHighlightedIndex: prop_types_default.a.number,
-    isOpen: prop_types_default.a.bool,
-    defaultIsOpen: prop_types_default.a.bool,
-    initialIsOpen: prop_types_default.a.bool,
-    selectedItem: prop_types_default.a.any,
-    initialSelectedItem: prop_types_default.a.any,
-    defaultSelectedItem: prop_types_default.a.any,
-    id: prop_types_default.a.string,
-    labelId: prop_types_default.a.string,
-    menuId: prop_types_default.a.string,
-    getItemId: prop_types_default.a.func,
-    toggleButtonId: prop_types_default.a.string,
-    stateReducer: prop_types_default.a.func,
-    onSelectedItemChange: prop_types_default.a.func,
-    onHighlightedIndexChange: prop_types_default.a.func,
-    onStateChange: prop_types_default.a.func,
-    onIsOpenChange: prop_types_default.a.func,
-    environment: prop_types_default.a.shape({
-        addEventListener: prop_types_default.a.func,
-        removeEventListener: prop_types_default.a.func,
-        document: prop_types_default.a.shape({
-            getElementById: prop_types_default.a.func,
-            activeElement: prop_types_default.a.any,
-            body: prop_types_default.a.any
-        })
-    })
-};
-/**
- * Default implementation for status message. Only added when menu is open.
- * Will specift if there are results in the list, and if so, how many,
- * and what keys are relevant.
- *
- * @param {Object} param the downshift state and other relevant properties
- * @return {String} the a11y status message
- */
-function downshift_esm_getA11yStatusMessage(_a) {
-    var isOpen = _a.isOpen, resultCount = _a.resultCount, previousResultCount = _a.previousResultCount;
-    if (!isOpen) {
-        return '';
-    }
-    if (!resultCount) {
-        return 'No results are available.';
-    }
-    if (resultCount !== previousResultCount) {
-        return resultCount + " result" + (resultCount === 1 ? ' is' : 's are') + " available, use up and down arrow keys to navigate. Press Enter or Space Bar keys to select.";
-    }
-    return '';
-}
-var defaultProps$2 = __assign(__assign({}, defaultProps$3), { getA11yStatusMessage: downshift_esm_getA11yStatusMessage });
-// eslint-disable-next-line import/no-mutable-exports
-var validatePropTypes$2 = downshift_esm_noop;
-/* istanbul ignore next */
-if (false) {}
-
-var MenuKeyDownArrowDown =  false ? undefined : 0;
-var MenuKeyDownArrowUp =  false ? undefined : 1;
-var MenuKeyDownEscape =  false ? undefined : 2;
-var MenuKeyDownHome =  false ? undefined : 3;
-var MenuKeyDownEnd =  false ? undefined : 4;
-var MenuKeyDownEnter =  false ? undefined : 5;
-var MenuKeyDownSpaceButton =  false ? undefined : 6;
-var MenuKeyDownCharacter =  false ? undefined : 7;
-var MenuBlur =  false ? undefined : 8;
-var MenuMouseLeave$1 =  false ? undefined : 9;
-var ItemMouseMove$1 =  false ? undefined : 10;
-var ItemClick$1 =  false ? undefined : 11;
-var ToggleButtonClick$1 =  false ? undefined : 12;
-var ToggleButtonKeyDownArrowDown =  false ? undefined : 13;
-var ToggleButtonKeyDownArrowUp =  false ? undefined : 14;
-var ToggleButtonKeyDownCharacter =  false ? undefined : 15;
-var FunctionToggleMenu$1 =  false ? undefined : 16;
-var FunctionOpenMenu$1 =  false ? undefined : 17;
-var FunctionCloseMenu$1 =  false ? undefined : 18;
-var FunctionSetHighlightedIndex$1 =  false ? undefined : 19;
-var FunctionSelectItem$1 =  false ? undefined : 20;
-var FunctionSetInputValue$1 =  false ? undefined : 21;
-var FunctionReset$2 =  false ? undefined : 22;
-
-var stateChangeTypes$2 = /*#__PURE__*/Object.freeze({
-  __proto__: null,
-  MenuKeyDownArrowDown: MenuKeyDownArrowDown,
-  MenuKeyDownArrowUp: MenuKeyDownArrowUp,
-  MenuKeyDownEscape: MenuKeyDownEscape,
-  MenuKeyDownHome: MenuKeyDownHome,
-  MenuKeyDownEnd: MenuKeyDownEnd,
-  MenuKeyDownEnter: MenuKeyDownEnter,
-  MenuKeyDownSpaceButton: MenuKeyDownSpaceButton,
-  MenuKeyDownCharacter: MenuKeyDownCharacter,
-  MenuBlur: MenuBlur,
-  MenuMouseLeave: MenuMouseLeave$1,
-  ItemMouseMove: ItemMouseMove$1,
-  ItemClick: ItemClick$1,
-  ToggleButtonClick: ToggleButtonClick$1,
-  ToggleButtonKeyDownArrowDown: ToggleButtonKeyDownArrowDown,
-  ToggleButtonKeyDownArrowUp: ToggleButtonKeyDownArrowUp,
-  ToggleButtonKeyDownCharacter: ToggleButtonKeyDownCharacter,
-  FunctionToggleMenu: FunctionToggleMenu$1,
-  FunctionOpenMenu: FunctionOpenMenu$1,
-  FunctionCloseMenu: FunctionCloseMenu$1,
-  FunctionSetHighlightedIndex: FunctionSetHighlightedIndex$1,
-  FunctionSelectItem: FunctionSelectItem$1,
-  FunctionSetInputValue: FunctionSetInputValue$1,
-  FunctionReset: FunctionReset$2
-});
-
-/* eslint-disable complexity */
-
-function downshiftSelectReducer(state, action) {
-  var type = action.type,
-      props = action.props,
-      shiftKey = action.shiftKey;
-  var changes;
-
-  switch (type) {
-    case ItemClick$1:
-      changes = {
-        isOpen: getDefaultValue$1(props, 'isOpen'),
-        highlightedIndex: getDefaultValue$1(props, 'highlightedIndex'),
-        selectedItem: props.items[action.index]
-      };
-      break;
-
-    case ToggleButtonKeyDownCharacter:
-      {
-        var lowercasedKey = action.key;
-        var inputValue = "" + state.inputValue + lowercasedKey;
-        var itemIndex = getItemIndexByCharacterKey({
-          keysSoFar: inputValue,
-          highlightedIndex: state.selectedItem ? props.items.indexOf(state.selectedItem) : -1,
-          items: props.items,
-          itemToString: props.itemToString,
-          getItemNodeFromIndex: action.getItemNodeFromIndex
-        });
-        changes = extends_extends({
-          inputValue: inputValue
-        }, itemIndex >= 0 && {
-          selectedItem: props.items[itemIndex]
-        });
-      }
-      break;
-
-    case ToggleButtonKeyDownArrowDown:
-      changes = {
-        highlightedIndex: getHighlightedIndexOnOpen(props, state, 1, action.getItemNodeFromIndex),
-        isOpen: true
-      };
-      break;
-
-    case ToggleButtonKeyDownArrowUp:
-      changes = {
-        highlightedIndex: getHighlightedIndexOnOpen(props, state, -1, action.getItemNodeFromIndex),
-        isOpen: true
-      };
-      break;
-
-    case MenuKeyDownEnter:
-    case MenuKeyDownSpaceButton:
-      changes = extends_extends({
-        isOpen: getDefaultValue$1(props, 'isOpen'),
-        highlightedIndex: getDefaultValue$1(props, 'highlightedIndex')
-      }, state.highlightedIndex >= 0 && {
-        selectedItem: props.items[state.highlightedIndex]
-      });
-      break;
-
-    case MenuKeyDownHome:
-      changes = {
-        highlightedIndex: getNextNonDisabledIndex(1, 0, props.items.length, action.getItemNodeFromIndex, false)
-      };
-      break;
-
-    case MenuKeyDownEnd:
-      changes = {
-        highlightedIndex: getNextNonDisabledIndex(-1, props.items.length - 1, props.items.length, action.getItemNodeFromIndex, false)
-      };
-      break;
-
-    case MenuKeyDownEscape:
-      changes = {
-        isOpen: false,
-        highlightedIndex: -1
-      };
-      break;
-
-    case MenuBlur:
-      changes = {
-        isOpen: false,
-        highlightedIndex: -1
-      };
-      break;
-
-    case MenuKeyDownCharacter:
-      {
-        var _lowercasedKey = action.key;
-
-        var _inputValue = "" + state.inputValue + _lowercasedKey;
-
-        var highlightedIndex = getItemIndexByCharacterKey({
-          keysSoFar: _inputValue,
-          highlightedIndex: state.highlightedIndex,
-          items: props.items,
-          itemToString: props.itemToString,
-          getItemNodeFromIndex: action.getItemNodeFromIndex
-        });
-        changes = extends_extends({
-          inputValue: _inputValue
-        }, highlightedIndex >= 0 && {
-          highlightedIndex: highlightedIndex
-        });
-      }
-      break;
-
-    case MenuKeyDownArrowDown:
-      changes = {
-        highlightedIndex: getNextWrappingIndex(shiftKey ? 5 : 1, state.highlightedIndex, props.items.length, action.getItemNodeFromIndex, props.circularNavigation)
-      };
-      break;
-
-    case MenuKeyDownArrowUp:
-      changes = {
-        highlightedIndex: getNextWrappingIndex(shiftKey ? -5 : -1, state.highlightedIndex, props.items.length, action.getItemNodeFromIndex, props.circularNavigation)
-      };
-      break;
-
-    case FunctionSelectItem$1:
-      changes = {
-        selectedItem: action.selectedItem
-      };
-      break;
-
-    default:
-      return downshiftCommonReducer(state, action, stateChangeTypes$2);
-  }
-
-  return extends_extends({}, state, changes);
-}
-/* eslint-enable complexity */
-
-var _excluded$2 = ["onMouseLeave", "refKey", "onKeyDown", "onBlur", "ref"],
-    _excluded2$2 = ["onClick", "onKeyDown", "refKey", "ref"],
-    _excluded3$1 = ["item", "index", "onMouseMove", "onClick", "refKey", "ref"];
-useSelect.stateChangeTypes = stateChangeTypes$2;
-
-function useSelect(userProps) {
-  if (userProps === void 0) {
-    userProps = {};
-  }
-
-  validatePropTypes$2(userProps, useSelect); // Props defaults and destructuring.
-
-  var props = extends_extends({}, defaultProps$2, userProps);
-
-  var items = props.items,
-      scrollIntoView = props.scrollIntoView,
-      environment = props.environment,
-      initialIsOpen = props.initialIsOpen,
-      defaultIsOpen = props.defaultIsOpen,
-      itemToString = props.itemToString,
-      getA11ySelectionMessage = props.getA11ySelectionMessage,
-      getA11yStatusMessage = props.getA11yStatusMessage; // Initial state depending on controlled props.
-
-  var initialState = getInitialState$2(props);
-
-  var _useControlledReducer = useControlledReducer$1(downshiftSelectReducer, initialState, props),
-      state = _useControlledReducer[0],
-      dispatch = _useControlledReducer[1];
-
-  var isOpen = state.isOpen,
-      highlightedIndex = state.highlightedIndex,
-      selectedItem = state.selectedItem,
-      inputValue = state.inputValue; // Element efs.
-
-  var toggleButtonRef = Object(external_React_["useRef"])(null);
-  var menuRef = Object(external_React_["useRef"])(null);
-  var itemRefs = Object(external_React_["useRef"])({}); // used not to trigger menu blur action in some scenarios.
-
-  var shouldBlurRef = Object(external_React_["useRef"])(true); // used to keep the inputValue clearTimeout object between renders.
-
-  var clearTimeoutRef = Object(external_React_["useRef"])(null); // prevent id re-generation between renders.
-
-  var elementIds = useElementIds(props); // used to keep track of how many items we had on previous cycle.
-
-  var previousResultCountRef = Object(external_React_["useRef"])();
-  var isInitialMountRef = Object(external_React_["useRef"])(true); // utility callback to get item element.
-
-  var latest = useLatestRef({
-    state: state,
-    props: props
-  }); // Some utils.
-
-  var getItemNodeFromIndex = Object(external_React_["useCallback"])(function (index) {
-    return itemRefs.current[elementIds.getItemId(index)];
-  }, [elementIds]); // Effects.
-  // Sets a11y status message on changes in state.
-
-  useA11yMessageSetter(getA11yStatusMessage, [isOpen, highlightedIndex, inputValue, items], extends_extends({
-    isInitialMount: isInitialMountRef.current,
-    previousResultCount: previousResultCountRef.current,
-    items: items,
-    environment: environment,
-    itemToString: itemToString
-  }, state)); // Sets a11y status message on changes in selectedItem.
-
-  useA11yMessageSetter(getA11ySelectionMessage, [selectedItem], extends_extends({
-    isInitialMount: isInitialMountRef.current,
-    previousResultCount: previousResultCountRef.current,
-    items: items,
-    environment: environment,
-    itemToString: itemToString
-  }, state)); // Scroll on highlighted item if change comes from keyboard.
-
-  var shouldScrollRef = useScrollIntoView({
-    menuElement: menuRef.current,
-    highlightedIndex: highlightedIndex,
-    isOpen: isOpen,
-    itemRefs: itemRefs,
-    scrollIntoView: scrollIntoView,
-    getItemNodeFromIndex: getItemNodeFromIndex
-  }); // Sets cleanup for the keysSoFar callback, debounded after 500ms.
-
-  Object(external_React_["useEffect"])(function () {
-    // init the clean function here as we need access to dispatch.
-    clearTimeoutRef.current = debounce(function (outerDispatch) {
-      outerDispatch({
-        type: FunctionSetInputValue$1,
-        inputValue: ''
-      });
-    }, 500); // Cancel any pending debounced calls on mount
-
-    return function () {
-      clearTimeoutRef.current.cancel();
-    };
-  }, []); // Invokes the keysSoFar callback set up above.
-
-  Object(external_React_["useEffect"])(function () {
-    if (!inputValue) {
-      return;
-    }
-
-    clearTimeoutRef.current(dispatch);
-  }, [dispatch, inputValue]);
-  useControlPropsValidator({
-    isInitialMount: isInitialMountRef.current,
-    props: props,
-    state: state
-  });
-  /* Controls the focus on the menu or the toggle button. */
-
-  Object(external_React_["useEffect"])(function () {
-    // Don't focus menu on first render.
-    if (isInitialMountRef.current) {
-      // Unless it was initialised as open.
-      if ((initialIsOpen || defaultIsOpen || isOpen) && menuRef.current) {
-        menuRef.current.focus();
-      }
-
-      return;
-    } // Focus menu on open.
-
-
-    if (isOpen) {
-      // istanbul ignore else
-      if (menuRef.current) {
-        menuRef.current.focus();
-      }
-
-      return;
-    } // Focus toggleButton on close, but not if it was closed with (Shift+)Tab.
-
-
-    if (environment.document.activeElement === menuRef.current) {
-      // istanbul ignore else
-      if (toggleButtonRef.current) {
-        shouldBlurRef.current = false;
-        toggleButtonRef.current.focus();
-      }
-    } // eslint-disable-next-line react-hooks/exhaustive-deps
-
-  }, [isOpen]);
-  Object(external_React_["useEffect"])(function () {
-    if (isInitialMountRef.current) {
-      return;
-    }
-
-    previousResultCountRef.current = items.length;
-  }); // Add mouse/touch events to document.
-
-  var mouseAndTouchTrackersRef = useMouseAndTouchTracker(isOpen, [menuRef, toggleButtonRef], environment, function () {
-    dispatch({
-      type: MenuBlur
-    });
-  });
-  var setGetterPropCallInfo = useGetterPropsCalledChecker('getMenuProps', 'getToggleButtonProps'); // Make initial ref false.
-
-  Object(external_React_["useEffect"])(function () {
-    isInitialMountRef.current = false;
-  }, []); // Reset itemRefs on close.
-
-  Object(external_React_["useEffect"])(function () {
-    if (!isOpen) {
-      itemRefs.current = {};
-    }
-  }, [isOpen]); // Event handler functions.
-
-  var toggleButtonKeyDownHandlers = Object(external_React_["useMemo"])(function () {
-    return {
-      ArrowDown: function ArrowDown(event) {
-        event.preventDefault();
-        dispatch({
-          type: ToggleButtonKeyDownArrowDown,
-          getItemNodeFromIndex: getItemNodeFromIndex,
-          shiftKey: event.shiftKey
-        });
-      },
-      ArrowUp: function ArrowUp(event) {
-        event.preventDefault();
-        dispatch({
-          type: ToggleButtonKeyDownArrowUp,
-          getItemNodeFromIndex: getItemNodeFromIndex,
-          shiftKey: event.shiftKey
-        });
-      }
-    };
-  }, [dispatch, getItemNodeFromIndex]);
-  var menuKeyDownHandlers = Object(external_React_["useMemo"])(function () {
-    return {
-      ArrowDown: function ArrowDown(event) {
-        event.preventDefault();
-        dispatch({
-          type: MenuKeyDownArrowDown,
-          getItemNodeFromIndex: getItemNodeFromIndex,
-          shiftKey: event.shiftKey
-        });
-      },
-      ArrowUp: function ArrowUp(event) {
-        event.preventDefault();
-        dispatch({
-          type: MenuKeyDownArrowUp,
-          getItemNodeFromIndex: getItemNodeFromIndex,
-          shiftKey: event.shiftKey
-        });
-      },
-      Home: function Home(event) {
-        event.preventDefault();
-        dispatch({
-          type: MenuKeyDownHome,
-          getItemNodeFromIndex: getItemNodeFromIndex
-        });
-      },
-      End: function End(event) {
-        event.preventDefault();
-        dispatch({
-          type: MenuKeyDownEnd,
-          getItemNodeFromIndex: getItemNodeFromIndex
-        });
-      },
-      Escape: function Escape() {
-        dispatch({
-          type: MenuKeyDownEscape
-        });
-      },
-      Enter: function Enter(event) {
-        event.preventDefault();
-        dispatch({
-          type: MenuKeyDownEnter
-        });
-      },
-      ' ': function _(event) {
-        event.preventDefault();
-        dispatch({
-          type: MenuKeyDownSpaceButton
-        });
-      }
-    };
-  }, [dispatch, getItemNodeFromIndex]); // Action functions.
-
-  var toggleMenu = Object(external_React_["useCallback"])(function () {
-    dispatch({
-      type: FunctionToggleMenu$1
-    });
-  }, [dispatch]);
-  var closeMenu = Object(external_React_["useCallback"])(function () {
-    dispatch({
-      type: FunctionCloseMenu$1
-    });
-  }, [dispatch]);
-  var openMenu = Object(external_React_["useCallback"])(function () {
-    dispatch({
-      type: FunctionOpenMenu$1
-    });
-  }, [dispatch]);
-  var setHighlightedIndex = Object(external_React_["useCallback"])(function (newHighlightedIndex) {
-    dispatch({
-      type: FunctionSetHighlightedIndex$1,
-      highlightedIndex: newHighlightedIndex
-    });
-  }, [dispatch]);
-  var selectItem = Object(external_React_["useCallback"])(function (newSelectedItem) {
-    dispatch({
-      type: FunctionSelectItem$1,
-      selectedItem: newSelectedItem
-    });
-  }, [dispatch]);
-  var reset = Object(external_React_["useCallback"])(function () {
-    dispatch({
-      type: FunctionReset$2
-    });
-  }, [dispatch]);
-  var setInputValue = Object(external_React_["useCallback"])(function (newInputValue) {
-    dispatch({
-      type: FunctionSetInputValue$1,
-      inputValue: newInputValue
-    });
-  }, [dispatch]); // Getter functions.
-
-  var getLabelProps = Object(external_React_["useCallback"])(function (labelProps) {
-    return extends_extends({
-      id: elementIds.labelId,
-      htmlFor: elementIds.toggleButtonId
-    }, labelProps);
-  }, [elementIds]);
-  var getMenuProps = Object(external_React_["useCallback"])(function (_temp, _temp2) {
-    var _extends2;
-
-    var _ref = _temp === void 0 ? {} : _temp,
-        onMouseLeave = _ref.onMouseLeave,
-        _ref$refKey = _ref.refKey,
-        refKey = _ref$refKey === void 0 ? 'ref' : _ref$refKey,
-        onKeyDown = _ref.onKeyDown,
-        onBlur = _ref.onBlur,
-        ref = _ref.ref,
-        rest = objectWithoutPropertiesLoose_objectWithoutPropertiesLoose(_ref, _excluded$2);
-
-    var _ref2 = _temp2 === void 0 ? {} : _temp2,
-        _ref2$suppressRefErro = _ref2.suppressRefError,
-        suppressRefError = _ref2$suppressRefErro === void 0 ? false : _ref2$suppressRefErro;
-
-    var latestState = latest.current.state;
-
-    var menuHandleKeyDown = function menuHandleKeyDown(event) {
-      var key = normalizeArrowKey(event);
-
-      if (key && menuKeyDownHandlers[key]) {
-        menuKeyDownHandlers[key](event);
-      } else if (isAcceptedCharacterKey(key)) {
-        dispatch({
-          type: MenuKeyDownCharacter,
-          key: key,
-          getItemNodeFromIndex: getItemNodeFromIndex
-        });
-      }
-    };
-
-    var menuHandleBlur = function menuHandleBlur() {
-      // if the blur was a result of selection, we don't trigger this action.
-      if (shouldBlurRef.current === false) {
-        shouldBlurRef.current = true;
-        return;
-      }
-
-      var shouldBlur = !mouseAndTouchTrackersRef.current.isMouseDown;
-      /* istanbul ignore else */
-
-      if (shouldBlur) {
-        dispatch({
-          type: MenuBlur
-        });
-      }
-    };
-
-    var menuHandleMouseLeave = function menuHandleMouseLeave() {
-      dispatch({
-        type: MenuMouseLeave$1
-      });
-    };
-
-    setGetterPropCallInfo('getMenuProps', suppressRefError, refKey, menuRef);
-    return extends_extends((_extends2 = {}, _extends2[refKey] = handleRefs(ref, function (menuNode) {
-      menuRef.current = menuNode;
-    }), _extends2.id = elementIds.menuId, _extends2.role = 'listbox', _extends2['aria-labelledby'] = elementIds.labelId, _extends2.tabIndex = -1, _extends2), latestState.isOpen && latestState.highlightedIndex > -1 && {
-      'aria-activedescendant': elementIds.getItemId(latestState.highlightedIndex)
-    }, {
-      onMouseLeave: callAllEventHandlers(onMouseLeave, menuHandleMouseLeave),
-      onKeyDown: callAllEventHandlers(onKeyDown, menuHandleKeyDown),
-      onBlur: callAllEventHandlers(onBlur, menuHandleBlur)
-    }, rest);
-  }, [dispatch, latest, menuKeyDownHandlers, mouseAndTouchTrackersRef, setGetterPropCallInfo, elementIds, getItemNodeFromIndex]);
-  var getToggleButtonProps = Object(external_React_["useCallback"])(function (_temp3, _temp4) {
-    var _extends3;
-
-    var _ref3 = _temp3 === void 0 ? {} : _temp3,
-        onClick = _ref3.onClick,
-        onKeyDown = _ref3.onKeyDown,
-        _ref3$refKey = _ref3.refKey,
-        refKey = _ref3$refKey === void 0 ? 'ref' : _ref3$refKey,
-        ref = _ref3.ref,
-        rest = objectWithoutPropertiesLoose_objectWithoutPropertiesLoose(_ref3, _excluded2$2);
-
-    var _ref4 = _temp4 === void 0 ? {} : _temp4,
-        _ref4$suppressRefErro = _ref4.suppressRefError,
-        suppressRefError = _ref4$suppressRefErro === void 0 ? false : _ref4$suppressRefErro;
-
-    var toggleButtonHandleClick = function toggleButtonHandleClick() {
-      dispatch({
-        type: ToggleButtonClick$1
-      });
-    };
-
-    var toggleButtonHandleKeyDown = function toggleButtonHandleKeyDown(event) {
-      var key = normalizeArrowKey(event);
-
-      if (key && toggleButtonKeyDownHandlers[key]) {
-        toggleButtonKeyDownHandlers[key](event);
-      } else if (isAcceptedCharacterKey(key)) {
-        dispatch({
-          type: ToggleButtonKeyDownCharacter,
-          key: key,
-          getItemNodeFromIndex: getItemNodeFromIndex
-        });
-      }
-    };
-
-    var toggleProps = extends_extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, function (toggleButtonNode) {
-      toggleButtonRef.current = toggleButtonNode;
-    }), _extends3.id = elementIds.toggleButtonId, _extends3['aria-haspopup'] = 'listbox', _extends3['aria-expanded'] = latest.current.state.isOpen, _extends3['aria-labelledby'] = elementIds.labelId + " " + elementIds.toggleButtonId, _extends3), rest);
-
-    if (!rest.disabled) {
-      toggleProps.onClick = callAllEventHandlers(onClick, toggleButtonHandleClick);
-      toggleProps.onKeyDown = callAllEventHandlers(onKeyDown, toggleButtonHandleKeyDown);
-    }
-
-    setGetterPropCallInfo('getToggleButtonProps', suppressRefError, refKey, toggleButtonRef);
-    return toggleProps;
-  }, [dispatch, latest, toggleButtonKeyDownHandlers, setGetterPropCallInfo, elementIds, getItemNodeFromIndex]);
-  var getItemProps = Object(external_React_["useCallback"])(function (_temp5) {
-    var _extends4;
-
-    var _ref5 = _temp5 === void 0 ? {} : _temp5,
-        item = _ref5.item,
-        index = _ref5.index,
-        onMouseMove = _ref5.onMouseMove,
-        onClick = _ref5.onClick,
-        _ref5$refKey = _ref5.refKey,
-        refKey = _ref5$refKey === void 0 ? 'ref' : _ref5$refKey,
-        ref = _ref5.ref,
-        rest = objectWithoutPropertiesLoose_objectWithoutPropertiesLoose(_ref5, _excluded3$1);
-
-    var _latest$current = latest.current,
-        latestState = _latest$current.state,
-        latestProps = _latest$current.props;
-
-    var itemHandleMouseMove = function itemHandleMouseMove() {
-      if (index === latestState.highlightedIndex) {
-        return;
-      }
-
-      shouldScrollRef.current = false;
-      dispatch({
-        type: ItemMouseMove$1,
-        index: index
-      });
-    };
-
-    var itemHandleClick = function itemHandleClick() {
-      dispatch({
-        type: ItemClick$1,
-        index: index
-      });
-    };
-
-    var itemIndex = getItemIndex(index, item, latestProps.items);
-
-    if (itemIndex < 0) {
-      throw new Error('Pass either item or item index in getItemProps!');
-    }
-
-    var itemProps = extends_extends((_extends4 = {
-      role: 'option',
-      'aria-selected': "" + (itemIndex === latestState.highlightedIndex),
-      id: elementIds.getItemId(itemIndex)
-    }, _extends4[refKey] = handleRefs(ref, function (itemNode) {
-      if (itemNode) {
-        itemRefs.current[elementIds.getItemId(itemIndex)] = itemNode;
-      }
-    }), _extends4), rest);
-
-    if (!rest.disabled) {
-      itemProps.onMouseMove = callAllEventHandlers(onMouseMove, itemHandleMouseMove);
-      itemProps.onClick = callAllEventHandlers(onClick, itemHandleClick);
-    }
-
-    return itemProps;
-  }, [dispatch, latest, shouldScrollRef, elementIds]);
-  return {
-    // prop getters.
-    getToggleButtonProps: getToggleButtonProps,
-    getLabelProps: getLabelProps,
-    getMenuProps: getMenuProps,
-    getItemProps: getItemProps,
-    // actions.
-    toggleMenu: toggleMenu,
-    openMenu: openMenu,
-    closeMenu: closeMenu,
-    setHighlightedIndex: setHighlightedIndex,
-    selectItem: selectItem,
-    reset: reset,
-    setInputValue: setInputValue,
-    // state.
-    highlightedIndex: highlightedIndex,
-    isOpen: isOpen,
-    selectedItem: selectedItem,
-    inputValue: inputValue
-  };
-}
-
-var InputKeyDownArrowDown =  false ? undefined : 0;
-var InputKeyDownArrowUp =  false ? undefined : 1;
-var InputKeyDownEscape =  false ? undefined : 2;
-var InputKeyDownHome =  false ? undefined : 3;
-var InputKeyDownEnd =  false ? undefined : 4;
-var InputKeyDownEnter =  false ? undefined : 5;
-var InputChange =  false ? undefined : 6;
-var InputBlur =  false ? undefined : 7;
-var MenuMouseLeave =  false ? undefined : 8;
-var ItemMouseMove =  false ? undefined : 9;
-var ItemClick =  false ? undefined : 10;
-var ToggleButtonClick =  false ? undefined : 11;
-var FunctionToggleMenu =  false ? undefined : 12;
-var FunctionOpenMenu =  false ? undefined : 13;
-var FunctionCloseMenu =  false ? undefined : 14;
-var FunctionSetHighlightedIndex =  false ? undefined : 15;
-var FunctionSelectItem =  false ? undefined : 16;
-var FunctionSetInputValue =  false ? undefined : 17;
-var FunctionReset$1 =  false ? undefined : 18;
-var ControlledPropUpdatedSelectedItem =  false ? undefined : 19;
-
-var stateChangeTypes$1 = /*#__PURE__*/Object.freeze({
-  __proto__: null,
-  InputKeyDownArrowDown: InputKeyDownArrowDown,
-  InputKeyDownArrowUp: InputKeyDownArrowUp,
-  InputKeyDownEscape: InputKeyDownEscape,
-  InputKeyDownHome: InputKeyDownHome,
-  InputKeyDownEnd: InputKeyDownEnd,
-  InputKeyDownEnter: InputKeyDownEnter,
-  InputChange: InputChange,
-  InputBlur: InputBlur,
-  MenuMouseLeave: MenuMouseLeave,
-  ItemMouseMove: ItemMouseMove,
-  ItemClick: ItemClick,
-  ToggleButtonClick: ToggleButtonClick,
-  FunctionToggleMenu: FunctionToggleMenu,
-  FunctionOpenMenu: FunctionOpenMenu,
-  FunctionCloseMenu: FunctionCloseMenu,
-  FunctionSetHighlightedIndex: FunctionSetHighlightedIndex,
-  FunctionSelectItem: FunctionSelectItem,
-  FunctionSetInputValue: FunctionSetInputValue,
-  FunctionReset: FunctionReset$1,
-  ControlledPropUpdatedSelectedItem: ControlledPropUpdatedSelectedItem
-});
-
-function getInitialState$1(props) {
-  var initialState = getInitialState$2(props);
-  var selectedItem = initialState.selectedItem;
-  var inputValue = initialState.inputValue;
-
-  if (inputValue === '' && selectedItem && props.defaultInputValue === undefined && props.initialInputValue === undefined && props.inputValue === undefined) {
-    inputValue = props.itemToString(selectedItem);
-  }
-
-  return extends_extends({}, initialState, {
-    inputValue: inputValue
-  });
-}
-
-var propTypes$1 = {
-  items: prop_types_default.a.array.isRequired,
-  itemToString: prop_types_default.a.func,
-  getA11yStatusMessage: prop_types_default.a.func,
-  getA11ySelectionMessage: prop_types_default.a.func,
-  circularNavigation: prop_types_default.a.bool,
-  highlightedIndex: prop_types_default.a.number,
-  defaultHighlightedIndex: prop_types_default.a.number,
-  initialHighlightedIndex: prop_types_default.a.number,
-  isOpen: prop_types_default.a.bool,
-  defaultIsOpen: prop_types_default.a.bool,
-  initialIsOpen: prop_types_default.a.bool,
-  selectedItem: prop_types_default.a.any,
-  initialSelectedItem: prop_types_default.a.any,
-  defaultSelectedItem: prop_types_default.a.any,
-  inputValue: prop_types_default.a.string,
-  defaultInputValue: prop_types_default.a.string,
-  initialInputValue: prop_types_default.a.string,
-  id: prop_types_default.a.string,
-  labelId: prop_types_default.a.string,
-  menuId: prop_types_default.a.string,
-  getItemId: prop_types_default.a.func,
-  inputId: prop_types_default.a.string,
-  toggleButtonId: prop_types_default.a.string,
-  stateReducer: prop_types_default.a.func,
-  onSelectedItemChange: prop_types_default.a.func,
-  onHighlightedIndexChange: prop_types_default.a.func,
-  onStateChange: prop_types_default.a.func,
-  onIsOpenChange: prop_types_default.a.func,
-  onInputValueChange: prop_types_default.a.func,
-  environment: prop_types_default.a.shape({
-    addEventListener: prop_types_default.a.func,
-    removeEventListener: prop_types_default.a.func,
-    document: prop_types_default.a.shape({
-      getElementById: prop_types_default.a.func,
-      activeElement: prop_types_default.a.any,
-      body: prop_types_default.a.any
-    })
-  })
-};
-/**
- * The useCombobox version of useControlledReducer, which also
- * checks if the controlled prop selectedItem changed between
- * renders. If so, it will also update inputValue with its
- * string equivalent. It uses the common useEnhancedReducer to
- * compute the rest of the state.
- *
- * @param {Function} reducer Reducer function from downshift.
- * @param {Object} initialState Initial state of the hook.
- * @param {Object} props The hook props.
- * @returns {Array} An array with the state and an action dispatcher.
- */
-
-function useControlledReducer(reducer, initialState, props) {
-  var previousSelectedItemRef = Object(external_React_["useRef"])();
-
-  var _useEnhancedReducer = useEnhancedReducer(reducer, initialState, props),
-      state = _useEnhancedReducer[0],
-      dispatch = _useEnhancedReducer[1]; // ToDo: if needed, make same approach as selectedItemChanged from Downshift.
-
-
-  Object(external_React_["useEffect"])(function () {
-    if (isControlledProp(props, 'selectedItem')) {
-      if (previousSelectedItemRef.current !== props.selectedItem) {
-        dispatch({
-          type: ControlledPropUpdatedSelectedItem,
-          inputValue: props.itemToString(props.selectedItem)
-        });
-      }
-
-      previousSelectedItemRef.current = state.selectedItem === previousSelectedItemRef.current ? props.selectedItem : state.selectedItem;
-    }
-  });
-  return [getState(state, props), dispatch];
-} // eslint-disable-next-line import/no-mutable-exports
-
-
-var validatePropTypes$1 = downshift_esm_noop;
-/* istanbul ignore next */
-
-if (false) {}
-
-var defaultProps$1 = extends_extends({}, defaultProps$3, {
-  getA11yStatusMessage: getA11yStatusMessage$1,
-  circularNavigation: true
-});
-
-/* eslint-disable complexity */
-
-function downshiftUseComboboxReducer(state, action) {
-  var type = action.type,
-      props = action.props,
-      shiftKey = action.shiftKey;
-  var changes;
-
-  switch (type) {
-    case ItemClick:
-      changes = {
-        isOpen: getDefaultValue$1(props, 'isOpen'),
-        highlightedIndex: getDefaultValue$1(props, 'highlightedIndex'),
-        selectedItem: props.items[action.index],
-        inputValue: props.itemToString(props.items[action.index])
-      };
-      break;
-
-    case InputKeyDownArrowDown:
-      if (state.isOpen) {
-        changes = {
-          highlightedIndex: getNextWrappingIndex(shiftKey ? 5 : 1, state.highlightedIndex, props.items.length, action.getItemNodeFromIndex, props.circularNavigation)
-        };
-      } else {
-        changes = {
-          highlightedIndex: getHighlightedIndexOnOpen(props, state, 1, action.getItemNodeFromIndex),
-          isOpen: props.items.length >= 0
-        };
-      }
-
-      break;
-
-    case InputKeyDownArrowUp:
-      if (state.isOpen) {
-        changes = {
-          highlightedIndex: getNextWrappingIndex(shiftKey ? -5 : -1, state.highlightedIndex, props.items.length, action.getItemNodeFromIndex, props.circularNavigation)
-        };
-      } else {
-        changes = {
-          highlightedIndex: getHighlightedIndexOnOpen(props, state, -1, action.getItemNodeFromIndex),
-          isOpen: props.items.length >= 0
-        };
-      }
-
-      break;
-
-    case InputKeyDownEnter:
-      changes = extends_extends({}, state.isOpen && state.highlightedIndex >= 0 && {
-        selectedItem: props.items[state.highlightedIndex],
-        isOpen: getDefaultValue$1(props, 'isOpen'),
-        highlightedIndex: getDefaultValue$1(props, 'highlightedIndex'),
-        inputValue: props.itemToString(props.items[state.highlightedIndex])
-      });
-      break;
-
-    case InputKeyDownEscape:
-      changes = extends_extends({
-        isOpen: false,
-        highlightedIndex: -1
-      }, !state.isOpen && {
-        selectedItem: null,
-        inputValue: ''
-      });
-      break;
-
-    case InputKeyDownHome:
-      changes = {
-        highlightedIndex: getNextNonDisabledIndex(1, 0, props.items.length, action.getItemNodeFromIndex, false)
-      };
-      break;
-
-    case InputKeyDownEnd:
-      changes = {
-        highlightedIndex: getNextNonDisabledIndex(-1, props.items.length - 1, props.items.length, action.getItemNodeFromIndex, false)
-      };
-      break;
-
-    case InputBlur:
-      changes = extends_extends({
-        isOpen: false,
-        highlightedIndex: -1
-      }, state.highlightedIndex >= 0 && action.selectItem && {
-        selectedItem: props.items[state.highlightedIndex],
-        inputValue: props.itemToString(props.items[state.highlightedIndex])
-      });
-      break;
-
-    case InputChange:
-      changes = {
-        isOpen: true,
-        highlightedIndex: getDefaultValue$1(props, 'highlightedIndex'),
-        inputValue: action.inputValue
-      };
-      break;
-
-    case FunctionSelectItem:
-      changes = {
-        selectedItem: action.selectedItem,
-        inputValue: props.itemToString(action.selectedItem)
-      };
-      break;
-
-    case ControlledPropUpdatedSelectedItem:
-      changes = {
-        inputValue: action.inputValue
-      };
-      break;
-
-    default:
-      return downshiftCommonReducer(state, action, stateChangeTypes$1);
-  }
-
-  return extends_extends({}, state, changes);
-}
-/* eslint-enable complexity */
-
-var _excluded$1 = ["onMouseLeave", "refKey", "ref"],
-    _excluded2$1 = ["item", "index", "refKey", "ref", "onMouseMove", "onClick", "onPress"],
-    _excluded3 = ["onClick", "onPress", "refKey", "ref"],
-    _excluded4 = ["onKeyDown", "onChange", "onInput", "onBlur", "onChangeText", "refKey", "ref"],
-    _excluded5 = ["refKey", "ref"];
-useCombobox.stateChangeTypes = stateChangeTypes$1;
-
-function useCombobox(userProps) {
-  if (userProps === void 0) {
-    userProps = {};
-  }
-
-  validatePropTypes$1(userProps, useCombobox); // Props defaults and destructuring.
-
-  var props = extends_extends({}, defaultProps$1, userProps);
-
-  var initialIsOpen = props.initialIsOpen,
-      defaultIsOpen = props.defaultIsOpen,
-      items = props.items,
-      scrollIntoView = props.scrollIntoView,
-      environment = props.environment,
-      getA11yStatusMessage = props.getA11yStatusMessage,
-      getA11ySelectionMessage = props.getA11ySelectionMessage,
-      itemToString = props.itemToString; // Initial state depending on controlled props.
-
-  var initialState = getInitialState$1(props);
-
-  var _useControlledReducer = useControlledReducer(downshiftUseComboboxReducer, initialState, props),
-      state = _useControlledReducer[0],
-      dispatch = _useControlledReducer[1];
-
-  var isOpen = state.isOpen,
-      highlightedIndex = state.highlightedIndex,
-      selectedItem = state.selectedItem,
-      inputValue = state.inputValue; // Element refs.
-
-  var menuRef = Object(external_React_["useRef"])(null);
-  var itemRefs = Object(external_React_["useRef"])({});
-  var inputRef = Object(external_React_["useRef"])(null);
-  var toggleButtonRef = Object(external_React_["useRef"])(null);
-  var comboboxRef = Object(external_React_["useRef"])(null);
-  var isInitialMountRef = Object(external_React_["useRef"])(true); // prevent id re-generation between renders.
-
-  var elementIds = useElementIds(props); // used to keep track of how many items we had on previous cycle.
-
-  var previousResultCountRef = Object(external_React_["useRef"])(); // utility callback to get item element.
-
-  var latest = useLatestRef({
-    state: state,
-    props: props
-  });
-  var getItemNodeFromIndex = Object(external_React_["useCallback"])(function (index) {
-    return itemRefs.current[elementIds.getItemId(index)];
-  }, [elementIds]); // Effects.
-  // Sets a11y status message on changes in state.
-
-  useA11yMessageSetter(getA11yStatusMessage, [isOpen, highlightedIndex, inputValue, items], extends_extends({
-    isInitialMount: isInitialMountRef.current,
-    previousResultCount: previousResultCountRef.current,
-    items: items,
-    environment: environment,
-    itemToString: itemToString
-  }, state)); // Sets a11y status message on changes in selectedItem.
-
-  useA11yMessageSetter(getA11ySelectionMessage, [selectedItem], extends_extends({
-    isInitialMount: isInitialMountRef.current,
-    previousResultCount: previousResultCountRef.current,
-    items: items,
-    environment: environment,
-    itemToString: itemToString
-  }, state)); // Scroll on highlighted item if change comes from keyboard.
-
-  var shouldScrollRef = useScrollIntoView({
-    menuElement: menuRef.current,
-    highlightedIndex: highlightedIndex,
-    isOpen: isOpen,
-    itemRefs: itemRefs,
-    scrollIntoView: scrollIntoView,
-    getItemNodeFromIndex: getItemNodeFromIndex
-  });
-  useControlPropsValidator({
-    isInitialMount: isInitialMountRef.current,
-    props: props,
-    state: state
-  }); // Focus the input on first render if required.
-
-  Object(external_React_["useEffect"])(function () {
-    var focusOnOpen = initialIsOpen || defaultIsOpen || isOpen;
-
-    if (focusOnOpen && inputRef.current) {
-      inputRef.current.focus();
-    } // eslint-disable-next-line react-hooks/exhaustive-deps
-
-  }, []);
-  Object(external_React_["useEffect"])(function () {
-    if (isInitialMountRef.current) {
-      return;
-    }
-
-    previousResultCountRef.current = items.length;
-  }); // Add mouse/touch events to document.
-
-  var mouseAndTouchTrackersRef = useMouseAndTouchTracker(isOpen, [comboboxRef, menuRef, toggleButtonRef], environment, function () {
-    dispatch({
-      type: InputBlur,
-      selectItem: false
-    });
-  });
-  var setGetterPropCallInfo = useGetterPropsCalledChecker('getInputProps', 'getComboboxProps', 'getMenuProps'); // Make initial ref false.
-
-  Object(external_React_["useEffect"])(function () {
-    isInitialMountRef.current = false;
-  }, []); // Reset itemRefs on close.
-
-  Object(external_React_["useEffect"])(function () {
-    if (!isOpen) {
-      itemRefs.current = {};
-    }
-  }, [isOpen]);
-  /* Event handler functions */
-
-  var inputKeyDownHandlers = Object(external_React_["useMemo"])(function () {
-    return {
-      ArrowDown: function ArrowDown(event) {
-        event.preventDefault();
-        dispatch({
-          type: InputKeyDownArrowDown,
-          shiftKey: event.shiftKey,
-          getItemNodeFromIndex: getItemNodeFromIndex
-        });
-      },
-      ArrowUp: function ArrowUp(event) {
-        event.preventDefault();
-        dispatch({
-          type: InputKeyDownArrowUp,
-          shiftKey: event.shiftKey,
-          getItemNodeFromIndex: getItemNodeFromIndex
-        });
-      },
-      Home: function Home(event) {
-        if (!latest.current.state.isOpen) {
-          return;
-        }
-
-        event.preventDefault();
-        dispatch({
-          type: InputKeyDownHome,
-          getItemNodeFromIndex: getItemNodeFromIndex
-        });
-      },
-      End: function End(event) {
-        if (!latest.current.state.isOpen) {
-          return;
-        }
-
-        event.preventDefault();
-        dispatch({
-          type: InputKeyDownEnd,
-          getItemNodeFromIndex: getItemNodeFromIndex
-        });
-      },
-      Escape: function Escape() {
-        var latestState = latest.current.state;
-
-        if (latestState.isOpen || latestState.inputValue || latestState.selectedItem || latestState.highlightedIndex > -1) {
-          dispatch({
-            type: InputKeyDownEscape
-          });
-        }
-      },
-      Enter: function Enter(event) {
-        var latestState = latest.current.state; // if closed or no highlighted index, do nothing.
-
-        if (!latestState.isOpen || latestState.highlightedIndex < 0 || event.which === 229 // if IME composing, wait for next Enter keydown event.
-        ) {
-          return;
-        }
-
-        event.preventDefault();
-        dispatch({
-          type: InputKeyDownEnter,
-          getItemNodeFromIndex: getItemNodeFromIndex
-        });
-      }
-    };
-  }, [dispatch, latest, getItemNodeFromIndex]); // Getter props.
-
-  var getLabelProps = Object(external_React_["useCallback"])(function (labelProps) {
-    return extends_extends({
-      id: elementIds.labelId,
-      htmlFor: elementIds.inputId
-    }, labelProps);
-  }, [elementIds]);
-  var getMenuProps = Object(external_React_["useCallback"])(function (_temp, _temp2) {
-    var _extends2;
-
-    var _ref = _temp === void 0 ? {} : _temp,
-        onMouseLeave = _ref.onMouseLeave,
-        _ref$refKey = _ref.refKey,
-        refKey = _ref$refKey === void 0 ? 'ref' : _ref$refKey,
-        ref = _ref.ref,
-        rest = objectWithoutPropertiesLoose_objectWithoutPropertiesLoose(_ref, _excluded$1);
-
-    var _ref2 = _temp2 === void 0 ? {} : _temp2,
-        _ref2$suppressRefErro = _ref2.suppressRefError,
-        suppressRefError = _ref2$suppressRefErro === void 0 ? false : _ref2$suppressRefErro;
-
-    setGetterPropCallInfo('getMenuProps', suppressRefError, refKey, menuRef);
-    return extends_extends((_extends2 = {}, _extends2[refKey] = handleRefs(ref, function (menuNode) {
-      menuRef.current = menuNode;
-    }), _extends2.id = elementIds.menuId, _extends2.role = 'listbox', _extends2['aria-labelledby'] = elementIds.labelId, _extends2.onMouseLeave = callAllEventHandlers(onMouseLeave, function () {
-      dispatch({
-        type: MenuMouseLeave
-      });
-    }), _extends2), rest);
-  }, [dispatch, setGetterPropCallInfo, elementIds]);
-  var getItemProps = Object(external_React_["useCallback"])(function (_temp3) {
-    var _extends3, _ref4;
-
-    var _ref3 = _temp3 === void 0 ? {} : _temp3,
-        item = _ref3.item,
-        index = _ref3.index,
-        _ref3$refKey = _ref3.refKey,
-        refKey = _ref3$refKey === void 0 ? 'ref' : _ref3$refKey,
-        ref = _ref3.ref,
-        onMouseMove = _ref3.onMouseMove,
-        onClick = _ref3.onClick;
-        _ref3.onPress;
-        var rest = objectWithoutPropertiesLoose_objectWithoutPropertiesLoose(_ref3, _excluded2$1);
-
-    var _latest$current = latest.current,
-        latestProps = _latest$current.props,
-        latestState = _latest$current.state;
-    var itemIndex = getItemIndex(index, item, latestProps.items);
-
-    if (itemIndex < 0) {
-      throw new Error('Pass either item or item index in getItemProps!');
-    }
-
-    var onSelectKey = 'onClick';
-    var customClickHandler = onClick;
-
-    var itemHandleMouseMove = function itemHandleMouseMove() {
-      if (index === latestState.highlightedIndex) {
-        return;
-      }
-
-      shouldScrollRef.current = false;
-      dispatch({
-        type: ItemMouseMove,
-        index: index
-      });
-    };
-
-    var itemHandleClick = function itemHandleClick() {
-      dispatch({
-        type: ItemClick,
-        index: index
-      });
-
-      if (inputRef.current) {
-        inputRef.current.focus();
-      }
-    };
-
-    return extends_extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, function (itemNode) {
-      if (itemNode) {
-        itemRefs.current[elementIds.getItemId(itemIndex)] = itemNode;
-      }
-    }), _extends3.role = 'option', _extends3['aria-selected'] = "" + (itemIndex === latestState.highlightedIndex), _extends3.id = elementIds.getItemId(itemIndex), _extends3), !rest.disabled && (_ref4 = {
-      onMouseMove: callAllEventHandlers(onMouseMove, itemHandleMouseMove)
-    }, _ref4[onSelectKey] = callAllEventHandlers(customClickHandler, itemHandleClick), _ref4), rest);
-  }, [dispatch, latest, shouldScrollRef, elementIds]);
-  var getToggleButtonProps = Object(external_React_["useCallback"])(function (_temp4) {
-    var _extends4;
-
-    var _ref5 = _temp4 === void 0 ? {} : _temp4,
-        onClick = _ref5.onClick;
-        _ref5.onPress;
-        var _ref5$refKey = _ref5.refKey,
-        refKey = _ref5$refKey === void 0 ? 'ref' : _ref5$refKey,
-        ref = _ref5.ref,
-        rest = objectWithoutPropertiesLoose_objectWithoutPropertiesLoose(_ref5, _excluded3);
-
-    var toggleButtonHandleClick = function toggleButtonHandleClick() {
-      dispatch({
-        type: ToggleButtonClick
-      });
-
-      if (!latest.current.state.isOpen && inputRef.current) {
-        inputRef.current.focus();
-      }
-    };
-
-    return extends_extends((_extends4 = {}, _extends4[refKey] = handleRefs(ref, function (toggleButtonNode) {
-      toggleButtonRef.current = toggleButtonNode;
-    }), _extends4.id = elementIds.toggleButtonId, _extends4.tabIndex = -1, _extends4), !rest.disabled && extends_extends({}, {
-      onClick: callAllEventHandlers(onClick, toggleButtonHandleClick)
-    }), rest);
-  }, [dispatch, latest, elementIds]);
-  var getInputProps = Object(external_React_["useCallback"])(function (_temp5, _temp6) {
-    var _extends5;
-
-    var _ref6 = _temp5 === void 0 ? {} : _temp5,
-        onKeyDown = _ref6.onKeyDown,
-        onChange = _ref6.onChange,
-        onInput = _ref6.onInput,
-        onBlur = _ref6.onBlur;
-        _ref6.onChangeText;
-        var _ref6$refKey = _ref6.refKey,
-        refKey = _ref6$refKey === void 0 ? 'ref' : _ref6$refKey,
-        ref = _ref6.ref,
-        rest = objectWithoutPropertiesLoose_objectWithoutPropertiesLoose(_ref6, _excluded4);
-
-    var _ref7 = _temp6 === void 0 ? {} : _temp6,
-        _ref7$suppressRefErro = _ref7.suppressRefError,
-        suppressRefError = _ref7$suppressRefErro === void 0 ? false : _ref7$suppressRefErro;
-
-    setGetterPropCallInfo('getInputProps', suppressRefError, refKey, inputRef);
-    var latestState = latest.current.state;
-
-    var inputHandleKeyDown = function inputHandleKeyDown(event) {
-      var key = normalizeArrowKey(event);
-
-      if (key && inputKeyDownHandlers[key]) {
-        inputKeyDownHandlers[key](event);
-      }
-    };
-
-    var inputHandleChange = function inputHandleChange(event) {
-      dispatch({
-        type: InputChange,
-        inputValue: event.target.value
-      });
-    };
-
-    var inputHandleBlur = function inputHandleBlur() {
-      /* istanbul ignore else */
-      if (latestState.isOpen && !mouseAndTouchTrackersRef.current.isMouseDown) {
-        dispatch({
-          type: InputBlur,
-          selectItem: true
-        });
-      }
-    };
-    /* istanbul ignore next (preact) */
-
-
-    var onChangeKey = 'onChange';
-    var eventHandlers = {};
-
-    if (!rest.disabled) {
-      var _eventHandlers;
-
-      eventHandlers = (_eventHandlers = {}, _eventHandlers[onChangeKey] = callAllEventHandlers(onChange, onInput, inputHandleChange), _eventHandlers.onKeyDown = callAllEventHandlers(onKeyDown, inputHandleKeyDown), _eventHandlers.onBlur = callAllEventHandlers(onBlur, inputHandleBlur), _eventHandlers);
-    }
-
-    return extends_extends((_extends5 = {}, _extends5[refKey] = handleRefs(ref, function (inputNode) {
-      inputRef.current = inputNode;
-    }), _extends5.id = elementIds.inputId, _extends5['aria-autocomplete'] = 'list', _extends5['aria-controls'] = elementIds.menuId, _extends5), latestState.isOpen && latestState.highlightedIndex > -1 && {
-      'aria-activedescendant': elementIds.getItemId(latestState.highlightedIndex)
-    }, {
-      'aria-labelledby': elementIds.labelId,
-      // https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion
-      // revert back since autocomplete="nope" is ignored on latest Chrome and Opera
-      autoComplete: 'off',
-      value: latestState.inputValue
-    }, eventHandlers, rest);
-  }, [dispatch, inputKeyDownHandlers, latest, mouseAndTouchTrackersRef, setGetterPropCallInfo, elementIds]);
-  var getComboboxProps = Object(external_React_["useCallback"])(function (_temp7, _temp8) {
-    var _extends6;
-
-    var _ref8 = _temp7 === void 0 ? {} : _temp7,
-        _ref8$refKey = _ref8.refKey,
-        refKey = _ref8$refKey === void 0 ? 'ref' : _ref8$refKey,
-        ref = _ref8.ref,
-        rest = objectWithoutPropertiesLoose_objectWithoutPropertiesLoose(_ref8, _excluded5);
-
-    var _ref9 = _temp8 === void 0 ? {} : _temp8,
-        _ref9$suppressRefErro = _ref9.suppressRefError,
-        suppressRefError = _ref9$suppressRefErro === void 0 ? false : _ref9$suppressRefErro;
-
-    setGetterPropCallInfo('getComboboxProps', suppressRefError, refKey, comboboxRef);
-    return extends_extends((_extends6 = {}, _extends6[refKey] = handleRefs(ref, function (comboboxNode) {
-      comboboxRef.current = comboboxNode;
-    }), _extends6.role = 'combobox', _extends6['aria-haspopup'] = 'listbox', _extends6['aria-owns'] = elementIds.menuId, _extends6['aria-expanded'] = latest.current.state.isOpen, _extends6), rest);
-  }, [latest, setGetterPropCallInfo, elementIds]); // returns
-
-  var toggleMenu = Object(external_React_["useCallback"])(function () {
-    dispatch({
-      type: FunctionToggleMenu
-    });
-  }, [dispatch]);
-  var closeMenu = Object(external_React_["useCallback"])(function () {
-    dispatch({
-      type: FunctionCloseMenu
-    });
-  }, [dispatch]);
-  var openMenu = Object(external_React_["useCallback"])(function () {
-    dispatch({
-      type: FunctionOpenMenu
-    });
-  }, [dispatch]);
-  var setHighlightedIndex = Object(external_React_["useCallback"])(function (newHighlightedIndex) {
-    dispatch({
-      type: FunctionSetHighlightedIndex,
-      highlightedIndex: newHighlightedIndex
-    });
-  }, [dispatch]);
-  var selectItem = Object(external_React_["useCallback"])(function (newSelectedItem) {
-    dispatch({
-      type: FunctionSelectItem,
-      selectedItem: newSelectedItem
-    });
-  }, [dispatch]);
-  var setInputValue = Object(external_React_["useCallback"])(function (newInputValue) {
-    dispatch({
-      type: FunctionSetInputValue,
-      inputValue: newInputValue
-    });
-  }, [dispatch]);
-  var reset = Object(external_React_["useCallback"])(function () {
-    dispatch({
-      type: FunctionReset$1
-    });
-  }, [dispatch]);
-  return {
-    // prop getters.
-    getItemProps: getItemProps,
-    getLabelProps: getLabelProps,
-    getMenuProps: getMenuProps,
-    getInputProps: getInputProps,
-    getComboboxProps: getComboboxProps,
-    getToggleButtonProps: getToggleButtonProps,
-    // actions.
-    toggleMenu: toggleMenu,
-    openMenu: openMenu,
-    closeMenu: closeMenu,
-    setHighlightedIndex: setHighlightedIndex,
-    setInputValue: setInputValue,
-    selectItem: selectItem,
-    reset: reset,
-    // state.
-    highlightedIndex: highlightedIndex,
-    isOpen: isOpen,
-    selectedItem: selectedItem,
-    inputValue: inputValue
-  };
-}
-
-var defaultStateValues = {
-  activeIndex: -1,
-  selectedItems: []
-};
-/**
- * Returns the initial value for a state key in the following order:
- * 1. controlled prop, 2. initial prop, 3. default prop, 4. default
- * value from Downshift.
- *
- * @param {Object} props Props passed to the hook.
- * @param {string} propKey Props key to generate the value for.
- * @returns {any} The initial value for that prop.
- */
-
-function getInitialValue(props, propKey) {
-  return getInitialValue$1(props, propKey, defaultStateValues);
-}
-/**
- * Returns the default value for a state key in the following order:
- * 1. controlled prop, 2. default prop, 3. default value from Downshift.
- *
- * @param {Object} props Props passed to the hook.
- * @param {string} propKey Props key to generate the value for.
- * @returns {any} The initial value for that prop.
- */
-
-
-function getDefaultValue(props, propKey) {
-  return getDefaultValue$1(props, propKey, defaultStateValues);
-}
-/**
- * Gets the initial state based on the provided props. It uses initial, default
- * and controlled props related to state in order to compute the initial value.
- *
- * @param {Object} props Props passed to the hook.
- * @returns {Object} The initial state.
- */
-
-
-function downshift_esm_getInitialState(props) {
-  var activeIndex = getInitialValue(props, 'activeIndex');
-  var selectedItems = getInitialValue(props, 'selectedItems');
-  return {
-    activeIndex: activeIndex,
-    selectedItems: selectedItems
-  };
-}
-/**
- * Returns true if dropdown keydown operation is permitted. Should not be
- * allowed on keydown with modifier keys (ctrl, alt, shift, meta), on
- * input element with text content that is either highlighted or selection
- * cursor is not at the starting position.
- *
- * @param {KeyboardEvent} event The event from keydown.
- * @returns {boolean} Whether the operation is allowed.
- */
-
-
-function isKeyDownOperationPermitted(event) {
-  if (event.shiftKey || event.metaKey || event.ctrlKey || event.altKey) {
-    return false;
-  }
-
-  var element = event.target;
-
-  if (element instanceof HTMLInputElement && // if element is a text input
-  element.value !== '' && (element.selectionStart !== 0 || element.selectionEnd !== 0)) {
-    return false;
-  }
-
-  return true;
-}
-/**
- * Returns a message to be added to aria-live region when item is removed.
- *
- * @param {Object} selectionParameters Parameters required to build the message.
- * @returns {string} The a11y message.
- */
-
-
-function downshift_esm_getA11yRemovalMessage(selectionParameters) {
-  var removedSelectedItem = selectionParameters.removedSelectedItem,
-      itemToStringLocal = selectionParameters.itemToString;
-  return itemToStringLocal(removedSelectedItem) + " has been removed.";
-}
-
-var propTypes = {
-  selectedItems: prop_types_default.a.array,
-  initialSelectedItems: prop_types_default.a.array,
-  defaultSelectedItems: prop_types_default.a.array,
-  itemToString: prop_types_default.a.func,
-  getA11yRemovalMessage: prop_types_default.a.func,
-  stateReducer: prop_types_default.a.func,
-  activeIndex: prop_types_default.a.number,
-  initialActiveIndex: prop_types_default.a.number,
-  defaultActiveIndex: prop_types_default.a.number,
-  onActiveIndexChange: prop_types_default.a.func,
-  onSelectedItemsChange: prop_types_default.a.func,
-  keyNavigationNext: prop_types_default.a.string,
-  keyNavigationPrevious: prop_types_default.a.string,
-  environment: prop_types_default.a.shape({
-    addEventListener: prop_types_default.a.func,
-    removeEventListener: prop_types_default.a.func,
-    document: prop_types_default.a.shape({
-      getElementById: prop_types_default.a.func,
-      activeElement: prop_types_default.a.any,
-      body: prop_types_default.a.any
-    })
-  })
-};
-var downshift_esm_defaultProps = {
-  itemToString: defaultProps$3.itemToString,
-  stateReducer: defaultProps$3.stateReducer,
-  environment: defaultProps$3.environment,
-  getA11yRemovalMessage: downshift_esm_getA11yRemovalMessage,
-  keyNavigationNext: 'ArrowRight',
-  keyNavigationPrevious: 'ArrowLeft'
-}; // eslint-disable-next-line import/no-mutable-exports
-
-var validatePropTypes = downshift_esm_noop;
-/* istanbul ignore next */
-
-if (false) {}
-
-var SelectedItemClick =  false ? undefined : 0;
-var SelectedItemKeyDownDelete =  false ? undefined : 1;
-var SelectedItemKeyDownBackspace =  false ? undefined : 2;
-var SelectedItemKeyDownNavigationNext =  false ? undefined : 3;
-var SelectedItemKeyDownNavigationPrevious =  false ? undefined : 4;
-var DropdownKeyDownNavigationPrevious =  false ? undefined : 5;
-var DropdownKeyDownBackspace =  false ? undefined : 6;
-var DropdownClick =  false ? undefined : 7;
-var FunctionAddSelectedItem =  false ? undefined : 8;
-var FunctionRemoveSelectedItem =  false ? undefined : 9;
-var FunctionSetSelectedItems =  false ? undefined : 10;
-var FunctionSetActiveIndex =  false ? undefined : 11;
-var FunctionReset =  false ? undefined : 12;
-
-var downshift_esm_stateChangeTypes = /*#__PURE__*/Object.freeze({
-  __proto__: null,
-  SelectedItemClick: SelectedItemClick,
-  SelectedItemKeyDownDelete: SelectedItemKeyDownDelete,
-  SelectedItemKeyDownBackspace: SelectedItemKeyDownBackspace,
-  SelectedItemKeyDownNavigationNext: SelectedItemKeyDownNavigationNext,
-  SelectedItemKeyDownNavigationPrevious: SelectedItemKeyDownNavigationPrevious,
-  DropdownKeyDownNavigationPrevious: DropdownKeyDownNavigationPrevious,
-  DropdownKeyDownBackspace: DropdownKeyDownBackspace,
-  DropdownClick: DropdownClick,
-  FunctionAddSelectedItem: FunctionAddSelectedItem,
-  FunctionRemoveSelectedItem: FunctionRemoveSelectedItem,
-  FunctionSetSelectedItems: FunctionSetSelectedItems,
-  FunctionSetActiveIndex: FunctionSetActiveIndex,
-  FunctionReset: FunctionReset
-});
-
-/* eslint-disable complexity */
-
-function downshiftMultipleSelectionReducer(state, action) {
-  var type = action.type,
-      index = action.index,
-      props = action.props,
-      selectedItem = action.selectedItem;
-  var activeIndex = state.activeIndex,
-      selectedItems = state.selectedItems;
-  var changes;
-
-  switch (type) {
-    case SelectedItemClick:
-      changes = {
-        activeIndex: index
-      };
-      break;
-
-    case SelectedItemKeyDownNavigationPrevious:
-      changes = {
-        activeIndex: activeIndex - 1 < 0 ? 0 : activeIndex - 1
-      };
-      break;
-
-    case SelectedItemKeyDownNavigationNext:
-      changes = {
-        activeIndex: activeIndex + 1 >= selectedItems.length ? -1 : activeIndex + 1
-      };
-      break;
-
-    case SelectedItemKeyDownBackspace:
-    case SelectedItemKeyDownDelete:
-      {
-        var newActiveIndex = activeIndex;
-
-        if (selectedItems.length === 1) {
-          newActiveIndex = -1;
-        } else if (activeIndex === selectedItems.length - 1) {
-          newActiveIndex = selectedItems.length - 2;
-        }
-
-        changes = extends_extends({
-          selectedItems: [].concat(selectedItems.slice(0, activeIndex), selectedItems.slice(activeIndex + 1))
-        }, {
-          activeIndex: newActiveIndex
-        });
-        break;
-      }
-
-    case DropdownKeyDownNavigationPrevious:
-      changes = {
-        activeIndex: selectedItems.length - 1
-      };
-      break;
-
-    case DropdownKeyDownBackspace:
-      changes = {
-        selectedItems: selectedItems.slice(0, selectedItems.length - 1)
-      };
-      break;
-
-    case FunctionAddSelectedItem:
-      changes = {
-        selectedItems: [].concat(selectedItems, [selectedItem])
-      };
-      break;
-
-    case DropdownClick:
-      changes = {
-        activeIndex: -1
-      };
-      break;
-
-    case FunctionRemoveSelectedItem:
-      {
-        var _newActiveIndex = activeIndex;
-        var selectedItemIndex = selectedItems.indexOf(selectedItem);
-
-        if (selectedItems.length === 1) {
-          _newActiveIndex = -1;
-        } else if (selectedItemIndex === selectedItems.length - 1) {
-          _newActiveIndex = selectedItems.length - 2;
-        }
-
-        changes = extends_extends({
-          selectedItems: [].concat(selectedItems.slice(0, selectedItemIndex), selectedItems.slice(selectedItemIndex + 1))
-        }, {
-          activeIndex: _newActiveIndex
-        });
-        break;
-      }
-
-    case FunctionSetSelectedItems:
-      {
-        var newSelectedItems = action.selectedItems;
-        changes = {
-          selectedItems: newSelectedItems
-        };
-        break;
-      }
-
-    case FunctionSetActiveIndex:
-      {
-        var _newActiveIndex2 = action.activeIndex;
-        changes = {
-          activeIndex: _newActiveIndex2
-        };
-        break;
-      }
-
-    case FunctionReset:
-      changes = {
-        activeIndex: getDefaultValue(props, 'activeIndex'),
-        selectedItems: getDefaultValue(props, 'selectedItems')
-      };
-      break;
-
-    default:
-      throw new Error('Reducer called without proper action type.');
-  }
-
-  return extends_extends({}, state, changes);
-}
-
-var _excluded = ["refKey", "ref", "onClick", "onKeyDown", "selectedItem", "index"],
-    _excluded2 = ["refKey", "ref", "onKeyDown", "onClick", "preventKeyAction"];
-useMultipleSelection.stateChangeTypes = downshift_esm_stateChangeTypes;
-
-function useMultipleSelection(userProps) {
-  if (userProps === void 0) {
-    userProps = {};
-  }
-
-  validatePropTypes(userProps, useMultipleSelection); // Props defaults and destructuring.
-
-  var props = extends_extends({}, downshift_esm_defaultProps, userProps);
-
-  var getA11yRemovalMessage = props.getA11yRemovalMessage,
-      itemToString = props.itemToString,
-      environment = props.environment,
-      keyNavigationNext = props.keyNavigationNext,
-      keyNavigationPrevious = props.keyNavigationPrevious; // Reducer init.
-
-  var _useControlledReducer = useControlledReducer$1(downshiftMultipleSelectionReducer, downshift_esm_getInitialState(props), props),
-      state = _useControlledReducer[0],
-      dispatch = _useControlledReducer[1];
-
-  var activeIndex = state.activeIndex,
-      selectedItems = state.selectedItems; // Refs.
-
-  var isInitialMountRef = Object(external_React_["useRef"])(true);
-  var dropdownRef = Object(external_React_["useRef"])(null);
-  var previousSelectedItemsRef = Object(external_React_["useRef"])(selectedItems);
-  var selectedItemRefs = Object(external_React_["useRef"])();
-  selectedItemRefs.current = [];
-  var latest = useLatestRef({
-    state: state,
-    props: props
-  }); // Effects.
-
-  /* Sets a11y status message on changes in selectedItem. */
-
-  Object(external_React_["useEffect"])(function () {
-    if (isInitialMountRef.current) {
-      return;
-    }
-
-    if (selectedItems.length < previousSelectedItemsRef.current.length) {
-      var removedSelectedItem = previousSelectedItemsRef.current.find(function (item) {
-        return selectedItems.indexOf(item) < 0;
-      });
-      setStatus(getA11yRemovalMessage({
-        itemToString: itemToString,
-        resultCount: selectedItems.length,
-        removedSelectedItem: removedSelectedItem,
-        activeIndex: activeIndex,
-        activeSelectedItem: selectedItems[activeIndex]
-      }), environment.document);
-    }
-
-    previousSelectedItemsRef.current = selectedItems; // eslint-disable-next-line react-hooks/exhaustive-deps
-  }, [selectedItems.length]); // Sets focus on active item.
-
-  Object(external_React_["useEffect"])(function () {
-    if (isInitialMountRef.current) {
-      return;
-    }
-
-    if (activeIndex === -1 && dropdownRef.current) {
-      dropdownRef.current.focus();
-    } else if (selectedItemRefs.current[activeIndex]) {
-      selectedItemRefs.current[activeIndex].focus();
-    }
-  }, [activeIndex]);
-  useControlPropsValidator({
-    isInitialMount: isInitialMountRef.current,
-    props: props,
-    state: state
-  });
-  var setGetterPropCallInfo = useGetterPropsCalledChecker('getDropdownProps'); // Make initial ref false.
-
-  Object(external_React_["useEffect"])(function () {
-    isInitialMountRef.current = false;
-  }, []); // Event handler functions.
-
-  var selectedItemKeyDownHandlers = Object(external_React_["useMemo"])(function () {
-    var _ref;
-
-    return _ref = {}, _ref[keyNavigationPrevious] = function () {
-      dispatch({
-        type: SelectedItemKeyDownNavigationPrevious
-      });
-    }, _ref[keyNavigationNext] = function () {
-      dispatch({
-        type: SelectedItemKeyDownNavigationNext
-      });
-    }, _ref.Delete = function Delete() {
-      dispatch({
-        type: SelectedItemKeyDownDelete
-      });
-    }, _ref.Backspace = function Backspace() {
-      dispatch({
-        type: SelectedItemKeyDownBackspace
-      });
-    }, _ref;
-  }, [dispatch, keyNavigationNext, keyNavigationPrevious]);
-  var dropdownKeyDownHandlers = Object(external_React_["useMemo"])(function () {
-    var _ref2;
-
-    return _ref2 = {}, _ref2[keyNavigationPrevious] = function (event) {
-      if (isKeyDownOperationPermitted(event)) {
-        dispatch({
-          type: DropdownKeyDownNavigationPrevious
-        });
-      }
-    }, _ref2.Backspace = function Backspace(event) {
-      if (isKeyDownOperationPermitted(event)) {
-        dispatch({
-          type: DropdownKeyDownBackspace
-        });
-      }
-    }, _ref2;
-  }, [dispatch, keyNavigationPrevious]); // Getter props.
-
-  var getSelectedItemProps = Object(external_React_["useCallback"])(function (_temp) {
-    var _extends2;
-
-    var _ref3 = _temp === void 0 ? {} : _temp,
-        _ref3$refKey = _ref3.refKey,
-        refKey = _ref3$refKey === void 0 ? 'ref' : _ref3$refKey,
-        ref = _ref3.ref,
-        onClick = _ref3.onClick,
-        onKeyDown = _ref3.onKeyDown,
-        selectedItem = _ref3.selectedItem,
-        index = _ref3.index,
-        rest = objectWithoutPropertiesLoose_objectWithoutPropertiesLoose(_ref3, _excluded);
-
-    var latestState = latest.current.state;
-    var itemIndex = getItemIndex(index, selectedItem, latestState.selectedItems);
-
-    if (itemIndex < 0) {
-      throw new Error('Pass either selectedItem or index in getSelectedItemProps!');
-    }
-
-    var selectedItemHandleClick = function selectedItemHandleClick() {
-      dispatch({
-        type: SelectedItemClick,
-        index: index
-      });
-    };
-
-    var selectedItemHandleKeyDown = function selectedItemHandleKeyDown(event) {
-      var key = normalizeArrowKey(event);
-
-      if (key && selectedItemKeyDownHandlers[key]) {
-        selectedItemKeyDownHandlers[key](event);
-      }
-    };
-
-    return extends_extends((_extends2 = {}, _extends2[refKey] = handleRefs(ref, function (selectedItemNode) {
-      if (selectedItemNode) {
-        selectedItemRefs.current.push(selectedItemNode);
-      }
-    }), _extends2.tabIndex = index === latestState.activeIndex ? 0 : -1, _extends2.onClick = callAllEventHandlers(onClick, selectedItemHandleClick), _extends2.onKeyDown = callAllEventHandlers(onKeyDown, selectedItemHandleKeyDown), _extends2), rest);
-  }, [dispatch, latest, selectedItemKeyDownHandlers]);
-  var getDropdownProps = Object(external_React_["useCallback"])(function (_temp2, _temp3) {
-    var _extends3;
-
-    var _ref4 = _temp2 === void 0 ? {} : _temp2,
-        _ref4$refKey = _ref4.refKey,
-        refKey = _ref4$refKey === void 0 ? 'ref' : _ref4$refKey,
-        ref = _ref4.ref,
-        onKeyDown = _ref4.onKeyDown,
-        onClick = _ref4.onClick,
-        _ref4$preventKeyActio = _ref4.preventKeyAction,
-        preventKeyAction = _ref4$preventKeyActio === void 0 ? false : _ref4$preventKeyActio,
-        rest = objectWithoutPropertiesLoose_objectWithoutPropertiesLoose(_ref4, _excluded2);
-
-    var _ref5 = _temp3 === void 0 ? {} : _temp3,
-        _ref5$suppressRefErro = _ref5.suppressRefError,
-        suppressRefError = _ref5$suppressRefErro === void 0 ? false : _ref5$suppressRefErro;
-
-    setGetterPropCallInfo('getDropdownProps', suppressRefError, refKey, dropdownRef);
-
-    var dropdownHandleKeyDown = function dropdownHandleKeyDown(event) {
-      var key = normalizeArrowKey(event);
-
-      if (key && dropdownKeyDownHandlers[key]) {
-        dropdownKeyDownHandlers[key](event);
-      }
-    };
-
-    var dropdownHandleClick = function dropdownHandleClick() {
-      dispatch({
-        type: DropdownClick
-      });
-    };
-
-    return extends_extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, function (dropdownNode) {
-      if (dropdownNode) {
-        dropdownRef.current = dropdownNode;
-      }
-    }), _extends3), !preventKeyAction && {
-      onKeyDown: callAllEventHandlers(onKeyDown, dropdownHandleKeyDown),
-      onClick: callAllEventHandlers(onClick, dropdownHandleClick)
-    }, rest);
-  }, [dispatch, dropdownKeyDownHandlers, setGetterPropCallInfo]); // returns
-
-  var addSelectedItem = Object(external_React_["useCallback"])(function (selectedItem) {
-    dispatch({
-      type: FunctionAddSelectedItem,
-      selectedItem: selectedItem
-    });
-  }, [dispatch]);
-  var removeSelectedItem = Object(external_React_["useCallback"])(function (selectedItem) {
-    dispatch({
-      type: FunctionRemoveSelectedItem,
-      selectedItem: selectedItem
-    });
-  }, [dispatch]);
-  var setSelectedItems = Object(external_React_["useCallback"])(function (newSelectedItems) {
-    dispatch({
-      type: FunctionSetSelectedItems,
-      selectedItems: newSelectedItems
-    });
-  }, [dispatch]);
-  var setActiveIndex = Object(external_React_["useCallback"])(function (newActiveIndex) {
-    dispatch({
-      type: FunctionSetActiveIndex,
-      activeIndex: newActiveIndex
-    });
-  }, [dispatch]);
-  var reset = Object(external_React_["useCallback"])(function () {
-    dispatch({
-      type: FunctionReset
-    });
-  }, [dispatch]);
-  return {
-    getSelectedItemProps: getSelectedItemProps,
-    getDropdownProps: getDropdownProps,
-    addSelectedItem: addSelectedItem,
-    removeSelectedItem: removeSelectedItem,
-    setSelectedItems: setSelectedItems,
-    setActiveIndex: setActiveIndex,
-    reset: reset,
-    selectedItems: selectedItems,
-    activeIndex: activeIndex
-  };
-}
-
-
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/custom-select-control/index.js
-
-
-
-/**
- * External dependencies
- */
-
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-const custom_select_control_itemToString = item => item && item.name; // This is needed so that in Windows, where
-// the menu does not necessarily open on
-// key up/down, you can still switch between
-// options with the menu closed.
-
-
-const custom_select_control_stateReducer = ({
-  selectedItem
-}, {
-  type,
-  changes,
-  props: {
-    items
-  }
-}) => {
-  switch (type) {
-    case useSelect.stateChangeTypes.ToggleButtonKeyDownArrowDown:
-      // If we already have a selected item, try to select the next one,
-      // without circular navigation. Otherwise, select the first item.
-      return {
-        selectedItem: items[selectedItem ? Math.min(items.indexOf(selectedItem) + 1, items.length - 1) : 0]
-      };
-
-    case useSelect.stateChangeTypes.ToggleButtonKeyDownArrowUp:
-      // If we already have a selected item, try to select the previous one,
-      // without circular navigation. Otherwise, select the last item.
-      return {
-        selectedItem: items[selectedItem ? Math.max(items.indexOf(selectedItem) - 1, 0) : items.length - 1]
-      };
-
-    default:
-      return changes;
-  }
-};
-
-function CustomSelectControl({
-  className,
-  hideLabelFromVision,
-  label,
-  options: items,
-  onChange: onSelectedItemChange,
-  value: _selectedItem
-}) {
-  const {
-    getLabelProps,
-    getToggleButtonProps,
-    getMenuProps,
-    getItemProps,
-    isOpen,
-    highlightedIndex,
-    selectedItem
-  } = useSelect({
-    initialSelectedItem: items[0],
-    items,
-    itemToString: custom_select_control_itemToString,
-    onSelectedItemChange,
-    selectedItem: _selectedItem,
-    stateReducer: custom_select_control_stateReducer
-  });
-  const menuProps = getMenuProps({
-    className: 'components-custom-select-control__menu',
-    'aria-hidden': !isOpen
-  }); // We need this here, because the null active descendant is not
-  // fully ARIA compliant.
-
-  if (menuProps['aria-activedescendant'] && menuProps['aria-activedescendant'].slice(0, 'downshift-null'.length) === 'downshift-null') {
-    delete menuProps['aria-activedescendant'];
-  }
-
-  return Object(external_wp_element_["createElement"])("div", {
-    className: classnames_default()('components-custom-select-control', className)
-  }, hideLabelFromVision ? Object(external_wp_element_["createElement"])(visually_hidden["a" /* default */], Object(esm_extends["a" /* default */])({
-    as: "label"
-  }, getLabelProps()), label) :
-  /* eslint-disable-next-line jsx-a11y/label-has-associated-control, jsx-a11y/label-has-for */
-  Object(external_wp_element_["createElement"])("label", getLabelProps({
-    className: 'components-custom-select-control__label'
-  }), label), Object(external_wp_element_["createElement"])(build_module_button["a" /* default */], getToggleButtonProps({
-    // This is needed because some speech recognition software don't support `aria-labelledby`.
-    'aria-label': label,
-    'aria-labelledby': undefined,
-    className: 'components-custom-select-control__button',
-    isSmall: true
-  }), custom_select_control_itemToString(selectedItem), Object(external_wp_element_["createElement"])(build_module_icon["a" /* default */], {
-    icon: chevron_down["a" /* default */],
-    className: "components-custom-select-control__button-icon"
-  })), Object(external_wp_element_["createElement"])("ul", menuProps, isOpen && items.map((item, index) => // eslint-disable-next-line react/jsx-key
-  Object(external_wp_element_["createElement"])("li", getItemProps({
-    item,
-    index,
-    key: item.key,
-    className: classnames_default()(item.className, 'components-custom-select-control__item', {
-      'is-highlighted': index === highlightedIndex
-    }),
-    style: item.style
-  }), item.name, item === selectedItem && Object(external_wp_element_["createElement"])(build_module_icon["a" /* default */], {
-    icon: check["a" /* default */],
-    className: "components-custom-select-control__item-icon"
-  })))));
-}
-
-// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/dashicon/index.js
-var dashicon = __webpack_require__("vUUf");
-
-// EXTERNAL MODULE: ./node_modules/react-dates/initialize.js
-var initialize = __webpack_require__("GG7f");
-
-// EXTERNAL MODULE: external "moment"
-var external_moment_ = __webpack_require__("wy2R");
-var external_moment_default = /*#__PURE__*/__webpack_require__.n(external_moment_);
-
-// EXTERNAL MODULE: ./node_modules/react-dates/lib/components/DayPickerSingleDateController.js
-var DayPickerSingleDateController = __webpack_require__("Xtko");
-var DayPickerSingleDateController_default = /*#__PURE__*/__webpack_require__.n(DayPickerSingleDateController);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/date-time/date.js
-
-
-/**
- * External dependencies
- */
-
- // react-dates doesn't tree-shake correctly, so we import from the individual
-// component here, to avoid including too much of the library
-
-
-/**
- * WordPress dependencies
- */
-
-
-
-/**
- * Module Constants
- */
-
-const TIMEZONELESS_FORMAT = 'YYYY-MM-DDTHH:mm:ss';
-const ARIAL_LABEL_TIME_FORMAT = 'dddd, LL';
-
-function DatePickerDay({
-  day,
-  events = []
-}) {
-  const ref = Object(external_wp_element_["useRef"])();
-  /*
-   * a11y hack to make the `There is/are n events` string
-   * available speaking for readers,
-   * re-defining the aria-label attribute.
-   * This attribute is handled by the react-dates component.
-   */
-
-  Object(external_wp_element_["useEffect"])(() => {
-    var _ref$current;
-
-    // Bail when no parent node.
-    if (!(ref !== null && ref !== void 0 && (_ref$current = ref.current) !== null && _ref$current !== void 0 && _ref$current.parentNode)) {
-      return;
-    }
-
-    const {
-      parentNode
-    } = ref.current;
-    const dayAriaLabel = external_moment_default()(day).format(ARIAL_LABEL_TIME_FORMAT);
-
-    if (!events.length) {
-      // Set aria-label without event description.
-      parentNode.setAttribute('aria-label', dayAriaLabel);
-      return;
-    }
-
-    const dayWithEventsDescription = Object(external_wp_i18n_["sprintf"])( // translators: 1: Calendar day format, 2: Calendar event number.
-    Object(external_wp_i18n_["_n"])('%1$s. There is %2$d event.', '%1$s. There are %2$d events.', events.length), dayAriaLabel, events.length);
-    parentNode.setAttribute('aria-label', dayWithEventsDescription);
-  }, [events.length]);
-  return Object(external_wp_element_["createElement"])("div", {
-    ref: ref,
-    className: classnames_default()('components-datetime__date__day', {
-      'has-events': events === null || events === void 0 ? void 0 : events.length
-    })
-  }, day.format('D'));
-}
-
-class date_DatePicker extends external_wp_element_["Component"] {
-  constructor() {
-    super(...arguments);
-    this.onChangeMoment = this.onChangeMoment.bind(this);
-    this.nodeRef = Object(external_wp_element_["createRef"])();
-    this.onMonthPreviewedHandler = this.onMonthPreviewedHandler.bind(this);
-  }
-
-  onMonthPreviewedHandler(newMonthDate) {
-    var _this$props;
-
-    (_this$props = this.props) === null || _this$props === void 0 ? void 0 : _this$props.onMonthPreviewed(newMonthDate.toISOString());
-    this.keepFocusInside();
-  }
-  /*
-   * Todo: We should remove this function ASAP.
-   * It is kept because focus is lost when we click on the previous and next month buttons.
-   * This focus loss closes the date picker popover.
-   * Ideally we should add an upstream commit on react-dates to fix this issue.
-   */
-
-
-  keepFocusInside() {
-    if (!this.nodeRef.current) {
-      return;
-    }
-
-    const {
-      ownerDocument
-    } = this.nodeRef.current;
-    const {
-      activeElement
-    } = ownerDocument; // If focus was lost.
-
-    if (!activeElement || !this.nodeRef.current.contains(ownerDocument.activeElement)) {
-      // Retrieve the focus region div.
-      const focusRegion = this.nodeRef.current.querySelector('.DayPicker_focusRegion');
-
-      if (!focusRegion) {
-        return;
-      } // Keep the focus on focus region.
-
-
-      focusRegion.focus();
-    }
-  }
-
-  onChangeMoment(newDate) {
-    const {
-      currentDate,
-      onChange
-    } = this.props; // If currentDate is null, use now as momentTime to designate hours, minutes, seconds.
-
-    const momentDate = currentDate ? external_moment_default()(currentDate) : external_moment_default()();
-    const momentTime = {
-      hours: momentDate.hours(),
-      minutes: momentDate.minutes(),
-      seconds: 0
-    };
-    onChange(newDate.set(momentTime).format(TIMEZONELESS_FORMAT)); // Keep focus on the date picker.
-
-    this.keepFocusInside();
-  }
-  /**
-   * Create a Moment object from a date string. With no currentDate supplied, default to a Moment
-   * object representing now. If a null value is passed, return a null value.
-   *
-   * @param {?string} currentDate Date representing the currently selected date or null to signify no selection.
-   * @return {?moment.Moment} Moment object for selected date or null.
-   */
-
-
-  getMomentDate(currentDate) {
-    if (null === currentDate) {
-      return null;
-    }
-
-    return currentDate ? external_moment_default()(currentDate) : external_moment_default()();
-  }
-
-  getEventsPerDay(day) {
-    var _this$props$events;
-
-    if (!((_this$props$events = this.props.events) !== null && _this$props$events !== void 0 && _this$props$events.length)) {
-      return [];
-    }
-
-    return this.props.events.filter(eventDay => day.isSame(eventDay.date, 'day'));
-  }
-
-  render() {
-    const {
-      currentDate,
-      isInvalidDate
-    } = this.props;
-    const momentDate = this.getMomentDate(currentDate);
-    return Object(external_wp_element_["createElement"])("div", {
-      className: "components-datetime__date",
-      ref: this.nodeRef
-    }, Object(external_wp_element_["createElement"])(DayPickerSingleDateController_default.a, {
-      date: momentDate,
-      daySize: 30,
-      focused: true,
-      hideKeyboardShortcutsPanel: true // This is a hack to force the calendar to update on month or year change
-      // https://github.com/airbnb/react-dates/issues/240#issuecomment-361776665
-      ,
-      key: `datepicker-controller-${momentDate ? momentDate.format('MM-YYYY') : 'null'}`,
-      noBorder: true,
-      numberOfMonths: 1,
-      onDateChange: this.onChangeMoment,
-      transitionDuration: 0,
-      weekDayFormat: "ddd",
-      dayAriaLabelFormat: ARIAL_LABEL_TIME_FORMAT,
-      isRTL: Object(external_wp_i18n_["isRTL"])(),
-      isOutsideRange: date => {
-        return isInvalidDate && isInvalidDate(date.toDate());
-      },
-      onPrevMonthClick: this.onMonthPreviewedHandler,
-      onNextMonthClick: this.onMonthPreviewedHandler,
-      renderDayContents: day => Object(external_wp_element_["createElement"])(DatePickerDay, {
-        day: day,
-        events: this.getEventsPerDay(day)
-      })
-    }));
-  }
-
-}
-
-/* harmony default export */ var date_time_date = (date_DatePicker);
-
-// EXTERNAL MODULE: external ["wp","date"]
-var external_wp_date_ = __webpack_require__("FqII");
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/date-time/timezone.js
-
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-/**
- * Displays timezone information when user timezone is different from site timezone.
- */
-
-const TimeZone = () => {
-  const {
-    timezone
-  } = Object(external_wp_date_["__experimentalGetSettings"])(); // Convert timezone offset to hours.
-
-  const userTimezoneOffset = -1 * (new Date().getTimezoneOffset() / 60); // System timezone and user timezone match, nothing needed.
-  // Compare as numbers because it comes over as string.
-
-  if (Number(timezone.offset) === userTimezoneOffset) {
-    return null;
-  }
-
-  const offsetSymbol = timezone.offset >= 0 ? '+' : '';
-  const zoneAbbr = '' !== timezone.abbr && isNaN(timezone.abbr) ? timezone.abbr : `UTC${offsetSymbol}${timezone.offset}`;
-  const timezoneDetail = 'UTC' === timezone.string ? Object(external_wp_i18n_["__"])('Coordinated Universal Time') : `(${zoneAbbr}) ${timezone.string.replace('_', ' ')}`;
-  return Object(external_wp_element_["createElement"])(build_module_tooltip["a" /* default */], {
-    position: "top center",
-    text: timezoneDetail
-  }, Object(external_wp_element_["createElement"])("div", {
-    className: "components-datetime__timezone"
-  }, zoneAbbr));
-};
-
-/* harmony default export */ var date_time_timezone = (TimeZone);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/date-time/time.js
-
-
-/**
- * External dependencies
- */
-
-
-
-/**
- * WordPress dependencies
- */
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-/**
- * Module Constants
- */
-
-const time_TIMEZONELESS_FORMAT = 'YYYY-MM-DDTHH:mm:ss';
-/**
- * <UpdateOnBlurAsIntegerField>
- * A shared component to parse, validate, and handle remounting of the underlying form field element like <input> and <select>.
- *
- * @param {Object}        props          Component props.
- * @param {string}        props.as       Render the component as specific element tag, defaults to "input".
- * @param {number|string} props.value    The default value of the component which will be parsed to integer.
- * @param {Function}      props.onUpdate Call back when blurred and validated.
- */
-
-function UpdateOnBlurAsIntegerField({
-  as,
-  value,
-  onUpdate,
-  ...props
-}) {
-  function handleBlur(event) {
-    const {
-      target
-    } = event;
-
-    if (value === target.value) {
-      return;
-    }
-
-    const parsedValue = parseInt(target.value, 10); // Run basic number validation on the input.
-
-    if (!Object(external_lodash_["isInteger"])(parsedValue) || typeof props.max !== 'undefined' && parsedValue > props.max || typeof props.min !== 'undefined' && parsedValue < props.min) {
-      // If validation failed, reset the value to the previous valid value.
-      target.value = value;
-    } else {
-      // Otherwise, it's valid, call onUpdate.
-      onUpdate(target.name, parsedValue);
-    }
-  }
-
-  return Object(external_wp_element_["createElement"])(as || 'input', {
-    // Re-mount the input value to accept the latest value as the defaultValue.
-    key: value,
-    defaultValue: value,
-    onBlur: handleBlur,
-    ...props
-  });
-}
-/**
- * <TimePicker>
- *
- * @typedef {Date|string|number} WPValidDateTimeFormat
- *
- * @param {Object}                props             Component props.
- * @param {boolean}               props.is12Hour    Should the time picker showed in 12 hour format or 24 hour format.
- * @param {WPValidDateTimeFormat} props.currentTime The initial current time the time picker should render.
- * @param {Function}              props.onChange    Callback function when the date changed.
- */
-
-
-function TimePicker({
-  is12Hour,
-  currentTime,
-  onChange
-}) {
-  const [date, setDate] = Object(external_wp_element_["useState"])(() => // Truncate the date at the minutes, see: #15495.
-  external_moment_default()(currentTime).startOf('minutes')); // Reset the state when currentTime changed.
-
-  Object(external_wp_element_["useEffect"])(() => {
-    setDate(currentTime ? external_moment_default()(currentTime).startOf('minutes') : external_moment_default()());
-  }, [currentTime]);
-  const {
-    day,
-    month,
-    year,
-    minutes,
-    hours,
-    am
-  } = Object(external_wp_element_["useMemo"])(() => ({
-    day: date.format('DD'),
-    month: date.format('MM'),
-    year: date.format('YYYY'),
-    minutes: date.format('mm'),
-    hours: date.format(is12Hour ? 'hh' : 'HH'),
-    am: date.format('H') <= 11 ? 'AM' : 'PM'
-  }), [date, is12Hour]);
-  /**
-   * Function that sets the date state and calls the onChange with a new date.
-   * The date is truncated at the minutes.
-   *
-   * @param {Object} newDate The date object.
-   */
-
-  function changeDate(newDate) {
-    setDate(newDate);
-    onChange(newDate.format(time_TIMEZONELESS_FORMAT));
-  }
-
-  function update(name, value) {
-    // Clone the date and call the specific setter function according to `name`.
-    const newDate = date.clone()[name](value);
-    changeDate(newDate);
-  }
-
-  function updateAmPm(value) {
-    return () => {
-      if (am === value) {
-        return;
-      }
-
-      const parsedHours = parseInt(hours, 10);
-      const newDate = date.clone().hours(value === 'PM' ? (parsedHours % 12 + 12) % 24 : parsedHours % 12);
-      changeDate(newDate);
-    };
-  }
-
-  const dayFormat = Object(external_wp_element_["createElement"])("div", {
-    className: "components-datetime__time-field components-datetime__time-field-day"
-  }, Object(external_wp_element_["createElement"])(UpdateOnBlurAsIntegerField, {
-    "aria-label": Object(external_wp_i18n_["__"])('Day'),
-    className: "components-datetime__time-field-day-input",
-    type: "number" // The correct function to call in moment.js is "date" not "day".
-    ,
-    name: "date",
-    value: day,
-    step: 1,
-    min: 1,
-    max: 31,
-    onUpdate: update
-  }));
-  const monthFormat = Object(external_wp_element_["createElement"])("div", {
-    className: "components-datetime__time-field components-datetime__time-field-month"
-  }, Object(external_wp_element_["createElement"])(UpdateOnBlurAsIntegerField, {
-    as: "select",
-    "aria-label": Object(external_wp_i18n_["__"])('Month'),
-    className: "components-datetime__time-field-month-select",
-    name: "month",
-    value: month // The value starts from 0, so we have to -1 when setting month.
-    ,
-    onUpdate: (key, value) => update(key, value - 1)
-  }, Object(external_wp_element_["createElement"])("option", {
-    value: "01"
-  }, Object(external_wp_i18n_["__"])('January')), Object(external_wp_element_["createElement"])("option", {
-    value: "02"
-  }, Object(external_wp_i18n_["__"])('February')), Object(external_wp_element_["createElement"])("option", {
-    value: "03"
-  }, Object(external_wp_i18n_["__"])('March')), Object(external_wp_element_["createElement"])("option", {
-    value: "04"
-  }, Object(external_wp_i18n_["__"])('April')), Object(external_wp_element_["createElement"])("option", {
-    value: "05"
-  }, Object(external_wp_i18n_["__"])('May')), Object(external_wp_element_["createElement"])("option", {
-    value: "06"
-  }, Object(external_wp_i18n_["__"])('June')), Object(external_wp_element_["createElement"])("option", {
-    value: "07"
-  }, Object(external_wp_i18n_["__"])('July')), Object(external_wp_element_["createElement"])("option", {
-    value: "08"
-  }, Object(external_wp_i18n_["__"])('August')), Object(external_wp_element_["createElement"])("option", {
-    value: "09"
-  }, Object(external_wp_i18n_["__"])('September')), Object(external_wp_element_["createElement"])("option", {
-    value: "10"
-  }, Object(external_wp_i18n_["__"])('October')), Object(external_wp_element_["createElement"])("option", {
-    value: "11"
-  }, Object(external_wp_i18n_["__"])('November')), Object(external_wp_element_["createElement"])("option", {
-    value: "12"
-  }, Object(external_wp_i18n_["__"])('December'))));
-  const dayMonthFormat = is12Hour ? Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, dayFormat, monthFormat) : Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, monthFormat, dayFormat);
-  return Object(external_wp_element_["createElement"])("div", {
-    className: classnames_default()('components-datetime__time')
-  }, Object(external_wp_element_["createElement"])("fieldset", null, Object(external_wp_element_["createElement"])("legend", {
-    className: "components-datetime__time-legend invisible"
-  }, Object(external_wp_i18n_["__"])('Date')), Object(external_wp_element_["createElement"])("div", {
-    className: "components-datetime__time-wrapper"
-  }, dayMonthFormat, Object(external_wp_element_["createElement"])("div", {
-    className: "components-datetime__time-field components-datetime__time-field-year"
-  }, Object(external_wp_element_["createElement"])(UpdateOnBlurAsIntegerField, {
-    "aria-label": Object(external_wp_i18n_["__"])('Year'),
-    className: "components-datetime__time-field-year-input",
-    type: "number",
-    name: "year",
-    step: 1,
-    min: 0,
-    max: 9999,
-    value: year,
-    onUpdate: update
-  })))), Object(external_wp_element_["createElement"])("fieldset", null, Object(external_wp_element_["createElement"])("legend", {
-    className: "components-datetime__time-legend invisible"
-  }, Object(external_wp_i18n_["__"])('Time')), Object(external_wp_element_["createElement"])("div", {
-    className: "components-datetime__time-wrapper"
-  }, Object(external_wp_element_["createElement"])("div", {
-    className: "components-datetime__time-field components-datetime__time-field-time"
-  }, Object(external_wp_element_["createElement"])(UpdateOnBlurAsIntegerField, {
-    "aria-label": Object(external_wp_i18n_["__"])('Hours'),
-    className: "components-datetime__time-field-hours-input",
-    type: "number",
-    name: "hours",
-    step: 1,
-    min: is12Hour ? 1 : 0,
-    max: is12Hour ? 12 : 23,
-    value: hours,
-    onUpdate: update
-  }), Object(external_wp_element_["createElement"])("span", {
-    className: "components-datetime__time-separator",
-    "aria-hidden": "true"
-  }, ":"), Object(external_wp_element_["createElement"])(UpdateOnBlurAsIntegerField, {
-    "aria-label": Object(external_wp_i18n_["__"])('Minutes'),
-    className: "components-datetime__time-field-minutes-input",
-    type: "number",
-    name: "minutes",
-    step: 1,
-    min: 0,
-    max: 59,
-    value: minutes,
-    onUpdate: update
-  })), is12Hour && Object(external_wp_element_["createElement"])(button_group, {
-    className: "components-datetime__time-field components-datetime__time-field-am-pm"
-  }, Object(external_wp_element_["createElement"])(build_module_button["a" /* default */], {
-    isPrimary: am === 'AM',
-    isSecondary: am !== 'AM',
-    onClick: updateAmPm('AM'),
-    className: "components-datetime__time-am-button"
-  }, Object(external_wp_i18n_["__"])('AM')), Object(external_wp_element_["createElement"])(build_module_button["a" /* default */], {
-    isPrimary: am === 'PM',
-    isSecondary: am !== 'PM',
-    onClick: updateAmPm('PM'),
-    className: "components-datetime__time-pm-button"
-  }, Object(external_wp_i18n_["__"])('PM'))), Object(external_wp_element_["createElement"])(date_time_timezone, null))));
-}
-/* harmony default export */ var time = (TimePicker);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/date-time/index.js
-
-
-/**
- * External dependencies
- */
-// Needed to initialise the default datepicker styles.
-// See: https://github.com/airbnb/react-dates#initialize
-
-
-/**
- * WordPress dependencies
- */
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-
-function DateTimePicker({
-  currentDate,
-  is12Hour,
-  isInvalidDate,
-  onMonthPreviewed = external_lodash_["noop"],
-  onChange,
-  events
-}, ref) {
-  const [calendarHelpIsVisible, setCalendarHelpIsVisible] = Object(external_wp_element_["useState"])(false);
-
-  function onClickDescriptionToggle() {
-    setCalendarHelpIsVisible(!calendarHelpIsVisible);
-  }
-
-  return Object(external_wp_element_["createElement"])("div", {
-    ref: ref,
-    className: "components-datetime"
-  }, !calendarHelpIsVisible && Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(time, {
-    currentTime: currentDate,
-    onChange: onChange,
-    is12Hour: is12Hour
-  }), Object(external_wp_element_["createElement"])(date_time_date, {
-    currentDate: currentDate,
-    onChange: onChange,
-    isInvalidDate: isInvalidDate,
-    events: events,
-    onMonthPreviewed: onMonthPreviewed
-  })), calendarHelpIsVisible && Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])("div", {
-    className: "components-datetime__calendar-help"
-  }, Object(external_wp_element_["createElement"])("h4", null, Object(external_wp_i18n_["__"])('Click to Select')), Object(external_wp_element_["createElement"])("ul", null, Object(external_wp_element_["createElement"])("li", null, Object(external_wp_i18n_["__"])('Click the right or left arrows to select other months in the past or the future.')), Object(external_wp_element_["createElement"])("li", null, Object(external_wp_i18n_["__"])('Click the desired day to select it.'))), Object(external_wp_element_["createElement"])("h4", null, Object(external_wp_i18n_["__"])('Navigating with a keyboard')), Object(external_wp_element_["createElement"])("ul", null, Object(external_wp_element_["createElement"])("li", null, Object(external_wp_element_["createElement"])("abbr", {
-    "aria-label": Object(external_wp_i18n_["_x"])('Enter', 'keyboard button')
-  }, "\u21B5"), ' '
-  /* JSX removes whitespace, but a space is required for screen readers. */
-  , Object(external_wp_element_["createElement"])("span", null, Object(external_wp_i18n_["__"])('Select the date in focus.'))), Object(external_wp_element_["createElement"])("li", null, Object(external_wp_element_["createElement"])("abbr", {
-    "aria-label": Object(external_wp_i18n_["__"])('Left and Right Arrows')
-  }, "\u2190/\u2192"), ' '
-  /* JSX removes whitespace, but a space is required for screen readers. */
-  , Object(external_wp_i18n_["__"])('Move backward (left) or forward (right) by one day.')), Object(external_wp_element_["createElement"])("li", null, Object(external_wp_element_["createElement"])("abbr", {
-    "aria-label": Object(external_wp_i18n_["__"])('Up and Down Arrows')
-  }, "\u2191/\u2193"), ' '
-  /* JSX removes whitespace, but a space is required for screen readers. */
-  , Object(external_wp_i18n_["__"])('Move backward (up) or forward (down) by one week.')), Object(external_wp_element_["createElement"])("li", null, Object(external_wp_element_["createElement"])("abbr", {
-    "aria-label": Object(external_wp_i18n_["__"])('Page Up and Page Down')
-  }, Object(external_wp_i18n_["__"])('PgUp/PgDn')), ' '
-  /* JSX removes whitespace, but a space is required for screen readers. */
-  , Object(external_wp_i18n_["__"])('Move backward (PgUp) or forward (PgDn) by one month.')), Object(external_wp_element_["createElement"])("li", null, Object(external_wp_element_["createElement"])("abbr", {
-    "aria-label": Object(external_wp_i18n_["__"])('Home and End')
-  }, Object(external_wp_i18n_["__"])('Home/End')), ' '
-  /* JSX removes whitespace, but a space is required for screen readers. */
-  , Object(external_wp_i18n_["__"])('Go to the first (home) or last (end) day of a week.'))))), Object(external_wp_element_["createElement"])("div", {
-    className: "components-datetime__buttons"
-  }, !calendarHelpIsVisible && currentDate && Object(external_wp_element_["createElement"])(build_module_button["a" /* default */], {
-    className: "components-datetime__date-reset-button",
-    isLink: true,
-    onClick: () => onChange(null)
-  }, Object(external_wp_i18n_["__"])('Reset')), Object(external_wp_element_["createElement"])(build_module_button["a" /* default */], {
-    className: "components-datetime__date-help-toggle",
-    isLink: true,
-    onClick: onClickDescriptionToggle
-  }, calendarHelpIsVisible ? Object(external_wp_i18n_["__"])('Close') : Object(external_wp_i18n_["__"])('Calendar Help'))));
-}
-
-/* harmony default export */ var date_time = (Object(external_wp_element_["forwardRef"])(DateTimePicker));
-
-// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/icon/index.js
-var components_build_module_icon = __webpack_require__("9VDH");
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/select-control/styles/select-control-styles.js
-
-
-/**
- * External dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-const select_control_styles_disabledStyles = ({
-  disabled
-}) => {
-  if (!disabled) return '';
-  return /*#__PURE__*/css_browser_esm({
-    color: COLORS.ui.textDisabled
-  },  true ? "" : undefined);
-};
-
-const select_control_styles_fontSizeStyles = ({
-  size
-}) => {
-  const sizes = {
-    default: '13px',
-    small: '11px'
-  };
-  const fontSize = sizes[size];
-  const fontSizeMobile = '16px';
-  if (!fontSize) return '';
-  return /*#__PURE__*/css_browser_esm("font-size:", fontSizeMobile, ";@media ( min-width:600px ){font-size:", fontSize, ";}" + ( true ? "" : undefined));
-};
-
-const select_control_styles_sizeStyles = ({
-  size
-}) => {
-  const sizes = {
-    default: {
-      height: 30,
-      lineHeight: 1,
-      minHeight: 30
-    },
-    small: {
-      height: 24,
-      lineHeight: 1,
-      minHeight: 24
-    }
-  };
-  const style = sizes[size] || sizes.default;
-  return /*#__PURE__*/css_browser_esm(style,  true ? "" : undefined);
-}; // TODO: Resolve need to use &&& to increase specificity
-// https://github.com/WordPress/gutenberg/issues/18483
-
-
-const Select = styled_base_browser_esm("select", {
-  target: "e12x0a390",
-  label: "Select"
-})("&&&{appearance:none;background:transparent;box-sizing:border-box;border:none;box-shadow:none !important;color:", COLORS.black, ";display:block;margin:0;width:100%;", select_control_styles_disabledStyles, ";", select_control_styles_fontSizeStyles, ";", select_control_styles_sizeStyles, ";", rtl_rtl({
-  paddingLeft: 8,
-  paddingRight: 24
-})(), "}" + ( true ? "" : undefined));
-const DownArrowWrapper = styled_base_browser_esm("div", {
-  target: "e12x0a391",
-  label: "DownArrowWrapper"
-})("align-items:center;bottom:0;box-sizing:border-box;display:flex;padding:0 4px;pointer-events:none;position:absolute;top:0;", rtl_rtl({
-  right: 0
-})(), " svg{display:block;}" + ( true ? "" : undefined));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/select-control/index.js
-
-
-
-/**
- * External dependencies
- */
-
-
-/**
- * WordPress dependencies
- */
-
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-function select_control_useUniqueId(idProp) {
-  const instanceId = Object(external_wp_compose_["useInstanceId"])(SelectControl);
-  const id = `inspector-select-control-${instanceId}`;
-  return idProp || id;
-}
-
-function SelectControl({
-  className,
-  disabled = false,
-  help,
-  hideLabelFromVision,
-  id: idProp,
-  label,
-  multiple = false,
-  onBlur = external_lodash_["noop"],
-  onChange = external_lodash_["noop"],
-  onFocus = external_lodash_["noop"],
-  options = [],
-  size = 'default',
-  value: valueProp,
-  labelPosition = 'top',
-  ...props
-}, ref) {
-  const [isFocused, setIsFocused] = Object(external_wp_element_["useState"])(false);
-  const id = select_control_useUniqueId(idProp);
-  const helpId = help ? `${id}__help` : undefined; // Disable reason: A select with an onchange throws a warning
-
-  if (Object(external_lodash_["isEmpty"])(options)) return null;
-
-  const handleOnBlur = event => {
-    onBlur(event);
-    setIsFocused(false);
-  };
-
-  const handleOnFocus = event => {
-    onFocus(event);
-    setIsFocused(true);
-  };
-
-  const handleOnChange = event => {
-    if (multiple) {
-      const selectedOptions = [...event.target.options].filter(({
-        selected
-      }) => selected);
-      const newValues = selectedOptions.map(({
-        value
-      }) => value);
-      onChange(newValues);
-      return;
-    }
-
-    onChange(event.target.value, {
-      event
-    });
-  };
-
-  const classes = classnames_default()('components-select-control', className);
-  /* eslint-disable jsx-a11y/no-onchange */
-
-  return Object(external_wp_element_["createElement"])(base_control, {
-    help: help
-  }, Object(external_wp_element_["createElement"])(input_base, Object(esm_extends["a" /* default */])({
-    className: classes,
-    disabled: disabled,
-    hideLabelFromVision: hideLabelFromVision,
-    id: id,
-    isFocused: isFocused,
-    label: label,
-    size: size,
-    suffix: Object(external_wp_element_["createElement"])(DownArrowWrapper, null, Object(external_wp_element_["createElement"])(build_module_icon["a" /* default */], {
-      icon: chevron_down["a" /* default */],
-      size: 18
-    })),
-    labelPosition: labelPosition
-  }, props), Object(external_wp_element_["createElement"])(Select, Object(esm_extends["a" /* default */])({}, props, {
-    "aria-describedby": helpId,
-    className: "components-select-control__input",
-    disabled: disabled,
-    id: id,
-    multiple: multiple,
-    onBlur: handleOnBlur,
-    onChange: handleOnChange,
-    onFocus: handleOnFocus,
-    ref: ref,
-    size: size,
-    value: valueProp
-  }), options.map((option, index) => {
-    const key = option.id || `${option.label}-${option.value}-${index}`;
-    return Object(external_wp_element_["createElement"])("option", {
-      key: key,
-      value: option.value,
-      disabled: option.disabled
-    }, option.label);
-  }))));
-  /* eslint-enable jsx-a11y/no-onchange */
-}
-
-const select_control_ForwardedComponent = Object(external_wp_element_["forwardRef"])(SelectControl);
-/* harmony default export */ var select_control = (select_control_ForwardedComponent);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/dimension-control/sizes.js
-/**
- * Sizes
- *
- * defines the sizes used in dimension controls
- * all hardcoded `size` values are based on the value of
- * the Sass variable `$block-padding` from
- * `packages/block-editor/src/components/dimension-control/sizes.js`.
- */
-
-/**
- * WordPress dependencies
- */
-
-/**
- * Finds the correct size object from the provided sizes
- * table by size slug (eg: `medium`)
- *
- * @param  {Array}  sizes containing objects for each size definition
- * @param  {string} slug  a string representation of the size (eg: `medium`)
- * @return {Object}       the matching size definition
- */
-
-const findSizeBySlug = (sizes, slug) => sizes.find(size => slug === size.slug);
-/* harmony default export */ var dimension_control_sizes = ([{
-  name: Object(external_wp_i18n_["__"])('None'),
-  slug: 'none'
-}, {
-  name: Object(external_wp_i18n_["__"])('Small'),
-  slug: 'small'
-}, {
-  name: Object(external_wp_i18n_["__"])('Medium'),
-  slug: 'medium'
-}, {
-  name: Object(external_wp_i18n_["__"])('Large'),
-  slug: 'large'
-}, {
-  name: Object(external_wp_i18n_["__"])('Extra Large'),
-  slug: 'xlarge'
-}]);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/dimension-control/index.js
-
-
-/**
- * External dependencies
- */
-
-
-/**
- * WordPress dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-
-
-/**
- * Internal dependencies
- */
-
-
-function DimensionControl(props) {
-  const {
-    label,
-    value,
-    sizes = dimension_control_sizes,
-    icon,
-    onChange,
-    className = ''
-  } = props;
-
-  const onChangeSpacingSize = val => {
-    const theSize = findSizeBySlug(sizes, val);
-
-    if (!theSize || value === theSize.slug) {
-      onChange(undefined);
-    } else if (Object(external_lodash_["isFunction"])(onChange)) {
-      onChange(theSize.slug);
-    }
-  };
-
-  const formatSizesAsOptions = theSizes => {
-    const options = theSizes.map(({
-      name,
-      slug
-    }) => ({
-      label: name,
-      value: slug
-    }));
-    return [{
-      label: Object(external_wp_i18n_["__"])('Default'),
-      value: ''
-    }].concat(options);
-  };
-
-  const selectLabel = Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, icon && Object(external_wp_element_["createElement"])(components_build_module_icon["a" /* default */], {
-    icon: icon
-  }), label);
-  return Object(external_wp_element_["createElement"])(select_control, {
-    className: classnames_default()(className, 'block-editor-dimension-control'),
-    label: selectLabel,
-    hideLabelFromVision: false,
-    value: value,
-    onChange: onChangeSpacingSize,
-    options: formatSizesAsOptions(sizes)
-  });
-}
-/* harmony default export */ var dimension_control = (DimensionControl);
-
-// EXTERNAL MODULE: external ["wp","dom"]
-var external_wp_dom_ = __webpack_require__("1CF3");
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/disabled/styles/disabled-styles.js
-
-
-function disabled_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
-
-const StyledWrapper = styled_base_browser_esm("div", {
-  target: "e1ac3xxk0",
-  label: "StyledWrapper"
-})( true ? {
-  name: "u2jump",
-  styles: "position:relative;pointer-events:none;&::after{content:'';position:absolute;top:0;right:0;bottom:0;left:0;}*{pointer-events:none;}"
-} : undefined);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/disabled/index.js
-
-
-
-/**
- * External dependencies
- */
-
-
-/**
- * WordPress dependencies
- */
-
-
-
-/**
- * Internal dependencies
- */
-
-
-const Context = Object(external_wp_element_["createContext"])(false);
-const {
-  Consumer,
-  Provider: disabled_Provider
-} = Context;
-/**
- * Names of control nodes which qualify for disabled behavior.
- *
- * See WHATWG HTML Standard: 4.10.18.5: "Enabling and disabling form controls: the disabled attribute".
- *
- * @see https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#enabling-and-disabling-form-controls:-the-disabled-attribute
- *
- * @type {string[]}
- */
-
-const DISABLED_ELIGIBLE_NODE_NAMES = ['BUTTON', 'FIELDSET', 'INPUT', 'OPTGROUP', 'OPTION', 'SELECT', 'TEXTAREA'];
-
-function Disabled({
-  className,
-  children,
-  isDisabled = true,
-  ...props
-}) {
-  const node = Object(external_wp_element_["useRef"])();
-
-  const disable = () => {
-    external_wp_dom_["focus"].focusable.find(node.current).forEach(focusable => {
-      if (Object(external_lodash_["includes"])(DISABLED_ELIGIBLE_NODE_NAMES, focusable.nodeName)) {
-        focusable.setAttribute('disabled', '');
-      }
-
-      if (focusable.nodeName === 'A') {
-        focusable.setAttribute('tabindex', -1);
-      }
-
-      const tabIndex = focusable.getAttribute('tabindex');
-
-      if (tabIndex !== null && tabIndex !== '-1') {
-        focusable.removeAttribute('tabindex');
-      }
-
-      if (focusable.hasAttribute('contenteditable')) {
-        focusable.setAttribute('contenteditable', 'false');
-      }
-    });
-  }; // Debounce re-disable since disabling process itself will incur
-  // additional mutations which should be ignored.
-
-
-  const debouncedDisable = Object(external_wp_element_["useCallback"])(Object(external_lodash_["debounce"])(disable, {
-    leading: true
-  }), []);
-  Object(external_wp_element_["useLayoutEffect"])(() => {
-    if (!isDisabled) {
-      return;
-    }
-
-    disable();
-    const observer = new window.MutationObserver(debouncedDisable);
-    observer.observe(node.current, {
-      childList: true,
-      attributes: true,
-      subtree: true
-    });
-    return () => {
-      observer.disconnect();
-      debouncedDisable.cancel();
-    };
-  }, []);
-
-  if (!isDisabled) {
-    return Object(external_wp_element_["createElement"])(disabled_Provider, {
-      value: false
-    }, children);
-  }
-
-  return Object(external_wp_element_["createElement"])(disabled_Provider, {
-    value: true
-  }, Object(external_wp_element_["createElement"])(StyledWrapper, Object(esm_extends["a" /* default */])({
-    ref: node,
-    className: classnames_default()(className, 'components-disabled')
-  }, props), children));
-}
-
-Disabled.Context = Context;
-Disabled.Consumer = Consumer;
-/* harmony default export */ var build_module_disabled = (Disabled);
-
-// CONCATENATED MODULE: ./node_modules/reakit/es/__keys-e6a5cfbe.js
-// Automatically generated
-var DISCLOSURE_STATE_KEYS = ["baseId", "unstable_idCountRef", "visible", "animated", "animating", "setBaseId", "show", "hide", "toggle", "setVisible", "setAnimated", "stopAnimation"];
-var DISCLOSURE_KEYS = DISCLOSURE_STATE_KEYS;
-var DISCLOSURE_CONTENT_KEYS = DISCLOSURE_KEYS;
-
-
-
-// CONCATENATED MODULE: ./node_modules/reakit/es/Disclosure/DisclosureContent.js
-
-
-
-
-
-
-
-
-
-
-var useDisclosureContent = Object(createHook["a" /* createHook */])({
-  name: "DisclosureContent",
-  compose: Role["a" /* useRole */],
-  keys: DISCLOSURE_CONTENT_KEYS,
-  useProps: function useProps(options, _ref) {
-    var htmlOnTransitionEnd = _ref.onTransitionEnd,
-        htmlOnAnimationEnd = _ref.onAnimationEnd,
-        htmlStyle = _ref.style,
-        htmlProps = Object(_rollupPluginBabelHelpers_1f0bf8c2["a" /* _ */])(_ref, ["onTransitionEnd", "onAnimationEnd", "style"]);
-
-    var animating = options.animated && options.animating;
-
-    var _React$useState = Object(external_React_["useState"])(null),
-        transition = _React$useState[0],
-        setTransition = _React$useState[1];
-
-    var hidden = !options.visible && !animating;
-    var style = hidden ? Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({
-      display: "none"
-    }, htmlStyle) : htmlStyle;
-    var onTransitionEndRef = Object(useLiveRef["a" /* useLiveRef */])(htmlOnTransitionEnd);
-    var onAnimationEndRef = Object(useLiveRef["a" /* useLiveRef */])(htmlOnAnimationEnd);
-    var raf = Object(external_React_["useRef"])(0);
-    Object(external_React_["useEffect"])(function () {
-      if (!options.animated) return undefined; // Double RAF is needed so the browser has enough time to paint the
-      // default styles before processing the `data-enter` attribute. Otherwise
-      // it wouldn't be considered a transition.
-      // See https://github.com/reakit/reakit/issues/643
-
-      raf.current = window.requestAnimationFrame(function () {
-        raf.current = window.requestAnimationFrame(function () {
-          if (options.visible) {
-            setTransition("enter");
-          } else if (animating) {
-            setTransition("leave");
-          } else {
-            setTransition(null);
-          }
-        });
-      });
-      return function () {
-        return window.cancelAnimationFrame(raf.current);
-      };
-    }, [options.animated, options.visible, animating]);
-    var onEnd = Object(external_React_["useCallback"])(function (event) {
-      if (!Object(isSelfTarget["a" /* isSelfTarget */])(event)) return;
-      if (!animating) return; // Ignores number animated
-
-      if (options.animated === true) {
-        var _options$stopAnimatio;
-
-        (_options$stopAnimatio = options.stopAnimation) === null || _options$stopAnimatio === void 0 ? void 0 : _options$stopAnimatio.call(options);
-      }
-    }, [options.animated, animating, options.stopAnimation]);
-    var onTransitionEnd = Object(external_React_["useCallback"])(function (event) {
-      var _onTransitionEndRef$c;
-
-      (_onTransitionEndRef$c = onTransitionEndRef.current) === null || _onTransitionEndRef$c === void 0 ? void 0 : _onTransitionEndRef$c.call(onTransitionEndRef, event);
-      onEnd(event);
-    }, [onEnd]);
-    var onAnimationEnd = Object(external_React_["useCallback"])(function (event) {
-      var _onAnimationEndRef$cu;
-
-      (_onAnimationEndRef$cu = onAnimationEndRef.current) === null || _onAnimationEndRef$cu === void 0 ? void 0 : _onAnimationEndRef$cu.call(onAnimationEndRef, event);
-      onEnd(event);
-    }, [onEnd]);
-    return Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({
-      id: options.baseId,
-      "data-enter": transition === "enter" ? "" : undefined,
-      "data-leave": transition === "leave" ? "" : undefined,
-      onTransitionEnd: onTransitionEnd,
-      onAnimationEnd: onAnimationEnd,
-      hidden: hidden,
-      style: style
-    }, htmlProps);
-  }
-});
-var DisclosureContent = Object(createComponent["a" /* createComponent */])({
-  as: "div",
-  useHook: useDisclosureContent
-});
-
-
-
-// CONCATENATED MODULE: ./node_modules/reakit/es/Separator/Separator.js
-
-
-
-
-
-
-// Automatically generated
-var SEPARATOR_KEYS = ["orientation"];
-
-var useSeparator = Object(createHook["a" /* createHook */])({
-  name: "Separator",
-  compose: Role["a" /* useRole */],
-  keys: SEPARATOR_KEYS,
-  useOptions: function useOptions(_ref) {
-    var _ref$orientation = _ref.orientation,
-        orientation = _ref$orientation === void 0 ? "horizontal" : _ref$orientation,
-        options = Object(_rollupPluginBabelHelpers_1f0bf8c2["a" /* _ */])(_ref, ["orientation"]);
-
-    return Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({
-      orientation: orientation
-    }, options);
-  },
-  useProps: function useProps(options, htmlProps) {
-    return Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({
-      role: "separator",
-      "aria-orientation": options.orientation
-    }, htmlProps);
-  }
-});
-var Separator = Object(createComponent["a" /* createComponent */])({
-  as: "hr",
-  memo: true,
-  useHook: useSeparator
-});
-
-
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/divider/styles.js
-
-
-/**
- * Internal dependencies
- */
-
-const Divider = /*#__PURE__*/Object(emotion_esm["a" /* css */])("border-color:", config_values.colorDivider, ";border-width:0 0 1px 0;height:0;margin:0;width:auto;;label:Divider;" + ( true ? "" : undefined));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/divider/component.js
-
-
-
-
-// eslint-disable-next-line no-restricted-imports
- // eslint-disable-next-line no-restricted-imports, no-duplicate-imports
-
-/**
- * WordPress dependencies
- */
-
-/**
- * Internal dependencies
- */
-
- // eslint-disable-next-line no-duplicate-imports
-
-
-
-
-function component_Divider(props, forwardedRef) {
-  const {
-    className,
-    margin,
-    marginBottom,
-    marginTop,
-    ...otherProps
-  } = Object(use_context_system["a" /* useContextSystem */])(props, 'Divider');
-  const classes = Object(external_wp_element_["useMemo"])(() => {
-    const sx = {};
-
-    if (typeof margin !== 'undefined') {
-      sx.margin = /*#__PURE__*/Object(emotion_esm["a" /* css */])("margin-bottom:", space_space(margin), ";margin-top:", space_space(margin), ";" + ( true ? "" : undefined));
-    } else {
-      if (typeof marginTop !== 'undefined') {
-        sx.marginTop = /*#__PURE__*/Object(emotion_esm["a" /* css */])("margin-top:", space_space(marginTop), ";" + ( true ? "" : undefined));
-      }
-
-      if (typeof marginBottom !== 'undefined') {
-        sx.marginBottom = /*#__PURE__*/Object(emotion_esm["a" /* css */])("margin-bottom:", space_space(marginBottom), ";" + ( true ? "" : undefined));
-      }
-    }
-
-    return Object(emotion_esm["b" /* cx */])(Divider, sx.marginBottom, sx.marginTop, sx.margin, className);
-  }, [className, margin, marginBottom, marginTop]);
-  return Object(external_wp_element_["createElement"])(Separator, Object(esm_extends["a" /* default */])({
-    as: "hr"
-  }, otherProps, {
-    className: classes,
-    ref: forwardedRef
-  }));
-}
-/**
- * `Divider` is a layout component that separates groups of related content.
- *
- * @example
- * ```js
- * import {
- *     __experimentalDivider as Divider,
- *     __experimentalText as Text }
- * from `@wordpress/components`;
- *
- * function Example() {
- * 	return (
- * 		<ListGroup>
- * 			<FormGroup>...</FormGroup>
- * 			<Divider />
- * 			<FormGroup>...</FormGroup>
- * 		</ListGroup>
- * 	);
- * }
- * ```
- */
-
-
-const ConnectedDivider = Object(context_connect["a" /* contextConnect */])(component_Divider, 'Divider');
-/* harmony default export */ var divider_component = (ConnectedDivider);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/draggable/index.js
-
-
-/**
- * WordPress dependencies
- */
-
-const dragImageClass = 'components-draggable__invisible-drag-image';
-const cloneWrapperClass = 'components-draggable__clone';
-const cloneHeightTransformationBreakpoint = 700;
-const clonePadding = 0;
-const bodyClass = 'is-dragging-components-draggable';
-/**
- * @typedef RenderProp
- * @property {(event: import('react').DragEvent) => void} onDraggableStart `onDragStart` handler.
- * @property {(event: import('react').DragEvent) => void} onDraggableEnd `onDragEnd` handler.
- */
-
-/**
- * @typedef Props
- * @property {(props: RenderProp) => JSX.Element | null} children Children.
- * @property {(event: import('react').DragEvent) => void} [onDragStart] Callback when dragging starts.
- * @property {(event: import('react').DragEvent) => void} [onDragOver] Callback when dragging happens over the document.
- * @property {(event: import('react').DragEvent) => void} [onDragEnd] Callback when dragging ends.
- * @property {string} [cloneClassname] Classname for the cloned element.
- * @property {string} [elementId] ID for the element.
- * @property {any} [transferData] Transfer data for the drag event.
- * @property {string} [__experimentalTransferDataType] The transfer data type to set.
- * @property {import('react').ReactNode} __experimentalDragComponent Component to show when dragging.
- */
-
-/**
- * @param {Props} props
- * @return {JSX.Element} A draggable component.
- */
-
-function Draggable({
-  children,
-  onDragStart,
-  onDragOver,
-  onDragEnd,
-  cloneClassname,
-  elementId,
-  transferData,
-  __experimentalTransferDataType: transferDataType = 'text',
-  __experimentalDragComponent: dragComponent
-}) {
-  /** @type {import('react').MutableRefObject<HTMLDivElement | null>} */
-  const dragComponentRef = Object(external_wp_element_["useRef"])(null);
-  const cleanup = Object(external_wp_element_["useRef"])(() => {});
-  /**
-   * Removes the element clone, resets cursor, and removes drag listener.
-   *
-   * @param {import('react').DragEvent} event The non-custom DragEvent.
-   */
-
-  function end(event) {
-    event.preventDefault();
-    cleanup.current();
-
-    if (onDragEnd) {
-      onDragEnd(event);
-    }
-  }
-  /**
-   * This method does a couple of things:
-   *
-   * - Clones the current element and spawns clone over original element.
-   * - Adds a fake temporary drag image to avoid browser defaults.
-   * - Sets transfer data.
-   * - Adds dragover listener.
-   *
-   * @param {import('react').DragEvent} event The non-custom DragEvent.
-   */
-
-
-  function start(event) {
-    // @ts-ignore We know that ownerDocument does exist on an Element
-    const {
-      ownerDocument
-    } = event.target;
-    event.dataTransfer.setData(transferDataType, JSON.stringify(transferData));
-    const cloneWrapper = ownerDocument.createElement('div');
-    const dragImage = ownerDocument.createElement('div'); // Set a fake drag image to avoid browser defaults. Remove from DOM
-    // right after. event.dataTransfer.setDragImage is not supported yet in
-    // IE, we need to check for its existence first.
-
-    if ('function' === typeof event.dataTransfer.setDragImage) {
-      dragImage.classList.add(dragImageClass);
-      ownerDocument.body.appendChild(dragImage);
-      event.dataTransfer.setDragImage(dragImage, 0, 0);
-    }
-
-    cloneWrapper.classList.add(cloneWrapperClass);
-
-    if (cloneClassname) {
-      cloneWrapper.classList.add(cloneClassname);
-    } // If a dragComponent is defined, the following logic will clone the
-    // HTML node and inject it into the cloneWrapper.
-
-
-    if (dragComponentRef.current) {
-      // Position dragComponent at the same position as the cursor.
-      cloneWrapper.style.top = `${event.clientY}px`;
-      cloneWrapper.style.left = `${event.clientX}px`;
-      const clonedDragComponent = ownerDocument.createElement('div');
-      clonedDragComponent.innerHTML = dragComponentRef.current.innerHTML;
-      cloneWrapper.appendChild(clonedDragComponent); // Inject the cloneWrapper into the DOM.
-
-      ownerDocument.body.appendChild(cloneWrapper);
-    } else {
-      const element = ownerDocument.getElementById(elementId); // Prepare element clone and append to element wrapper.
-
-      const elementRect = element.getBoundingClientRect();
-      const elementWrapper = element.parentNode;
-      const elementTopOffset = parseInt(elementRect.top, 10);
-      const elementLeftOffset = parseInt(elementRect.left, 10);
-      cloneWrapper.style.width = `${elementRect.width + clonePadding * 2}px`;
-      const clone = element.cloneNode(true);
-      clone.id = `clone-${elementId}`;
-
-      if (elementRect.height > cloneHeightTransformationBreakpoint) {
-        // Scale down clone if original element is larger than 700px.
-        cloneWrapper.style.transform = 'scale(0.5)';
-        cloneWrapper.style.transformOrigin = 'top left'; // Position clone near the cursor.
-
-        cloneWrapper.style.top = `${event.clientY - 100}px`;
-        cloneWrapper.style.left = `${event.clientX}px`;
-      } else {
-        // Position clone right over the original element (20px padding).
-        cloneWrapper.style.top = `${elementTopOffset - clonePadding}px`;
-        cloneWrapper.style.left = `${elementLeftOffset - clonePadding}px`;
-      } // Hack: Remove iFrames as it's causing the embeds drag clone to freeze
-
-
-      Array.from(clone.querySelectorAll('iframe')).forEach(child => child.parentNode.removeChild(child));
-      cloneWrapper.appendChild(clone); // Inject the cloneWrapper into the DOM.
-
-      elementWrapper.appendChild(cloneWrapper);
-    } // Mark the current cursor coordinates.
-
-
-    let cursorLeft = event.clientX;
-    let cursorTop = event.clientY;
-    /**
-     * @param {import('react').DragEvent} e
-     */
-
-    function over(e) {
-      cloneWrapper.style.top = `${parseInt(cloneWrapper.style.top, 10) + e.clientY - cursorTop}px`;
-      cloneWrapper.style.left = `${parseInt(cloneWrapper.style.left, 10) + e.clientX - cursorLeft}px`; // Update cursor coordinates.
-
-      cursorLeft = e.clientX;
-      cursorTop = e.clientY;
-
-      if (onDragOver) {
-        onDragOver(e);
-      }
-    }
-
-    ownerDocument.addEventListener('dragover', over); // Update cursor to 'grabbing', document wide.
-
-    ownerDocument.body.classList.add(bodyClass); // Allow the Synthetic Event to be accessed from asynchronous code.
-    // https://reactjs.org/docs/events.html#event-pooling
-
-    event.persist();
-    /** @type {number | undefined} */
-
-    let timerId;
-
-    if (onDragStart) {
-      timerId = setTimeout(() => onDragStart(event));
-    }
-
-    cleanup.current = () => {
-      // Remove drag clone
-      if (cloneWrapper && cloneWrapper.parentNode) {
-        cloneWrapper.parentNode.removeChild(cloneWrapper);
-      }
-
-      if (dragImage && dragImage.parentNode) {
-        dragImage.parentNode.removeChild(dragImage);
-      } // Reset cursor.
-
-
-      ownerDocument.body.classList.remove(bodyClass);
-      ownerDocument.removeEventListener('dragover', over);
-      clearTimeout(timerId);
-    };
-  }
-
-  Object(external_wp_element_["useEffect"])(() => () => {
-    cleanup.current();
-  }, []);
-  return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, children({
-    onDraggableStart: start,
-    onDraggableEnd: end
-  }), dragComponent && Object(external_wp_element_["createElement"])("div", {
-    className: "components-draggable-drag-component-root",
-    style: {
-      display: 'none'
-    },
-    ref: dragComponentRef
-  }, dragComponent));
-}
-
-// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/upload.js
-var upload = __webpack_require__("NTP4");
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/drop-zone/index.js
-
-
-/**
- * External dependencies
- */
-
-
-/**
- * WordPress dependencies
- */
-
-
-
-
-
-
-function DropZoneComponent({
-  className,
-  label,
-  onFilesDrop,
-  onHTMLDrop,
-  onDrop
-}) {
-  const [isDraggingOverDocument, setIsDraggingOverDocument] = Object(external_wp_element_["useState"])();
-  const [isDraggingOverElement, setIsDraggingOverElement] = Object(external_wp_element_["useState"])();
-  const [type, setType] = Object(external_wp_element_["useState"])();
-  const ref = Object(external_wp_compose_["__experimentalUseDropZone"])({
-    onDrop(event) {
-      const files = Object(external_wp_dom_["getFilesFromDataTransfer"])(event.dataTransfer);
-      const html = event.dataTransfer.getData('text/html');
-
-      if (files.length && onFilesDrop) {
-        onFilesDrop(files);
-      } else if (html && onHTMLDrop) {
-        onHTMLDrop(html);
-      } else if (onDrop) {
-        onDrop(event);
-      }
-    },
-
-    onDragStart(event) {
-      setIsDraggingOverDocument(true);
-      let _type = 'default';
-
-      if ( // Check for the types because sometimes the files themselves
-      // are only available on drop.
-      Object(external_lodash_["includes"])(event.dataTransfer.types, 'Files') || Object(external_wp_dom_["getFilesFromDataTransfer"])(event.dataTransfer).length > 0) {
-        _type = 'file';
-      } else if (Object(external_lodash_["includes"])(event.dataTransfer.types, 'text/html')) {
-        _type = 'html';
-      }
-
-      setType(_type);
-    },
-
-    onDragEnd() {
-      setIsDraggingOverDocument(false);
-      setType();
-    },
-
-    onDragEnter() {
-      setIsDraggingOverElement(true);
-    },
-
-    onDragLeave() {
-      setIsDraggingOverElement(false);
-    }
-
-  });
-  let children;
-
-  if (isDraggingOverElement) {
-    children = Object(external_wp_element_["createElement"])("div", {
-      className: "components-drop-zone__content"
-    }, Object(external_wp_element_["createElement"])(build_module_icon["a" /* default */], {
-      icon: upload["a" /* default */],
-      className: "components-drop-zone__content-icon"
-    }), Object(external_wp_element_["createElement"])("span", {
-      className: "components-drop-zone__content-text"
-    }, label ? label : Object(external_wp_i18n_["__"])('Drop files to upload')));
-  }
-
-  const classes = classnames_default()('components-drop-zone', className, {
-    'is-active': (isDraggingOverDocument || isDraggingOverElement) && (type === 'file' && onFilesDrop || type === 'html' && onHTMLDrop || type === 'default' && onDrop),
-    'is-dragging-over-document': isDraggingOverDocument,
-    'is-dragging-over-element': isDraggingOverElement,
-    [`is-dragging-${type}`]: !!type
-  });
-  return Object(external_wp_element_["createElement"])("div", {
-    ref: ref,
-    className: classes
-  }, children);
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/drop-zone/provider.js
-/**
- * WordPress dependencies
- */
-
-function DropZoneProvider({
-  children
-}) {
-  external_wp_deprecated_default()('wp.components.DropZoneProvider', {
-    hint: 'wp.component.DropZone no longer needs a provider. wp.components.DropZoneProvider is safe to remove from your code.'
-  });
-  return children;
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/menu.js
-
-
-/**
- * WordPress dependencies
- */
-
-const menu_menu = Object(external_wp_element_["createElement"])(external_wp_primitives_["SVG"], {
-  xmlns: "http://www.w3.org/2000/svg",
-  viewBox: "0 0 24 24"
-}, Object(external_wp_element_["createElement"])(external_wp_primitives_["Path"], {
-  d: "M5 5v1.5h14V5H5zm0 7.8h14v-1.5H5v1.5zM5 19h14v-1.5H5V19z"
-}));
-/* harmony default export */ var library_menu = (menu_menu);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigable-container/container.js
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-const MENU_ITEM_ROLES = ['menuitem', 'menuitemradio', 'menuitemcheckbox'];
-
-function cycleValue(value, total, offset) {
-  const nextValue = value + offset;
-
-  if (nextValue < 0) {
-    return total + nextValue;
-  } else if (nextValue >= total) {
-    return nextValue - total;
-  }
-
-  return nextValue;
-}
-
-class container_NavigableContainer extends external_wp_element_["Component"] {
-  constructor() {
-    super(...arguments);
-    this.onKeyDown = this.onKeyDown.bind(this);
-    this.bindContainer = this.bindContainer.bind(this);
-    this.getFocusableContext = this.getFocusableContext.bind(this);
-    this.getFocusableIndex = this.getFocusableIndex.bind(this);
-  }
-
-  componentDidMount() {
-    // We use DOM event listeners instead of React event listeners
-    // because we want to catch events from the underlying DOM tree
-    // The React Tree can be different from the DOM tree when using
-    // portals. Block Toolbars for instance are rendered in a separate
-    // React Trees.
-    this.container.addEventListener('keydown', this.onKeyDown);
-    this.container.addEventListener('focus', this.onFocus);
-  }
-
-  componentWillUnmount() {
-    this.container.removeEventListener('keydown', this.onKeyDown);
-    this.container.removeEventListener('focus', this.onFocus);
-  }
-
-  bindContainer(ref) {
-    const {
-      forwardedRef
-    } = this.props;
-    this.container = ref;
-
-    if (Object(external_lodash_["isFunction"])(forwardedRef)) {
-      forwardedRef(ref);
-    } else if (forwardedRef && 'current' in forwardedRef) {
-      forwardedRef.current = ref;
-    }
-  }
-
-  getFocusableContext(target) {
-    const {
-      onlyBrowserTabstops
-    } = this.props;
-    const finder = onlyBrowserTabstops ? external_wp_dom_["focus"].tabbable : external_wp_dom_["focus"].focusable;
-    const focusables = finder.find(this.container);
-    const index = this.getFocusableIndex(focusables, target);
-
-    if (index > -1 && target) {
-      return {
-        index,
-        target,
-        focusables
-      };
-    }
-
-    return null;
-  }
-
-  getFocusableIndex(focusables, target) {
-    const directIndex = focusables.indexOf(target);
-
-    if (directIndex !== -1) {
-      return directIndex;
-    }
-  }
-
-  onKeyDown(event) {
-    if (this.props.onKeyDown) {
-      this.props.onKeyDown(event);
-    }
-
-    const {
-      getFocusableContext
-    } = this;
-    const {
-      cycle = true,
-      eventToOffset,
-      onNavigate = external_lodash_["noop"],
-      stopNavigationEvents
-    } = this.props;
-    const offset = eventToOffset(event); // eventToOffset returns undefined if the event is not handled by the component
-
-    if (offset !== undefined && stopNavigationEvents) {
-      // Prevents arrow key handlers bound to the document directly interfering
-      event.stopImmediatePropagation(); // When navigating a collection of items, prevent scroll containers
-      // from scrolling. The preventDefault also prevents Voiceover from
-      // 'handling' the event, as voiceover will try to use arrow keys
-      // for highlighting text.
-
-      const targetRole = event.target.getAttribute('role');
-
-      if (MENU_ITEM_ROLES.includes(targetRole)) {
-        event.preventDefault();
-      }
-    }
-
-    if (!offset) {
-      return;
-    }
-
-    const context = getFocusableContext(event.target.ownerDocument.activeElement);
-
-    if (!context) {
-      return;
-    }
-
-    const {
-      index,
-      focusables
-    } = context;
-    const nextIndex = cycle ? cycleValue(index, focusables.length, offset) : index + offset;
-
-    if (nextIndex >= 0 && nextIndex < focusables.length) {
-      focusables[nextIndex].focus();
-      onNavigate(nextIndex, focusables[nextIndex]);
-    }
-  }
-
-  render() {
-    const {
-      children,
-      ...props
-    } = this.props;
-    return Object(external_wp_element_["createElement"])("div", Object(esm_extends["a" /* default */])({
-      ref: this.bindContainer
-    }, Object(external_lodash_["omit"])(props, ['stopNavigationEvents', 'eventToOffset', 'onNavigate', 'onKeyDown', 'cycle', 'onlyBrowserTabstops', 'forwardedRef'])), children);
-  }
-
-}
-
-const forwardedNavigableContainer = (props, ref) => {
-  return Object(external_wp_element_["createElement"])(container_NavigableContainer, Object(esm_extends["a" /* default */])({}, props, {
-    forwardedRef: ref
-  }));
-};
-
-forwardedNavigableContainer.displayName = 'NavigableContainer';
-/* harmony default export */ var navigable_container_container = (Object(external_wp_element_["forwardRef"])(forwardedNavigableContainer));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigable-container/menu.js
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-/**
- * Internal dependencies
- */
-
-
-function NavigableMenu({
-  role = 'menu',
-  orientation = 'vertical',
-  ...rest
-}, ref) {
-  const eventToOffset = evt => {
-    const {
-      keyCode
-    } = evt;
-    let next = [external_wp_keycodes_["DOWN"]];
-    let previous = [external_wp_keycodes_["UP"]];
-
-    if (orientation === 'horizontal') {
-      next = [external_wp_keycodes_["RIGHT"]];
-      previous = [external_wp_keycodes_["LEFT"]];
-    }
-
-    if (orientation === 'both') {
-      next = [external_wp_keycodes_["RIGHT"], external_wp_keycodes_["DOWN"]];
-      previous = [external_wp_keycodes_["LEFT"], external_wp_keycodes_["UP"]];
-    }
-
-    if (Object(external_lodash_["includes"])(next, keyCode)) {
-      return 1;
-    } else if (Object(external_lodash_["includes"])(previous, keyCode)) {
-      return -1;
-    } else if (Object(external_lodash_["includes"])([external_wp_keycodes_["DOWN"], external_wp_keycodes_["UP"], external_wp_keycodes_["LEFT"], external_wp_keycodes_["RIGHT"]], keyCode)) {
-      // Key press should be handled, e.g. have event propagation and
-      // default behavior handled by NavigableContainer but not result
-      // in an offset.
-      return 0;
-    }
-  };
-
-  return Object(external_wp_element_["createElement"])(navigable_container_container, Object(esm_extends["a" /* default */])({
-    ref: ref,
-    stopNavigationEvents: true,
-    onlyBrowserTabstops: false,
-    role: role,
-    "aria-orientation": role === 'presentation' ? null : orientation,
-    eventToOffset: eventToOffset
-  }, rest));
-}
-/* harmony default export */ var navigable_container_menu = (Object(external_wp_element_["forwardRef"])(NavigableMenu));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/dropdown-menu/index.js
-
-
-
-/**
- * External dependencies
- */
-
-
-/**
- * WordPress dependencies
- */
-
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-function mergeProps(defaultProps = {}, props = {}) {
-  const mergedProps = { ...defaultProps,
-    ...props
-  };
-
-  if (props.className && defaultProps.className) {
-    mergedProps.className = classnames_default()(props.className, defaultProps.className);
-  }
-
-  return mergedProps;
-}
-
-function DropdownMenu({
-  children,
-  className,
-  controls,
-  icon = library_menu,
-  label,
-  popoverProps,
-  toggleProps,
-  menuProps,
-  disableOpenOnArrowDown = false,
-  text,
-  // The following props exist for backward compatibility.
-  menuLabel,
-  position,
-  noIcons
-}) {
-  if (menuLabel) {
-    external_wp_deprecated_default()('`menuLabel` prop in `DropdownComponent`', {
-      since: '5.3',
-      alternative: '`menuProps` object and its `aria-label` property'
-    });
-  }
-
-  if (position) {
-    external_wp_deprecated_default()('`position` prop in `DropdownComponent`', {
-      since: '5.3',
-      alternative: '`popoverProps` object and its `position` property'
-    });
-  }
-
-  if (Object(external_lodash_["isEmpty"])(controls) && !Object(external_lodash_["isFunction"])(children)) {
-    return null;
-  } // Normalize controls to nested array of objects (sets of controls)
-
-
-  let controlSets;
-
-  if (!Object(external_lodash_["isEmpty"])(controls)) {
-    controlSets = controls;
-
-    if (!Array.isArray(controlSets[0])) {
-      controlSets = [controlSets];
-    }
-  }
-
-  const mergedPopoverProps = mergeProps({
-    className: 'components-dropdown-menu__popover',
-    position
-  }, popoverProps);
-  return Object(external_wp_element_["createElement"])(Dropdown, {
-    className: classnames_default()('components-dropdown-menu', className),
-    popoverProps: mergedPopoverProps,
-    renderToggle: ({
-      isOpen,
-      onToggle
-    }) => {
-      var _toggleProps$showTool;
-
-      const openOnArrowDown = event => {
-        if (disableOpenOnArrowDown) {
-          return;
-        }
-
-        if (!isOpen && event.keyCode === external_wp_keycodes_["DOWN"]) {
-          event.preventDefault();
-          event.stopPropagation();
-          onToggle();
-        }
-      };
-
-      const mergedToggleProps = mergeProps({
-        className: classnames_default()('components-dropdown-menu__toggle', {
-          'is-opened': isOpen
-        })
-      }, toggleProps);
-      return Object(external_wp_element_["createElement"])(build_module_button["a" /* default */], Object(esm_extends["a" /* default */])({}, mergedToggleProps, {
-        icon: icon,
-        onClick: event => {
-          onToggle(event);
-
-          if (mergedToggleProps.onClick) {
-            mergedToggleProps.onClick(event);
-          }
-        },
-        onKeyDown: event => {
-          openOnArrowDown(event);
-
-          if (mergedToggleProps.onKeyDown) {
-            mergedToggleProps.onKeyDown(event);
-          }
-        },
-        "aria-haspopup": "true",
-        "aria-expanded": isOpen,
-        label: label,
-        text: text,
-        showTooltip: (_toggleProps$showTool = toggleProps === null || toggleProps === void 0 ? void 0 : toggleProps.showTooltip) !== null && _toggleProps$showTool !== void 0 ? _toggleProps$showTool : true
-      }), mergedToggleProps.children);
-    },
-    renderContent: props => {
-      const mergedMenuProps = mergeProps({
-        'aria-label': menuLabel || label,
-        className: classnames_default()('components-dropdown-menu__menu', {
-          'no-icons': noIcons
-        })
-      }, menuProps);
-      return Object(external_wp_element_["createElement"])(navigable_container_menu, Object(esm_extends["a" /* default */])({}, mergedMenuProps, {
-        role: "menu"
-      }), Object(external_lodash_["isFunction"])(children) ? children(props) : null, Object(external_lodash_["flatMap"])(controlSets, (controlSet, indexOfSet) => controlSet.map((control, indexOfControl) => Object(external_wp_element_["createElement"])(build_module_button["a" /* default */], {
-        key: [indexOfSet, indexOfControl].join(),
-        onClick: event => {
-          event.stopPropagation();
-          props.onClose();
-
-          if (control.onClick) {
-            control.onClick();
-          }
-        },
-        className: classnames_default()('components-dropdown-menu__menu-item', {
-          'has-separator': indexOfSet > 0 && indexOfControl === 0,
-          'is-active': control.isActive
-        }),
-        icon: control.icon,
-        "aria-checked": control.role === 'menuitemcheckbox' || control.role === 'menuitemradio' ? control.isActive : undefined,
-        role: control.role === 'menuitemcheckbox' || control.role === 'menuitemradio' ? control.role : 'menuitem',
-        disabled: control.isDisabled
-      }, control.title))));
-    }
-  });
-}
-
-/* harmony default export */ var dropdown_menu = (DropdownMenu);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/swatch.js
-
-
-/**
- * WordPress dependencies
- */
-
-const swatch = Object(external_wp_element_["createElement"])(external_wp_primitives_["SVG"], {
-  xmlns: "http://www.w3.org/2000/svg",
-  viewBox: "0 0 24 24"
-}, Object(external_wp_element_["createElement"])(external_wp_primitives_["Path"], {
-  d: "M5 17.7c.4.5.8.9 1.2 1.2l1.1-1.4c-.4-.3-.7-.6-1-1L5 17.7zM5 6.3l1.4 1.1c.3-.4.6-.7 1-1L6.3 5c-.5.4-.9.8-1.3 1.3zm.1 7.8l-1.7.5c.2.6.4 1.1.7 1.6l1.5-.8c-.2-.4-.4-.8-.5-1.3zM4.8 12v-.7L3 11.1v1.8l1.7-.2c.1-.2.1-.5.1-.7zm3 7.9c.5.3 1.1.5 1.6.7l.5-1.7c-.5-.1-.9-.3-1.3-.5l-.8 1.5zM19 6.3c-.4-.5-.8-.9-1.2-1.2l-1.1 1.4c.4.3.7.6 1 1L19 6.3zm-.1 3.6l1.7-.5c-.2-.6-.4-1.1-.7-1.6l-1.5.8c.2.4.4.8.5 1.3zM5.6 8.6l-1.5-.8c-.3.5-.5 1-.7 1.6l1.7.5c.1-.5.3-.9.5-1.3zm2.2-4.5l.8 1.5c.4-.2.8-.4 1.3-.5l-.5-1.7c-.6.2-1.1.4-1.6.7zm8.8 13.5l1.1 1.4c.5-.4.9-.8 1.2-1.2l-1.4-1.1c-.2.3-.5.6-.9.9zm1.8-2.2l1.5.8c.3-.5.5-1.1.7-1.6l-1.7-.5c-.1.5-.3.9-.5 1.3zm2.6-4.3l-1.7.2v1.4l1.7.2V12v-.9zM11.1 3l.2 1.7h1.4l.2-1.7h-1.8zm3 2.1c.5.1.9.3 1.3.5l.8-1.5c-.5-.3-1.1-.5-1.6-.7l-.5 1.7zM12 19.2h-.7l-.2 1.8h1.8l-.2-1.7c-.2-.1-.5-.1-.7-.1zm2.1-.3l.5 1.7c.6-.2 1.1-.4 1.6-.7l-.8-1.5c-.4.2-.8.4-1.3.5z"
-}));
-/* harmony default export */ var library_swatch = (swatch);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/swatch/index.js
-
-
-/**
- * WordPress dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-
-function Swatch({
-  fill
-}) {
-  return fill ? Object(external_wp_element_["createElement"])("span", {
-    className: "components-swatch",
-    style: {
-      background: fill
-    }
-  }) : Object(external_wp_element_["createElement"])(components_build_module_icon["a" /* default */], {
-    icon: library_swatch
-  });
-}
-
-/* harmony default export */ var build_module_swatch = (Swatch);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/duotone-picker/utils.js
-/**
- * External dependencies
- */
-
-/**
- * Object representation for a color.
- *
- * @typedef {Object} RGBColor
- * @property {number} r Red component of the color in the range [0,1].
- * @property {number} g Green component of the color in the range [0,1].
- * @property {number} b Blue component of the color in the range [0,1].
- */
-
-/**
- * Calculate the brightest and darkest values from a color palette.
- *
- * @param {Object[]} palette Color palette for the theme.
- *
- * @return {string[]} Tuple of the darkest color and brightest color.
- */
-
-function getDefaultColors(palette) {
-  // A default dark and light color are required.
-  if (!palette || palette.length < 2) return ['#000', '#fff'];
-  return palette.map(({
-    color
-  }) => ({
-    color,
-    brightness: tinycolor_default()(color).getBrightness() / 255
-  })).reduce(([min, max], current) => {
-    return [current.brightness <= min.brightness ? current : min, current.brightness >= max.brightness ? current : max];
-  }, [{
-    brightness: 1
-  }, {
-    brightness: 0
-  }]).map(({
-    color
-  }) => color);
-}
-/**
- * Generate a duotone gradient from a list of colors.
- *
- * @param {string[]} colors CSS color strings.
- * @param {string}   angle  CSS gradient angle.
- *
- * @return {string} CSS gradient string for the duotone swatch.
- */
-
-function getGradientFromCSSColors(colors = [], angle = '90deg') {
-  const l = 100 / colors.length;
-  const stops = colors.map((c, i) => `${c} ${i * l}%, ${c} ${(i + 1) * l}%`).join(', ');
-  return `linear-gradient( ${angle}, ${stops} )`;
-}
-/**
- * Convert a color array to an array of color stops.
- *
- * @param {string[]} colors CSS colors array
- *
- * @return {Object[]} Color stop information.
- */
-
-function getColorStopsFromColors(colors) {
-  return colors.map((color, i) => ({
-    position: i * 100 / (colors.length - 1),
-    color
-  }));
-}
-/**
- * Convert a color stop array to an array colors.
- *
- * @param {Object[]} colorStops Color stop information.
- *
- * @return {string[]} CSS colors array.
- */
-
-function getColorsFromColorStops(colorStops = []) {
-  return colorStops.map(({
-    color
-  }) => color);
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/duotone-picker/duotone-swatch.js
-
-
-/**
- * Internal dependencies
- */
-
-
-
-function DuotoneSwatch({
-  values
-}) {
-  return Object(external_wp_element_["createElement"])(build_module_swatch, {
-    fill: values && getGradientFromCSSColors(values, '135deg')
-  });
-}
-
-/* harmony default export */ var duotone_swatch = (DuotoneSwatch);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/color-list-picker/index.js
-
-
-/**
- * WordPress dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-function color_list_picker_ColorOption({
-  label,
-  value,
-  colors,
-  disableCustomColors,
-  onChange
-}) {
-  const [isOpen, setIsOpen] = Object(external_wp_element_["useState"])(false);
-  return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(build_module_button["a" /* default */], {
-    className: "components-color-list-picker__swatch-button",
-    icon: Object(external_wp_element_["createElement"])(build_module_swatch, {
-      fill: value
-    }),
-    onClick: () => setIsOpen(prev => !prev)
-  }, label), isOpen && Object(external_wp_element_["createElement"])(ColorPalette, {
-    colors: colors,
-    value: value,
-    clearable: false,
-    onChange: onChange,
-    disableCustomColors: disableCustomColors
-  }));
-}
-
-function ColorListPicker({
-  colors,
-  labels,
-  value = [],
-  disableCustomColors,
-  onChange
-}) {
-  return Object(external_wp_element_["createElement"])("div", {
-    className: "components-color-list-picker"
-  }, labels.map((label, index) => Object(external_wp_element_["createElement"])(color_list_picker_ColorOption, {
-    key: index,
-    label: label,
-    value: value[index],
-    colors: colors,
-    disableCustomColors: disableCustomColors,
-    onChange: newColor => {
-      const newColors = value.slice();
-      newColors[index] = newColor;
-      onChange(newColors);
-    }
-  })));
-}
-
-/* harmony default export */ var color_list_picker = (ColorListPicker);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/custom-gradient-bar/constants.js
-const COLOR_POPOVER_PROPS = {
-  className: 'components-custom-gradient-picker__color-picker-popover',
-  position: 'top'
-};
-const GRADIENT_MARKERS_WIDTH = 18;
-const INSERT_POINT_WIDTH = 23;
-const MINIMUM_ABSOLUTE_LEFT_POSITION = 5;
-const MINIMUM_DISTANCE_BETWEEN_INSERTER_AND_POINT = 10;
-const MINIMUM_DISTANCE_BETWEEN_POINTS = 0;
-const MINIMUM_SIGNIFICANT_MOVE = 5;
-const KEYBOARD_CONTROL_POINT_VARIATION = MINIMUM_DISTANCE_BETWEEN_INSERTER_AND_POINT;
-const MINIMUM_DISTANCE_BETWEEN_INSERTER_AND_MARKER = (INSERT_POINT_WIDTH + GRADIENT_MARKERS_WIDTH) / 2;
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/custom-gradient-bar/utils.js
-/**
- * Internal dependencies
- */
-
-/**
- * Control point for the gradient bar.
- *
- * @typedef {Object} ControlPoint
- * @property {string} color    Color of the control point.
- * @property {number} position Integer position of the control point as a percentage.
- */
-
-/**
- * Color as parsed from the gradient by gradient-parser.
- *
- * @typedef {Object} Color
- * @property {string} r   Red component.
- * @property {string} g   Green component.
- * @property {string} b   Green component.
- * @property {string} [a] Optional alpha component.
- */
-
-/**
- * Clamps a number between 0 and 100.
- *
- * @param {number} value Value to clamp.
- *
- * @return {number} Value clamped between 0 and 100.
- */
-
-function clampPercent(value) {
-  return Math.max(0, Math.min(100, value));
-}
-/**
- * Check if a control point is overlapping with another.
- *
- * @param {ControlPoint[]} value        Array of control points.
- * @param {number}         initialIndex Index of the position to test.
- * @param {number}         newPosition  New position of the control point.
- * @param {number}         minDistance  Distance considered to be overlapping.
- *
- * @return {boolean} True if the point is overlapping.
- */
-
-function isOverlapping(value, initialIndex, newPosition, minDistance = MINIMUM_DISTANCE_BETWEEN_POINTS) {
-  const initialPosition = value[initialIndex].position;
-  const minPosition = Math.min(initialPosition, newPosition);
-  const maxPosition = Math.max(initialPosition, newPosition);
-  return value.some(({
-    position
-  }, index) => {
-    return index !== initialIndex && (Math.abs(position - newPosition) < minDistance || minPosition < position && position < maxPosition);
-  });
-}
-/**
- * Adds a control point from an array and returns the new array.
- *
- * @param {ControlPoint[]} points   Array of control points.
- * @param {number}         position Position to insert the new point.
- * @param {Color}          color    Color to update the control point at index.
- *
- * @return {ControlPoint[]} New array of control points.
- */
-
-function addControlPoint(points, position, color) {
-  const nextIndex = points.findIndex(point => point.position > position);
-  const newPoint = {
-    color,
-    position
-  };
-  const newPoints = points.slice();
-  newPoints.splice(nextIndex - 1, 0, newPoint);
-  return newPoints;
-}
-/**
- * Removes a control point from an array and returns the new array.
- *
- * @param {ControlPoint[]} points Array of control points.
- * @param {number}         index  Index to remove.
- *
- * @return {ControlPoint[]} New array of control points.
- */
-
-function removeControlPoint(points, index) {
-  return points.filter((point, pointIndex) => {
-    return pointIndex !== index;
-  });
-}
-/**
- * Updates a control point from an array and returns the new array.
- *
- * @param {ControlPoint[]} points   Array of control points.
- * @param {number}         index    Index to update.
- * @param {ControlPoint[]} newPoint New control point to replace the index.
- *
- * @return {ControlPoint[]} New array of control points.
- */
-
-function updateControlPoint(points, index, newPoint) {
-  const newValue = points.slice();
-  newValue[index] = newPoint;
-  return newValue;
-}
-/**
- * Updates the position of a control point from an array and returns the new array.
- *
- * @param {ControlPoint[]} points      Array of control points.
- * @param {number}         index       Index to update.
- * @param {number}         newPosition Position to move the control point at index.
- *
- * @return {ControlPoint[]} New array of control points.
- */
-
-function updateControlPointPosition(points, index, newPosition) {
-  if (isOverlapping(points, index, newPosition)) {
-    return points;
-  }
-
-  const newPoint = { ...points[index],
-    position: newPosition
-  };
-  return updateControlPoint(points, index, newPoint);
-}
-/**
- * Updates the position of a control point from an array and returns the new array.
- *
- * @param {ControlPoint[]} points   Array of control points.
- * @param {number}         index    Index to update.
- * @param {Color}          newColor Color to update the control point at index.
- *
- * @return {ControlPoint[]} New array of control points.
- */
-
-function updateControlPointColor(points, index, newColor) {
-  const newPoint = { ...points[index],
-    color: newColor
-  };
-  return updateControlPoint(points, index, newPoint);
-}
-/**
- * Updates the position of a control point from an array and returns the new array.
- *
- * @param {ControlPoint[]} points   Array of control points.
- * @param {number}         position Position of the color stop.
- * @param {string}         newColor Color to update the control point at index.
- *
- * @return {ControlPoint[]} New array of control points.
- */
-
-function updateControlPointColorByPosition(points, position, newColor) {
-  const index = points.findIndex(point => point.position === position);
-  return updateControlPointColor(points, index, newColor);
-}
-/**
- * Gets the horizontal coordinate when dragging a control point with the mouse.
- *
- * @param {number}  mouseXCoordinate       Horizontal coordinate of the mouse position.
- * @param {Element} containerElement       Container for the gradient picker.
- * @param {number}  positionedElementWidth Width of the positioned element.
- *
- * @return {number} Whole number percentage from the left.
- */
-
-function getHorizontalRelativeGradientPosition(mouseXCoordinate, containerElement, positionedElementWidth) {
-  if (!containerElement) {
-    return;
-  }
-
-  const {
-    x,
-    width
-  } = containerElement.getBoundingClientRect();
-  const absolutePositionValue = mouseXCoordinate - x - MINIMUM_ABSOLUTE_LEFT_POSITION - positionedElementWidth / 2;
-  const availableWidth = width - MINIMUM_ABSOLUTE_LEFT_POSITION - INSERT_POINT_WIDTH;
-  return Math.round(clampPercent(absolutePositionValue * 100 / availableWidth));
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/custom-gradient-bar/control-points.js
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-
-
-
-
-function ControlPointKeyboardMove({
-  value: position,
-  onChange,
-  children
-}) {
-  const shortcuts = {
-    right(event) {
-      // Stop propagation of the key press event to avoid focus moving
-      // to another editor area.
-      event.stopPropagation();
-      const newPosition = clampPercent(position + KEYBOARD_CONTROL_POINT_VARIATION);
-      onChange(newPosition);
-    },
-
-    left(event) {
-      // Stop propagation of the key press event to avoid focus moving
-      // to another editor area.
-      event.stopPropagation();
-      const newPosition = clampPercent(position - KEYBOARD_CONTROL_POINT_VARIATION);
-      onChange(newPosition);
-    }
-
-  };
-  return Object(external_wp_element_["createElement"])(keyboard_shortcuts, {
-    shortcuts: shortcuts
-  }, children);
-}
-
-function ControlPointButton({
-  isOpen,
-  position,
-  color,
-  onChange,
-  ...additionalProps
-}) {
-  const instanceId = Object(external_wp_compose_["useInstanceId"])(ControlPointButton);
-  const descriptionId = `components-custom-gradient-picker__control-point-button-description-${instanceId}`;
-  return Object(external_wp_element_["createElement"])(ControlPointKeyboardMove, {
-    value: position,
-    onChange: onChange
-  }, Object(external_wp_element_["createElement"])(build_module_button["a" /* default */], Object(esm_extends["a" /* default */])({
-    "aria-label": Object(external_wp_i18n_["sprintf"])( // translators: %1$s: gradient position e.g: 70, %2$s: gradient color code e.g: rgb(52,121,151).
-    Object(external_wp_i18n_["__"])('Gradient control point at position %1$s%% with color code %2$s.'), position, color),
-    "aria-describedby": descriptionId,
-    "aria-haspopup": "true",
-    "aria-expanded": isOpen,
-    className: classnames_default()('components-custom-gradient-picker__control-point-button', {
-      'is-active': isOpen
-    }),
-    style: {
-      left: `${position}%`
-    }
-  }, additionalProps)), Object(external_wp_element_["createElement"])(visually_hidden["a" /* default */], {
-    id: descriptionId
-  }, Object(external_wp_i18n_["__"])('Use your left or right arrow keys or drag and drop with the mouse to change the gradient position. Press the button to change the color or remove the control point.')));
-}
-
-function ControlPoints({
-  disableRemove,
-  disableAlpha,
-  gradientPickerDomRef,
-  ignoreMarkerPosition,
-  value: controlPoints,
-  onChange,
-  onStartControlPointChange,
-  onStopControlPointChange
-}) {
-  const controlPointMoveState = Object(external_wp_element_["useRef"])();
-
-  const onMouseMove = event => {
-    const relativePosition = getHorizontalRelativeGradientPosition(event.clientX, gradientPickerDomRef.current, GRADIENT_MARKERS_WIDTH);
-    const {
-      initialPosition,
-      index,
-      significantMoveHappened
-    } = controlPointMoveState.current;
-
-    if (!significantMoveHappened && Math.abs(initialPosition - relativePosition) >= MINIMUM_SIGNIFICANT_MOVE) {
-      controlPointMoveState.current.significantMoveHappened = true;
-    }
-
-    onChange(updateControlPointPosition(controlPoints, index, relativePosition));
-  };
-
-  const cleanEventListeners = () => {
-    if (window && window.removeEventListener && controlPointMoveState.current && controlPointMoveState.current.listenersActivated) {
-      window.removeEventListener('mousemove', onMouseMove);
-      window.removeEventListener('mouseup', cleanEventListeners);
-      onStopControlPointChange();
-      controlPointMoveState.current.listenersActivated = false;
-    }
-  };
-
-  Object(external_wp_element_["useEffect"])(() => {
-    return () => {
-      cleanEventListeners();
-    };
-  }, []);
-  return controlPoints.map((point, index) => {
-    const initialPosition = point === null || point === void 0 ? void 0 : point.position;
-    return ignoreMarkerPosition !== initialPosition && Object(external_wp_element_["createElement"])(Dropdown, {
-      key: index,
-      onClose: onStopControlPointChange,
-      renderToggle: ({
-        isOpen,
-        onToggle
-      }) => Object(external_wp_element_["createElement"])(ControlPointButton, {
-        key: index,
-        onClick: () => {
-          if (controlPointMoveState.current && controlPointMoveState.current.significantMoveHappened) {
-            return;
-          }
-
-          if (isOpen) {
-            onStopControlPointChange();
-          } else {
-            onStartControlPointChange();
-          }
-
-          onToggle();
-        },
-        onMouseDown: () => {
-          if (window && window.addEventListener) {
-            controlPointMoveState.current = {
-              initialPosition,
-              index,
-              significantMoveHappened: false,
-              listenersActivated: true
-            };
-            onStartControlPointChange();
-            window.addEventListener('mousemove', onMouseMove);
-            window.addEventListener('mouseup', cleanEventListeners);
-          }
-        },
-        isOpen: isOpen,
-        position: point.position,
-        color: point.color,
-        onChange: newPosition => {
-          onChange(updateControlPointPosition(controlPoints, index, newPosition));
-        }
-      }),
-      renderContent: ({
-        onClose
-      }) => Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(color_picker_ColorPicker, {
-        disableAlpha: disableAlpha,
-        color: point.color,
-        onChangeComplete: ({
-          color
-        }) => {
-          onChange(updateControlPointColor(controlPoints, index, color.toRgbString()));
-        }
-      }), !disableRemove && Object(external_wp_element_["createElement"])(build_module_button["a" /* default */], {
-        className: "components-custom-gradient-picker__remove-control-point",
-        onClick: () => {
-          onChange(removeControlPoint(controlPoints, index));
-          onClose();
-        },
-        isLink: true
-      }, Object(external_wp_i18n_["__"])('Remove Control Point'))),
-      popoverProps: COLOR_POPOVER_PROPS
-    });
-  });
-}
-
-function InsertPoint({
-  value: controlPoints,
-  onChange,
-  onOpenInserter,
-  onCloseInserter,
-  insertPosition,
-  disableAlpha
-}) {
-  const [alreadyInsertedPoint, setAlreadyInsertedPoint] = Object(external_wp_element_["useState"])(false);
-  return Object(external_wp_element_["createElement"])(Dropdown, {
-    className: "components-custom-gradient-picker__inserter",
-    onClose: () => {
-      onCloseInserter();
-    },
-    renderToggle: ({
-      isOpen,
-      onToggle
-    }) => Object(external_wp_element_["createElement"])(build_module_button["a" /* default */], {
-      "aria-expanded": isOpen,
-      "aria-haspopup": "true",
-      onClick: () => {
-        if (isOpen) {
-          onCloseInserter();
-        } else {
-          setAlreadyInsertedPoint(false);
-          onOpenInserter();
-        }
-
-        onToggle();
-      },
-      className: "components-custom-gradient-picker__insert-point",
-      icon: plus["a" /* default */],
-      style: {
-        left: insertPosition !== null ? `${insertPosition}%` : undefined
-      }
-    }),
-    renderContent: () => Object(external_wp_element_["createElement"])(color_picker_ColorPicker, {
-      disableAlpha: disableAlpha,
-      onChangeComplete: ({
-        color
-      }) => {
-        if (!alreadyInsertedPoint) {
-          onChange(addControlPoint(controlPoints, insertPosition, color.toRgbString()));
-          setAlreadyInsertedPoint(true);
-        } else {
-          onChange(updateControlPointColorByPosition(controlPoints, insertPosition, color.toRgbString()));
-        }
-      }
-    }),
-    popoverProps: COLOR_POPOVER_PROPS
-  });
-}
-
-ControlPoints.InsertPoint = InsertPoint;
-/* harmony default export */ var control_points = (ControlPoints);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/custom-gradient-bar/index.js
-
-
-/**
- * External dependencies
- */
-
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-function customGradientBarReducer(state, action) {
-  switch (action.type) {
-    case 'MOVE_INSERTER':
-      if (state.id === 'IDLE' || state.id === 'MOVING_INSERTER') {
-        return {
-          id: 'MOVING_INSERTER',
-          insertPosition: action.insertPosition
-        };
-      }
-
-      break;
-
-    case 'STOP_INSERTER_MOVE':
-      if (state.id === 'MOVING_INSERTER') {
-        return {
-          id: 'IDLE'
-        };
-      }
-
-      break;
-
-    case 'OPEN_INSERTER':
-      if (state.id === 'MOVING_INSERTER') {
-        return {
-          id: 'INSERTING_CONTROL_POINT',
-          insertPosition: state.insertPosition
-        };
-      }
-
-      break;
-
-    case 'CLOSE_INSERTER':
-      if (state.id === 'INSERTING_CONTROL_POINT') {
-        return {
-          id: 'IDLE'
-        };
-      }
-
-      break;
-
-    case 'START_CONTROL_CHANGE':
-      if (state.id === 'IDLE') {
-        return {
-          id: 'MOVING_CONTROL_POINT'
-        };
-      }
-
-      break;
-
-    case 'STOP_CONTROL_CHANGE':
-      if (state.id === 'MOVING_CONTROL_POINT') {
-        return {
-          id: 'IDLE'
-        };
-      }
-
-      break;
-  }
-
-  return state;
-}
-
-const customGradientBarReducerInitialState = {
-  id: 'IDLE'
-};
-function CustomGradientBar({
-  background,
-  hasGradient,
-  value: controlPoints,
-  onChange,
-  disableInserter = false,
-  disableAlpha = false
-}) {
-  const gradientPickerDomRef = Object(external_wp_element_["useRef"])();
-  const [gradientBarState, gradientBarStateDispatch] = Object(external_wp_element_["useReducer"])(customGradientBarReducer, customGradientBarReducerInitialState);
-
-  const onMouseEnterAndMove = event => {
-    const insertPosition = getHorizontalRelativeGradientPosition(event.clientX, gradientPickerDomRef.current, INSERT_POINT_WIDTH); // If the insert point is close to an existing control point don't show it.
-
-    if (Object(external_lodash_["some"])(controlPoints, ({
-      position
-    }) => {
-      return Math.abs(insertPosition - position) < MINIMUM_DISTANCE_BETWEEN_INSERTER_AND_POINT;
-    })) {
-      if (gradientBarState.id === 'MOVING_INSERTER') {
-        gradientBarStateDispatch({
-          type: 'STOP_INSERTER_MOVE'
-        });
-      }
-
-      return;
-    }
-
-    gradientBarStateDispatch({
-      type: 'MOVE_INSERTER',
-      insertPosition
-    });
-  };
-
-  const onMouseLeave = () => {
-    gradientBarStateDispatch({
-      type: 'STOP_INSERTER_MOVE'
-    });
-  };
-
-  const isMovingInserter = gradientBarState.id === 'MOVING_INSERTER';
-  const isInsertingControlPoint = gradientBarState.id === 'INSERTING_CONTROL_POINT';
-  return Object(external_wp_element_["createElement"])("div", {
-    ref: gradientPickerDomRef,
-    className: classnames_default()('components-custom-gradient-picker__gradient-bar', {
-      'has-gradient': hasGradient
-    }),
-    onMouseEnter: onMouseEnterAndMove,
-    onMouseMove: onMouseEnterAndMove,
-    style: {
-      background
-    },
-    onMouseLeave: onMouseLeave
-  }, Object(external_wp_element_["createElement"])("div", {
-    className: "components-custom-gradient-picker__markers-container"
-  }, !disableInserter && (isMovingInserter || isInsertingControlPoint) && Object(external_wp_element_["createElement"])(control_points.InsertPoint, {
-    disableAlpha: disableAlpha,
-    insertPosition: gradientBarState.insertPosition,
-    value: controlPoints,
-    onChange: onChange,
-    onOpenInserter: () => {
-      gradientBarStateDispatch({
-        type: 'OPEN_INSERTER'
-      });
-    },
-    onCloseInserter: () => {
-      gradientBarStateDispatch({
-        type: 'CLOSE_INSERTER'
-      });
-    }
-  }), Object(external_wp_element_["createElement"])(control_points, {
-    disableAlpha: disableAlpha,
-    disableRemove: disableInserter,
-    gradientPickerDomRef: gradientPickerDomRef,
-    ignoreMarkerPosition: isInsertingControlPoint ? gradientBarState.insertPosition : undefined,
-    value: controlPoints,
-    onChange: onChange,
-    onStartControlPointChange: () => {
-      gradientBarStateDispatch({
-        type: 'START_CONTROL_CHANGE'
-      });
-    },
-    onStopControlPointChange: () => {
-      gradientBarStateDispatch({
-        type: 'STOP_CONTROL_CHANGE'
-      });
-    }
-  })));
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/duotone-picker/custom-duotone-bar.js
-
-
-/**
- * Internal dependencies
- */
-
-
-const PLACEHOLDER_VALUES = ['#333', '#CCC'];
-function CustomDuotoneBar({
-  value,
-  onChange
-}) {
-  const hasGradient = !!value;
-  const values = hasGradient ? value : PLACEHOLDER_VALUES;
-  const background = getGradientFromCSSColors(values);
-  const controlPoints = getColorStopsFromColors(values);
-  return Object(external_wp_element_["createElement"])(CustomGradientBar, {
-    disableInserter: true,
-    disableAlpha: true,
-    background: background,
-    hasGradient: hasGradient,
-    value: controlPoints,
-    onChange: newColorStops => {
-      const newValue = getColorsFromColorStops(newColorStops);
-      onChange(newValue);
-    }
-  });
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/duotone-picker/duotone-picker.js
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-
-function DuotonePicker({
-  colorPalette,
-  duotonePalette,
-  disableCustomColors,
-  disableCustomDuotone,
-  value,
-  onChange
-}) {
-  const [defaultDark, defaultLight] = Object(external_wp_element_["useMemo"])(() => getDefaultColors(colorPalette), [colorPalette]);
-  return Object(external_wp_element_["createElement"])(CircularOptionPicker, {
-    options: duotonePalette.map(({
-      colors,
-      slug,
-      name
-    }) => {
-      const style = {
-        background: getGradientFromCSSColors(colors, '135deg'),
-        color: 'transparent'
-      };
-      const tooltipText = name !== null && name !== void 0 ? name : Object(external_wp_i18n_["sprintf"])( // translators: %s: duotone code e.g: "dark-grayscale" or "7f7f7f-ffffff".
-      Object(external_wp_i18n_["__"])('Duotone code: %s'), slug);
-      const label = name ? Object(external_wp_i18n_["sprintf"])( // translators: %s: The name of the option e.g: "Dark grayscale".
-      Object(external_wp_i18n_["__"])('Duotone: %s'), name) : tooltipText;
-      const isSelected = Object(external_lodash_["isEqual"])(colors, value);
-      return Object(external_wp_element_["createElement"])(CircularOptionPicker.Option, {
-        key: slug,
-        value: colors,
-        isSelected: isSelected,
-        "aria-label": label,
-        tooltipText: tooltipText,
-        style: style,
-        onClick: () => {
-          onChange(isSelected ? undefined : colors);
-        }
-      });
-    }),
-    actions: Object(external_wp_element_["createElement"])(CircularOptionPicker.ButtonAction, {
-      onClick: () => onChange(undefined)
-    }, Object(external_wp_i18n_["__"])('Clear'))
-  }, !disableCustomColors && !disableCustomDuotone && Object(external_wp_element_["createElement"])(CustomDuotoneBar, {
-    value: value,
-    onChange: onChange
-  }), !disableCustomDuotone && Object(external_wp_element_["createElement"])(color_list_picker, {
-    labels: [Object(external_wp_i18n_["__"])('Shadows'), Object(external_wp_i18n_["__"])('Highlights')],
-    colors: colorPalette,
-    value: value,
-    disableCustomColors: disableCustomColors,
-    onChange: newColors => {
-      if (!newColors[0]) {
-        newColors[0] = defaultDark;
-      }
-
-      if (!newColors[1]) {
-        newColors[1] = defaultLight;
-      }
-
-      const newValue = newColors.length >= 2 ? newColors : undefined;
-      onChange(newValue);
-    }
-  }));
-}
-
-/* harmony default export */ var duotone_picker = (DuotonePicker);
-
-// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/external.js
-var external = __webpack_require__("K+tz");
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/external-link/styles/external-link-styles.js
-
-
-function external_link_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
-
-/**
- * WordPress dependencies
- */
-
-const StyledIcon = /*#__PURE__*/styled_base_browser_esm(build_module_icon["a" /* default */], {
-  target: "etxm6pv0",
-  label: "StyledIcon"
-})( true ? {
-  name: "i8uvf3",
-  styles: "width:1.4em;height:1.4em;margin:-0.2em 0.1em 0;vertical-align:middle;fill:currentColor;"
-} : undefined);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/external-link/index.js
-
-
-
-/**
- * External dependencies
- */
-
-
-/**
- * WordPress dependencies
- */
-
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-function ExternalLink({
-  href,
-  children,
-  className,
-  rel = '',
-  ...additionalProps
-}, ref) {
-  rel = Object(external_lodash_["uniq"])(Object(external_lodash_["compact"])([...rel.split(' '), 'external', 'noreferrer', 'noopener'])).join(' ');
-  const classes = classnames_default()('components-external-link', className);
-  return (
-    /* eslint-disable react/jsx-no-target-blank */
-    Object(external_wp_element_["createElement"])("a", Object(esm_extends["a" /* default */])({}, additionalProps, {
-      className: classes,
-      href: href,
-      target: "_blank",
-      rel: rel,
-      ref: ref
-    }), children, Object(external_wp_element_["createElement"])(visually_hidden["a" /* default */], {
-      as: "span"
-    },
-    /* translators: accessibility text */
-    Object(external_wp_i18n_["__"])('(opens in a new tab)')), Object(external_wp_element_["createElement"])(StyledIcon, {
-      icon: external["a" /* default */],
-      className: "components-external-link__icon"
-    }))
-    /* eslint-enable react/jsx-no-target-blank */
-
-  );
-}
-/* harmony default export */ var external_link = (Object(external_wp_element_["forwardRef"])(ExternalLink));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/focal-point-picker/styles/focal-point-picker-style.js
-
-
-function focal_point_picker_style_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
-
-/**
- * Internal dependencies
- */
-
-
-
-const MediaWrapper = styled_base_browser_esm("div", {
-  target: "e11wezi70",
-  label: "MediaWrapper"
-})( true ? {
-  name: "4wwkjz",
-  styles: "background-color:transparent;box-sizing:border-box;text-align:center;width:100%;"
-} : undefined);
-const MediaContainer = styled_base_browser_esm("div", {
-  target: "e11wezi71",
-  label: "MediaContainer"
-})( true ? {
-  name: "1q0l1fq",
-  styles: "align-items:center;box-sizing:border-box;box-shadow:0 0 0 1px rgba( 0,0,0,0.2 );cursor:pointer;display:inline-flex;justify-content:center;margin:auto;position:relative;height:100%;img,video{box-sizing:border-box;display:block;height:auto;margin:0;max-height:100%;max-width:100%;pointer-events:none;user-select:none;width:auto;}"
-} : undefined);
-const MediaPlaceholder = styled_base_browser_esm("div", {
-  target: "e11wezi72",
-  label: "MediaPlaceholder"
-})("background:", COLORS.lightGray[300], ";box-sizing:border-box;height:170px;max-width:280px;min-width:200px;width:100%;" + ( true ? "" : undefined));
-const focal_point_picker_style_UnitControl = /*#__PURE__*/styled_base_browser_esm(unit_control, {
-  target: "e11wezi73",
-  label: "UnitControl"
-})( true ? {
-  name: "v7v99c",
-  styles: "width:100px;"
-} : undefined);
-const ControlWrapper = /*#__PURE__*/styled_base_browser_esm(flex_component, {
-  target: "e11wezi74",
-  label: "ControlWrapper"
-})( true ? {
-  name: "lqoi1w",
-  styles: "max-width:320px;padding:1em 0;"
-} : undefined);
-const GridView = styled_base_browser_esm("div", {
-  target: "e11wezi75",
-  label: "GridView"
-})("box-sizing:border-box;left:50%;opacity:0;overflow:hidden;pointer-events:none;position:absolute;top:50%;transform:translate3d( -50%,-50%,0 );transition:opacity 120ms linear;z-index:1;", ({
-  isActive
-}) => isActive && `
-		opacity: 1;
-	`,  true ? "" : undefined);
-const GridLine = styled_base_browser_esm("div", {
-  target: "e11wezi76",
-  label: "GridLine"
-})( true ? {
-  name: "18dz4sk",
-  styles: "box-sizing:border-box;background:white;box-shadow:0 0 2px rgba( 0,0,0,0.6 );position:absolute;opacity:0.4;transform:translateZ( 0 );"
-} : undefined);
-const GridLineX = /*#__PURE__*/styled_base_browser_esm(GridLine, {
-  target: "e11wezi77",
-  label: "GridLineX"
-})( true ? {
-  name: "1u4twh6",
-  styles: "height:1px;left:0;right:0;"
-} : undefined);
-const GridLineY = /*#__PURE__*/styled_base_browser_esm(GridLine, {
-  target: "e11wezi78",
-  label: "GridLineY"
-})( true ? {
-  name: "13gvipf",
-  styles: "width:1px;top:0;bottom:0;"
-} : undefined);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/focal-point-picker/utils.js
-const INITIAL_BOUNDS = {
-  top: 0,
-  left: 0,
-  bottom: 0,
-  right: 0,
-  width: 0,
-  height: 0
-};
-const VIDEO_EXTENSIONS = ['avi', 'mpg', 'mpeg', 'mov', 'mp4', 'm4v', 'ogg', 'ogv', 'webm', 'wmv'];
-/**
- * Gets the extension of a file name.
- *
- * @param {string} filename The file name.
- * @return {string} The extension of the file name.
- */
-
-function getExtension(filename = '') {
-  const parts = filename.split('.');
-  return parts[parts.length - 1];
-}
-/**
- * Checks if a file is a video.
- *
- * @param {string} filename The file name.
- * @return {boolean} Whether the file is a video.
- */
-
-function isVideoType(filename = '') {
-  if (!filename) return false;
-  return VIDEO_EXTENSIONS.includes(getExtension(filename));
-}
-/**
- * Transforms a fraction value to a percentage value.
- *
- * @param {number} fraction The fraction value.
- * @return {number} A percentage value.
- */
-
-function fractionToPercentage(fraction) {
-  return Math.round(fraction * 100);
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/focal-point-picker/controls.js
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-const TEXTCONTROL_MIN = 0;
-const TEXTCONTROL_MAX = 100;
-function FocalPointPickerControls({
-  onChange = external_lodash_["noop"],
-  percentages = {
-    x: 0.5,
-    y: 0.5
-  }
-}) {
-  const valueX = fractionToPercentage(percentages.x);
-  const valueY = fractionToPercentage(percentages.y);
-
-  const handleOnXChange = next => {
-    onChange({ ...percentages,
-      x: parseInt(next) / 100
-    });
-  };
-
-  const handleOnYChange = next => {
-    onChange({ ...percentages,
-      y: parseInt(next) / 100
-    });
-  };
-
-  return Object(external_wp_element_["createElement"])(ControlWrapper, {
-    className: "focal-point-picker__controls"
-  }, Object(external_wp_element_["createElement"])(controls_UnitControl, {
-    label: Object(external_wp_i18n_["__"])('Left'),
-    value: valueX,
-    onChange: handleOnXChange,
-    dragDirection: "e"
-  }), Object(external_wp_element_["createElement"])(controls_UnitControl, {
-    label: Object(external_wp_i18n_["__"])('Top'),
-    value: valueY,
-    onChange: handleOnYChange,
-    dragDirection: "s"
-  }));
-}
-
-function controls_UnitControl(props) {
-  return Object(external_wp_element_["createElement"])(focal_point_picker_style_UnitControl, Object(esm_extends["a" /* default */])({
-    className: "focal-point-picker__controls-position-unit-control",
-    labelPosition: "side",
-    max: TEXTCONTROL_MAX,
-    min: TEXTCONTROL_MIN,
-    unit: "%",
-    units: [{
-      value: '%',
-      label: '%'
-    }]
-  }, props));
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/focal-point-picker/styles/focal-point-style.js
-
-
-function focal_point_style_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
-
-/**
- * WordPress dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-const FocalPointWrapper = styled_base_browser_esm("div", {
-  target: "eas61re0",
-  label: "FocalPointWrapper"
-})("background-color:transparent;box-sizing:border-box;cursor:grab;height:30px;margin:-15px 0 0 -15px;opacity:0.8;position:absolute;user-select:none;width:30px;will-change:transform;z-index:10000;", ({
-  isDragging
-}) => isDragging && 'cursor: grabbing;',  true ? "" : undefined);
-const PointerIconSVG = /*#__PURE__*/styled_base_browser_esm(external_wp_primitives_["SVG"], {
-  target: "eas61re1",
-  label: "PointerIconSVG"
-})( true ? {
-  name: "1fp1hff",
-  styles: "display:block;height:100%;left:0;position:absolute;top:0;width:100%;"
-} : undefined);
-const PointerIconPathOutline = /*#__PURE__*/styled_base_browser_esm(external_wp_primitives_["Path"], {
-  target: "eas61re2",
-  label: "PointerIconPathOutline"
-})( true ? {
-  name: "j4aqsr",
-  styles: "fill:white;"
-} : undefined);
-const PointerIconPathFill = /*#__PURE__*/styled_base_browser_esm(external_wp_primitives_["Path"], {
-  target: "eas61re3",
-  label: "PointerIconPathFill"
-})("fill:", COLORS.blue.wordpress[700], ";fill:", COLORS.ui.theme, ";" + ( true ? "" : undefined));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/focal-point-picker/focal-point.js
-
-
-
-/**
- * Internal dependencies
- */
-
-/**
- * External dependencies
- */
-
-
-function FocalPoint({
-  coordinates = {
-    left: '50%',
-    top: '50%'
-  },
-  ...props
-}) {
-  const classes = classnames_default()('components-focal-point-picker__icon_container');
-  const style = {
-    left: coordinates.left,
-    top: coordinates.top
-  };
-  return Object(external_wp_element_["createElement"])(FocalPointWrapper, Object(esm_extends["a" /* default */])({}, props, {
-    className: classes,
-    style: style
-  }), Object(external_wp_element_["createElement"])(PointerIconSVG, {
-    className: "components-focal-point-picker__icon",
-    xmlns: "http://www.w3.org/2000/svg",
-    viewBox: "0 0 30 30"
-  }, Object(external_wp_element_["createElement"])(PointerIconPathOutline, {
-    className: "components-focal-point-picker__icon-outline",
-    d: "M15 1C7.3 1 1 7.3 1 15s6.3 14 14 14 14-6.3 14-14S22.7 1 15 1zm0 22c-4.4 0-8-3.6-8-8s3.6-8 8-8 8 3.6 8 8-3.6 8-8 8z"
-  }), Object(external_wp_element_["createElement"])(PointerIconPathFill, {
-    className: "components-focal-point-picker__icon-fill",
-    d: "M15 3C8.4 3 3 8.4 3 15s5.4 12 12 12 12-5.4 12-12S21.6 3 15 3zm0 22C9.5 25 5 20.5 5 15S9.5 5 15 5s10 4.5 10 10-4.5 10-10 10z"
-  })));
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/focal-point-picker/grid.js
-
-
-
-/**
- * WordPress dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-
-const {
-  clearTimeout: grid_clearTimeout,
-  setTimeout: grid_setTimeout
-} = typeof window !== 'undefined' ? window : {};
-function FocalPointPickerGrid({
-  bounds = {},
-  value,
-  ...props
-}) {
-  const animationProps = useRevealAnimation(value);
-  const style = {
-    width: bounds.width,
-    height: bounds.height
-  };
-  return Object(external_wp_element_["createElement"])(GridView, Object(esm_extends["a" /* default */])({}, props, animationProps, {
-    className: "components-focal-point-picker__grid",
-    style: style
-  }), Object(external_wp_element_["createElement"])(GridLineX, {
-    style: {
-      top: '33%'
-    }
-  }), Object(external_wp_element_["createElement"])(GridLineX, {
-    style: {
-      top: '66%'
-    }
-  }), Object(external_wp_element_["createElement"])(GridLineY, {
-    style: {
-      left: '33%'
-    }
-  }), Object(external_wp_element_["createElement"])(GridLineY, {
-    style: {
-      left: '66%'
-    }
-  }));
-}
-/**
- * Custom hook that renders the "flash" animation whenever the value changes.
- *
- * @param {string} value Value of (box) side.
- */
-
-function useRevealAnimation(value) {
-  const [isActive, setIsActive] = Object(external_wp_element_["useState"])(false);
-  use_update_effect(() => {
-    setIsActive(true);
-    const timeout = grid_setTimeout(() => {
-      setIsActive(false);
-    }, 600);
-    return () => grid_clearTimeout(timeout);
-  }, [value]);
-  return {
-    isActive
-  };
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/focal-point-picker/media.js
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-function Media({
-  alt,
-  autoPlay,
-  src,
-  onLoad = external_lodash_["noop"],
-  mediaRef,
-  // Exposing muted prop for test rendering purposes
-  // https://github.com/testing-library/react-testing-library/issues/470
-  muted = true,
-  ...props
-}) {
-  if (!src) {
-    return Object(external_wp_element_["createElement"])(MediaPlaceholderElement, {
-      className: "components-focal-point-picker__media components-focal-point-picker__media--placeholder",
-      onLoad: onLoad,
-      mediaRef: mediaRef
-    });
-  }
-
-  const isVideo = isVideoType(src);
-  return isVideo ? Object(external_wp_element_["createElement"])("video", Object(esm_extends["a" /* default */])({}, props, {
-    autoPlay: autoPlay,
-    className: "components-focal-point-picker__media components-focal-point-picker__media--video",
-    loop: true,
-    muted: muted,
-    onLoadedData: onLoad,
-    ref: mediaRef,
-    src: src
-  })) : Object(external_wp_element_["createElement"])("img", Object(esm_extends["a" /* default */])({}, props, {
-    alt: alt,
-    className: "components-focal-point-picker__media components-focal-point-picker__media--image",
-    onLoad: onLoad,
-    ref: mediaRef,
-    src: src
-  }));
-}
-
-function MediaPlaceholderElement({
-  mediaRef,
-  onLoad = external_lodash_["noop"],
-  ...props
-}) {
-  const onLoadRef = Object(external_wp_element_["useRef"])(onLoad);
-  /**
-   * This async callback mimics the onLoad (img) / onLoadedData (video) callback
-   * for media elements. It is used in the main <FocalPointPicker /> component
-   * to calculate the dimensions + boundaries for positioning.
-   */
-
-  Object(external_wp_element_["useLayoutEffect"])(() => {
-    window.requestAnimationFrame(() => {
-      onLoadRef.current();
-    });
-  }, []);
-  return Object(external_wp_element_["createElement"])(MediaPlaceholder, Object(esm_extends["a" /* default */])({
-    ref: mediaRef
-  }, props));
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/focal-point-picker/index.js
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-
-
-
-
-class focal_point_picker_FocalPointPicker extends external_wp_element_["Component"] {
-  constructor(props) {
-    super(...arguments);
-    this.state = {
-      isDragging: false,
-      bounds: INITIAL_BOUNDS,
-      percentages: props.value
-    };
-    this.containerRef = Object(external_wp_element_["createRef"])();
-    this.mediaRef = Object(external_wp_element_["createRef"])();
-    this.onMouseDown = this.startDrag.bind(this);
-    this.onMouseUp = this.stopDrag.bind(this);
-    this.onKeyDown = this.onKeyDown.bind(this);
-    this.onMouseMove = this.doDrag.bind(this);
-
-    this.ifDraggingStop = () => {
-      if (this.state.isDragging) {
-        this.stopDrag();
-      }
-    };
-
-    this.onChangeAtControls = value => {
-      this.updateValue(value);
-      this.props.onChange(value);
-    };
-
-    this.updateBounds = this.updateBounds.bind(this);
-    this.updateValue = this.updateValue.bind(this);
-  }
-
-  componentDidMount() {
-    const {
-      defaultView
-    } = this.containerRef.current.ownerDocument;
-    defaultView.addEventListener('resize', this.updateBounds);
-    /*
-     * Set initial bound values.
-     *
-     * This is necessary for Safari:
-     * https://github.com/WordPress/gutenberg/issues/25814
-     */
-
-    this.updateBounds();
-  }
-
-  componentDidUpdate(prevProps) {
-    if (prevProps.url !== this.props.url) {
-      this.ifDraggingStop();
-    }
-    /*
-     * Handles cases where the incoming value changes.
-     * An example is the values resetting based on an UNDO action.
-     */
-
-
-    const {
-      isDragging,
-      percentages: {
-        x,
-        y
-      }
-    } = this.state;
-    const {
-      value
-    } = this.props;
-
-    if (!isDragging && (value.x !== x || value.y !== y)) {
-      this.setState({
-        percentages: this.props.value
-      });
-    }
-  }
-
-  componentWillUnmount() {
-    const {
-      defaultView
-    } = this.containerRef.current.ownerDocument;
-    defaultView.removeEventListener('resize', this.updateBounds);
-    this.ifDraggingStop();
-  }
-
-  calculateBounds() {
-    const bounds = INITIAL_BOUNDS;
-
-    if (!this.mediaRef.current) {
-      return bounds;
-    } // Prevent division by zero when updateBounds runs in componentDidMount
-
-
-    if (this.mediaRef.current.clientWidth === 0 || this.mediaRef.current.clientHeight === 0) {
-      return bounds;
-    }
-
-    const dimensions = {
-      width: this.mediaRef.current.clientWidth,
-      height: this.mediaRef.current.clientHeight
-    };
-    const pickerDimensions = this.pickerDimensions();
-    const widthRatio = pickerDimensions.width / dimensions.width;
-    const heightRatio = pickerDimensions.height / dimensions.height;
-
-    if (heightRatio >= widthRatio) {
-      bounds.width = bounds.right = pickerDimensions.width;
-      bounds.height = dimensions.height * widthRatio;
-      bounds.top = (pickerDimensions.height - bounds.height) / 2;
-      bounds.bottom = bounds.top + bounds.height;
-    } else {
-      bounds.height = bounds.bottom = pickerDimensions.height;
-      bounds.width = dimensions.width * heightRatio;
-      bounds.left = (pickerDimensions.width - bounds.width) / 2;
-      bounds.right = bounds.left + bounds.width;
-    }
-
-    return bounds;
-  }
-
-  updateValue(nextValue = {}) {
-    const {
-      x,
-      y
-    } = nextValue;
-    const nextPercentage = {
-      x: parseFloat(x).toFixed(2),
-      y: parseFloat(y).toFixed(2)
-    };
-    this.setState({
-      percentages: nextPercentage
-    });
-  }
-
-  updateBounds() {
-    this.setState({
-      bounds: this.calculateBounds()
-    });
-  }
-
-  startDrag(event) {
-    var _this$props$onDragSta, _this$props;
-
-    event.persist();
-    this.containerRef.current.focus();
-    this.setState({
-      isDragging: true
-    });
-    const {
-      ownerDocument
-    } = this.containerRef.current;
-    ownerDocument.addEventListener('mouseup', this.onMouseUp);
-    ownerDocument.addEventListener('mousemove', this.onMouseMove);
-    const value = this.getValueFromPoint({
-      x: event.pageX,
-      y: event.pageY
-    }, event.shiftKey);
-    this.updateValue(value);
-    (_this$props$onDragSta = (_this$props = this.props).onDragStart) === null || _this$props$onDragSta === void 0 ? void 0 : _this$props$onDragSta.call(_this$props, value, event);
-  }
-
-  stopDrag(event) {
-    var _this$props$onDragEnd, _this$props2;
-
-    const {
-      ownerDocument
-    } = this.containerRef.current;
-    ownerDocument.removeEventListener('mouseup', this.onMouseUp);
-    ownerDocument.removeEventListener('mousemove', this.onMouseMove);
-    this.setState({
-      isDragging: false
-    }, () => {
-      this.props.onChange(this.state.percentages);
-    });
-    (_this$props$onDragEnd = (_this$props2 = this.props).onDragEnd) === null || _this$props$onDragEnd === void 0 ? void 0 : _this$props$onDragEnd.call(_this$props2, event);
-  }
-
-  onKeyDown(event) {
-    const {
-      keyCode,
-      shiftKey
-    } = event;
-    if (![external_wp_keycodes_["UP"], external_wp_keycodes_["DOWN"], external_wp_keycodes_["LEFT"], external_wp_keycodes_["RIGHT"]].includes(keyCode)) return;
-    event.preventDefault();
-    const next = { ...this.state.percentages
-    };
-    const step = shiftKey ? 0.1 : 0.01;
-    const delta = keyCode === external_wp_keycodes_["UP"] || keyCode === external_wp_keycodes_["LEFT"] ? -1 * step : step;
-    const axis = keyCode === external_wp_keycodes_["UP"] || keyCode === external_wp_keycodes_["DOWN"] ? 'y' : 'x';
-    const value = parseFloat(next[axis]) + delta;
-    next[axis] = roundClamp(value, 0, 1, step);
-    this.updateValue(next);
-    this.props.onChange(next);
-  }
-
-  doDrag(event) {
-    var _this$props$onDrag, _this$props3;
-
-    // Prevents text-selection when dragging.
-    event.preventDefault();
-    const value = this.getValueFromPoint({
-      x: event.pageX,
-      y: event.pageY
-    }, event.shiftKey);
-    this.updateValue(value);
-    (_this$props$onDrag = (_this$props3 = this.props).onDrag) === null || _this$props$onDrag === void 0 ? void 0 : _this$props$onDrag.call(_this$props3, value, event);
-  }
-
-  getValueFromPoint(point, byTenths) {
-    const {
-      bounds
-    } = this.state;
-    const pickerDimensions = this.pickerDimensions();
-    const relativePoint = {
-      left: point.x - pickerDimensions.left,
-      top: point.y - pickerDimensions.top
-    };
-    const left = Math.max(bounds.left, Math.min(relativePoint.left, bounds.right));
-    const top = Math.max(bounds.top, Math.min(relativePoint.top, bounds.bottom));
-    let nextX = (left - bounds.left) / (pickerDimensions.width - bounds.left * 2);
-    let nextY = (top - bounds.top) / (pickerDimensions.height - bounds.top * 2); // Enables holding shift to jump values by 10%
-
-    const step = byTenths ? 0.1 : 0.01;
-    nextX = roundClamp(nextX, 0, 1, step);
-    nextY = roundClamp(nextY, 0, 1, step);
-    return {
-      x: nextX,
-      y: nextY
-    };
-  }
-
-  pickerDimensions() {
-    const containerNode = this.containerRef.current;
-
-    if (!containerNode) {
-      return {
-        width: 0,
-        height: 0,
-        left: 0,
-        top: 0
-      };
-    }
-
-    const {
-      clientHeight,
-      clientWidth
-    } = containerNode;
-    const {
-      top,
-      left
-    } = containerNode.getBoundingClientRect();
-    return {
-      width: clientWidth,
-      height: clientHeight,
-      top: top + document.body.scrollTop,
-      left
-    };
-  }
-
-  iconCoordinates() {
-    const {
-      bounds,
-      percentages: {
-        x,
-        y
-      }
-    } = this.state;
-
-    if (bounds.left === undefined || bounds.top === undefined) {
-      return {
-        left: '50%',
-        top: '50%'
-      };
-    }
-
-    const {
-      width,
-      height
-    } = this.pickerDimensions();
-    return {
-      left: x * (width - bounds.left * 2) + bounds.left,
-      top: y * (height - bounds.top * 2) + bounds.top
-    };
-  }
-
-  render() {
-    const {
-      autoPlay,
-      className,
-      help,
-      instanceId,
-      label,
-      url
-    } = this.props;
-    const {
-      bounds,
-      isDragging,
-      percentages
-    } = this.state;
-    const iconCoordinates = this.iconCoordinates();
-    const classes = classnames_default()('components-focal-point-picker-control', className);
-    const id = `inspector-focal-point-picker-control-${instanceId}`;
-    return Object(external_wp_element_["createElement"])(base_control, {
-      label: label,
-      id: id,
-      help: help,
-      className: classes
-    }, Object(external_wp_element_["createElement"])(MediaWrapper, {
-      className: "components-focal-point-picker-wrapper"
-    }, Object(external_wp_element_["createElement"])(MediaContainer, {
-      className: "components-focal-point-picker",
-      onKeyDown: this.onKeyDown,
-      onMouseDown: this.onMouseDown,
-      onBlur: this.ifDraggingStop,
-      ref: this.containerRef,
-      role: "button",
-      tabIndex: "-1"
-    }, Object(external_wp_element_["createElement"])(FocalPointPickerGrid, {
-      bounds: bounds,
-      value: percentages.x + percentages.y
-    }), Object(external_wp_element_["createElement"])(Media, {
-      alt: Object(external_wp_i18n_["__"])('Media preview'),
-      autoPlay: autoPlay,
-      mediaRef: this.mediaRef,
-      onLoad: this.updateBounds,
-      src: url
-    }), Object(external_wp_element_["createElement"])(FocalPoint, {
-      coordinates: iconCoordinates,
-      isDragging: isDragging
-    }))), Object(external_wp_element_["createElement"])(FocalPointPickerControls, {
-      percentages: percentages,
-      onChange: this.onChangeAtControls
-    }));
-  }
-
-}
-focal_point_picker_FocalPointPicker.defaultProps = {
-  autoPlay: true,
-  value: {
-    x: 0.5,
-    y: 0.5
-  },
-  url: null
-};
-/* harmony default export */ var focal_point_picker = (Object(external_wp_compose_["withInstanceId"])(focal_point_picker_FocalPointPicker));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/focusable-iframe/index.js
-
-
-
-/**
- * WordPress dependencies
- */
-
-
-function FocusableIframe({
-  iframeRef,
-  ...props
-}) {
-  const fallbackRef = Object(external_wp_element_["useRef"])();
-  const ref = Object(external_wp_compose_["useMergeRefs"])([iframeRef, fallbackRef]);
-  Object(external_wp_element_["useEffect"])(() => {
-    const iframe = fallbackRef.current;
-    const {
-      ownerDocument
-    } = iframe;
-    const {
-      defaultView
-    } = ownerDocument;
-    /**
-     * Checks whether the iframe is the activeElement, inferring that it has
-     * then received focus, and calls the `onFocus` prop callback.
-     */
-
-    function checkFocus() {
-      if (ownerDocument.activeElement !== iframe) {
-        return;
-      }
-
-      iframe.focus();
-    }
-
-    defaultView.addEventListener('blur', checkFocus);
-    return () => {
-      defaultView.removeEventListener('blur', checkFocus);
-    };
-  }, []); // Disable reason: The rendered iframe is a pass-through component,
-  // assigning props inherited from the rendering parent. It's the
-  // responsibility of the parent to assign a title.
-  // eslint-disable-next-line jsx-a11y/iframe-has-title
-
-  return Object(external_wp_element_["createElement"])("iframe", Object(esm_extends["a" /* default */])({
-    ref: ref
-  }, props));
-}
-
-// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/text-color.js
-var text_color = __webpack_require__("uGfJ");
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/range-control/utils.js
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-/**
- * A float supported clamp function for a specific value.
- *
- * @param {number|null} value The value to clamp.
- * @param {number}      min   The minimum value.
- * @param {number}      max   The maximum value.
- *
- * @return {number} A (float) number
- */
-
-function floatClamp(value, min, max) {
-  if (typeof value !== 'number') {
-    return null;
-  }
-
-  return parseFloat(Object(external_lodash_["clamp"])(value, min, max));
-}
-/**
- * Hook to store a clamped value, derived from props.
- *
- * @param {Object} settings         Hook settings.
- * @param {number} settings.min     The minimum value.
- * @param {number} settings.max     The maximum value.
- * @param {number} settings.value  	The current value.
- * @param {any}    settings.initial The initial value.
- *
- * @return {[*, Function]} The controlled value and the value setter.
- */
-
-function useControlledRangeValue({
-  min,
-  max,
-  value: valueProp,
-  initial
-}) {
-  const [state, setInternalState] = use_controlled_state(floatClamp(valueProp, min, max), {
-    initial,
-    fallback: null
-  });
-  const setState = Object(external_wp_element_["useCallback"])(nextValue => {
-    if (nextValue === null) {
-      setInternalState(null);
-    } else {
-      setInternalState(floatClamp(nextValue, min, max));
-    }
-  }, [min, max]);
-  return [state, setState];
-}
-/**
- * Hook to encapsulate the debouncing "hover" to better handle the showing
- * and hiding of the Tooltip.
- *
- * @param {Object}   settings                     Hook settings.
- * @param {Function} [settings.onShow=noop]       A callback function invoked when the element is shown.
- * @param {Function} [settings.onHide=noop]       A callback function invoked when the element is hidden.
- * @param {Function} [settings.onMouseMove=noop]  A callback function invoked when the mouse is moved.
- * @param {Function} [settings.onMouseLeave=noop] A callback function invoked when the mouse is moved out of the element.
- * @param {number}   [settings.timeout=300]       Timeout before the element is shown or hidden.
- *
- * @return {Object} Bound properties for use on a React.Node.
- */
-
-function useDebouncedHoverInteraction({
-  onHide = external_lodash_["noop"],
-  onMouseLeave = external_lodash_["noop"],
-  onMouseMove = external_lodash_["noop"],
-  onShow = external_lodash_["noop"],
-  timeout = 300
-}) {
-  const [show, setShow] = Object(external_wp_element_["useState"])(false);
-  const timeoutRef = Object(external_wp_element_["useRef"])();
-  const setDebouncedTimeout = Object(external_wp_element_["useCallback"])(callback => {
-    window.clearTimeout(timeoutRef.current);
-    timeoutRef.current = setTimeout(callback, timeout);
-  }, [timeout]);
-  const handleOnMouseMove = Object(external_wp_element_["useCallback"])(event => {
-    onMouseMove(event);
-    setDebouncedTimeout(() => {
-      if (!show) {
-        setShow(true);
-        onShow();
-      }
-    });
-  }, []);
-  const handleOnMouseLeave = Object(external_wp_element_["useCallback"])(event => {
-    onMouseLeave(event);
-    setDebouncedTimeout(() => {
-      setShow(false);
-      onHide();
-    });
-  }, []);
-  Object(external_wp_element_["useEffect"])(() => {
-    return () => {
-      window.clearTimeout(timeoutRef.current);
-    };
-  });
-  return {
-    onMouseMove: handleOnMouseMove,
-    onMouseLeave: handleOnMouseLeave
-  };
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/range-control/styles/range-control-styles.js
-
-
-function range_control_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
-
-/**
- * External dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-var range_control_styles_ref =  true ? {
-  name: "tdik1c",
-  styles: "height:30px;min-height:30px;"
-} : undefined;
-
-const rangeHeight = () => range_control_styles_ref;
-
-const thumbSize = 20;
-const range_control_styles_Root = styled_base_browser_esm("div", {
-  target: "exqw8y20",
-  label: "Root"
-})( true ? {
-  name: "44oaj8",
-  styles: "-webkit-tap-highlight-color:transparent;box-sizing:border-box;align-items:flex-start;display:inline-flex;justify-content:flex-start;padding:0;position:relative;touch-action:none;width:100%;"
-} : undefined);
-
-const wrapperColor = ({
-  color: colorProp = COLORS.ui.borderFocus
-}) => {
-  return /*#__PURE__*/css_browser_esm({
-    color: colorProp
-  },  true ? "" : undefined);
-};
-
-const wrapperMargin = ({
-  marks
-}) => /*#__PURE__*/css_browser_esm({
-  marginBottom: marks ? 16 : null
-},  true ? "" : undefined);
-
-const range_control_styles_Wrapper = styled_base_browser_esm("div", {
-  target: "exqw8y21",
-  label: "Wrapper"
-})("box-sizing:border-box;color:", COLORS.blue.medium.focus, ";display:block;flex:1;padding-top:15px;position:relative;width:100%;", wrapperColor, ";", rangeHeight, ";", wrapperMargin, ";", rtl_rtl({
-  marginLeft: 10
-}),  true ? "" : undefined);
-const BeforeIconWrapper = styled_base_browser_esm("span", {
-  target: "exqw8y22",
-  label: "BeforeIconWrapper"
-})("margin-top:3px;", rtl_rtl({
-  marginRight: 6
-}),  true ? "" : undefined);
-const AfterIconWrapper = styled_base_browser_esm("span", {
-  target: "exqw8y23",
-  label: "AfterIconWrapper"
-})("margin-top:3px;", rtl_rtl({
-  marginLeft: 16
-}),  true ? "" : undefined);
-
-const railBackgroundColor = ({
-  disabled,
-  railColor
-}) => {
-  let background = railColor || null;
-
-  if (disabled) {
-    background = COLORS.lightGray[400];
-  }
-
-  return /*#__PURE__*/css_browser_esm({
-    background
-  },  true ? "" : undefined);
-};
-
-const Rail = styled_base_browser_esm("span", {
-  target: "exqw8y24",
-  label: "Rail"
-})("background-color:", COLORS.lightGray[600], ";box-sizing:border-box;left:0;pointer-events:none;right:0;display:block;height:3px;position:absolute;margin-top:14px;top:0;", railBackgroundColor, ";" + ( true ? "" : undefined));
-
-const trackBackgroundColor = ({
-  disabled,
-  trackColor
-}) => {
-  let background = trackColor || 'currentColor';
-
-  if (disabled) {
-    background = COLORS.lightGray[800];
-  }
-
-  return /*#__PURE__*/css_browser_esm({
-    background
-  },  true ? "" : undefined);
-};
-
-const Track = styled_base_browser_esm("span", {
-  target: "exqw8y25",
-  label: "Track"
-})("background-color:currentColor;border-radius:1px;box-sizing:border-box;height:3px;pointer-events:none;display:block;position:absolute;margin-top:14px;top:0;", trackBackgroundColor, ";" + ( true ? "" : undefined));
-const MarksWrapper = styled_base_browser_esm("span", {
-  target: "exqw8y26",
-  label: "MarksWrapper"
-})( true ? {
-  name: "8d21nl",
-  styles: "box-sizing:border-box;display:block;pointer-events:none;position:relative;width:100%;user-select:none;"
-} : undefined);
-
-const markFill = ({
-  disabled,
-  isFilled
-}) => {
-  let backgroundColor = isFilled ? 'currentColor' : COLORS.lightGray[600];
-
-  if (disabled) {
-    backgroundColor = COLORS.lightGray[800];
-  }
-
-  return /*#__PURE__*/css_browser_esm({
-    backgroundColor
-  },  true ? "" : undefined);
-};
-
-const Mark = styled_base_browser_esm("span", {
-  target: "exqw8y27",
-  label: "Mark"
-})("box-sizing:border-box;height:9px;left:0;position:absolute;top:-4px;width:1px;", markFill, ";" + ( true ? "" : undefined));
-
-const markLabelFill = ({
-  isFilled
-}) => {
-  return /*#__PURE__*/css_browser_esm({
-    color: isFilled ? COLORS.darkGray[300] : COLORS.lightGray[600]
-  },  true ? "" : undefined);
-};
-
-const MarkLabel = styled_base_browser_esm("span", {
-  target: "exqw8y28",
-  label: "MarkLabel"
-})("box-sizing:border-box;color:", COLORS.lightGray[600], ";left:0;font-size:11px;position:absolute;top:12px;transform:translateX( -50% );white-space:nowrap;", markLabelFill, ";" + ( true ? "" : undefined));
-const ThumbWrapper = styled_base_browser_esm("span", {
-  target: "exqw8y29",
-  label: "ThumbWrapper"
-})("align-items:center;box-sizing:border-box;display:flex;height:", thumbSize, "px;justify-content:center;margin-top:5px;outline:0;pointer-events:none;position:absolute;top:0;user-select:none;width:", thumbSize, "px;", rtl_rtl({
-  marginLeft: -10
-}),  true ? "" : undefined);
-
-const thumbFocus = ({
-  isFocused
-}) => {
-  return /*#__PURE__*/css_browser_esm({
-    borderColor: isFocused ? COLORS.ui.borderFocus : COLORS.darkGray[200],
-    boxShadow: isFocused ? `
-				0 0 0 1px ${COLORS.ui.borderFocus}
-			` : `
-				0 0 0 rgba(0, 0, 0, 0)
-			`
-  },  true ? "" : undefined);
-};
-
-const Thumb = styled_base_browser_esm("span", {
-  target: "exqw8y210",
-  label: "Thumb"
-})("align-items:center;background-color:white;border-radius:50%;border:1px solid ", COLORS.darkGray[200], ";box-sizing:border-box;height:100%;outline:0;position:absolute;user-select:none;width:100%;", thumbFocus, ";" + ( true ? "" : undefined));
-const InputRange = styled_base_browser_esm("input", {
-  target: "exqw8y211",
-  label: "InputRange"
-})("box-sizing:border-box;cursor:pointer;display:block;height:100%;left:0;margin:0 -", thumbSize / 2, "px;opacity:0;outline:none;position:absolute;right:0;top:0;width:calc( 100% + ", thumbSize, "px );" + ( true ? "" : undefined));
-
-const tooltipShow = ({
-  show
-}) => {
-  return /*#__PURE__*/css_browser_esm({
-    opacity: show ? 1 : 0
-  },  true ? "" : undefined);
-};
-
-var range_control_styles_ref2 =  true ? {
-  name: "5qqmyx",
-  styles: "top:-80%;"
-} : undefined;
-
-var range_control_styles_ref3 =  true ? {
-  name: "eda4eg",
-  styles: "bottom:-80%;"
-} : undefined;
-
-const tooltipPosition = ({
-  position
-}) => {
-  const isTop = position === 'top';
-
-  if (isTop) {
-    return range_control_styles_ref2;
-  }
-
-  return range_control_styles_ref3;
-};
-
-const range_control_styles_Tooltip = styled_base_browser_esm("span", {
-  target: "exqw8y212",
-  label: "Tooltip"
-})("background:", COLORS.ui.border, ";border-radius:2px;box-sizing:border-box;color:white;display:inline-block;font-size:12px;min-width:32px;opacity:0;padding:4px 8px;pointer-events:none;position:absolute;text-align:center;transition:opacity 120ms ease;user-select:none;line-height:1.4;", tooltipShow, ";", tooltipPosition, ";", reduceMotion('transition'), ";", rtl_rtl({
-  transform: 'translateX(-50%)'
-}, {
-  transform: 'translateX(50%)'
-}),  true ? "" : undefined); // @todo: Refactor RangeControl with latest HStack configuration
-// @wordpress/components/ui/hstack
-
-const InputNumber = /*#__PURE__*/styled_base_browser_esm(number_control, {
-  target: "exqw8y213",
-  label: "InputNumber"
-})("box-sizing:border-box;display:inline-block;font-size:13px;margin-top:0;width:", space(8), " !important;input[type='number']&{", rangeHeight, ";}", rtl_rtl({
-  marginLeft: `${space(2)} !important`
-}),  true ? "" : undefined);
-const ActionRightWrapper = styled_base_browser_esm("span", {
-  target: "exqw8y214",
-  label: "ActionRightWrapper"
-})("box-sizing:border-box;display:block;margin-top:0;button,button.is-small{margin-left:0;", rangeHeight, ";}", rtl_rtl({
-  marginLeft: 8
-}),  true ? "" : undefined);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/range-control/input-range.js
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-function input_range_InputRange({
-  describedBy,
-  isShiftStepEnabled = true,
-  label,
-  onHideTooltip = external_lodash_["noop"],
-  onMouseLeave = external_lodash_["noop"],
-  step = 1,
-  onBlur = external_lodash_["noop"],
-  onChange = external_lodash_["noop"],
-  onFocus = external_lodash_["noop"],
-  onMouseMove = external_lodash_["noop"],
-  onShowTooltip = external_lodash_["noop"],
-  shiftStep = 10,
-  value,
-  ...props
-}, ref) {
-  const jumpStep = use_jump_step({
-    step,
-    shiftStep,
-    isShiftStepEnabled
-  });
-  const hoverInteractions = useDebouncedHoverInteraction({
-    onHide: onHideTooltip,
-    onMouseLeave,
-    onMouseMove,
-    onShow: onShowTooltip
-  });
-  return Object(external_wp_element_["createElement"])(InputRange, Object(esm_extends["a" /* default */])({}, props, hoverInteractions, {
-    "aria-describedby": describedBy,
-    "aria-label": label,
-    "aria-hidden": false,
-    onBlur: onBlur,
-    onChange: onChange,
-    onFocus: onFocus,
-    ref: ref,
-    step: jumpStep,
-    tabIndex: 0,
-    type: "range",
-    value: value
-  }));
-}
-
-const input_range_ForwardedComponent = Object(external_wp_element_["forwardRef"])(input_range_InputRange);
-/* harmony default export */ var input_range = (input_range_ForwardedComponent);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/range-control/mark.js
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-function RangeMark({
-  className,
-  isFilled = false,
-  label,
-  style = {},
-  ...props
-}) {
-  const classes = classnames_default()('components-range-control__mark', isFilled && 'is-filled', className);
-  const labelClasses = classnames_default()('components-range-control__mark-label', isFilled && 'is-filled');
-  return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(Mark, Object(esm_extends["a" /* default */])({}, props, {
-    "aria-hidden": "true",
-    className: classes,
-    isFilled: isFilled,
-    style: style
-  })), label && Object(external_wp_element_["createElement"])(MarkLabel, {
-    "aria-hidden": "true",
-    className: labelClasses,
-    isFilled: isFilled,
-    style: style
-  }, label));
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/range-control/rail.js
-
-
-
-/**
- * WordPress dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-
-function RangeRail({
-  disabled = false,
-  marks = false,
-  min = 0,
-  max = 100,
-  step = 1,
-  value = 0,
-  ...restProps
-}) {
-  return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(Rail, Object(esm_extends["a" /* default */])({
-    disabled: disabled
-  }, restProps)), marks && Object(external_wp_element_["createElement"])(Marks, {
-    disabled: disabled,
-    marks: marks,
-    min: min,
-    max: max,
-    step: step,
-    value: value
-  }));
-}
-
-function Marks({
-  disabled = false,
-  marks = false,
-  min = 0,
-  max = 100,
-  step = 1,
-  value = 0
-}) {
-  const marksData = useMarks({
-    marks,
-    min,
-    max,
-    step,
-    value
-  });
-  return Object(external_wp_element_["createElement"])(MarksWrapper, {
-    "aria-hidden": "true",
-    className: "components-range-control__marks"
-  }, marksData.map(mark => Object(external_wp_element_["createElement"])(RangeMark, Object(esm_extends["a" /* default */])({}, mark, {
-    key: mark.key,
-    "aria-hidden": "true",
-    disabled: disabled
-  }))));
-}
-
-function useMarks({
-  marks,
-  min = 0,
-  max = 100,
-  step = 1,
-  value = 0
-}) {
-  if (!marks) {
-    return [];
-  }
-
-  const range = max - min;
-
-  if (!Array.isArray(marks)) {
-    marks = [];
-    const count = 1 + Math.round(range / step);
-
-    while (count > marks.push({
-      value: step * marks.length + min
-    }));
-  }
-
-  const placedMarks = [];
-  marks.forEach((mark, index) => {
-    if (mark.value < min || mark.value > max) {
-      return;
-    }
-
-    const key = `mark-${index}`;
-    const isFilled = mark.value <= value;
-    const offset = `${(mark.value - min) / range * 100}%`;
-    const offsetStyle = {
-      [Object(external_wp_i18n_["isRTL"])() ? 'right' : 'left']: offset
-    };
-    placedMarks.push({ ...mark,
-      isFilled,
-      key,
-      style: offsetStyle
-    });
-  });
-  return placedMarks;
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/range-control/tooltip.js
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-const TOOLTIP_OFFSET_HEIGHT = 32;
-function SimpleTooltip({
-  className,
-  inputRef,
-  position: positionProp = 'auto',
-  show = false,
-  style = {},
-  value = 0,
-  renderTooltipContent = v => v,
-  zIndex = 100,
-  ...restProps
-}) {
-  const position = useTooltipPosition({
-    inputRef,
-    position: positionProp
-  });
-  const classes = classnames_default()('components-simple-tooltip', className);
-  const styles = { ...style,
-    zIndex
-  };
-  return Object(external_wp_element_["createElement"])(range_control_styles_Tooltip, Object(esm_extends["a" /* default */])({}, restProps, {
-    "aria-hidden": show,
-    className: classes,
-    position: position,
-    show: show,
-    role: "tooltip",
-    style: styles
-  }), renderTooltipContent(value));
-}
-
-function useTooltipPosition({
-  inputRef,
-  position: positionProp
-}) {
-  const [position, setPosition] = Object(external_wp_element_["useState"])('top');
-  const calculatePosition = Object(external_wp_element_["useCallback"])(() => {
-    if (inputRef && inputRef.current) {
-      let nextPosition = positionProp;
-
-      if (positionProp === 'auto') {
-        const {
-          top
-        } = inputRef.current.getBoundingClientRect();
-        const isOffscreenTop = top - TOOLTIP_OFFSET_HEIGHT < 0;
-        nextPosition = isOffscreenTop ? 'bottom' : 'top';
-      }
-
-      setPosition(nextPosition);
-    }
-  }, [positionProp]);
-  Object(external_wp_element_["useEffect"])(() => {
-    calculatePosition();
-  }, [calculatePosition]);
-  Object(external_wp_element_["useEffect"])(() => {
-    window.addEventListener('resize', calculatePosition);
-    return () => {
-      window.removeEventListener('resize', calculatePosition);
-    };
-  });
-  return position;
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/range-control/index.js
-
-
-
-/**
- * External dependencies
- */
-
-
-/**
- * WordPress dependencies
- */
-
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-
-
-
-
-
-
-function RangeControl({
-  afterIcon,
-  allowReset = false,
-  beforeIcon,
-  className,
-  currentInput,
-  color: colorProp = COLORS.ui.theme,
-  disabled = false,
-  help,
-  initialPosition,
-  isShiftStepEnabled = true,
-  label,
-  marks = false,
-  max = 100,
-  min = 0,
-  onBlur = external_lodash_["noop"],
-  onChange = external_lodash_["noop"],
-  onFocus = external_lodash_["noop"],
-  onMouseMove = external_lodash_["noop"],
-  onMouseLeave = external_lodash_["noop"],
-  railColor,
-  resetFallbackValue,
-  renderTooltipContent = v => v,
-  showTooltip: showTooltipProp,
-  shiftStep = 10,
-  step = 1,
-  trackColor,
-  value: valueProp,
-  withInputField = true,
-  ...props
-}, ref) {
-  var _inputRef$current;
-
-  const [value, setValue] = useControlledRangeValue({
-    min,
-    max,
-    value: valueProp,
-    initial: initialPosition
-  });
-  const isResetPendent = Object(external_wp_element_["useRef"])(false);
-  const [showTooltip, setShowTooltip] = Object(external_wp_element_["useState"])(showTooltipProp);
-  const [isFocused, setIsFocused] = Object(external_wp_element_["useState"])(false);
-  const inputRef = Object(external_wp_element_["useRef"])();
-
-  const setRef = nodeRef => {
-    inputRef.current = nodeRef;
-
-    if (ref) {
-      ref(nodeRef);
-    }
-  };
-
-  const isCurrentlyFocused = (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.matches(':focus');
-  const isThumbFocused = !disabled && isFocused;
-  const isValueReset = value === null;
-  const currentValue = value !== undefined ? value : currentInput;
-  const inputSliderValue = isValueReset ? '' : currentValue;
-  const rangeFillValue = isValueReset ? (max - min) / 2 + min : value;
-  const calculatedFillValue = (value - min) / (max - min) * 100;
-  const fillValue = isValueReset ? 50 : calculatedFillValue;
-  const fillValueOffset = `${Object(external_lodash_["clamp"])(fillValue, 0, 100)}%`;
-  const classes = classnames_default()('components-range-control', className);
-  const wrapperClasses = classnames_default()('components-range-control__wrapper', !!marks && 'is-marked');
-  const id = Object(external_wp_compose_["useInstanceId"])(RangeControl, 'inspector-range-control');
-  const describedBy = !!help ? `${id}__help` : undefined;
-  const enableTooltip = showTooltipProp !== false && Object(external_lodash_["isFinite"])(value);
-
-  const handleOnRangeChange = event => {
-    const nextValue = parseFloat(event.target.value);
-    setValue(nextValue);
-    onChange(nextValue);
-  };
-
-  const handleOnChange = nextValue => {
-    nextValue = parseFloat(nextValue);
-    setValue(nextValue);
-    /*
-     * Calls onChange only when nextValue is numeric
-     * otherwise may queue a reset for the blur event.
-     */
-
-    if (!isNaN(nextValue)) {
-      if (nextValue < min || nextValue > max) {
-        nextValue = floatClamp(nextValue, min, max);
-      }
-
-      onChange(nextValue);
-      isResetPendent.current = false;
-    } else if (allowReset) {
-      isResetPendent.current = true;
-    }
-  };
-
-  const handleOnInputNumberBlur = () => {
-    if (isResetPendent.current) {
-      handleOnReset();
-      isResetPendent.current = false;
-    }
-  };
-
-  const handleOnReset = () => {
-    let resetValue = parseFloat(resetFallbackValue);
-    let onChangeResetValue = resetValue;
-
-    if (isNaN(resetValue)) {
-      resetValue = null;
-      onChangeResetValue = undefined;
-    }
-
-    setValue(resetValue);
-    /**
-     * Previously, this callback would always receive undefined as
-     * an argument. This behavior is unexpected, specifically
-     * when resetFallbackValue is defined.
-     *
-     * The value of undefined is not ideal. Passing it through
-     * to internal <input /> elements would change it from a
-     * controlled component to an uncontrolled component.
-     *
-     * For now, to minimize unexpected regressions, we're going to
-     * preserve the undefined callback argument, except when a
-     * resetFallbackValue is defined.
-     */
-
-    onChange(onChangeResetValue);
-  };
-
-  const handleShowTooltip = () => setShowTooltip(true);
-
-  const handleHideTooltip = () => setShowTooltip(false);
-
-  const handleOnBlur = event => {
-    onBlur(event);
-    setIsFocused(false);
-    handleHideTooltip();
-  };
-
-  const handleOnFocus = event => {
-    onFocus(event);
-    setIsFocused(true);
-    handleShowTooltip();
-  };
-
-  const offsetStyle = {
-    [Object(external_wp_i18n_["isRTL"])() ? 'right' : 'left']: fillValueOffset
-  };
-  return Object(external_wp_element_["createElement"])(base_control, {
-    className: classes,
-    label: label,
-    id: id,
-    help: help
-  }, Object(external_wp_element_["createElement"])(range_control_styles_Root, {
-    className: "components-range-control__root"
-  }, beforeIcon && Object(external_wp_element_["createElement"])(BeforeIconWrapper, null, Object(external_wp_element_["createElement"])(components_build_module_icon["a" /* default */], {
-    icon: beforeIcon
-  })), Object(external_wp_element_["createElement"])(range_control_styles_Wrapper, {
-    className: wrapperClasses,
-    color: colorProp,
-    marks: !!marks
-  }, Object(external_wp_element_["createElement"])(input_range, Object(esm_extends["a" /* default */])({}, props, {
-    className: "components-range-control__slider",
-    describedBy: describedBy,
-    disabled: disabled,
-    id: id,
-    isShiftStepEnabled: isShiftStepEnabled,
-    label: label,
-    max: max,
-    min: min,
-    onBlur: handleOnBlur,
-    onChange: handleOnRangeChange,
-    onFocus: handleOnFocus,
-    onMouseMove: onMouseMove,
-    onMouseLeave: onMouseLeave,
-    ref: setRef,
-    shiftStep: shiftStep,
-    step: step,
-    value: inputSliderValue
-  })), Object(external_wp_element_["createElement"])(RangeRail, {
-    "aria-hidden": true,
-    disabled: disabled,
-    marks: marks,
-    max: max,
-    min: min,
-    railColor: railColor,
-    step: step,
-    value: rangeFillValue
-  }), Object(external_wp_element_["createElement"])(Track, {
-    "aria-hidden": true,
-    className: "components-range-control__track",
-    disabled: disabled,
-    style: {
-      width: fillValueOffset
-    },
-    trackColor: trackColor
-  }), Object(external_wp_element_["createElement"])(ThumbWrapper, {
-    style: offsetStyle
-  }, Object(external_wp_element_["createElement"])(Thumb, {
-    "aria-hidden": true,
-    isFocused: isThumbFocused
-  })), enableTooltip && Object(external_wp_element_["createElement"])(SimpleTooltip, {
-    className: "components-range-control__tooltip",
-    inputRef: inputRef,
-    renderTooltipContent: renderTooltipContent,
-    show: isCurrentlyFocused || showTooltip,
-    style: offsetStyle,
-    value: value
-  })), afterIcon && Object(external_wp_element_["createElement"])(AfterIconWrapper, null, Object(external_wp_element_["createElement"])(components_build_module_icon["a" /* default */], {
-    icon: afterIcon
-  })), withInputField && Object(external_wp_element_["createElement"])(InputNumber, {
-    "aria-label": label,
-    className: "components-range-control__number",
-    disabled: disabled,
-    inputMode: "decimal",
-    isShiftStepEnabled: isShiftStepEnabled,
-    max: max,
-    min: min,
-    onBlur: handleOnInputNumberBlur,
-    onChange: handleOnChange,
-    shiftStep: shiftStep,
-    step: step,
-    value: inputSliderValue
-  }), allowReset && Object(external_wp_element_["createElement"])(ActionRightWrapper, null, Object(external_wp_element_["createElement"])(build_module_button["a" /* default */], {
-    className: "components-range-control__reset",
-    disabled: disabled || value === undefined,
-    isSecondary: true,
-    isSmall: true,
-    onClick: handleOnReset
-  }, Object(external_wp_i18n_["__"])('Reset')))));
-}
-
-const range_control_ForwardedComponent = Object(external_wp_element_["forwardRef"])(RangeControl);
-/* harmony default export */ var range_control = (range_control_ForwardedComponent);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/font-size-picker/index.js
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-
-const DEFAULT_FONT_SIZE = 'default';
-const CUSTOM_FONT_SIZE = 'custom';
-const MAX_FONT_SIZE_DISPLAY = '25px';
-
-function getSelectValueFromFontSize(fontSizes, value) {
-  if (value) {
-    const fontSizeValue = fontSizes.find(font => font.size === value);
-    return fontSizeValue ? fontSizeValue.slug : CUSTOM_FONT_SIZE;
-  }
-
-  return DEFAULT_FONT_SIZE;
-}
-
-function getSelectOptions(optionsArray, disableCustomFontSizes) {
-  if (disableCustomFontSizes && !optionsArray.length) {
-    return null;
-  }
-
-  optionsArray = [{
-    slug: DEFAULT_FONT_SIZE,
-    name: Object(external_wp_i18n_["__"])('Default')
-  }, ...optionsArray, ...(disableCustomFontSizes ? [] : [{
-    slug: CUSTOM_FONT_SIZE,
-    name: Object(external_wp_i18n_["__"])('Custom')
-  }])];
-  return optionsArray.map(option => ({
-    key: option.slug,
-    name: option.name,
-    size: option.size,
-    style: {
-      fontSize: `min( ${option.size}, ${MAX_FONT_SIZE_DISPLAY} )`
-    }
-  }));
-}
-
-function FontSizePicker({
-  fallbackFontSize,
-  fontSizes = [],
-  disableCustomFontSizes = false,
-  onChange,
-  value,
-  withSlider = false
-}, ref) {
-  const hasUnits = Object(external_lodash_["isString"])(value) || fontSizes[0] && Object(external_lodash_["isString"])(fontSizes[0].size);
-  let noUnitsValue;
-
-  if (!hasUnits) {
-    noUnitsValue = value;
-  } else {
-    noUnitsValue = parseInt(value);
-  }
-
-  const isPixelValue = Object(external_lodash_["isNumber"])(value) || Object(external_lodash_["isString"])(value) && value.endsWith('px');
-  const units = useCustomUnits({
-    availableUnits: ['px', 'em', 'rem']
-  });
-  const options = Object(external_wp_element_["useMemo"])(() => getSelectOptions(fontSizes, disableCustomFontSizes), [fontSizes, disableCustomFontSizes]);
-
-  if (!options) {
-    return null;
-  }
-
-  const selectedFontSizeSlug = getSelectValueFromFontSize(fontSizes, value);
-  return Object(external_wp_element_["createElement"])("fieldset", Object(esm_extends["a" /* default */])({
-    className: "components-font-size-picker"
-  }, ref ? {} : {
-    ref
-  }), Object(external_wp_element_["createElement"])(visually_hidden["a" /* default */], {
-    as: "legend"
-  }, Object(external_wp_i18n_["__"])('Font size')), Object(external_wp_element_["createElement"])("div", {
-    className: "components-font-size-picker__controls"
-  }, fontSizes.length > 0 && Object(external_wp_element_["createElement"])(CustomSelectControl, {
-    className: 'components-font-size-picker__select',
-    label: Object(external_wp_i18n_["__"])('Font size'),
-    options: options,
-    value: options.find(option => option.key === selectedFontSizeSlug),
-    onChange: ({
-      selectedItem
-    }) => {
-      if (hasUnits) {
-        onChange(selectedItem.size);
-      } else {
-        onChange(Number(selectedItem.size));
-      }
-    }
-  }), !withSlider && !disableCustomFontSizes && Object(external_wp_element_["createElement"])(unit_control, {
-    label: Object(external_wp_i18n_["__"])('Custom'),
-    labelPosition: "top",
-    __unstableInputWidth: "60px",
-    value: value,
-    onChange: nextSize => {
-      if (0 === parseFloat(nextSize) || !nextSize) {
-        onChange(undefined);
-      } else {
-        onChange(hasUnits ? nextSize : parseInt(nextSize, 10));
-      }
-    },
-    units: hasUnits ? units : false
-  }), Object(external_wp_element_["createElement"])(build_module_button["a" /* default */], {
-    className: "components-color-palette__clear",
-    disabled: value === undefined,
-    onClick: () => {
-      onChange(undefined);
-    },
-    isSmall: true,
-    isSecondary: true
-  }, Object(external_wp_i18n_["__"])('Reset'))), withSlider && Object(external_wp_element_["createElement"])(range_control, {
-    className: "components-font-size-picker__custom-input",
-    label: Object(external_wp_i18n_["__"])('Custom Size'),
-    value: isPixelValue && noUnitsValue || '',
-    initialPosition: fallbackFontSize,
-    onChange: newValue => {
-      onChange(hasUnits ? newValue + 'px' : newValue);
-    },
-    min: 12,
-    max: 100,
-    beforeIcon: text_color["a" /* default */],
-    afterIcon: text_color["a" /* default */]
-  }));
-}
-
-/* harmony default export */ var font_size_picker = (Object(external_wp_element_["forwardRef"])(FontSizePicker));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/form-file-upload/index.js
-
-
-
-/**
- * WordPress dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-
-function FormFileUpload({
-  accept,
-  children,
-  multiple = false,
-  onChange,
-  render,
-  ...props
-}) {
-  const ref = Object(external_wp_element_["useRef"])();
-
-  const openFileDialog = () => {
-    ref.current.click();
-  };
-
-  const ui = render ? render({
-    openFileDialog
-  }) : Object(external_wp_element_["createElement"])(build_module_button["a" /* default */], Object(esm_extends["a" /* default */])({
-    onClick: openFileDialog
-  }, props), children);
-  return Object(external_wp_element_["createElement"])("div", {
-    className: "components-form-file-upload"
-  }, ui, Object(external_wp_element_["createElement"])("input", {
-    type: "file",
-    ref: ref,
-    multiple: multiple,
-    style: {
-      display: 'none'
-    },
-    accept: accept,
-    onChange: onChange
-  }));
-}
-
-/* harmony default export */ var form_file_upload = (FormFileUpload);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/form-toggle/index.js
-
-
-
-/**
- * External dependencies
- */
-
-
-
-function FormToggle({
-  className,
-  checked,
-  id,
-  disabled,
-  onChange = external_lodash_["noop"],
-  ...props
-}) {
-  const wrapperClasses = classnames_default()('components-form-toggle', className, {
-    'is-checked': checked,
-    'is-disabled': disabled
-  });
-  return Object(external_wp_element_["createElement"])("span", {
-    className: wrapperClasses
-  }, Object(external_wp_element_["createElement"])("input", Object(esm_extends["a" /* default */])({
-    className: "components-form-toggle__input",
-    id: id,
-    type: "checkbox",
-    checked: checked,
-    onChange: onChange,
-    disabled: disabled
-  }, props)), Object(external_wp_element_["createElement"])("span", {
-    className: "components-form-toggle__track"
-  }), Object(external_wp_element_["createElement"])("span", {
-    className: "components-form-toggle__thumb"
-  }));
-}
-
-/* harmony default export */ var form_toggle = (FormToggle);
-
-// EXTERNAL MODULE: external ["wp","isShallowEqual"]
-var external_wp_isShallowEqual_ = __webpack_require__("rl8x");
-var external_wp_isShallowEqual_default = /*#__PURE__*/__webpack_require__.n(external_wp_isShallowEqual_);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/form-token-field/token.js
-
-
-/**
- * External dependencies
- */
-
-
-/**
- * WordPress dependencies
- */
-
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-function Token({
-  value,
-  status,
-  title,
-  displayTransform,
-  isBorderless = false,
-  disabled = false,
-  onClickRemove = external_lodash_["noop"],
-  onMouseEnter,
-  onMouseLeave,
-  messages,
-  termPosition,
-  termsCount
-}) {
-  const instanceId = Object(external_wp_compose_["useInstanceId"])(Token);
-  const tokenClasses = classnames_default()('components-form-token-field__token', {
-    'is-error': 'error' === status,
-    'is-success': 'success' === status,
-    'is-validating': 'validating' === status,
-    'is-borderless': isBorderless,
-    'is-disabled': disabled
-  });
-
-  const onClick = () => onClickRemove({
-    value
-  });
-
-  const transformedValue = displayTransform(value);
-  const termPositionAndCount = Object(external_wp_i18n_["sprintf"])(
-  /* translators: 1: term name, 2: term position in a set of terms, 3: total term set count. */
-  Object(external_wp_i18n_["__"])('%1$s (%2$s of %3$s)'), transformedValue, termPosition, termsCount);
-  return Object(external_wp_element_["createElement"])("span", {
-    className: tokenClasses,
-    onMouseEnter: onMouseEnter,
-    onMouseLeave: onMouseLeave,
-    title: title
-  }, Object(external_wp_element_["createElement"])("span", {
-    className: "components-form-token-field__token-text",
-    id: `components-form-token-field__token-text-${instanceId}`
-  }, Object(external_wp_element_["createElement"])(visually_hidden["a" /* default */], {
-    as: "span"
-  }, termPositionAndCount), Object(external_wp_element_["createElement"])("span", {
-    "aria-hidden": "true"
-  }, transformedValue)), Object(external_wp_element_["createElement"])(build_module_button["a" /* default */], {
-    className: "components-form-token-field__remove-token",
-    icon: close_small["a" /* default */],
-    onClick: !disabled && onClick,
-    label: messages.remove,
-    "aria-describedby": `components-form-token-field__token-text-${instanceId}`
-  }));
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/higher-order/with-spoken-messages/index.js
-
-
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * A Higher Order Component used to be provide speak and debounced speak
- * functions.
- *
- * @see https://developer.wordpress.org/block-editor/packages/packages-a11y/#speak
- *
- * @param {WPComponent} Component The component to be wrapped.
- *
- * @return {WPComponent} The wrapped component.
- */
-
-/* harmony default export */ var with_spoken_messages = (Object(external_wp_compose_["createHigherOrderComponent"])(Component => props => Object(external_wp_element_["createElement"])(Component, Object(esm_extends["a" /* default */])({}, props, {
-  speak: external_wp_a11y_["speak"],
-  debouncedSpeak: Object(external_wp_compose_["useDebounce"])(external_wp_a11y_["speak"], 500)
-})), 'withSpokenMessages'));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/form-token-field/index.js
-
-
-/**
- * External dependencies
- */
-
-
-/**
- * WordPress dependencies
- */
-
-
-
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-const form_token_field_initialState = {
-  incompleteTokenValue: '',
-  inputOffsetFromEnd: 0,
-  isActive: false,
-  isExpanded: false,
-  selectedSuggestionIndex: -1,
-  selectedSuggestionScroll: false
-};
-
-class form_token_field_FormTokenField extends external_wp_element_["Component"] {
-  constructor() {
-    super(...arguments);
-    this.state = form_token_field_initialState;
-    this.onKeyDown = this.onKeyDown.bind(this);
-    this.onKeyPress = this.onKeyPress.bind(this);
-    this.onFocus = this.onFocus.bind(this);
-    this.onBlur = this.onBlur.bind(this);
-    this.deleteTokenBeforeInput = this.deleteTokenBeforeInput.bind(this);
-    this.deleteTokenAfterInput = this.deleteTokenAfterInput.bind(this);
-    this.addCurrentToken = this.addCurrentToken.bind(this);
-    this.onContainerTouched = this.onContainerTouched.bind(this);
-    this.renderToken = this.renderToken.bind(this);
-    this.onTokenClickRemove = this.onTokenClickRemove.bind(this);
-    this.onSuggestionHovered = this.onSuggestionHovered.bind(this);
-    this.onSuggestionSelected = this.onSuggestionSelected.bind(this);
-    this.onInputChange = this.onInputChange.bind(this);
-    this.bindInput = this.bindInput.bind(this);
-    this.bindTokensAndInput = this.bindTokensAndInput.bind(this);
-    this.updateSuggestions = this.updateSuggestions.bind(this);
-  }
-
-  componentDidUpdate(prevProps) {
-    // Make sure to focus the input when the isActive state is true.
-    if (this.state.isActive && !this.input.hasFocus()) {
-      this.input.focus();
-    }
-
-    const {
-      suggestions,
-      value
-    } = this.props;
-    const suggestionsDidUpdate = !external_wp_isShallowEqual_default()(suggestions, prevProps.suggestions);
-
-    if (suggestionsDidUpdate || value !== prevProps.value) {
-      this.updateSuggestions(suggestionsDidUpdate);
-    }
-  }
-
-  static getDerivedStateFromProps(props, state) {
-    if (!props.disabled || !state.isActive) {
-      return null;
-    }
-
-    return {
-      isActive: false,
-      incompleteTokenValue: ''
-    };
-  }
-
-  bindInput(ref) {
-    this.input = ref;
-  }
-
-  bindTokensAndInput(ref) {
-    this.tokensAndInput = ref;
-  }
-
-  onFocus(event) {
-    const {
-      __experimentalExpandOnFocus
-    } = this.props; // If focus is on the input or on the container, set the isActive state to true.
-
-    if (this.input.hasFocus() || event.target === this.tokensAndInput) {
-      this.setState({
-        isActive: true,
-        isExpanded: !!__experimentalExpandOnFocus || this.state.isExpanded
-      });
-    } else {
-      /*
-       * Otherwise, focus is on one of the token "remove" buttons and we
-       * set the isActive state to false to prevent the input to be
-       * re-focused, see componentDidUpdate().
-       */
-      this.setState({
-        isActive: false
-      });
-    }
-
-    if ('function' === typeof this.props.onFocus) {
-      this.props.onFocus(event);
-    }
-  }
-
-  onBlur() {
-    if (this.inputHasValidValue()) {
-      this.setState({
-        isActive: false
-      });
-    } else {
-      this.setState(form_token_field_initialState);
-    }
-  }
-
-  onKeyDown(event) {
-    let preventDefault = false;
-
-    switch (event.keyCode) {
-      case external_wp_keycodes_["BACKSPACE"]:
-        preventDefault = this.handleDeleteKey(this.deleteTokenBeforeInput);
-        break;
-
-      case external_wp_keycodes_["ENTER"]:
-        preventDefault = this.addCurrentToken();
-        break;
-
-      case external_wp_keycodes_["LEFT"]:
-        preventDefault = this.handleLeftArrowKey();
-        break;
-
-      case external_wp_keycodes_["UP"]:
-        preventDefault = this.handleUpArrowKey();
-        break;
-
-      case external_wp_keycodes_["RIGHT"]:
-        preventDefault = this.handleRightArrowKey();
-        break;
-
-      case external_wp_keycodes_["DOWN"]:
-        preventDefault = this.handleDownArrowKey();
-        break;
-
-      case external_wp_keycodes_["DELETE"]:
-        preventDefault = this.handleDeleteKey(this.deleteTokenAfterInput);
-        break;
-
-      case external_wp_keycodes_["SPACE"]:
-        if (this.props.tokenizeOnSpace) {
-          preventDefault = this.addCurrentToken();
-        }
-
-        break;
-
-      case external_wp_keycodes_["ESCAPE"]:
-        preventDefault = this.handleEscapeKey(event);
-        event.stopPropagation();
-        break;
-
-      default:
-        break;
-    }
-
-    if (preventDefault) {
-      event.preventDefault();
-    }
-  }
-
-  onKeyPress(event) {
-    let preventDefault = false;
-
-    switch (event.charCode) {
-      case 44:
-        // comma
-        preventDefault = this.handleCommaKey();
-        break;
-
-      default:
-        break;
-    }
-
-    if (preventDefault) {
-      event.preventDefault();
-    }
-  }
-
-  onContainerTouched(event) {
-    // Prevent clicking/touching the tokensAndInput container from blurring
-    // the input and adding the current token.
-    if (event.target === this.tokensAndInput && this.state.isActive) {
-      event.preventDefault();
-    }
-  }
-
-  onTokenClickRemove(event) {
-    this.deleteToken(event.value);
-    this.input.focus();
-  }
-
-  onSuggestionHovered(suggestion) {
-    const index = this.getMatchingSuggestions().indexOf(suggestion);
-
-    if (index >= 0) {
-      this.setState({
-        selectedSuggestionIndex: index,
-        selectedSuggestionScroll: false
-      });
-    }
-  }
-
-  onSuggestionSelected(suggestion) {
-    this.addNewToken(suggestion);
-  }
-
-  onInputChange(event) {
-    const text = event.value;
-    const separator = this.props.tokenizeOnSpace ? /[ ,\t]+/ : /[,\t]+/;
-    const items = text.split(separator);
-    const tokenValue = Object(external_lodash_["last"])(items) || '';
-
-    if (items.length > 1) {
-      this.addNewTokens(items.slice(0, -1));
-    }
-
-    this.setState({
-      incompleteTokenValue: tokenValue
-    }, this.updateSuggestions);
-    this.props.onInputChange(tokenValue);
-  }
-
-  handleDeleteKey(deleteToken) {
-    let preventDefault = false;
-
-    if (this.input.hasFocus() && this.isInputEmpty()) {
-      deleteToken();
-      preventDefault = true;
-    }
-
-    return preventDefault;
-  }
-
-  handleLeftArrowKey() {
-    let preventDefault = false;
-
-    if (this.isInputEmpty()) {
-      this.moveInputBeforePreviousToken();
-      preventDefault = true;
-    }
-
-    return preventDefault;
-  }
-
-  handleRightArrowKey() {
-    let preventDefault = false;
-
-    if (this.isInputEmpty()) {
-      this.moveInputAfterNextToken();
-      preventDefault = true;
-    }
-
-    return preventDefault;
-  }
-
-  handleUpArrowKey() {
-    this.setState((state, props) => ({
-      selectedSuggestionIndex: (state.selectedSuggestionIndex === 0 ? this.getMatchingSuggestions(state.incompleteTokenValue, props.suggestions, props.value, props.maxSuggestions, props.saveTransform).length : state.selectedSuggestionIndex) - 1,
-      selectedSuggestionScroll: true
-    }));
-    return true; // preventDefault
-  }
-
-  handleDownArrowKey() {
-    this.setState((state, props) => ({
-      selectedSuggestionIndex: (state.selectedSuggestionIndex + 1) % this.getMatchingSuggestions(state.incompleteTokenValue, props.suggestions, props.value, props.maxSuggestions, props.saveTransform).length,
-      selectedSuggestionScroll: true
-    }));
-    return true; // preventDefault
-  }
-
-  handleEscapeKey(event) {
-    this.setState({
-      incompleteTokenValue: event.target.value,
-      isExpanded: false,
-      selectedSuggestionIndex: -1,
-      selectedSuggestionScroll: false
-    });
-    return true; // preventDefault
-  }
-
-  handleCommaKey() {
-    if (this.inputHasValidValue()) {
-      this.addNewToken(this.state.incompleteTokenValue);
-    }
-
-    return true; // preventDefault
-  }
-
-  moveInputToIndex(index) {
-    this.setState((state, props) => ({
-      inputOffsetFromEnd: props.value.length - Math.max(index, -1) - 1
-    }));
-  }
-
-  moveInputBeforePreviousToken() {
-    this.setState((state, props) => ({
-      inputOffsetFromEnd: Math.min(state.inputOffsetFromEnd + 1, props.value.length)
-    }));
-  }
-
-  moveInputAfterNextToken() {
-    this.setState(state => ({
-      inputOffsetFromEnd: Math.max(state.inputOffsetFromEnd - 1, 0)
-    }));
-  }
-
-  deleteTokenBeforeInput() {
-    const index = this.getIndexOfInput() - 1;
-
-    if (index > -1) {
-      this.deleteToken(this.props.value[index]);
-    }
-  }
-
-  deleteTokenAfterInput() {
-    const index = this.getIndexOfInput();
-
-    if (index < this.props.value.length) {
-      this.deleteToken(this.props.value[index]); // update input offset since it's the offset from the last token
-
-      this.moveInputToIndex(index);
-    }
-  }
-
-  addCurrentToken() {
-    let preventDefault = false;
-    const selectedSuggestion = this.getSelectedSuggestion();
-
-    if (selectedSuggestion) {
-      this.addNewToken(selectedSuggestion);
-      preventDefault = true;
-    } else if (this.inputHasValidValue()) {
-      this.addNewToken(this.state.incompleteTokenValue);
-      preventDefault = true;
-    }
-
-    return preventDefault;
-  }
-
-  addNewTokens(tokens) {
-    const tokensToAdd = Object(external_lodash_["uniq"])(tokens.map(this.props.saveTransform).filter(Boolean).filter(token => !this.valueContainsToken(token)));
-
-    if (tokensToAdd.length > 0) {
-      const newValue = Object(external_lodash_["clone"])(this.props.value);
-      newValue.splice.apply(newValue, [this.getIndexOfInput(), 0].concat(tokensToAdd));
-      this.props.onChange(newValue);
-    }
-  }
-
-  addNewToken(token) {
-    const {
-      __experimentalExpandOnFocus,
-      __experimentalValidateInput
-    } = this.props;
-
-    if (!__experimentalValidateInput(token)) {
-      this.props.speak(this.props.messages.__experimentalInvalid, 'assertive');
-      return;
-    }
-
-    this.addNewTokens([token]);
-    this.props.speak(this.props.messages.added, 'assertive');
-    this.setState({
-      incompleteTokenValue: '',
-      selectedSuggestionIndex: -1,
-      selectedSuggestionScroll: false,
-      isExpanded: !__experimentalExpandOnFocus
-    });
-
-    if (this.state.isActive) {
-      this.input.focus();
-    }
-  }
-
-  deleteToken(token) {
-    const newTokens = this.props.value.filter(item => {
-      return this.getTokenValue(item) !== this.getTokenValue(token);
-    });
-    this.props.onChange(newTokens);
-    this.props.speak(this.props.messages.removed, 'assertive');
-  }
-
-  getTokenValue(token) {
-    if ('object' === typeof token) {
-      return token.value;
-    }
-
-    return token;
-  }
-
-  getMatchingSuggestions(searchValue = this.state.incompleteTokenValue, suggestions = this.props.suggestions, value = this.props.value, maxSuggestions = this.props.maxSuggestions, saveTransform = this.props.saveTransform) {
-    let match = saveTransform(searchValue);
-    const startsWithMatch = [];
-    const containsMatch = [];
-
-    if (match.length === 0) {
-      suggestions = Object(external_lodash_["difference"])(suggestions, value);
-    } else {
-      match = match.toLocaleLowerCase();
-      Object(external_lodash_["each"])(suggestions, suggestion => {
-        const index = suggestion.toLocaleLowerCase().indexOf(match);
-
-        if (value.indexOf(suggestion) === -1) {
-          if (index === 0) {
-            startsWithMatch.push(suggestion);
-          } else if (index > 0) {
-            containsMatch.push(suggestion);
-          }
-        }
-      });
-      suggestions = startsWithMatch.concat(containsMatch);
-    }
-
-    return Object(external_lodash_["take"])(suggestions, maxSuggestions);
-  }
-
-  getSelectedSuggestion() {
-    if (this.state.selectedSuggestionIndex !== -1) {
-      return this.getMatchingSuggestions()[this.state.selectedSuggestionIndex];
-    }
-  }
-
-  valueContainsToken(token) {
-    return Object(external_lodash_["some"])(this.props.value, item => {
-      return this.getTokenValue(token) === this.getTokenValue(item);
-    });
-  }
-
-  getIndexOfInput() {
-    return this.props.value.length - this.state.inputOffsetFromEnd;
-  }
-
-  isInputEmpty() {
-    return this.state.incompleteTokenValue.length === 0;
-  }
-
-  inputHasValidValue() {
-    return this.props.saveTransform(this.state.incompleteTokenValue).length > 0;
-  }
-
-  updateSuggestions(resetSelectedSuggestion = true) {
-    const {
-      __experimentalExpandOnFocus
-    } = this.props;
-    const {
-      incompleteTokenValue
-    } = this.state;
-    const inputHasMinimumChars = incompleteTokenValue.trim().length > 1;
-    const matchingSuggestions = this.getMatchingSuggestions(incompleteTokenValue);
-    const hasMatchingSuggestions = matchingSuggestions.length > 0;
-    const newState = {
-      isExpanded: __experimentalExpandOnFocus || inputHasMinimumChars && hasMatchingSuggestions
-    };
-
-    if (resetSelectedSuggestion) {
-      newState.selectedSuggestionIndex = -1;
-      newState.selectedSuggestionScroll = false;
-    }
-
-    this.setState(newState);
-
-    if (inputHasMinimumChars) {
-      const {
-        debouncedSpeak
-      } = this.props;
-      const message = hasMatchingSuggestions ? Object(external_wp_i18n_["sprintf"])(
-      /* translators: %d: number of results. */
-      Object(external_wp_i18n_["_n"])('%d result found, use up and down arrow keys to navigate.', '%d results found, use up and down arrow keys to navigate.', matchingSuggestions.length), matchingSuggestions.length) : Object(external_wp_i18n_["__"])('No results.');
-      debouncedSpeak(message, 'assertive');
-    }
-  }
-
-  renderTokensAndInput() {
-    const components = Object(external_lodash_["map"])(this.props.value, this.renderToken);
-    components.splice(this.getIndexOfInput(), 0, this.renderInput());
-    return components;
-  }
-
-  renderToken(token, index, tokens) {
-    const value = this.getTokenValue(token);
-    const status = token.status ? token.status : undefined;
-    const termPosition = index + 1;
-    const termsCount = tokens.length;
-    return Object(external_wp_element_["createElement"])(Token, {
-      key: 'token-' + value,
-      value: value,
-      status: status,
-      title: token.title,
-      displayTransform: this.props.displayTransform,
-      onClickRemove: this.onTokenClickRemove,
-      isBorderless: token.isBorderless || this.props.isBorderless,
-      onMouseEnter: token.onMouseEnter,
-      onMouseLeave: token.onMouseLeave,
-      disabled: 'error' !== status && this.props.disabled,
-      messages: this.props.messages,
-      termsCount: termsCount,
-      termPosition: termPosition
-    });
-  }
-
-  renderInput() {
-    const {
-      autoCapitalize,
-      autoComplete,
-      maxLength,
-      placeholder,
-      value,
-      instanceId
-    } = this.props;
-    let props = {
-      instanceId,
-      autoCapitalize,
-      autoComplete,
-      placeholder: value.length === 0 ? placeholder : '',
-      ref: this.bindInput,
-      key: 'input',
-      disabled: this.props.disabled,
-      value: this.state.incompleteTokenValue,
-      onBlur: this.onBlur,
-      isExpanded: this.state.isExpanded,
-      selectedSuggestionIndex: this.state.selectedSuggestionIndex
-    };
-
-    if (!(maxLength && value.length >= maxLength)) {
-      props = { ...props,
-        onChange: this.onInputChange
-      };
-    }
-
-    return Object(external_wp_element_["createElement"])(token_input, props);
-  }
-
-  render() {
-    const {
-      disabled,
-      label = Object(external_wp_i18n_["__"])('Add item'),
-      instanceId,
-      className,
-      __experimentalShowHowTo
-    } = this.props;
-    const {
-      isExpanded
-    } = this.state;
-    const classes = classnames_default()(className, 'components-form-token-field__input-container', {
-      'is-active': this.state.isActive,
-      'is-disabled': disabled
-    });
-    let tokenFieldProps = {
-      className: 'components-form-token-field',
-      tabIndex: '-1'
-    };
-    const matchingSuggestions = this.getMatchingSuggestions();
-
-    if (!disabled) {
-      tokenFieldProps = Object.assign({}, tokenFieldProps, {
-        onKeyDown: this.onKeyDown,
-        onKeyPress: this.onKeyPress,
-        onFocus: this.onFocus
-      });
-    } // Disable reason: There is no appropriate role which describes the
-    // input container intended accessible usability.
-    // TODO: Refactor click detection to use blur to stop propagation.
-
-    /* eslint-disable jsx-a11y/no-static-element-interactions */
-
-
-    return Object(external_wp_element_["createElement"])("div", tokenFieldProps, Object(external_wp_element_["createElement"])("label", {
-      htmlFor: `components-form-token-input-${instanceId}`,
-      className: "components-form-token-field__label"
-    }, label), Object(external_wp_element_["createElement"])("div", {
-      ref: this.bindTokensAndInput,
-      className: classes,
-      tabIndex: "-1",
-      onMouseDown: this.onContainerTouched,
-      onTouchStart: this.onContainerTouched
-    }, this.renderTokensAndInput(), isExpanded && Object(external_wp_element_["createElement"])(suggestions_list, {
-      instanceId: instanceId,
-      match: this.props.saveTransform(this.state.incompleteTokenValue),
-      displayTransform: this.props.displayTransform,
-      suggestions: matchingSuggestions,
-      selectedIndex: this.state.selectedSuggestionIndex,
-      scrollIntoView: this.state.selectedSuggestionScroll,
-      onHover: this.onSuggestionHovered,
-      onSelect: this.onSuggestionSelected
-    })), __experimentalShowHowTo && Object(external_wp_element_["createElement"])("p", {
-      id: `components-form-token-suggestions-howto-${instanceId}`,
-      className: "components-form-token-field__help"
-    }, this.props.tokenizeOnSpace ? Object(external_wp_i18n_["__"])('Separate with commas, spaces, or the Enter key.') : Object(external_wp_i18n_["__"])('Separate with commas or the Enter key.')));
-    /* eslint-enable jsx-a11y/no-static-element-interactions */
-  }
-
-}
-
-form_token_field_FormTokenField.defaultProps = {
-  suggestions: Object.freeze([]),
-  maxSuggestions: 100,
-  value: Object.freeze([]),
-  displayTransform: external_lodash_["identity"],
-  saveTransform: token => token.trim(),
-  onChange: () => {},
-  onInputChange: () => {},
-  isBorderless: false,
-  disabled: false,
-  tokenizeOnSpace: false,
-  messages: {
-    added: Object(external_wp_i18n_["__"])('Item added.'),
-    removed: Object(external_wp_i18n_["__"])('Item removed.'),
-    remove: Object(external_wp_i18n_["__"])('Remove item'),
-    __experimentalInvalid: Object(external_wp_i18n_["__"])('Invalid item')
-  },
-  __experimentalExpandOnFocus: false,
-  __experimentalValidateInput: () => true,
-  __experimentalShowHowTo: true
-};
-/* harmony default export */ var form_token_field = (with_spoken_messages(Object(external_wp_compose_["withInstanceId"])(form_token_field_FormTokenField)));
-
-// EXTERNAL MODULE: ./node_modules/gradient-parser/build/node.js
-var build_node = __webpack_require__("Jx1U");
-var node_default = /*#__PURE__*/__webpack_require__.n(build_node);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/custom-gradient-picker/constants.js
-/**
- * WordPress dependencies
- */
-
-const DEFAULT_GRADIENT = 'linear-gradient(135deg, rgba(6, 147, 227, 1) 0%, rgb(155, 81, 224) 100%)';
-const DEFAULT_LINEAR_GRADIENT_ANGLE = 180;
-const HORIZONTAL_GRADIENT_ORIENTATION = {
-  type: 'angular',
-  value: 90
-};
-const GRADIENT_OPTIONS = [{
-  value: 'linear-gradient',
-  label: Object(external_wp_i18n_["__"])('Linear')
-}, {
-  value: 'radial-gradient',
-  label: Object(external_wp_i18n_["__"])('Radial')
-}];
-const DIRECTIONAL_ORIENTATION_ANGLE_MAP = {
-  top: 0,
-  'top right': 45,
-  'right top': 45,
-  right: 90,
-  'right bottom': 135,
-  'bottom right': 135,
-  bottom: 180,
-  'bottom left': 225,
-  'left bottom': 225,
-  left: 270,
-  'top left': 315,
-  'left top': 315
-};
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/custom-gradient-picker/serializer.js
-/**
- * External dependencies
- */
-
-function serializeGradientColor({
-  type,
-  value
-}) {
-  if (type === 'literal') {
-    return value;
-  }
-
-  if (type === 'hex') {
-    return `#${value}`;
-  }
-
-  return `${type}(${value.join(',')})`;
-}
-function serializeGradientPosition(position) {
-  if (!position) {
-    return '';
-  }
-
-  const {
-    value,
-    type
-  } = position;
-  return `${value}${type}`;
-}
-function serializeGradientColorStop({
-  type,
-  value,
-  length
-}) {
-  return `${serializeGradientColor({
-    type,
-    value
-  })} ${serializeGradientPosition(length)}`;
-}
-function serializeGradientOrientation(orientation) {
-  if (!orientation || orientation.type !== 'angular') {
-    return;
-  }
-
-  return `${orientation.value}deg`;
-}
-function serializeGradient({
-  type,
-  orientation,
-  colorStops
-}) {
-  const serializedOrientation = serializeGradientOrientation(orientation);
-  const serializedColorStops = colorStops.sort((colorStop1, colorStop2) => {
-    return Object(external_lodash_["get"])(colorStop1, ['length', 'value'], 0) - Object(external_lodash_["get"])(colorStop2, ['length', 'value'], 0);
-  }).map(serializeGradientColorStop);
-  return `${type}(${Object(external_lodash_["compact"])([serializedOrientation, ...serializedColorStops]).join(',')})`;
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/custom-gradient-picker/utils.js
-/**
- * External dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-function getLinearGradientRepresentationOfARadial(gradientAST) {
-  return serializeGradient({
-    type: 'linear-gradient',
-    orientation: HORIZONTAL_GRADIENT_ORIENTATION,
-    colorStops: gradientAST.colorStops
-  });
-}
-
-function hasUnsupportedLength(item) {
-  return item.length === undefined || item.length.type !== '%';
-}
-
-function getGradientAstWithDefault(value) {
-  var _gradientAST$orientat;
-
-  // gradientAST will contain the gradient AST as parsed by gradient-parser npm module.
-  // More information of its structure available at https://www.npmjs.com/package/gradient-parser#ast.
-  let gradientAST;
-
-  try {
-    gradientAST = node_default.a.parse(value)[0];
-    gradientAST.value = value;
-  } catch (error) {
-    gradientAST = node_default.a.parse(DEFAULT_GRADIENT)[0];
-    gradientAST.value = DEFAULT_GRADIENT;
-  }
-
-  if (((_gradientAST$orientat = gradientAST.orientation) === null || _gradientAST$orientat === void 0 ? void 0 : _gradientAST$orientat.type) === 'directional') {
-    gradientAST.orientation.type = 'angular';
-    gradientAST.orientation.value = DIRECTIONAL_ORIENTATION_ANGLE_MAP[gradientAST.orientation.value].toString();
-  }
-
-  if (gradientAST.colorStops.some(hasUnsupportedLength)) {
-    const {
-      colorStops
-    } = gradientAST;
-    const step = 100 / (colorStops.length - 1);
-    colorStops.forEach((stop, index) => {
-      stop.length = {
-        value: step * index,
-        type: '%'
-      };
-    });
-    gradientAST.value = serializeGradient(gradientAST);
-  }
-
-  return gradientAST;
-}
-function getGradientAstWithControlPoints(gradientAST, newControlPoints) {
-  return { ...gradientAST,
-    colorStops: newControlPoints.map(({
-      position,
-      color
-    }) => {
-      const {
-        r,
-        g,
-        b,
-        a
-      } = tinycolor_default()(color).toRgb();
-      return {
-        length: {
-          type: '%',
-          value: position.toString()
-        },
-        type: a < 1 ? 'rgba' : 'rgb',
-        value: a < 1 ? [r, g, b, a] : [r, g, b]
-      };
-    })
-  };
-}
-function getStopCssColor(colorStop) {
-  switch (colorStop.type) {
-    case 'hex':
-      return `#${colorStop.value}`;
-
-    case 'literal':
-      return colorStop.value;
-
-    case 'rgb':
-    case 'rgba':
-      return `${colorStop.type}(${colorStop.value.join(',')})`;
-
-    default:
-      // Should be unreachable if passing an AST from gradient-parser.
-      // See https://github.com/rafaelcaricio/gradient-parser#ast.
-      return 'transparent';
-  }
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/custom-gradient-picker/styles/custom-gradient-picker-styles.js
-
-
-function custom_gradient_picker_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
-
-/**
- * Internal dependencies
- */
-
-const SelectWrapper = /*#__PURE__*/styled_base_browser_esm(flex_block_component, {
-  target: "e99xvul0",
-  label: "SelectWrapper"
-})( true ? {
-  name: "otv6bo",
-  styles: "flex-grow:5;"
-} : undefined);
-const AccessoryWrapper = /*#__PURE__*/styled_base_browser_esm(flex_block_component, {
-  target: "e99xvul1",
-  label: "AccessoryWrapper"
-})( true ? {
-  name: "gmtefn",
-  styles: "flex-grow:4;"
-} : undefined);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/custom-gradient-picker/index.js
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-
-
-
-
-
-const GradientAnglePicker = ({
-  gradientAST,
-  hasGradient,
-  onChange
-}) => {
-  const angle = Object(external_lodash_["get"])(gradientAST, ['orientation', 'value'], DEFAULT_LINEAR_GRADIENT_ANGLE);
-
-  const onAngleChange = newAngle => {
-    onChange(serializeGradient({ ...gradientAST,
-      orientation: {
-        type: 'angular',
-        value: newAngle
-      }
-    }));
-  };
-
-  return Object(external_wp_element_["createElement"])(AnglePickerControl, {
-    hideLabelFromVision: true,
-    onChange: onAngleChange,
-    value: hasGradient ? angle : ''
-  });
-};
-
-const GradientTypePicker = ({
-  gradientAST,
-  hasGradient,
-  onChange
-}) => {
-  const {
-    type
-  } = gradientAST;
-
-  const onSetLinearGradient = () => {
-    onChange(serializeGradient({ ...gradientAST,
-      ...(gradientAST.orientation ? {} : {
-        orientation: HORIZONTAL_GRADIENT_ORIENTATION
-      }),
-      type: 'linear-gradient'
-    }));
-  };
-
-  const onSetRadialGradient = () => {
-    onChange(serializeGradient({ ...Object(external_lodash_["omit"])(gradientAST, ['orientation']),
-      type: 'radial-gradient'
-    }));
-  };
-
-  const handleOnChange = next => {
-    if (next === 'linear-gradient') {
-      onSetLinearGradient();
-    }
-
-    if (next === 'radial-gradient') {
-      onSetRadialGradient();
-    }
-  };
-
-  return Object(external_wp_element_["createElement"])(select_control, {
-    className: "components-custom-gradient-picker__type-picker",
-    label: Object(external_wp_i18n_["__"])('Type'),
-    labelPosition: 'side',
-    onChange: handleOnChange,
-    options: GRADIENT_OPTIONS,
-    value: hasGradient && type
-  });
-};
-
-function CustomGradientPicker({
-  value,
-  onChange
-}) {
-  const gradientAST = getGradientAstWithDefault(value); // On radial gradients the bar should display a linear gradient.
-  // On radial gradients the bar represents a slice of the gradient from the center until the outside.
-
-  const background = gradientAST.type === 'radial-gradient' ? getLinearGradientRepresentationOfARadial(gradientAST) : gradientAST.value;
-  const hasGradient = gradientAST.value !== DEFAULT_GRADIENT; // Control points color option may be hex from presets, custom colors will be rgb.
-  // The position should always be a percentage.
-
-  const controlPoints = gradientAST.colorStops.map(colorStop => ({
-    color: getStopCssColor(colorStop),
-    position: parseInt(colorStop.length.value)
-  }));
-  return Object(external_wp_element_["createElement"])("div", {
-    className: "components-custom-gradient-picker"
-  }, Object(external_wp_element_["createElement"])(CustomGradientBar, {
-    background: background,
-    hasGradient: hasGradient,
-    value: controlPoints,
-    onChange: newControlPoints => {
-      onChange(serializeGradient(getGradientAstWithControlPoints(gradientAST, newControlPoints)));
-    }
-  }), Object(external_wp_element_["createElement"])(flex_component, {
-    gap: 3,
-    className: "components-custom-gradient-picker__ui-line"
-  }, Object(external_wp_element_["createElement"])(SelectWrapper, null, Object(external_wp_element_["createElement"])(GradientTypePicker, {
-    gradientAST: gradientAST,
-    hasGradient: hasGradient,
-    onChange: onChange
-  })), Object(external_wp_element_["createElement"])(AccessoryWrapper, null, gradientAST.type === 'linear-gradient' && Object(external_wp_element_["createElement"])(GradientAnglePicker, {
-    gradientAST: gradientAST,
-    hasGradient: hasGradient,
-    onChange: onChange
-  }))));
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/gradient-picker/index.js
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-function GradientPicker({
-  className,
-  gradients,
-  onChange,
-  value,
-  clearable = true,
-  disableCustomGradients = false
-}) {
-  const clearGradient = Object(external_wp_element_["useCallback"])(() => onChange(undefined), [onChange]);
-  const gradientOptions = Object(external_wp_element_["useMemo"])(() => {
-    return Object(external_lodash_["map"])(gradients, ({
-      gradient,
-      name
-    }) => Object(external_wp_element_["createElement"])(CircularOptionPicker.Option, {
-      key: gradient,
-      value: gradient,
-      isSelected: value === gradient,
-      tooltipText: name || // translators: %s: gradient code e.g: "linear-gradient(90deg, rgba(98,16,153,1) 0%, rgba(172,110,22,1) 100%);".
-      Object(external_wp_i18n_["sprintf"])(Object(external_wp_i18n_["__"])('Gradient code: %s'), gradient),
-      style: {
-        color: 'rgba( 0,0,0,0 )',
-        background: gradient
-      },
-      onClick: value === gradient ? clearGradient : () => onChange(gradient),
-      "aria-label": name ? // translators: %s: The name of the gradient e.g: "Angular red to blue".
-      Object(external_wp_i18n_["sprintf"])(Object(external_wp_i18n_["__"])('Gradient: %s'), name) : // translators: %s: gradient code e.g: "linear-gradient(90deg, rgba(98,16,153,1) 0%, rgba(172,110,22,1) 100%);".
-      Object(external_wp_i18n_["sprintf"])(Object(external_wp_i18n_["__"])('Gradient code: %s'), gradient)
-    }));
-  }, [gradients, value, onChange, clearGradient]);
-  return Object(external_wp_element_["createElement"])(CircularOptionPicker, {
-    className: className,
-    options: gradientOptions,
-    actions: clearable && Object(external_wp_element_["createElement"])(CircularOptionPicker.ButtonAction, {
-      onClick: clearGradient
-    }, Object(external_wp_i18n_["__"])('Clear'))
-  }, !disableCustomGradients && Object(external_wp_element_["createElement"])(CustomGradientPicker, {
-    value: value,
-    onChange: onChange
-  }));
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/grid/utils.js
-const utils_ALIGNMENTS = {
-  bottom: {
-    alignItems: 'flex-end',
-    justifyContent: 'center'
-  },
-  bottomLeft: {
-    alignItems: 'flex-start',
-    justifyContent: 'flex-end'
-  },
-  bottomRight: {
-    alignItems: 'flex-end',
-    justifyContent: 'flex-end'
-  },
-  center: {
-    alignItems: 'center',
-    justifyContent: 'center'
-  },
-  spaced: {
-    alignItems: 'center',
-    justifyContent: 'space-between'
-  },
-  left: {
-    alignItems: 'center',
-    justifyContent: 'flex-start'
-  },
-  right: {
-    alignItems: 'center',
-    justifyContent: 'flex-end'
-  },
-  stretch: {
-    alignItems: 'stretch'
-  },
-  top: {
-    alignItems: 'flex-start',
-    justifyContent: 'center'
-  },
-  topLeft: {
-    alignItems: 'flex-start',
-    justifyContent: 'flex-start'
-  },
-  topRight: {
-    alignItems: 'flex-start',
-    justifyContent: 'flex-end'
-  }
-};
-/* eslint-disable jsdoc/valid-types */
-
-/**
- * @param {keyof typeof ALIGNMENTS | undefined} alignment
- * @return {{ alignItems?: import('react').CSSProperties['alignItems'], justifyContent?: import('react').CSSProperties['justifyContent']}} CSS props for alignment
- */
-
-function getAlignmentProps(alignment) {
-  const alignmentProps = alignment ? utils_ALIGNMENTS[alignment] : {};
-  return alignmentProps;
-}
-/* eslint-enable jsdoc/valid-types */
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/grid/hook.js
-
-
-
-/**
- * WordPress dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-/**
- * @param {import('../ui/context').ViewOwnProps<import('./types').Props, 'div'>} props
- */
-
-function useGrid(props) {
-  const {
-    align,
-    alignment,
-    className,
-    columnGap,
-    columns = 2,
-    gap = 3,
-    isInline = false,
-    justify,
-    rowGap,
-    rows,
-    templateColumns,
-    templateRows,
-    ...otherProps
-  } = Object(use_context_system["a" /* useContextSystem */])(props, 'Grid');
-  const columnsAsArray = Array.isArray(columns) ? columns : [columns];
-  const column = useResponsiveValue(columnsAsArray);
-  const rowsAsArray = Array.isArray(rows) ? rows : [rows];
-  const row = useResponsiveValue(rowsAsArray);
-  const gridTemplateColumns = templateColumns || !!columns && `repeat(${column}, 1fr)`;
-  const gridTemplateRows = templateRows || !!rows && `repeat(${row}, 1fr)`;
-  const classes = Object(external_wp_element_["useMemo"])(() => {
-    const alignmentProps = getAlignmentProps(alignment);
-
-    const gridClasses = /*#__PURE__*/Object(emotion_esm["a" /* css */])({
-      alignItems: align,
-      display: isInline ? 'inline-grid' : 'grid',
-      gap: `calc( ${config_values.gridBase} * ${gap} )`,
-      gridTemplateColumns: gridTemplateColumns || undefined,
-      gridTemplateRows: gridTemplateRows || undefined,
-      gridRowGap: rowGap,
-      gridColumnGap: columnGap,
-      justifyContent: justify,
-      verticalAlign: isInline ? 'middle' : undefined,
-      ...alignmentProps
-    }, ";label:gridClasses;" + ( true ? "" : undefined));
-
-    return Object(emotion_esm["b" /* cx */])(gridClasses, className);
-  }, [align, alignment, className, columnGap, gap, gridTemplateColumns, gridTemplateRows, isInline, justify, rowGap]);
-  return { ...otherProps,
-    className: classes
-  };
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/grid/component.js
-/**
- * Internal dependencies
- */
-
-
-/**
- * `Grid` is a primitive layout component that can arrange content in a grid configuration.
- *
- * @example
- * ```jsx
- * import {
- * 	__experimentalGrid as Grid,
- * 	__experimentalText as Text
- * } from `@wordpress/components`;
- *
- * function Example() {
- * 	return (
- * 		<Grid columns={ 3 }>
- * 			<Text>Code</Text>
- * 			<Text>is</Text>
- * 			<Text>Poetry</Text>
- * 		</Grid>
- * 	);
- * }
- * ```
- */
-
-const Grid = create_component_createComponent({
-  as: 'div',
-  useHook: useGrid,
-  name: 'Grid'
-});
-/* harmony default export */ var grid_component = (Grid);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/modal/frame.js
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-function ModalFrameContent({
-  overlayClassName,
-  contentLabel,
-  aria: {
-    describedby,
-    labelledby
-  },
-  children,
-  className,
-  role,
-  style,
-  focusOnMount,
-  shouldCloseOnEsc,
-  onRequestClose
-}) {
-  function handleEscapeKeyDown(event) {
-    if (shouldCloseOnEsc && event.keyCode === external_wp_keycodes_["ESCAPE"]) {
-      event.stopPropagation();
-
-      if (onRequestClose) {
-        onRequestClose(event);
-      }
-    }
-  }
-
-  const focusOnMountRef = Object(external_wp_compose_["useFocusOnMount"])(focusOnMount);
-  const constrainedTabbingRef = Object(external_wp_compose_["useConstrainedTabbing"])();
-  const focusReturnRef = Object(external_wp_compose_["useFocusReturn"])();
-  return (// eslint-disable-next-line jsx-a11y/no-static-element-interactions
-    Object(external_wp_element_["createElement"])("div", {
-      className: classnames_default()('components-modal__screen-overlay', overlayClassName),
-      onKeyDown: handleEscapeKeyDown
-    }, Object(external_wp_element_["createElement"])("div", {
-      className: classnames_default()('components-modal__frame', className),
-      style: style,
-      ref: Object(external_wp_compose_["useMergeRefs"])([constrainedTabbingRef, focusReturnRef, focusOnMountRef]),
-      role: role,
-      "aria-label": contentLabel,
-      "aria-labelledby": contentLabel ? null : labelledby,
-      "aria-describedby": describedby,
-      tabIndex: "-1"
-    }, children))
-  );
-}
-
-class frame_ModalFrame extends external_wp_element_["Component"] {
-  constructor() {
-    super(...arguments);
-    this.handleFocusOutside = this.handleFocusOutside.bind(this);
-  }
-  /**
-   * Callback function called when clicked outside the modal.
-   *
-   * @param {Object} event Mouse click event.
-   */
-
-
-  handleFocusOutside(event) {
-    if (this.props.shouldCloseOnClickOutside && this.props.onRequestClose) {
-      this.props.onRequestClose(event);
-    }
-  }
-  /**
-   * Renders the modal frame element.
-   *
-   * @return {WPElement} The modal frame element.
-   */
-
-
-  render() {
-    return Object(external_wp_element_["createElement"])(ModalFrameContent, this.props);
-  }
-
-}
-
-/* harmony default export */ var modal_frame = (with_focus_outside(frame_ModalFrame));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/modal/header.js
-
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-const ModalHeader = ({
-  icon,
-  title,
-  onClose,
-  closeLabel,
-  headingId,
-  isDismissible
-}) => {
-  const label = closeLabel ? closeLabel : Object(external_wp_i18n_["__"])('Close dialog');
-  return Object(external_wp_element_["createElement"])("div", {
-    className: "components-modal__header"
-  }, Object(external_wp_element_["createElement"])("div", {
-    className: "components-modal__header-heading-container"
-  }, icon && Object(external_wp_element_["createElement"])("span", {
-    className: "components-modal__icon-container",
-    "aria-hidden": true
-  }, icon), title && Object(external_wp_element_["createElement"])("h1", {
-    id: headingId,
-    className: "components-modal__header-heading"
-  }, title)), isDismissible && Object(external_wp_element_["createElement"])(build_module_button["a" /* default */], {
-    onClick: onClose,
-    icon: close_small["a" /* default */],
-    label: label
-  }));
-};
-
-/* harmony default export */ var modal_header = (ModalHeader);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/modal/aria-helper.js
-/**
- * External dependencies
- */
-
-const LIVE_REGION_ARIA_ROLES = new Set(['alert', 'status', 'log', 'marquee', 'timer']);
-let hiddenElements = [],
-    isHidden = false;
-/**
- * Hides all elements in the body element from screen-readers except
- * the provided element and elements that should not be hidden from
- * screen-readers.
- *
- * The reason we do this is because `aria-modal="true"` currently is bugged
- * in Safari, and support is spotty in other browsers overall. In the future
- * we should consider removing these helper functions in favor of
- * `aria-modal="true"`.
- *
- * @param {Element} unhiddenElement The element that should not be hidden.
- */
-
-function hideApp(unhiddenElement) {
-  if (isHidden) {
-    return;
-  }
-
-  const elements = document.body.children;
-  Object(external_lodash_["forEach"])(elements, element => {
-    if (element === unhiddenElement) {
-      return;
-    }
-
-    if (elementShouldBeHidden(element)) {
-      element.setAttribute('aria-hidden', 'true');
-      hiddenElements.push(element);
-    }
-  });
-  isHidden = true;
-}
-/**
- * Determines if the passed element should not be hidden from screen readers.
- *
- * @param {HTMLElement} element The element that should be checked.
- *
- * @return {boolean} Whether the element should not be hidden from screen-readers.
- */
-
-function elementShouldBeHidden(element) {
-  const role = element.getAttribute('role');
-  return !(element.tagName === 'SCRIPT' || element.hasAttribute('aria-hidden') || element.hasAttribute('aria-live') || LIVE_REGION_ARIA_ROLES.has(role));
-}
-/**
- * Makes all elements in the body that have been hidden by `hideApp`
- * visible again to screen-readers.
- */
-
-function showApp() {
-  if (!isHidden) {
-    return;
-  }
-
-  Object(external_lodash_["forEach"])(hiddenElements, element => {
-    element.removeAttribute('aria-hidden');
-  });
-  hiddenElements = [];
-  isHidden = false;
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/modal/index.js
-
-
-
-/**
- * WordPress dependencies
- */
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
- // Used to count the number of open modals.
-
-let modal_parentElement,
-    openModalCount = 0;
-
-class modal_Modal extends external_wp_element_["Component"] {
-  constructor(props) {
-    super(props);
-    this.prepareDOM();
-  }
-  /**
-   * Appends the modal's node to the DOM, so the portal can render the
-   * modal in it. Also calls the openFirstModal when this is the first modal to be
-   * opened.
-   */
-
-
-  componentDidMount() {
-    openModalCount++;
-
-    if (openModalCount === 1) {
-      this.openFirstModal();
-    }
-  }
-  /**
-   * Removes the modal's node from the DOM. Also calls closeLastModal when this is
-   * the last modal to be closed.
-   */
-
-
-  componentWillUnmount() {
-    openModalCount--;
-
-    if (openModalCount === 0) {
-      this.closeLastModal();
-    }
-
-    this.cleanDOM();
-  }
-  /**
-   * Prepares the DOM for the modals to be rendered.
-   *
-   * Every modal is mounted in a separate div appended to a parent div
-   * that is appended to the document body.
-   *
-   * The parent div will be created if it does not yet exist, and the
-   * separate div for this specific modal will be appended to that.
-   */
-
-
-  prepareDOM() {
-    if (!modal_parentElement) {
-      modal_parentElement = document.createElement('div');
-      document.body.appendChild(modal_parentElement);
-    }
-
-    this.node = document.createElement('div');
-    modal_parentElement.appendChild(this.node);
-  }
-  /**
-   * Removes the specific mounting point for this modal from the DOM.
-   */
-
-
-  cleanDOM() {
-    modal_parentElement.removeChild(this.node);
-  }
-  /**
-   * Prepares the DOM for this modal and any additional modal to be mounted.
-   *
-   * It appends an additional div to the body for the modals to be rendered in,
-   * it hides any other elements from screen-readers and adds an additional class
-   * to the body to prevent scrolling while the modal is open.
-   */
-
-
-  openFirstModal() {
-    hideApp(modal_parentElement);
-    document.body.classList.add(this.props.bodyOpenClassName);
-  }
-  /**
-   * Cleans up the DOM after the last modal is closed and makes the app available
-   * for screen-readers again.
-   */
-
-
-  closeLastModal() {
-    document.body.classList.remove(this.props.bodyOpenClassName);
-    showApp();
-  }
-  /**
-   * Renders the modal.
-   *
-   * @return {WPElement} The modal element.
-   */
-
-
-  render() {
-    const {
-      onRequestClose,
-      title,
-      icon,
-      closeButtonLabel,
-      children,
-      aria,
-      instanceId,
-      isDismissible,
-      isDismissable,
-      //Deprecated
-      // Many of the documented props for Modal are passed straight through
-      // to the ModalFrame component and handled there.
-      ...otherProps
-    } = this.props;
-    const headingId = title ? `components-modal-header-${instanceId}` : aria.labelledby;
-
-    if (isDismissable) {
-      external_wp_deprecated_default()('isDismissable prop of the Modal component', {
-        since: '5.4',
-        alternative: 'isDismissible prop (renamed) of the Modal component'
-      });
-    } // Disable reason: this stops mouse events from triggering tooltips and
-    // other elements underneath the modal overlay.
-
-
-    return Object(external_wp_element_["createPortal"])(Object(external_wp_element_["createElement"])(modal_frame, Object(esm_extends["a" /* default */])({
-      onRequestClose: onRequestClose,
-      aria: {
-        labelledby: headingId,
-        describedby: aria.describedby
-      }
-    }, otherProps), Object(external_wp_element_["createElement"])("div", {
-      className: 'components-modal__content',
-      role: "document"
-    }, Object(external_wp_element_["createElement"])(modal_header, {
-      closeLabel: closeButtonLabel,
-      headingId: title && headingId,
-      icon: icon,
-      isDismissible: isDismissible || isDismissable,
-      onClose: onRequestClose,
-      title: title
-    }), children)), this.node);
-  }
-
-}
-
-modal_Modal.defaultProps = {
-  bodyOpenClassName: 'modal-open',
-  role: 'dialog',
-  title: null,
-  focusOnMount: true,
-  shouldCloseOnEsc: true,
-  shouldCloseOnClickOutside: true,
-  isDismissible: true,
-
-  /* accessibility */
-  aria: {
-    labelledby: null,
-    describedby: null
-  }
-};
-/* harmony default export */ var modal = (Object(external_wp_compose_["withInstanceId"])(modal_Modal));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/guide/icons.js
-
-
-/**
- * WordPress dependencies
- */
-
-const PageControlIcon = ({
-  isSelected
-}) => Object(external_wp_element_["createElement"])(external_wp_primitives_["SVG"], {
-  width: "8",
-  height: "8",
-  fill: "none",
-  xmlns: "http://www.w3.org/2000/svg"
-}, Object(external_wp_element_["createElement"])(external_wp_primitives_["Circle"], {
-  cx: "4",
-  cy: "4",
-  r: "4",
-  fill: isSelected ? '#419ECD' : '#E1E3E6'
-}));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/guide/page-control.js
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-function PageControl({
-  currentPage,
-  numberOfPages,
-  setCurrentPage
-}) {
-  return Object(external_wp_element_["createElement"])("ul", {
-    className: "components-guide__page-control",
-    "aria-label": Object(external_wp_i18n_["__"])('Guide controls')
-  }, Object(external_lodash_["times"])(numberOfPages, page => Object(external_wp_element_["createElement"])("li", {
-    key: page // Set aria-current="step" on the active page, see https://www.w3.org/TR/wai-aria-1.1/#aria-current
-    ,
-    "aria-current": page === currentPage ? 'step' : undefined
-  }, Object(external_wp_element_["createElement"])(build_module_button["a" /* default */], {
-    key: page,
-    icon: Object(external_wp_element_["createElement"])(PageControlIcon, {
-      isSelected: page === currentPage
-    }),
-    "aria-label": Object(external_wp_i18n_["sprintf"])(
-    /* translators: 1: current page number 2: total number of pages */
-    Object(external_wp_i18n_["__"])('Page %1$d of %2$d'), page + 1, numberOfPages),
-    onClick: () => setCurrentPage(page)
-  }))));
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/guide/finish-button.js
-
-
-
-/**
- * WordPress dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-function FinishButton(props) {
-  const ref = Object(external_wp_element_["useRef"])(); // Focus the button on mount if nothing else is focused. This prevents a
-  // focus loss when the 'Next' button is swapped out.
-
-  Object(external_wp_element_["useLayoutEffect"])(() => {
-    const {
-      ownerDocument
-    } = ref.current;
-    const {
-      activeElement,
-      body
-    } = ownerDocument;
-
-    if (!activeElement || activeElement === body) {
-      ref.current.focus();
-    }
-  }, []);
-  return Object(external_wp_element_["createElement"])(build_module_button["a" /* default */], Object(esm_extends["a" /* default */])({}, props, {
-    ref: ref
-  }));
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/guide/index.js
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-
-function Guide({
-  children,
-  className,
-  contentLabel,
-  finishButtonText,
-  onFinish,
-  pages = []
-}) {
-  const [currentPage, setCurrentPage] = Object(external_wp_element_["useState"])(0);
-  Object(external_wp_element_["useEffect"])(() => {
-    if (external_wp_element_["Children"].count(children)) {
-      external_wp_deprecated_default()('Passing children to <Guide>', {
-        since: '5.5',
-        alternative: 'the `pages` prop'
-      });
-    }
-  }, [children]);
-
-  if (external_wp_element_["Children"].count(children)) {
-    pages = external_wp_element_["Children"].map(children, child => ({
-      content: child
-    }));
-  }
-
-  const canGoBack = currentPage > 0;
-  const canGoForward = currentPage < pages.length - 1;
-
-  const goBack = () => {
-    if (canGoBack) {
-      setCurrentPage(currentPage - 1);
-    }
-  };
-
-  const goForward = () => {
-    if (canGoForward) {
-      setCurrentPage(currentPage + 1);
-    }
-  };
-
-  if (pages.length === 0) {
-    return null;
-  }
-
-  return Object(external_wp_element_["createElement"])(modal, {
-    className: classnames_default()('components-guide', className),
-    contentLabel: contentLabel,
-    onRequestClose: onFinish
-  }, Object(external_wp_element_["createElement"])(keyboard_shortcuts, {
-    key: currentPage,
-    shortcuts: {
-      left: goBack,
-      right: goForward
-    }
-  }), Object(external_wp_element_["createElement"])("div", {
-    className: "components-guide__container"
-  }, Object(external_wp_element_["createElement"])("div", {
-    className: "components-guide__page"
-  }, pages[currentPage].image, pages.length > 1 && Object(external_wp_element_["createElement"])(PageControl, {
-    currentPage: currentPage,
-    numberOfPages: pages.length,
-    setCurrentPage: setCurrentPage
-  }), pages[currentPage].content, !canGoForward && Object(external_wp_element_["createElement"])(FinishButton, {
-    className: "components-guide__inline-finish-button",
-    onClick: onFinish
-  }, finishButtonText || Object(external_wp_i18n_["__"])('Finish'))), Object(external_wp_element_["createElement"])("div", {
-    className: "components-guide__footer"
-  }, canGoBack && Object(external_wp_element_["createElement"])(build_module_button["a" /* default */], {
-    className: "components-guide__back-button",
-    onClick: goBack
-  }, Object(external_wp_i18n_["__"])('Previous')), canGoForward && Object(external_wp_element_["createElement"])(build_module_button["a" /* default */], {
-    className: "components-guide__forward-button",
-    onClick: goForward
-  }, Object(external_wp_i18n_["__"])('Next')), !canGoForward && Object(external_wp_element_["createElement"])(FinishButton, {
-    className: "components-guide__finish-button",
-    onClick: onFinish
-  }, finishButtonText || Object(external_wp_i18n_["__"])('Finish')))));
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/guide/page.js
-
-
-/**
- * WordPress dependencies
- */
-
-
-function GuidePage(props) {
-  Object(external_wp_element_["useEffect"])(() => {
-    external_wp_deprecated_default()('<GuidePage>', {
-      since: '5.5',
-      alternative: 'the `pages` prop in <Guide>'
-    });
-  }, []);
-  return Object(external_wp_element_["createElement"])("div", props);
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/heading/hook.js
-/**
- * Internal dependencies
- */
- // eslint-disable-next-line no-duplicate-imports
-
-
-
-
-function useHeading(props) {
-  const {
-    as: asProp,
-    level = 2,
-    ...otherProps
-  } = Object(use_context_system["a" /* useContextSystem */])(props, 'Heading');
-  const as = asProp || `h${level}`;
-  const a11yProps = {};
-
-  if (typeof as === 'string' && as[0] !== 'h') {
-    // if not a semantic `h` element, add a11y props:
-    a11yProps.role = 'heading';
-    a11yProps['aria-level'] = level;
-  }
-
-  const textProps = useText({
-    color: COLORS.darkGray.heading,
-    size: getHeadingFontSize(level),
-    isBlock: true,
-    weight: config_values.fontWeightHeading,
-    ...otherProps
-  });
-  return { ...textProps,
-    ...a11yProps,
-    as
-  };
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/heading/component.js
-/**
- * Internal dependencies
- */
-
-
-/**
- * `Heading` renders headings and titles using the library's typography system.
- *
- * @example
- * ```jsx
- * import { Heading } from `@wordpress/components/ui`
- *
- * function Example() {
- *   return <Heading>Code is Poetry</Heading>;
- * }
- * ```
- */
-
-const Heading = create_component_createComponent({
-  as: 'h1',
-  useHook: useHeading,
-  name: 'Heading'
-});
-/* harmony default export */ var heading_component = (Heading);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/h-stack/utils.js
-/**
- * External dependencies
- */
-
-/** @type {import('./types').Alignments} */
-
-const h_stack_utils_ALIGNMENTS = {
-  bottom: {
-    align: 'flex-end',
-    justify: 'center'
-  },
-  bottomLeft: {
-    align: 'flex-start',
-    justify: 'flex-end'
-  },
-  bottomRight: {
-    align: 'flex-end',
-    justify: 'flex-end'
-  },
-  center: {
-    align: 'center',
-    justify: 'center'
-  },
-  edge: {
-    align: 'center',
-    justify: 'space-between'
-  },
-  left: {
-    align: 'center',
-    justify: 'flex-start'
-  },
-  right: {
-    align: 'center',
-    justify: 'flex-end'
-  },
-  stretch: {
-    align: 'stretch'
-  },
-  top: {
-    align: 'flex-start',
-    justify: 'center'
-  },
-  topLeft: {
-    align: 'flex-start',
-    justify: 'flex-start'
-  },
-  topRight: {
-    align: 'flex-start',
-    justify: 'flex-end'
-  }
-};
-/** @type {import('./types').Alignments} */
-
-const V_ALIGNMENTS = {
-  bottom: {
-    justify: 'flex-end',
-    align: 'center'
-  },
-  bottomLeft: {
-    justify: 'flex-start',
-    align: 'flex-end'
-  },
-  bottomRight: {
-    justify: 'flex-end',
-    align: 'flex-end'
-  },
-  center: {
-    justify: 'center',
-    align: 'center'
-  },
-  edge: {
-    justify: 'space-between',
-    align: 'center'
-  },
-  left: {
-    justify: 'center',
-    align: 'flex-start'
-  },
-  right: {
-    justify: 'center',
-    align: 'flex-end'
-  },
-  stretch: {
-    justify: 'stretch'
-  },
-  top: {
-    justify: 'flex-start',
-    align: 'center'
-  },
-  topLeft: {
-    justify: 'flex-start',
-    align: 'flex-start'
-  },
-  topRight: {
-    justify: 'flex-start',
-    align: 'flex-end'
-  }
-};
-/* eslint-disable jsdoc/valid-types */
-
-/**
- * @param {import('./types').HStackAlignment | import('react').CSSProperties[ 'alignItems' ]} alignment Where to align.
- * @param {import('../flex/types').FlexDirection} [direction='row'] Direction to align.
- * @return {import('./types').AlignmentProps} Alignment props.
- */
-
-/* eslint-enable jsdoc/valid-types */
-
-function utils_getAlignmentProps(alignment, direction = 'row') {
-  if (Object(external_lodash_["isNil"])(alignment)) {
-    return {};
-  }
-
-  const isVertical = direction === 'column';
-  const props = isVertical ? V_ALIGNMENTS : h_stack_utils_ALIGNMENTS;
-  const alignmentProps = alignment in props ? props[
-  /** @type {keyof typeof ALIGNMENTS} */
-  alignment] : {
-    align: alignment
-  };
-  return alignmentProps;
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/ui/utils/get-valid-children.js
-/**
- * External dependencies
- */
-// eslint-disable-next-line no-restricted-imports
-
-/**
- * WordPress dependencies
- */
-
-/**
- * Gets a collection of available children elements from a React component's children prop.
- *
- * @param {import('react').ReactNode} children
- *
- * @return {import('react').ReactNodeArray} An array of available children.
- */
-
-function getValidChildren(children) {
-  if (typeof children === 'string') return [children];
-  return external_wp_element_["Children"].toArray(children).filter(child => Object(external_wp_element_["isValidElement"])(child));
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/h-stack/hook.js
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-/**
- *
- * @param {import('../ui/context').ViewOwnProps<import('./types').Props, 'div'>} props
- */
-
-function useHStack(props) {
-  const {
-    alignment = 'edge',
-    children,
-    direction,
-    spacing = 2,
-    ...otherProps
-  } = Object(use_context_system["a" /* useContextSystem */])(props, 'HStack');
-  const align = utils_getAlignmentProps(alignment, direction);
-  const validChildren = getValidChildren(children);
-  const clonedChildren = validChildren.map( // @ts-ignore
-  (
-  /** @type {import('react').ReactElement} */
-  child, index) => {
-    const _key = child.key || `hstack-${index}`;
-
-    const _isSpacer = Object(context_connect["b" /* hasConnectNamespace */])(child, ['Spacer']);
-
-    if (_isSpacer) {
-      return Object(external_wp_element_["createElement"])(flex_item_component, Object(esm_extends["a" /* default */])({
-        isBlock: true,
-        key: _key
-      }, child.props));
-    }
-
-    return child;
-  });
-  const propsForFlex = {
-    children: clonedChildren,
-    direction,
-    justify: 'center',
-    ...align,
-    ...otherProps,
-    gap: spacing
-  };
-  const flexProps = useFlex(propsForFlex);
-  return flexProps;
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/h-stack/component.js
-/**
- * Internal dependencies
- */
-
-
-/**
- * `HStack` (Horizontal Stack) arranges child elements in a horizontal line.
- *
- * `HStack` can render anything inside.
- *
- * @example
- * ```jsx
- * import {
- * 	__experimentalHStack as HStack,
- * 	__experimentalText as Text,
- * } from `@wordpress/components`;
- *
- * function Example() {
- * 	return (
- * 		<HStack>
- * 			<Text>Code</Text>
- * 			<Text>is</Text>
- * 			<Text>Poetry</Text>
- * 		</HStack>
- * 	);
- * }
- * ```
- */
-
-const HStack = create_component_createComponent({
-  as: 'div',
-  useHook: useHStack,
-  name: 'HStack'
-});
-/* harmony default export */ var h_stack_component = (HStack);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/button/deprecated.js
-
-
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-function IconButton({
-  labelPosition,
-  size,
-  tooltip,
-  label,
-  ...props
-}, ref) {
-  external_wp_deprecated_default()('wp.components.IconButton', {
-    since: '5.4',
-    alternative: 'wp.components.Button'
-  });
-  return Object(external_wp_element_["createElement"])(build_module_button["a" /* default */], Object(esm_extends["a" /* default */])({}, props, {
-    ref: ref,
-    tooltipPosition: labelPosition,
-    iconSize: size,
-    showTooltip: tooltip !== undefined ? !!tooltip : undefined,
-    label: tooltip || label
-  }));
-}
-
-/* harmony default export */ var deprecated = (Object(external_wp_element_["forwardRef"])(IconButton));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/menu-group/index.js
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-function MenuGroup({
-  children,
-  className = '',
-  label,
-  hideSeparator
-}) {
-  const instanceId = Object(external_wp_compose_["useInstanceId"])(MenuGroup);
-
-  if (!external_wp_element_["Children"].count(children)) {
-    return null;
-  }
-
-  const labelId = `components-menu-group-label-${instanceId}`;
-  const classNames = classnames_default()(className, 'components-menu-group', {
-    'has-hidden-separator': hideSeparator
-  });
-  return Object(external_wp_element_["createElement"])("div", {
-    className: classNames
-  }, label && Object(external_wp_element_["createElement"])("div", {
-    className: "components-menu-group__label",
-    id: labelId,
-    "aria-hidden": "true"
-  }, label), Object(external_wp_element_["createElement"])("div", {
-    role: "group",
-    "aria-labelledby": label ? labelId : null
-  }, children));
-}
-/* harmony default export */ var menu_group = (MenuGroup);
-
-// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/shortcut/index.js
-var build_module_shortcut = __webpack_require__("Cw+6");
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/menu-item/index.js
-
-
-
-/**
- * External dependencies
- */
-
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-/**
- * Renders a generic menu item for use inside the more menu.
- *
- * @param {Object}        props                   Component props.
- * @param {WPElement}     props.children          Element to render as child of button.
- * @param {string}        props.info              Text to use as description for button text.
- * @param {string}        props.className         Class to set on the container.
- * @param {WPIcon}        props.icon              Button's `icon` prop.
- * @param {string|Object} props.shortcut          Shortcut's `shortcut` prop.
- * @param {boolean}       props.isSelected        Whether or not the menu item is currently selected.
- * @param {string}        [props.role="menuitem"] ARIA role of the menu item.
- * @param {Object}        ref                     React Element ref.
- *
- * @return {WPComponent} The component to be rendered.
- */
-
-function MenuItem({
-  children,
-  info,
-  className,
-  icon,
-  shortcut,
-  isSelected,
-  role = 'menuitem',
-  ...props
-}, ref) {
-  className = classnames_default()('components-menu-item__button', className);
-
-  if (info) {
-    children = Object(external_wp_element_["createElement"])("span", {
-      className: "components-menu-item__info-wrapper"
-    }, Object(external_wp_element_["createElement"])("span", {
-      className: "components-menu-item__item"
-    }, children), Object(external_wp_element_["createElement"])("span", {
-      className: "components-menu-item__info"
-    }, info));
-  }
-
-  if (icon && !Object(external_lodash_["isString"])(icon)) {
-    icon = Object(external_wp_element_["cloneElement"])(icon, {
-      className: 'components-menu-items__item-icon'
-    });
-  }
-
-  return Object(external_wp_element_["createElement"])(build_module_button["a" /* default */], Object(esm_extends["a" /* default */])({
-    ref: ref // Make sure aria-checked matches spec https://www.w3.org/TR/wai-aria-1.1/#aria-checked
-    ,
-    "aria-checked": role === 'menuitemcheckbox' || role === 'menuitemradio' ? isSelected : undefined,
-    role: role,
-    className: className
-  }, props), Object(external_wp_element_["createElement"])("span", {
-    className: "components-menu-item__item"
-  }, children), Object(external_wp_element_["createElement"])(build_module_shortcut["a" /* default */], {
-    className: "components-menu-item__shortcut",
-    shortcut: shortcut
-  }), icon && Object(external_wp_element_["createElement"])(components_build_module_icon["a" /* default */], {
-    icon: icon
-  }));
-}
-/* harmony default export */ var menu_item = (Object(external_wp_element_["forwardRef"])(MenuItem));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/menu-items-choice/index.js
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-function MenuItemsChoice({
-  choices = [],
-  onHover = external_lodash_["noop"],
-  onSelect,
-  value
-}) {
-  return choices.map(item => {
-    const isSelected = value === item.value;
-    return Object(external_wp_element_["createElement"])(menu_item, {
-      key: item.value,
-      role: "menuitemradio",
-      icon: isSelected && check["a" /* default */],
-      info: item.info,
-      isSelected: isSelected,
-      shortcut: item.shortcut,
-      className: "components-menu-items-choice",
-      onClick: () => {
-        if (!isSelected) {
-          onSelect(item.value);
-        }
-      },
-      onMouseEnter: () => onHover(item.value),
-      onMouseLeave: () => onHover(null),
-      "aria-label": item['aria-label']
-    }, item.label);
-  });
-}
-
-// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/scroll-lock/index.js
-var scroll_lock = __webpack_require__("k8OV");
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigable-container/tabbable.js
-
-
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-function TabbableContainer({
-  eventToOffset,
-  ...props
-}, ref) {
-  const innerEventToOffset = evt => {
-    const {
-      keyCode,
-      shiftKey
-    } = evt;
-
-    if (external_wp_keycodes_["TAB"] === keyCode) {
-      return shiftKey ? -1 : 1;
-    } // Allow custom handling of keys besides Tab.
-    //
-    // By default, TabbableContainer will move focus forward on Tab and
-    // backward on Shift+Tab. The handler below will be used for all other
-    // events. The semantics for `eventToOffset`'s return
-    // values are the following:
-    //
-    // - +1: move focus forward
-    // - -1: move focus backward
-    // -  0: don't move focus, but acknowledge event and thus stop it
-    // - undefined: do nothing, let the event propagate
-
-
-    if (eventToOffset) {
-      return eventToOffset(evt);
-    }
-  };
-
-  return Object(external_wp_element_["createElement"])(navigable_container_container, Object(esm_extends["a" /* default */])({
-    ref: ref,
-    stopNavigationEvents: true,
-    onlyBrowserTabstops: true,
-    eventToOffset: innerEventToOffset
-  }, props));
-}
-/* harmony default export */ var tabbable = (Object(external_wp_element_["forwardRef"])(TabbableContainer));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigation/constants.js
-const ROOT_MENU = 'root';
-const SEARCH_FOCUS_DELAY = 100;
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigation/context.js
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-const NavigationContext = Object(external_wp_element_["createContext"])({
-  activeItem: undefined,
-  activeMenu: ROOT_MENU,
-  setActiveMenu: external_lodash_["noop"],
-  isMenuEmpty: external_lodash_["noop"],
-  navigationTree: {
-    items: {},
-    getItem: external_lodash_["noop"],
-    addItem: external_lodash_["noop"],
-    removeItem: external_lodash_["noop"],
-    menus: {},
-    getMenu: external_lodash_["noop"],
-    addMenu: external_lodash_["noop"],
-    removeMenu: external_lodash_["noop"],
-    childMenu: {},
-    traverseMenu: external_lodash_["noop"],
-    isMenuEmpty: external_lodash_["noop"]
-  }
-});
-const useNavigationContext = () => Object(external_wp_element_["useContext"])(NavigationContext);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigation/styles/navigation-styles.js
-
-
-function navigation_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
-
-/**
- * WordPress dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-const NavigationUI = styled_base_browser_esm("div", {
-  target: "ejwewyf0",
-  label: "NavigationUI"
-})("width:100%;background-color:", G2.darkGray.primary, ";box-sizing:border-box;color:#f0f0f0;padding:0 ", space(2), ";overflow:hidden;" + ( true ? "" : undefined));
-const MenuUI = styled_base_browser_esm("div", {
-  target: "ejwewyf1",
-  label: "MenuUI"
-})("margin-top:", space(3), ";margin-bottom:", space(3), ";display:flex;flex-direction:column;ul{padding:0;margin:0;list-style:none;}.components-navigation__back-button{margin-bottom:", space(3), ";}.components-navigation__group + .components-navigation__group{margin-top:", space(3), ";}" + ( true ? "" : undefined));
-const MenuBackButtonUI = /*#__PURE__*/styled_base_browser_esm(build_module_button["a" /* default */], {
-  target: "ejwewyf2",
-  label: "MenuBackButtonUI"
-})("&.is-tertiary{color:", G2.lightGray.ui, ";&:hover:not(:disabled ){color:#ddd;box-shadow:none;}&:active:not(:disabled ){background:transparent;color:#ddd;}}" + ( true ? "" : undefined));
-const MenuTitleUI = styled_base_browser_esm("div", {
-  target: "ejwewyf3",
-  label: "MenuTitleUI"
-})( true ? {
-  name: "16agjqd",
-  styles: "overflow:hidden;width:100%;"
-} : undefined);
-const MenuTitleHeadingUI = /*#__PURE__*/styled_base_browser_esm(text_component, {
-  target: "ejwewyf4",
-  label: "MenuTitleHeadingUI"
-})("align-items:center;color:", G2.gray[100], ";display:flex;justify-content:space-between;margin-bottom:", space(1), ";padding:", () => Object(external_wp_i18n_["isRTL"])() ? `${space(0.5)} ${space(2)} ${space(0.5)} ${space(1.5)}` : `${space(0.5)} ${space(1.5)} ${space(0.5)} ${space(2)}`, ";" + ( true ? "" : undefined));
-const MenuTitleActionsUI = styled_base_browser_esm("span", {
-  target: "ejwewyf5",
-  label: "MenuTitleActionsUI"
-})("height:", space(3), ";.components-button.is-small{color:", G2.lightGray.ui, ";margin-right:", space(0.5), ";padding:0;&:active:not(:disabled ){background:none;color:", G2.gray[200], ";}&:hover:not(:disabled ){box-shadow:none;color:", G2.gray[200], ";}}" + ( true ? "" : undefined));
-const MenuTitleSearchUI = styled_base_browser_esm("div", {
-  target: "ejwewyf6",
-  label: "MenuTitleSearchUI"
-})("padding:0;position:relative;input{height:", space(4.5), ";margin-bottom:", space(1), ";padding-left:", space(4), ";padding-right:", space(4), ";&::-webkit-search-decoration,&::-webkit-search-cancel-button,&::-webkit-search-results-button,&::-webkit-search-results-decoration{-webkit-appearance:none;}}> svg{left:", space(0.5), ";position:absolute;top:6px;}.components-button.is-small{height:30px;padding:0;position:absolute;right:", space(1), ";top:3px;&:active:not(:disabled ){background:none;}&:hover:not(:disabled ){box-shadow:none;}}" + ( true ? "" : undefined));
-const GroupTitleUI = /*#__PURE__*/styled_base_browser_esm(text_component, {
-  target: "ejwewyf7",
-  label: "GroupTitleUI"
-})("margin-top:", space(1), ";padding:", () => Object(external_wp_i18n_["isRTL"])() ? `${space(0.5)} ${space(2)} ${space(0.5)} 0` : `${space(0.5)} 0 ${space(0.5)} ${space(2)}`, ";text-transform:uppercase;color:", G2.gray[100], ";" + ( true ? "" : undefined));
-const ItemBaseUI = styled_base_browser_esm("li", {
-  target: "ejwewyf8",
-  label: "ItemBaseUI"
-})("border-radius:2px;color:", G2.lightGray.ui, ";margin-bottom:0;button,a.components-button,a{width:100%;color:", G2.lightGray.ui, ";padding:", space(1), " ", space(2), ";", rtl_rtl({
-  textAlign: 'left'
-}, {
-  textAlign: 'right'
-}), " &:hover,&:focus:not( [aria-disabled='true'] ):active,&:active:not( [aria-disabled='true'] ):active{color:#ddd;}}&.is-active{background-color:", UI.theme, ";color:", UI.textDark, ";button,a{color:", UI.textDark, ";}}svg path{color:", G2.lightGray.ui, ";}" + ( true ? "" : undefined));
-const ItemUI = styled_base_browser_esm("div", {
-  target: "ejwewyf9",
-  label: "ItemUI"
-})("display:flex;align-items:center;height:auto;min-height:40px;margin:0;padding:", space(0.75), " ", space(2), ";font-weight:400;line-height:20px;width:100%;color:", G2.lightGray.ui, ";" + ( true ? "" : undefined));
-const ItemBadgeUI = styled_base_browser_esm("span", {
-  target: "ejwewyf10",
-  label: "ItemBadgeUI"
-})("margin-left:", () => Object(external_wp_i18n_["isRTL"])() ? '0' : space(1), ";margin-right:", () => Object(external_wp_i18n_["isRTL"])() ? space(1) : '0', ";display:inline-flex;padding:", space(0.5), " ", space(1.5), ";border-radius:2px;animation:fade-in 250ms ease-out;@keyframes fade-in{from{opacity:0;}to{opacity:1;}}", reduceMotion('animation'), ";" + ( true ? "" : undefined));
-const ItemTitleUI = /*#__PURE__*/styled_base_browser_esm(text_component, {
-  target: "ejwewyf11",
-  label: "ItemTitleUI"
-})(() => Object(external_wp_i18n_["isRTL"])() ? 'margin-left: auto;' : 'margin-right: auto;', " font-size:14px;line-height:20px;color:inherit;" + ( true ? "" : undefined));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigation/use-navigation-tree-nodes.js
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-const useNavigationTreeNodes = () => {
-  const [nodes, setNodes] = Object(external_wp_element_["useState"])({});
-
-  const getNode = key => nodes[key];
-
-  const addNode = (key, value) => setNodes(original => ({ ...original,
-    [key]: Object(external_lodash_["omit"])(value, 'children')
-  }));
-
-  const removeNode = key => setNodes(original => Object(external_lodash_["omit"])(original, key));
-
-  return {
-    nodes,
-    getNode,
-    addNode,
-    removeNode
-  };
-};
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigation/use-create-navigation-tree.js
-/**
- * WordPress dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-const useCreateNavigationTree = () => {
-  const {
-    nodes: items,
-    getNode: getItem,
-    addNode: addItem,
-    removeNode: removeItem
-  } = useNavigationTreeNodes();
-  const {
-    nodes: menus,
-    getNode: getMenu,
-    addNode: addMenu,
-    removeNode: removeMenu
-  } = useNavigationTreeNodes();
-  /**
-   * Stores direct nested menus of menus
-   * This makes it easy to traverse menu tree
-   *
-   * Key is the menu prop of the menu
-   * Value is an array of menu keys
-   */
-
-  const [childMenu, setChildMenu] = Object(external_wp_element_["useState"])({});
-
-  const getChildMenu = menu => childMenu[menu] || [];
-
-  const traverseMenu = (startMenu, callback) => {
-    const visited = [];
-    let queue = [startMenu];
-    let current;
-
-    while (queue.length > 0) {
-      current = getMenu(queue.shift());
-
-      if (!current || visited.includes(current.menu)) {
-        continue;
-      }
-
-      visited.push(current.menu);
-      queue = [...queue, ...getChildMenu(current.menu)];
-
-      if (callback(current) === false) {
-        break;
-      }
-    }
-  };
-
-  const isMenuEmpty = menuToCheck => {
-    let isEmpty = true;
-    traverseMenu(menuToCheck, current => {
-      if (!current.isEmpty) {
-        isEmpty = false;
-        return false;
-      }
-    });
-    return isEmpty;
-  };
-
-  return {
-    items,
-    getItem,
-    addItem,
-    removeItem,
-    menus,
-    getMenu,
-    addMenu: (key, value) => {
-      setChildMenu(state => {
-        const newState = { ...state
-        };
-
-        if (!newState[value.parentMenu]) {
-          newState[value.parentMenu] = [];
-        }
-
-        newState[value.parentMenu].push(key);
-        return newState;
-      });
-      addMenu(key, value);
-    },
-    removeMenu,
-    childMenu,
-    traverseMenu,
-    isMenuEmpty
-  };
-};
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigation/index.js
-
-
-/**
- * External dependencies
- */
-
-
-/**
- * WordPress dependencies
- */
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-
-function Navigation({
-  activeItem,
-  activeMenu = ROOT_MENU,
-  children,
-  className,
-  onActivateMenu = external_lodash_["noop"]
-}) {
-  const [menu, setMenu] = Object(external_wp_element_["useState"])(activeMenu);
-  const [slideOrigin, setSlideOrigin] = Object(external_wp_element_["useState"])();
-  const navigationTree = useCreateNavigationTree();
-  const defaultSlideOrigin = Object(external_wp_i18n_["isRTL"])() ? 'right' : 'left';
-
-  const setActiveMenu = (menuId, slideInOrigin = defaultSlideOrigin) => {
-    if (!navigationTree.getMenu(menuId)) {
-      return;
-    }
-
-    setSlideOrigin(slideInOrigin);
-    setMenu(menuId);
-    onActivateMenu(menuId);
-  }; // Used to prevent the sliding animation on mount
-
-
-  const isMounted = Object(external_wp_element_["useRef"])(false);
-  Object(external_wp_element_["useEffect"])(() => {
-    if (!isMounted.current) {
-      isMounted.current = true;
-    }
-  }, []);
-  Object(external_wp_element_["useEffect"])(() => {
-    if (activeMenu !== menu) {
-      setActiveMenu(activeMenu);
-    }
-  }, [activeMenu]);
-  const context = {
-    activeItem,
-    activeMenu: menu,
-    setActiveMenu,
-    navigationTree
-  };
-  const classes = classnames_default()('components-navigation', className);
-  const animateClassName = Object(animate["b" /* getAnimateClassName */])({
-    type: 'slide-in',
-    origin: slideOrigin
-  });
-  return Object(external_wp_element_["createElement"])(NavigationUI, {
-    className: classes
-  }, Object(external_wp_element_["createElement"])("div", {
-    key: menu,
-    className: classnames_default()({
-      [animateClassName]: isMounted.current && slideOrigin
-    })
-  }, Object(external_wp_element_["createElement"])(NavigationContext.Provider, {
-    value: context
-  }, children)));
-}
-
-// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/chevron-right.js
-var chevron_right = __webpack_require__("1iEr");
-
-// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/chevron-left.js
-var chevron_left = __webpack_require__("2gm7");
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigation/back-button/index.js
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-function NavigationBackButton({
-  backButtonLabel,
-  className,
-  href,
-  onClick,
-  parentMenu
-}, ref) {
-  var _navigationTree$getMe;
-
-  const {
-    setActiveMenu,
-    navigationTree
-  } = useNavigationContext();
-  const classes = classnames_default()('components-navigation__back-button', className);
-  const parentMenuTitle = (_navigationTree$getMe = navigationTree.getMenu(parentMenu)) === null || _navigationTree$getMe === void 0 ? void 0 : _navigationTree$getMe.title;
-
-  const handleOnClick = event => {
-    if (typeof onClick === 'function') {
-      onClick(event);
-    }
-
-    const animationDirection = Object(external_wp_i18n_["isRTL"])() ? 'left' : 'right';
-
-    if (parentMenu && !event.defaultPrevented) {
-      setActiveMenu(parentMenu, animationDirection);
-    }
-  };
-
-  const icon = Object(external_wp_i18n_["isRTL"])() ? chevron_right["a" /* default */] : chevron_left["a" /* default */];
-  return Object(external_wp_element_["createElement"])(MenuBackButtonUI, {
-    className: classes,
-    href: href,
-    isTertiary: true,
-    ref: ref,
-    onClick: handleOnClick
-  }, Object(external_wp_element_["createElement"])(build_module_icon["a" /* default */], {
-    icon: icon
-  }), backButtonLabel || parentMenuTitle || Object(external_wp_i18n_["__"])('Back'));
-}
-
-/* harmony default export */ var back_button = (Object(external_wp_element_["forwardRef"])(NavigationBackButton));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigation/group/context.js
-/**
- * WordPress dependencies
- */
-
-const NavigationGroupContext = Object(external_wp_element_["createContext"])({
-  group: undefined
-});
-const useNavigationGroupContext = () => Object(external_wp_element_["useContext"])(NavigationGroupContext);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigation/group/index.js
-
-
-/**
- * External dependencies
- */
-
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-function NavigationGroup({
-  children,
-  className,
-  title
-}) {
-  const [groupId] = Object(external_wp_element_["useState"])(Object(external_lodash_["uniqueId"])('group-'));
-  const {
-    navigationTree: {
-      items
-    }
-  } = useNavigationContext();
-  const context = {
-    group: groupId
-  }; // Keep the children rendered to make sure invisible items are included in the navigation tree.
-
-  if (!Object(external_lodash_["find"])(items, {
-    group: groupId,
-    _isVisible: true
-  })) {
-    return Object(external_wp_element_["createElement"])(NavigationGroupContext.Provider, {
-      value: context
-    }, children);
-  }
-
-  const groupTitleId = `components-navigation__group-title-${groupId}`;
-  const classes = classnames_default()('components-navigation__group', className);
-  return Object(external_wp_element_["createElement"])(NavigationGroupContext.Provider, {
-    value: context
-  }, Object(external_wp_element_["createElement"])("li", {
-    className: classes
-  }, title && Object(external_wp_element_["createElement"])(GroupTitleUI, {
-    as: "h3",
-    className: "components-navigation__group-title",
-    id: groupTitleId,
-    variant: "caption"
-  }, title), Object(external_wp_element_["createElement"])("ul", {
-    "aria-labelledby": groupTitleId,
-    role: "group"
-  }, children)));
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigation/item/base-content.js
-
-
-/**
- * Internal dependencies
- */
-
-function NavigationItemBaseContent(props) {
-  const {
-    badge,
-    title
-  } = props;
-  return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, title && Object(external_wp_element_["createElement"])(ItemTitleUI, {
-    className: "components-navigation__item-title",
-    variant: "body.small",
-    as: "span"
-  }, title), badge && Object(external_wp_element_["createElement"])(ItemBadgeUI, {
-    className: "components-navigation__item-badge"
-  }, badge));
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigation/menu/context.js
-/**
- * WordPress dependencies
- */
-
-const NavigationMenuContext = Object(external_wp_element_["createContext"])({
-  menu: undefined,
-  search: ''
-});
-const useNavigationMenuContext = () => Object(external_wp_element_["useContext"])(NavigationMenuContext);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigation/utils.js
-/**
- * External dependencies
- */
- // @see packages/block-editor/src/components/inserter/search-items.js
-
-const normalizeInput = input => Object(external_lodash_["deburr"])(input).replace(/^\//, '').toLowerCase();
-const normalizedSearch = (title, search) => -1 !== normalizeInput(title).indexOf(normalizeInput(search));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigation/item/use-navigation-tree-item.js
-/**
- * WordPress dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-const useNavigationTreeItem = (itemId, props) => {
-  const {
-    activeMenu,
-    navigationTree: {
-      addItem,
-      removeItem
-    }
-  } = useNavigationContext();
-  const {
-    group
-  } = useNavigationGroupContext();
-  const {
-    menu,
-    search
-  } = useNavigationMenuContext();
-  Object(external_wp_element_["useEffect"])(() => {
-    const isMenuActive = activeMenu === menu;
-    const isItemVisible = !search || normalizedSearch(props.title, search);
-    addItem(itemId, { ...props,
-      group,
-      menu,
-      _isVisible: isMenuActive && isItemVisible
-    });
-    return () => {
-      removeItem(itemId);
-    };
-  }, [activeMenu, search]);
-};
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigation/item/base.js
-
-
-
-/**
- * External dependencies
- */
-
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-function NavigationItemBase(props) {
-  var _navigationTree$getIt;
-
-  const {
-    children,
-    className,
-    ...restProps
-  } = props;
-  const [itemId] = Object(external_wp_element_["useState"])(Object(external_lodash_["uniqueId"])('item-'));
-  useNavigationTreeItem(itemId, props);
-  const {
-    navigationTree
-  } = useNavigationContext();
-
-  if (!((_navigationTree$getIt = navigationTree.getItem(itemId)) !== null && _navigationTree$getIt !== void 0 && _navigationTree$getIt._isVisible)) {
-    return null;
-  }
-
-  const classes = classnames_default()('components-navigation__item', className);
-  return Object(external_wp_element_["createElement"])(ItemBaseUI, Object(esm_extends["a" /* default */])({
-    className: classes
-  }, restProps), children);
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigation/item/index.js
-
-
-
-/**
- * External dependencies
- */
-
-
-/**
- * WordPress dependencies
- */
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-
-function NavigationItem(props) {
-  const {
-    badge,
-    children,
-    className,
-    href,
-    item,
-    navigateToMenu,
-    onClick = external_lodash_["noop"],
-    title,
-    hideIfTargetMenuEmpty,
-    isText,
-    ...restProps
-  } = props;
-  const {
-    activeItem,
-    setActiveMenu,
-    navigationTree: {
-      isMenuEmpty
-    }
-  } = useNavigationContext(); // If hideIfTargetMenuEmpty prop is true
-  // And the menu we are supposed to navigate to
-  // Is marked as empty, then we skip rendering the item
-
-  if (hideIfTargetMenuEmpty && navigateToMenu && isMenuEmpty(navigateToMenu)) {
-    return null;
-  }
-
-  const classes = classnames_default()(className, {
-    'is-active': item && activeItem === item
-  });
-
-  const onItemClick = event => {
-    if (navigateToMenu) {
-      setActiveMenu(navigateToMenu);
-    }
-
-    onClick(event);
-  };
-
-  const icon = Object(external_wp_i18n_["isRTL"])() ? chevron_left["a" /* default */] : chevron_right["a" /* default */];
-  const baseProps = isText ? restProps : {
-    as: build_module_button["a" /* default */],
-    href,
-    onClick: onItemClick,
-    ...restProps
-  };
-  return Object(external_wp_element_["createElement"])(NavigationItemBase, Object(esm_extends["a" /* default */])({}, props, {
-    className: classes
-  }), children || Object(external_wp_element_["createElement"])(ItemUI, baseProps, Object(external_wp_element_["createElement"])(NavigationItemBaseContent, {
-    title: title,
-    badge: badge
-  }), navigateToMenu && Object(external_wp_element_["createElement"])(build_module_icon["a" /* default */], {
-    icon: icon
-  })));
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigation/menu/use-navigation-tree-menu.js
-/**
- * WordPress dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-
-const useNavigationTreeMenu = props => {
-  const {
-    navigationTree: {
-      addMenu,
-      removeMenu
-    }
-  } = useNavigationContext();
-  const key = props.menu || ROOT_MENU;
-  Object(external_wp_element_["useEffect"])(() => {
-    addMenu(key, { ...props,
-      menu: key
-    });
-    return () => {
-      removeMenu(key);
-    };
-  }, []);
-};
-
-// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/search.js
-var library_search = __webpack_require__("cGtP");
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigation/menu/menu-title-search.js
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-
-
-
-
-function MenuTitleSearch({
-  debouncedSpeak,
-  onCloseSearch,
-  onSearch,
-  search,
-  title
-}) {
-  const {
-    navigationTree: {
-      items
-    }
-  } = useNavigationContext();
-  const {
-    menu
-  } = useNavigationMenuContext();
-  const inputRef = Object(external_wp_element_["useRef"])(); // Wait for the slide-in animation to complete before autofocusing the input.
-  // This prevents scrolling to the input during the animation.
-
-  Object(external_wp_element_["useEffect"])(() => {
-    const delayedFocus = setTimeout(() => {
-      inputRef.current.focus();
-    }, SEARCH_FOCUS_DELAY);
-    return () => {
-      clearTimeout(delayedFocus);
-    };
-  }, []);
-  Object(external_wp_element_["useEffect"])(() => {
-    if (!search) {
-      return;
-    }
-
-    const count = Object(external_lodash_["filter"])(items, '_isVisible').length;
-    const resultsFoundMessage = Object(external_wp_i18n_["sprintf"])(
-    /* translators: %d: number of results. */
-    Object(external_wp_i18n_["_n"])('%d result found.', '%d results found.', count), count);
-    debouncedSpeak(resultsFoundMessage);
-  }, [items, search]);
-
-  const onClose = () => {
-    onSearch('');
-    onCloseSearch();
-  };
-
-  function onKeyDown(event) {
-    if (event.keyCode === external_wp_keycodes_["ESCAPE"]) {
-      event.stopPropagation();
-      onClose();
-    }
-  }
-
-  const menuTitleId = `components-navigation__menu-title-${menu}`;
-  const inputId = `components-navigation__menu-title-search-${menu}`;
-  /* translators: placeholder for menu search box. %s: menu title */
-
-  const placeholder = Object(external_wp_i18n_["sprintf"])(Object(external_wp_i18n_["__"])('Search in %s'), title);
-  return Object(external_wp_element_["createElement"])(MenuTitleSearchUI, {
-    className: "components-navigation__menu-title-search"
-  }, Object(external_wp_element_["createElement"])(build_module_icon["a" /* default */], {
-    icon: library_search["a" /* default */]
-  }), Object(external_wp_element_["createElement"])(visually_hidden["a" /* default */], {
-    as: "label",
-    htmlFor: inputId,
-    id: menuTitleId
-  }, placeholder), Object(external_wp_element_["createElement"])("input", {
-    autoComplete: "off",
-    className: "components-text-control__input",
-    id: inputId,
-    onChange: event => onSearch(event.target.value),
-    onKeyDown: onKeyDown,
-    placeholder: placeholder,
-    ref: inputRef,
-    type: "search",
-    value: search
-  }), Object(external_wp_element_["createElement"])(build_module_button["a" /* default */], {
-    isSmall: true,
-    isTertiary: true,
-    label: Object(external_wp_i18n_["__"])('Close search'),
-    onClick: onClose
-  }, Object(external_wp_element_["createElement"])(build_module_icon["a" /* default */], {
-    icon: close_small["a" /* default */]
-  })));
-}
-
-/* harmony default export */ var menu_title_search = (with_spoken_messages(MenuTitleSearch));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigation/menu/menu-title.js
-
-
-/**
- * WordPress dependencies
- */
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-
-
-function NavigationMenuTitle({
-  hasSearch,
-  onSearch,
-  search,
-  title,
-  titleAction
-}) {
-  const [isSearching, setIsSearching] = Object(external_wp_element_["useState"])(false);
-  const {
-    menu
-  } = useNavigationMenuContext();
-  const searchButtonRef = Object(external_wp_element_["useRef"])();
-
-  if (!title) {
-    return null;
-  }
-
-  const onCloseSearch = () => {
-    setIsSearching(false); // Wait for the slide-in animation to complete before focusing the search button.
-    // eslint-disable-next-line @wordpress/react-no-unsafe-timeout
-
-    setTimeout(() => {
-      searchButtonRef.current.focus();
-    }, SEARCH_FOCUS_DELAY);
-  };
-
-  const menuTitleId = `components-navigation__menu-title-${menu}`;
-  /* translators: search button label for menu search box. %s: menu title */
-
-  const searchButtonLabel = Object(external_wp_i18n_["sprintf"])(Object(external_wp_i18n_["__"])('Search in %s'), title);
-  return Object(external_wp_element_["createElement"])(MenuTitleUI, {
-    className: "components-navigation__menu-title"
-  }, !isSearching && Object(external_wp_element_["createElement"])(MenuTitleHeadingUI, {
-    as: "h2",
-    className: "components-navigation__menu-title-heading",
-    variant: "title.small"
-  }, Object(external_wp_element_["createElement"])("span", {
-    id: menuTitleId
-  }, title), (hasSearch || titleAction) && Object(external_wp_element_["createElement"])(MenuTitleActionsUI, null, titleAction, hasSearch && Object(external_wp_element_["createElement"])(build_module_button["a" /* default */], {
-    isSmall: true,
-    isTertiary: true,
-    label: searchButtonLabel,
-    onClick: () => setIsSearching(true),
-    ref: searchButtonRef
-  }, Object(external_wp_element_["createElement"])(build_module_icon["a" /* default */], {
-    icon: library_search["a" /* default */]
-  })))), isSearching && Object(external_wp_element_["createElement"])("div", {
-    className: Object(animate["b" /* getAnimateClassName */])({
-      type: 'slide-in',
-      origin: 'left'
-    })
-  }, Object(external_wp_element_["createElement"])(menu_title_search, {
-    onCloseSearch: onCloseSearch,
-    onSearch: onSearch,
-    search: search,
-    title: title
-  })));
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigation/menu/search-no-results-found.js
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-function NavigationSearchNoResultsFound({
-  search
-}) {
-  const {
-    navigationTree: {
-      items
-    }
-  } = useNavigationContext();
-  const resultsCount = Object(external_lodash_["filter"])(items, '_isVisible').length;
-
-  if (!search || !!resultsCount) {
-    return null;
-  }
-
-  return Object(external_wp_element_["createElement"])(ItemBaseUI, null, Object(external_wp_element_["createElement"])(ItemUI, null, Object(external_wp_i18n_["__"])('No results found.'), " "));
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigation/menu/index.js
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-
-
-
-
-
-function NavigationMenu(props) {
-  const {
-    backButtonLabel,
-    children,
-    className,
-    hasSearch,
-    menu = ROOT_MENU,
-    onBackButtonClick,
-    onSearch: setControlledSearch,
-    parentMenu,
-    search: controlledSearch,
-    isSearchDebouncing,
-    title,
-    titleAction
-  } = props;
-  const [uncontrolledSearch, setUncontrolledSearch] = Object(external_wp_element_["useState"])('');
-  useNavigationTreeMenu(props);
-  const {
-    activeMenu
-  } = useNavigationContext();
-  const context = {
-    menu,
-    search: uncontrolledSearch
-  }; // Keep the children rendered to make sure invisible items are included in the navigation tree
-
-  if (activeMenu !== menu) {
-    return Object(external_wp_element_["createElement"])(NavigationMenuContext.Provider, {
-      value: context
-    }, children);
-  }
-
-  const isControlledSearch = !!setControlledSearch;
-  const search = isControlledSearch ? controlledSearch : uncontrolledSearch;
-  const onSearch = isControlledSearch ? setControlledSearch : setUncontrolledSearch;
-  const menuTitleId = `components-navigation__menu-title-${menu}`;
-  const classes = classnames_default()('components-navigation__menu', className);
-  return Object(external_wp_element_["createElement"])(NavigationMenuContext.Provider, {
-    value: context
-  }, Object(external_wp_element_["createElement"])(MenuUI, {
-    className: classes
-  }, (parentMenu || onBackButtonClick) && Object(external_wp_element_["createElement"])(back_button, {
-    backButtonLabel: backButtonLabel,
-    parentMenu: parentMenu,
-    onClick: onBackButtonClick
-  }), Object(external_wp_element_["createElement"])(NavigationMenuTitle, {
-    hasSearch: hasSearch,
-    onSearch: onSearch,
-    search: search,
-    title: title,
-    titleAction: titleAction
-  }), Object(external_wp_element_["createElement"])(navigable_container_menu, null, Object(external_wp_element_["createElement"])("ul", {
-    "aria-labelledby": menuTitleId
-  }, children, search && !isSearchDebouncing && Object(external_wp_element_["createElement"])(NavigationSearchNoResultsFound, {
-    search: search
-  })))));
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/notice/index.js
-
-
-/**
- * External dependencies
- */
-
-
-/**
- * WordPress dependencies
- */
-
-
-
-
-
-/**
- * Internal dependencies
- */
-
-
-/** @typedef {import('@wordpress/element').WPElement} WPElement */
-
-/**
- * Custom hook which announces the message with the given politeness, if a
- * valid message is provided.
- *
- * @param {string|WPElement}     [message]  Message to announce.
- * @param {'polite'|'assertive'} politeness Politeness to announce.
- */
-
-function useSpokenMessage(message, politeness) {
-  const spokenMessage = typeof message === 'string' ? message : Object(external_wp_element_["renderToString"])(message);
-  Object(external_wp_element_["useEffect"])(() => {
-    if (spokenMessage) {
-      Object(external_wp_a11y_["speak"])(spokenMessage, politeness);
-    }
-  }, [spokenMessage, politeness]);
-}
-/**
- * Given a notice status, returns an assumed default politeness for the status.
- * Defaults to 'assertive'.
- *
- * @param {string} [status] Notice status.
- *
- * @return {'polite'|'assertive'} Notice politeness.
- */
-
-
-function getDefaultPoliteness(status) {
-  switch (status) {
-    case 'success':
-    case 'warning':
-    case 'info':
-      return 'polite';
-
-    case 'error':
-    default:
-      return 'assertive';
-  }
-}
-
-function Notice({
-  className,
-  status = 'info',
-  children,
-  spokenMessage = children,
-  onRemove = external_lodash_["noop"],
-  isDismissible = true,
-  actions = [],
-  politeness = getDefaultPoliteness(status),
-  __unstableHTML
-}) {
-  useSpokenMessage(spokenMessage, politeness);
-  const classes = classnames_default()(className, 'components-notice', 'is-' + status, {
-    'is-dismissible': isDismissible
-  });
-
-  if (__unstableHTML) {
-    children = Object(external_wp_element_["createElement"])(external_wp_element_["RawHTML"], null, children);
-  }
-
-  return Object(external_wp_element_["createElement"])("div", {
-    className: classes
-  }, Object(external_wp_element_["createElement"])("div", {
-    className: "components-notice__content"
-  }, children, Object(external_wp_element_["createElement"])("div", {
-    className: "components-notice__actions"
-  }, actions.map(({
-    className: buttonCustomClasses,
-    label,
-    isPrimary,
-    noDefaultClasses = false,
-    onClick,
-    url
-  }, index) => {
-    return Object(external_wp_element_["createElement"])(build_module_button["a" /* default */], {
-      key: index,
-      href: url,
-      isPrimary: isPrimary,
-      isSecondary: !noDefaultClasses && !url,
-      isLink: !noDefaultClasses && !!url,
-      onClick: url ? undefined : onClick,
-      className: classnames_default()('components-notice__action', buttonCustomClasses)
-    }, label);
-  }))), isDismissible && Object(external_wp_element_["createElement"])(build_module_button["a" /* default */], {
-    className: "components-notice__dismiss",
-    icon: library_close["a" /* default */],
-    label: Object(external_wp_i18n_["__"])('Dismiss this notice'),
-    onClick: onRemove,
-    showTooltip: false
-  }));
-}
-
-/* harmony default export */ var build_module_notice = (Notice);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/notice/list.js
-
-
-
-/**
- * External dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-/**
- * Renders a list of notices.
- *
- * @param  {Object}   $0           Props passed to the component.
- * @param  {Array}    $0.notices   Array of notices to render.
- * @param  {Function} $0.onRemove  Function called when a notice should be removed / dismissed.
- * @param  {Object}   $0.className Name of the class used by the component.
- * @param  {Object}   $0.children  Array of children to be rendered inside the notice list.
- * @return {Object}                The rendered notices list.
- */
-
-function NoticeList({
-  notices,
-  onRemove = external_lodash_["noop"],
-  className,
-  children
-}) {
-  const removeNotice = id => () => onRemove(id);
-
-  className = classnames_default()('components-notice-list', className);
-  return Object(external_wp_element_["createElement"])("div", {
-    className: className
-  }, children, [...notices].reverse().map(notice => Object(external_wp_element_["createElement"])(build_module_notice, Object(esm_extends["a" /* default */])({}, Object(external_lodash_["omit"])(notice, ['content']), {
-    key: notice.id,
-    onRemove: removeNotice(notice.id)
-  }), notice.content)));
-}
-
-/* harmony default export */ var list = (NoticeList);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/panel/header.js
-
-
-function PanelHeader({
-  label,
-  children
-}) {
-  return Object(external_wp_element_["createElement"])("div", {
-    className: "components-panel__header"
-  }, label && Object(external_wp_element_["createElement"])("h2", null, label), children);
-}
-
-/* harmony default export */ var panel_header = (PanelHeader);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/panel/index.js
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-function Panel({
-  header,
-  className,
-  children
-}, ref) {
-  const classNames = classnames_default()(className, 'components-panel');
-  return Object(external_wp_element_["createElement"])("div", {
-    className: classNames,
-    ref: ref
-  }, header && Object(external_wp_element_["createElement"])(panel_header, {
-    label: header
-  }), children);
-}
-
-/* harmony default export */ var panel = (Object(external_wp_element_["forwardRef"])(Panel));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/panel/body.js
-
-
-
-/**
- * External dependencies
- */
-
-
-/**
- * WordPress dependencies
- */
-
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-function PanelBody({
-  buttonProps = {},
-  children,
-  className,
-  icon,
-  initialOpen,
-  onToggle = external_lodash_["noop"],
-  opened,
-  title,
-  scrollAfterOpen = true
-}, ref) {
-  const [isOpened, setIsOpened] = use_controlled_state(opened, {
-    initial: initialOpen === undefined ? true : initialOpen
-  });
-  const nodeRef = Object(external_wp_element_["useRef"])(); // Defaults to 'smooth' scrolling
-  // https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView
-
-  const scrollBehavior = Object(external_wp_compose_["useReducedMotion"])() ? 'auto' : 'smooth';
-
-  const handleOnToggle = event => {
-    event.preventDefault();
-    const next = !isOpened;
-    setIsOpened(next);
-    onToggle(next);
-  }; // Ref is used so that the effect does not re-run upon scrollAfterOpen changing value
-
-
-  const scrollAfterOpenRef = Object(external_wp_element_["useRef"])();
-  scrollAfterOpenRef.current = scrollAfterOpen; // Runs after initial render
-
-  use_update_effect(() => {
-    var _nodeRef$current;
-
-    if (isOpened && scrollAfterOpenRef.current && (_nodeRef$current = nodeRef.current) !== null && _nodeRef$current !== void 0 && _nodeRef$current.scrollIntoView) {
-      /*
-       * Scrolls the content into view when visible.
-       * This improves the UX when there are multiple stacking <PanelBody />
-       * components in a scrollable container.
-       */
-      nodeRef.current.scrollIntoView({
-        inline: 'nearest',
-        block: 'nearest',
-        behavior: scrollBehavior
-      });
-    }
-  }, [isOpened, scrollBehavior]);
-  const classes = classnames_default()('components-panel__body', className, {
-    'is-opened': isOpened
-  });
-  return Object(external_wp_element_["createElement"])("div", {
-    className: classes,
-    ref: Object(external_wp_compose_["useMergeRefs"])([nodeRef, ref])
-  }, Object(external_wp_element_["createElement"])(PanelBodyTitle, Object(esm_extends["a" /* default */])({
-    icon: icon,
-    isOpened: isOpened,
-    onClick: handleOnToggle,
-    title: title
-  }, buttonProps)), typeof children === 'function' ? children({
-    opened: isOpened
-  }) : isOpened && children);
-}
-const PanelBodyTitle = Object(external_wp_element_["forwardRef"])(({
-  isOpened,
-  icon,
-  title,
-  ...props
-}, ref) => {
-  if (!title) return null;
-  return Object(external_wp_element_["createElement"])("h2", {
-    className: "components-panel__body-title"
-  }, Object(external_wp_element_["createElement"])(build_module_button["a" /* default */], Object(esm_extends["a" /* default */])({
-    className: "components-panel__body-toggle",
-    "aria-expanded": isOpened,
-    ref: ref
-  }, props), Object(external_wp_element_["createElement"])("span", {
-    "aria-hidden": "true"
-  }, Object(external_wp_element_["createElement"])(components_build_module_icon["a" /* default */], {
-    className: "components-panel__arrow",
-    icon: isOpened ? chevron_up["a" /* default */] : chevron_down["a" /* default */]
-  })), title, icon && Object(external_wp_element_["createElement"])(components_build_module_icon["a" /* default */], {
-    icon: icon,
-    className: "components-panel__icon",
-    size: 20
-  })));
-});
-const body_ForwardedComponent = Object(external_wp_element_["forwardRef"])(PanelBody);
-body_ForwardedComponent.displayName = 'PanelBody';
-/* harmony default export */ var panel_body = (body_ForwardedComponent);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/panel/row.js
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-const PanelRow = Object(external_wp_element_["forwardRef"])(({
-  className,
-  children
-}, ref) => Object(external_wp_element_["createElement"])("div", {
-  className: classnames_default()('components-panel__row', className),
-  ref: ref
-}, children));
-/* harmony default export */ var panel_row = (PanelRow);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/placeholder/index.js
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-/**
- * Renders a placeholder. Normally used by blocks to render their empty state.
- *
- * @param {Object}    props                The component props.
- * @param {WPIcon}    props.icon           An icon rendered before the label.
- * @param {WPElement} props.children       Children to be rendered.
- * @param {string}    props.label          Title of the placeholder.
- * @param {string}    props.instructions   Instructions of the placeholder.
- * @param {string}    props.className      Class to set on the container div.
- * @param {Object}    props.notices        A rendered notices list.
- * @param {Object}    props.preview        Preview to be rendered in the placeholder.
- * @param {boolean}   props.isColumnLayout Whether a column layout should be used.
- *
- * @return {Object}       The rendered placeholder.
- */
-
-function Placeholder({
-  icon,
-  children,
-  label,
-  instructions,
-  className,
-  notices,
-  preview,
-  isColumnLayout,
-  ...additionalProps
-}) {
-  const [resizeListener, {
-    width
-  }] = Object(external_wp_compose_["useResizeObserver"])(); // Since `useResizeObserver` will report a width of `null` until after the
-  // first render, avoid applying any modifier classes until width is known.
-
-  let modifierClassNames;
-
-  if (typeof width === 'number') {
-    modifierClassNames = {
-      'is-large': width >= 480,
-      'is-medium': width >= 160 && width < 480,
-      'is-small': width < 160
-    };
-  }
-
-  const classes = classnames_default()('components-placeholder', className, modifierClassNames);
-  const fieldsetClasses = classnames_default()('components-placeholder__fieldset', {
-    'is-column-layout': isColumnLayout
-  });
-  return Object(external_wp_element_["createElement"])("div", Object(esm_extends["a" /* default */])({}, additionalProps, {
-    className: classes
-  }), resizeListener, notices, preview && Object(external_wp_element_["createElement"])("div", {
-    className: "components-placeholder__preview"
-  }, preview), Object(external_wp_element_["createElement"])("div", {
-    className: "components-placeholder__label"
-  }, Object(external_wp_element_["createElement"])(components_build_module_icon["a" /* default */], {
-    icon: icon
-  }), label), !!instructions && Object(external_wp_element_["createElement"])("div", {
-    className: "components-placeholder__instructions"
-  }, instructions), Object(external_wp_element_["createElement"])("div", {
-    className: fieldsetClasses
-  }, children));
-}
-
-/* harmony default export */ var build_module_placeholder = (Placeholder);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/query-controls/terms.js
-/**
- * External dependencies
- */
-
-/**
- * Returns terms in a tree form.
- *
- * @param {Array} flatTerms  Array of terms in flat format.
- *
- * @return {Array} Array of terms in tree format.
- */
-
-function buildTermsTree(flatTerms) {
-  const flatTermsWithParentAndChildren = flatTerms.map(term => {
-    return {
-      children: [],
-      parent: null,
-      ...term
-    };
-  });
-  const termsByParent = Object(external_lodash_["groupBy"])(flatTermsWithParentAndChildren, 'parent');
-
-  if (termsByParent.null && termsByParent.null.length) {
-    return flatTermsWithParentAndChildren;
-  }
-
-  const fillWithChildren = terms => {
-    return terms.map(term => {
-      const children = termsByParent[term.id];
-      return { ...term,
-        children: children && children.length ? fillWithChildren(children) : []
-      };
-    });
-  };
-
-  return fillWithChildren(termsByParent['0'] || []);
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/tree-select/index.js
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-function tree_select_getSelectOptions(tree, level = 0) {
-  return Object(external_lodash_["flatMap"])(tree, treeNode => [{
-    value: treeNode.id,
-    label: Object(external_lodash_["repeat"])('\u00A0', level * 3) + Object(external_lodash_["unescape"])(treeNode.name)
-  }, ...tree_select_getSelectOptions(treeNode.children || [], level + 1)]);
-}
-
-function TreeSelect({
-  label,
-  noOptionLabel,
-  onChange,
-  selectedId,
-  tree,
-  ...props
-}) {
-  const options = Object(external_wp_element_["useMemo"])(() => {
-    return Object(external_lodash_["compact"])([noOptionLabel && {
-      value: '',
-      label: noOptionLabel
-    }, ...tree_select_getSelectOptions(tree)]);
-  }, [noOptionLabel, tree]);
-  return Object(external_wp_element_["createElement"])(select_control, Object(esm_extends["a" /* default */])({
-    label,
-    options,
-    onChange,
-    value: selectedId
-  }, props));
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/query-controls/category-select.js
-
-
-
-/**
- * Internal dependencies
- */
-
-
-/**
- * WordPress dependencies
- */
-
-
-function CategorySelect({
-  label,
-  noOptionLabel,
-  categoriesList,
-  selectedCategoryId,
-  onChange,
-  ...props
-}) {
-  const termsTree = Object(external_wp_element_["useMemo"])(() => {
-    return buildTermsTree(categoriesList);
-  }, [categoriesList]);
-  return Object(external_wp_element_["createElement"])(TreeSelect, Object(esm_extends["a" /* default */])({
-    label,
-    noOptionLabel,
-    onChange,
-    tree: termsTree,
-    selectedId: selectedCategoryId
-  }, props));
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/query-controls/author-select.js
-
-
-/**
- * Internal dependencies
- */
-
-
-function AuthorSelect({
-  label,
-  noOptionLabel,
-  authorList,
-  selectedAuthorId,
-  onChange
-}) {
-  if (!authorList) return null;
-  const termsTree = buildTermsTree(authorList);
-  return Object(external_wp_element_["createElement"])(TreeSelect, {
-    label,
-    noOptionLabel,
-    onChange,
-    tree: termsTree,
-    selectedId: selectedAuthorId
-  });
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/query-controls/index.js
-
-
-/**
- * WordPress dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-
-
-const DEFAULT_MIN_ITEMS = 1;
-const DEFAULT_MAX_ITEMS = 100;
-const MAX_CATEGORIES_SUGGESTIONS = 20;
-function QueryControls({
-  authorList,
-  selectedAuthorId,
-  categoriesList,
-  selectedCategoryId,
-  categorySuggestions,
-  selectedCategories,
-  numberOfItems,
-  order,
-  orderBy,
-  maxItems = DEFAULT_MAX_ITEMS,
-  minItems = DEFAULT_MIN_ITEMS,
-  onCategoryChange,
-  onAuthorChange,
-  onNumberOfItemsChange,
-  onOrderChange,
-  onOrderByChange
-}) {
-  return [onOrderChange && onOrderByChange && Object(external_wp_element_["createElement"])(select_control, {
-    key: "query-controls-order-select",
-    label: Object(external_wp_i18n_["__"])('Order by'),
-    value: `${orderBy}/${order}`,
-    options: [{
-      label: Object(external_wp_i18n_["__"])('Newest to oldest'),
-      value: 'date/desc'
-    }, {
-      label: Object(external_wp_i18n_["__"])('Oldest to newest'),
-      value: 'date/asc'
-    }, {
-      /* translators: label for ordering posts by title in ascending order */
-      label: Object(external_wp_i18n_["__"])('A → Z'),
-      value: 'title/asc'
-    }, {
-      /* translators: label for ordering posts by title in descending order */
-      label: Object(external_wp_i18n_["__"])('Z → A'),
-      value: 'title/desc'
-    }],
-    onChange: value => {
-      const [newOrderBy, newOrder] = value.split('/');
-
-      if (newOrder !== order) {
-        onOrderChange(newOrder);
-      }
-
-      if (newOrderBy !== orderBy) {
-        onOrderByChange(newOrderBy);
-      }
-    }
-  }), categoriesList && onCategoryChange && Object(external_wp_element_["createElement"])(CategorySelect, {
-    key: "query-controls-category-select",
-    categoriesList: categoriesList,
-    label: Object(external_wp_i18n_["__"])('Category'),
-    noOptionLabel: Object(external_wp_i18n_["__"])('All'),
-    selectedCategoryId: selectedCategoryId,
-    onChange: onCategoryChange
-  }), categorySuggestions && onCategoryChange && Object(external_wp_element_["createElement"])(form_token_field, {
-    key: "query-controls-categories-select",
-    label: Object(external_wp_i18n_["__"])('Categories'),
-    value: selectedCategories && selectedCategories.map(item => ({
-      id: item.id,
-      value: item.name || item.value
-    })),
-    suggestions: Object.keys(categorySuggestions),
-    onChange: onCategoryChange,
-    maxSuggestions: MAX_CATEGORIES_SUGGESTIONS
-  }), onAuthorChange && Object(external_wp_element_["createElement"])(AuthorSelect, {
-    key: "query-controls-author-select",
-    authorList: authorList,
-    label: Object(external_wp_i18n_["__"])('Author'),
-    noOptionLabel: Object(external_wp_i18n_["__"])('All'),
-    selectedAuthorId: selectedAuthorId,
-    onChange: onAuthorChange
-  }), onNumberOfItemsChange && Object(external_wp_element_["createElement"])(range_control, {
-    key: "query-controls-range-control",
-    label: Object(external_wp_i18n_["__"])('Number of items'),
-    value: numberOfItems,
-    onChange: onNumberOfItemsChange,
-    min: minItems,
-    max: maxItems,
-    required: true
-  })];
-}
-
-// EXTERNAL MODULE: ./node_modules/reakit-warning/es/warning.js
-var warning = __webpack_require__("WnOg");
-
-// CONCATENATED MODULE: ./node_modules/reakit/es/__keys-d251e56b.js
-// Automatically generated
-var RADIO_STATE_KEYS = ["baseId", "unstable_idCountRef", "unstable_virtual", "rtl", "orientation", "items", "groups", "currentId", "loop", "wrap", "shift", "unstable_moves", "unstable_hasActiveWidget", "unstable_includesBaseElement", "state", "setBaseId", "registerItem", "unregisterItem", "registerGroup", "unregisterGroup", "move", "next", "previous", "up", "down", "first", "last", "sort", "unstable_setVirtual", "setRTL", "setOrientation", "setCurrentId", "setLoop", "setWrap", "setShift", "reset", "unstable_setIncludesBaseElement", "unstable_setHasActiveWidget", "setState"];
-var RADIO_KEYS = [].concat(RADIO_STATE_KEYS, ["value", "checked", "unstable_checkOnFocus"]);
-var RADIO_GROUP_KEYS = RADIO_STATE_KEYS;
-
-
-
-// CONCATENATED MODULE: ./node_modules/reakit/es/Radio/Radio.js
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-function getChecked(options) {
-  if (typeof options.checked !== "undefined") {
-    return options.checked;
-  }
-
-  return typeof options.value !== "undefined" && options.state === options.value;
-}
-
-function useInitialChecked(options) {
-  var _React$useState = Object(external_React_["useState"])(function () {
-    return getChecked(options);
-  }),
-      initialChecked = _React$useState[0];
-
-  var _React$useState2 = Object(external_React_["useState"])(options.currentId),
-      initialCurrentId = _React$useState2[0];
-
-  var id = options.id,
-      setCurrentId = options.setCurrentId;
-  Object(external_React_["useEffect"])(function () {
-    if (initialChecked && id && initialCurrentId !== id) {
-      setCurrentId === null || setCurrentId === void 0 ? void 0 : setCurrentId(id);
-    }
-  }, [initialChecked, id, setCurrentId, initialCurrentId]);
-}
-
-function fireChange(element, onChange) {
-  var event = Object(createEvent["a" /* createEvent */])(element, "change");
-  Object.defineProperties(event, {
-    type: {
-      value: "change"
-    },
-    target: {
-      value: element
-    },
-    currentTarget: {
-      value: element
-    }
-  });
-  onChange === null || onChange === void 0 ? void 0 : onChange(event);
-}
-
-var useRadio = Object(createHook["a" /* createHook */])({
-  name: "Radio",
-  compose: CompositeItem["b" /* useCompositeItem */],
-  keys: RADIO_KEYS,
-  useOptions: function useOptions(_ref, _ref2) {
-    var _options$value;
-
-    var value = _ref2.value,
-        checked = _ref2.checked;
-
-    var _ref$unstable_clickOn = _ref.unstable_clickOnEnter,
-        unstable_clickOnEnter = _ref$unstable_clickOn === void 0 ? false : _ref$unstable_clickOn,
-        _ref$unstable_checkOn = _ref.unstable_checkOnFocus,
-        unstable_checkOnFocus = _ref$unstable_checkOn === void 0 ? true : _ref$unstable_checkOn,
-        options = Object(_rollupPluginBabelHelpers_1f0bf8c2["a" /* _ */])(_ref, ["unstable_clickOnEnter", "unstable_checkOnFocus"]);
-
-    return Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({
-      checked: checked,
-      unstable_clickOnEnter: unstable_clickOnEnter,
-      unstable_checkOnFocus: unstable_checkOnFocus
-    }, options), {}, {
-      value: (_options$value = options.value) != null ? _options$value : value
-    });
-  },
-  useProps: function useProps(options, _ref3) {
-    var htmlRef = _ref3.ref,
-        htmlOnChange = _ref3.onChange,
-        htmlOnClick = _ref3.onClick,
-        htmlProps = Object(_rollupPluginBabelHelpers_1f0bf8c2["a" /* _ */])(_ref3, ["ref", "onChange", "onClick"]);
-
-    var ref = Object(external_React_["useRef"])(null);
-
-    var _React$useState3 = Object(external_React_["useState"])(true),
-        isNativeRadio = _React$useState3[0],
-        setIsNativeRadio = _React$useState3[1];
-
-    var checked = getChecked(options);
-    var isCurrentItemRef = Object(useLiveRef["a" /* useLiveRef */])(options.currentId === options.id);
-    var onChangeRef = Object(useLiveRef["a" /* useLiveRef */])(htmlOnChange);
-    var onClickRef = Object(useLiveRef["a" /* useLiveRef */])(htmlOnClick);
-    useInitialChecked(options);
-    Object(external_React_["useEffect"])(function () {
-      var element = ref.current;
-
-      if (!element) {
-         false ? undefined : void 0;
-        return;
-      }
-
-      if (element.tagName !== "INPUT" || element.type !== "radio") {
-        setIsNativeRadio(false);
-      }
-    }, []);
-    var onChange = Object(external_React_["useCallback"])(function (event) {
-      var _onChangeRef$current, _options$setState;
-
-      (_onChangeRef$current = onChangeRef.current) === null || _onChangeRef$current === void 0 ? void 0 : _onChangeRef$current.call(onChangeRef, event);
-      if (event.defaultPrevented) return;
-      if (options.disabled) return;
-      (_options$setState = options.setState) === null || _options$setState === void 0 ? void 0 : _options$setState.call(options, options.value);
-    }, [options.disabled, options.setState, options.value]);
-    var onClick = Object(external_React_["useCallback"])(function (event) {
-      var _onClickRef$current;
-
-      (_onClickRef$current = onClickRef.current) === null || _onClickRef$current === void 0 ? void 0 : _onClickRef$current.call(onClickRef, event);
-      if (event.defaultPrevented) return;
-      if (isNativeRadio) return;
-      fireChange(event.currentTarget, onChange);
-    }, [onChange, isNativeRadio]);
-    Object(external_React_["useEffect"])(function () {
-      var element = ref.current;
-      if (!element) return;
-
-      if (options.unstable_moves && isCurrentItemRef.current && options.unstable_checkOnFocus) {
-        fireChange(element, onChange);
-      }
-    }, [options.unstable_moves, options.unstable_checkOnFocus, onChange]);
-    return Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({
-      ref: Object(useForkRef["a" /* useForkRef */])(ref, htmlRef),
-      role: !isNativeRadio ? "radio" : undefined,
-      type: isNativeRadio ? "radio" : undefined,
-      value: isNativeRadio ? options.value : undefined,
-      name: isNativeRadio ? options.baseId : undefined,
-      "aria-checked": checked,
-      checked: checked,
-      onChange: onChange,
-      onClick: onClick
-    }, htmlProps);
-  }
-});
-var Radio = Object(createComponent["a" /* createComponent */])({
-  as: "input",
-  memo: true,
-  useHook: useRadio
-});
-
-
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/radio-context/index.js
-/**
- * WordPress dependencies
- */
-
-const RadioContext = Object(external_wp_element_["createContext"])({
-  state: null,
-  setState: () => {}
-});
-/* harmony default export */ var radio_context = (RadioContext);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/radio/index.js
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-function radio_Radio({
-  children,
-  value,
-  ...props
-}, ref) {
-  const radioContext = Object(external_wp_element_["useContext"])(radio_context);
-  const checked = radioContext.state === value;
-  return Object(external_wp_element_["createElement"])(Radio, Object(esm_extends["a" /* default */])({
-    ref: ref,
-    as: build_module_button["a" /* default */],
-    isPrimary: checked,
-    isSecondary: !checked,
-    value: value
-  }, radioContext, props), children || value);
-}
-
-/* harmony default export */ var build_module_radio = (Object(external_wp_element_["forwardRef"])(radio_Radio));
-
-// CONCATENATED MODULE: ./node_modules/reakit/es/Radio/RadioState.js
-
-
-
-
-
-
-
-
-
-
-
-
-
-function useRadioState(initialState) {
-  if (initialState === void 0) {
-    initialState = {};
-  }
-
-  var _useSealedState = useSealedState(initialState),
-      initialValue = _useSealedState.state,
-      _useSealedState$loop = _useSealedState.loop,
-      loop = _useSealedState$loop === void 0 ? true : _useSealedState$loop,
-      sealed = Object(_rollupPluginBabelHelpers_1f0bf8c2["a" /* _ */])(_useSealedState, ["state", "loop"]);
-
-  var _React$useState = Object(external_React_["useState"])(initialValue),
-      state = _React$useState[0],
-      setState = _React$useState[1];
-
-  var composite = useCompositeState(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, sealed), {}, {
-    loop: loop
-  }));
-  return Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, composite), {}, {
-    state: state,
-    setState: setState
-  });
-}
-
-
-
-// CONCATENATED MODULE: ./node_modules/reakit/es/Radio/RadioGroup.js
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-var useRadioGroup = Object(createHook["a" /* createHook */])({
-  name: "RadioGroup",
-  compose: useComposite,
-  keys: RADIO_GROUP_KEYS,
-  useProps: function useProps(_, htmlProps) {
-    return Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({
-      role: "radiogroup"
-    }, htmlProps);
-  }
-});
-var RadioGroup = Object(createComponent["a" /* createComponent */])({
-  as: "div",
-  useHook: useRadioGroup,
-  useCreateElement: function useCreateElement$1(type, props, children) {
-     false ? undefined : void 0;
-    return Object(useCreateElement["a" /* useCreateElement */])(type, props, children);
-  }
-});
-
-
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/radio-group/index.js
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-function radio_group_RadioGroup({
-  label,
-  checked,
-  defaultChecked,
-  disabled,
-  onChange,
-  ...props
-}, ref) {
-  const radioState = useRadioState({
-    state: defaultChecked,
-    baseId: props.id
-  });
-  const radioContext = { ...radioState,
-    disabled,
-    // controlled or uncontrolled
-    state: checked !== null && checked !== void 0 ? checked : radioState.state,
-    setState: onChange !== null && onChange !== void 0 ? onChange : radioState.setState
-  };
-  return Object(external_wp_element_["createElement"])(radio_context.Provider, {
-    value: radioContext
-  }, Object(external_wp_element_["createElement"])(RadioGroup, Object(esm_extends["a" /* default */])({
-    ref: ref,
-    as: button_group,
-    "aria-label": label
-  }, radioState, props)));
-}
-
-/* harmony default export */ var radio_group = (Object(external_wp_element_["forwardRef"])(radio_group_RadioGroup));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/radio-control/index.js
-
-
-
-/**
- * External dependencies
- */
-
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-function RadioControl({
-  label,
-  className,
-  selected,
-  help,
-  onChange,
-  options = [],
-  ...props
-}) {
-  const instanceId = Object(external_wp_compose_["useInstanceId"])(RadioControl);
-  const id = `inspector-radio-control-${instanceId}`;
-
-  const onChangeValue = event => onChange(event.target.value);
-
-  return !Object(external_lodash_["isEmpty"])(options) && Object(external_wp_element_["createElement"])(base_control, {
-    label: label,
-    id: id,
-    help: help,
-    className: classnames_default()(className, 'components-radio-control')
-  }, options.map((option, index) => Object(external_wp_element_["createElement"])("div", {
-    key: `${id}-${index}`,
-    className: "components-radio-control__option"
-  }, Object(external_wp_element_["createElement"])("input", Object(esm_extends["a" /* default */])({
-    id: `${id}-${index}`,
-    className: "components-radio-control__input",
-    type: "radio",
-    name: id,
-    value: option.value,
-    onChange: onChangeValue,
-    checked: option.value === selected,
-    "aria-describedby": !!help ? `${id}__help` : undefined
-  }, props)), Object(external_wp_element_["createElement"])("label", {
-    htmlFor: `${id}-${index}`
-  }, option.label))));
-}
-
-// CONCATENATED MODULE: ./node_modules/re-resizable/lib/resizer.js
-var resizer_extends = (undefined && undefined.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-var resizer_assign = (undefined && undefined.__assign) || function () {
-    resizer_assign = Object.assign || function(t) {
-        for (var s, i = 1, n = arguments.length; i < n; i++) {
-            s = arguments[i];
-            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
-                t[p] = s[p];
-        }
-        return t;
-    };
-    return resizer_assign.apply(this, arguments);
-};
-
-var resizer_styles = {
-    top: {
-        width: '100%',
-        height: '10px',
-        top: '-5px',
-        left: '0px',
-        cursor: 'row-resize',
-    },
-    right: {
-        width: '10px',
-        height: '100%',
-        top: '0px',
-        right: '-5px',
-        cursor: 'col-resize',
-    },
-    bottom: {
-        width: '100%',
-        height: '10px',
-        bottom: '-5px',
-        left: '0px',
-        cursor: 'row-resize',
-    },
-    left: {
-        width: '10px',
-        height: '100%',
-        top: '0px',
-        left: '-5px',
-        cursor: 'col-resize',
-    },
-    topRight: {
-        width: '20px',
-        height: '20px',
-        position: 'absolute',
-        right: '-10px',
-        top: '-10px',
-        cursor: 'ne-resize',
-    },
-    bottomRight: {
-        width: '20px',
-        height: '20px',
-        position: 'absolute',
-        right: '-10px',
-        bottom: '-10px',
-        cursor: 'se-resize',
-    },
-    bottomLeft: {
-        width: '20px',
-        height: '20px',
-        position: 'absolute',
-        left: '-10px',
-        bottom: '-10px',
-        cursor: 'sw-resize',
-    },
-    topLeft: {
-        width: '20px',
-        height: '20px',
-        position: 'absolute',
-        left: '-10px',
-        top: '-10px',
-        cursor: 'nw-resize',
-    },
-};
-var resizer_Resizer = /** @class */ (function (_super) {
-    resizer_extends(Resizer, _super);
-    function Resizer() {
-        var _this = _super !== null && _super.apply(this, arguments) || this;
-        _this.onMouseDown = function (e) {
-            _this.props.onResizeStart(e, _this.props.direction);
-        };
-        _this.onTouchStart = function (e) {
-            _this.props.onResizeStart(e, _this.props.direction);
-        };
-        return _this;
-    }
-    Resizer.prototype.render = function () {
-        return (external_React_["createElement"]("div", { className: this.props.className || '', style: resizer_assign(resizer_assign({ position: 'absolute', userSelect: 'none' }, resizer_styles[this.props.direction]), (this.props.replaceStyles || {})), onMouseDown: this.onMouseDown, onTouchStart: this.onTouchStart }, this.props.children));
-    };
-    return Resizer;
-}(external_React_["PureComponent"]));
-
-
-// EXTERNAL MODULE: ./node_modules/fast-memoize/src/index.js
-var fast_memoize_src = __webpack_require__("75pU");
-var src_default = /*#__PURE__*/__webpack_require__.n(fast_memoize_src);
-
-// CONCATENATED MODULE: ./node_modules/re-resizable/lib/index.js
-var lib_extends = (undefined && undefined.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-var lib_assign = (undefined && undefined.__assign) || function () {
-    lib_assign = Object.assign || function(t) {
-        for (var s, i = 1, n = arguments.length; i < n; i++) {
-            s = arguments[i];
-            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
-                t[p] = s[p];
-        }
-        return t;
-    };
-    return lib_assign.apply(this, arguments);
-};
-
-
-
-var DEFAULT_SIZE = {
-    width: 'auto',
-    height: 'auto',
-};
-var clamp = src_default()(function (n, min, max) { return Math.max(Math.min(n, max), min); });
-var snap = src_default()(function (n, size) { return Math.round(n / size) * size; });
-var hasDirection = src_default()(function (dir, target) {
-    return new RegExp(dir, 'i').test(target);
-});
-// INFO: In case of window is a Proxy and does not porxy Events correctly, use isTouchEvent & isMouseEvent to distinguish event type instead of `instanceof`.
-var isTouchEvent = function (event) {
-    return Boolean(event.touches && event.touches.length);
-};
-var isMouseEvent = function (event) {
-    return Boolean((event.clientX || event.clientX === 0) &&
-        (event.clientY || event.clientY === 0));
-};
-var findClosestSnap = src_default()(function (n, snapArray, snapGap) {
-    if (snapGap === void 0) { snapGap = 0; }
-    var closestGapIndex = snapArray.reduce(function (prev, curr, index) { return (Math.abs(curr - n) < Math.abs(snapArray[prev] - n) ? index : prev); }, 0);
-    var gap = Math.abs(snapArray[closestGapIndex] - n);
-    return snapGap === 0 || gap < snapGap ? snapArray[closestGapIndex] : n;
-});
-var endsWith = src_default()(function (str, searchStr) {
-    return str.substr(str.length - searchStr.length, searchStr.length) === searchStr;
-});
-var getStringSize = src_default()(function (n) {
-    n = n.toString();
-    if (n === 'auto') {
-        return n;
-    }
-    if (endsWith(n, 'px')) {
-        return n;
-    }
-    if (endsWith(n, '%')) {
-        return n;
-    }
-    if (endsWith(n, 'vh')) {
-        return n;
-    }
-    if (endsWith(n, 'vw')) {
-        return n;
-    }
-    if (endsWith(n, 'vmax')) {
-        return n;
-    }
-    if (endsWith(n, 'vmin')) {
-        return n;
-    }
-    return n + "px";
-});
-var getPixelSize = function (size, parentSize, innerWidth, innerHeight) {
-    if (size && typeof size === 'string') {
-        if (endsWith(size, 'px')) {
-            return Number(size.replace('px', ''));
-        }
-        if (endsWith(size, '%')) {
-            var ratio = Number(size.replace('%', '')) / 100;
-            return parentSize * ratio;
-        }
-        if (endsWith(size, 'vw')) {
-            var ratio = Number(size.replace('vw', '')) / 100;
-            return innerWidth * ratio;
-        }
-        if (endsWith(size, 'vh')) {
-            var ratio = Number(size.replace('vh', '')) / 100;
-            return innerHeight * ratio;
-        }
-    }
-    return size;
-};
-var calculateNewMax = src_default()(function (parentSize, innerWidth, innerHeight, maxWidth, maxHeight, minWidth, minHeight) {
-    maxWidth = getPixelSize(maxWidth, parentSize.width, innerWidth, innerHeight);
-    maxHeight = getPixelSize(maxHeight, parentSize.height, innerWidth, innerHeight);
-    minWidth = getPixelSize(minWidth, parentSize.width, innerWidth, innerHeight);
-    minHeight = getPixelSize(minHeight, parentSize.height, innerWidth, innerHeight);
-    return {
-        maxWidth: typeof maxWidth === 'undefined' ? undefined : Number(maxWidth),
-        maxHeight: typeof maxHeight === 'undefined' ? undefined : Number(maxHeight),
-        minWidth: typeof minWidth === 'undefined' ? undefined : Number(minWidth),
-        minHeight: typeof minHeight === 'undefined' ? undefined : Number(minHeight),
-    };
-});
-var definedProps = [
-    'as',
-    'style',
-    'className',
-    'grid',
-    'snap',
-    'bounds',
-    'boundsByDirection',
-    'size',
-    'defaultSize',
-    'minWidth',
-    'minHeight',
-    'maxWidth',
-    'maxHeight',
-    'lockAspectRatio',
-    'lockAspectRatioExtraWidth',
-    'lockAspectRatioExtraHeight',
-    'enable',
-    'handleStyles',
-    'handleClasses',
-    'handleWrapperStyle',
-    'handleWrapperClass',
-    'children',
-    'onResizeStart',
-    'onResize',
-    'onResizeStop',
-    'handleComponent',
-    'scale',
-    'resizeRatio',
-    'snapGap',
-];
-// HACK: This class is used to calculate % size.
-var baseClassName = '__resizable_base__';
-var lib_Resizable = /** @class */ (function (_super) {
-    lib_extends(Resizable, _super);
-    function Resizable(props) {
-        var _this = _super.call(this, props) || this;
-        _this.ratio = 1;
-        _this.resizable = null;
-        // For parent boundary
-        _this.parentLeft = 0;
-        _this.parentTop = 0;
-        // For boundary
-        _this.resizableLeft = 0;
-        _this.resizableRight = 0;
-        _this.resizableTop = 0;
-        _this.resizableBottom = 0;
-        // For target boundary
-        _this.targetLeft = 0;
-        _this.targetTop = 0;
-        _this.appendBase = function () {
-            if (!_this.resizable || !_this.window) {
-                return null;
-            }
-            var parent = _this.parentNode;
-            if (!parent) {
-                return null;
-            }
-            var element = _this.window.document.createElement('div');
-            element.style.width = '100%';
-            element.style.height = '100%';
-            element.style.position = 'absolute';
-            element.style.transform = 'scale(0, 0)';
-            element.style.left = '0';
-            element.style.flex = '0';
-            if (element.classList) {
-                element.classList.add(baseClassName);
-            }
-            else {
-                element.className += baseClassName;
-            }
-            parent.appendChild(element);
-            return element;
-        };
-        _this.removeBase = function (base) {
-            var parent = _this.parentNode;
-            if (!parent) {
-                return;
-            }
-            parent.removeChild(base);
-        };
-        _this.ref = function (c) {
-            if (c) {
-                _this.resizable = c;
-            }
-        };
-        _this.state = {
-            isResizing: false,
-            width: typeof (_this.propsSize && _this.propsSize.width) === 'undefined'
-                ? 'auto'
-                : _this.propsSize && _this.propsSize.width,
-            height: typeof (_this.propsSize && _this.propsSize.height) === 'undefined'
-                ? 'auto'
-                : _this.propsSize && _this.propsSize.height,
-            direction: 'right',
-            original: {
-                x: 0,
-                y: 0,
-                width: 0,
-                height: 0,
-            },
-            backgroundStyle: {
-                height: '100%',
-                width: '100%',
-                backgroundColor: 'rgba(0,0,0,0)',
-                cursor: 'auto',
-                opacity: 0,
-                position: 'fixed',
-                zIndex: 9999,
-                top: '0',
-                left: '0',
-                bottom: '0',
-                right: '0',
-            },
-            flexBasis: undefined,
-        };
-        _this.onResizeStart = _this.onResizeStart.bind(_this);
-        _this.onMouseMove = _this.onMouseMove.bind(_this);
-        _this.onMouseUp = _this.onMouseUp.bind(_this);
-        return _this;
-    }
-    Object.defineProperty(Resizable.prototype, "parentNode", {
-        get: function () {
-            if (!this.resizable) {
-                return null;
-            }
-            return this.resizable.parentNode;
-        },
-        enumerable: false,
-        configurable: true
-    });
-    Object.defineProperty(Resizable.prototype, "window", {
-        get: function () {
-            if (!this.resizable) {
-                return null;
-            }
-            if (!this.resizable.ownerDocument) {
-                return null;
-            }
-            return this.resizable.ownerDocument.defaultView;
-        },
-        enumerable: false,
-        configurable: true
-    });
-    Object.defineProperty(Resizable.prototype, "propsSize", {
-        get: function () {
-            return this.props.size || this.props.defaultSize || DEFAULT_SIZE;
-        },
-        enumerable: false,
-        configurable: true
-    });
-    Object.defineProperty(Resizable.prototype, "size", {
-        get: function () {
-            var width = 0;
-            var height = 0;
-            if (this.resizable && this.window) {
-                var orgWidth = this.resizable.offsetWidth;
-                var orgHeight = this.resizable.offsetHeight;
-                // HACK: Set position `relative` to get parent size.
-                //       This is because when re-resizable set `absolute`, I can not get base width correctly.
-                var orgPosition = this.resizable.style.position;
-                if (orgPosition !== 'relative') {
-                    this.resizable.style.position = 'relative';
-                }
-                // INFO: Use original width or height if set auto.
-                width = this.resizable.style.width !== 'auto' ? this.resizable.offsetWidth : orgWidth;
-                height = this.resizable.style.height !== 'auto' ? this.resizable.offsetHeight : orgHeight;
-                // Restore original position
-                this.resizable.style.position = orgPosition;
-            }
-            return { width: width, height: height };
-        },
-        enumerable: false,
-        configurable: true
-    });
-    Object.defineProperty(Resizable.prototype, "sizeStyle", {
-        get: function () {
-            var _this = this;
-            var size = this.props.size;
-            var getSize = function (key) {
-                if (typeof _this.state[key] === 'undefined' || _this.state[key] === 'auto') {
-                    return 'auto';
-                }
-                if (_this.propsSize && _this.propsSize[key] && endsWith(_this.propsSize[key].toString(), '%')) {
-                    if (endsWith(_this.state[key].toString(), '%')) {
-                        return _this.state[key].toString();
-                    }
-                    var parentSize = _this.getParentSize();
-                    var value = Number(_this.state[key].toString().replace('px', ''));
-                    var percent = (value / parentSize[key]) * 100;
-                    return percent + "%";
-                }
-                return getStringSize(_this.state[key]);
-            };
-            var width = size && typeof size.width !== 'undefined' && !this.state.isResizing
-                ? getStringSize(size.width)
-                : getSize('width');
-            var height = size && typeof size.height !== 'undefined' && !this.state.isResizing
-                ? getStringSize(size.height)
-                : getSize('height');
-            return { width: width, height: height };
-        },
-        enumerable: false,
-        configurable: true
-    });
-    Resizable.prototype.getParentSize = function () {
-        if (!this.parentNode) {
-            if (!this.window) {
-                return { width: 0, height: 0 };
-            }
-            return { width: this.window.innerWidth, height: this.window.innerHeight };
-        }
-        var base = this.appendBase();
-        if (!base) {
-            return { width: 0, height: 0 };
-        }
-        // INFO: To calculate parent width with flex layout
-        var wrapChanged = false;
-        var wrap = this.parentNode.style.flexWrap;
-        if (wrap !== 'wrap') {
-            wrapChanged = true;
-            this.parentNode.style.flexWrap = 'wrap';
-            // HACK: Use relative to get parent padding size
-        }
-        base.style.position = 'relative';
-        base.style.minWidth = '100%';
-        var size = {
-            width: base.offsetWidth,
-            height: base.offsetHeight,
-        };
-        if (wrapChanged) {
-            this.parentNode.style.flexWrap = wrap;
-        }
-        this.removeBase(base);
-        return size;
-    };
-    Resizable.prototype.bindEvents = function () {
-        if (this.window) {
-            this.window.addEventListener('mouseup', this.onMouseUp);
-            this.window.addEventListener('mousemove', this.onMouseMove);
-            this.window.addEventListener('mouseleave', this.onMouseUp);
-            this.window.addEventListener('touchmove', this.onMouseMove, {
-                capture: true,
-                passive: false,
-            });
-            this.window.addEventListener('touchend', this.onMouseUp);
-        }
-    };
-    Resizable.prototype.unbindEvents = function () {
-        if (this.window) {
-            this.window.removeEventListener('mouseup', this.onMouseUp);
-            this.window.removeEventListener('mousemove', this.onMouseMove);
-            this.window.removeEventListener('mouseleave', this.onMouseUp);
-            this.window.removeEventListener('touchmove', this.onMouseMove, true);
-            this.window.removeEventListener('touchend', this.onMouseUp);
-        }
-    };
-    Resizable.prototype.componentDidMount = function () {
-        if (!this.resizable || !this.window) {
-            return;
-        }
-        var computedStyle = this.window.getComputedStyle(this.resizable);
-        this.setState({
-            width: this.state.width || this.size.width,
-            height: this.state.height || this.size.height,
-            flexBasis: computedStyle.flexBasis !== 'auto' ? computedStyle.flexBasis : undefined,
-        });
-    };
-    Resizable.prototype.componentWillUnmount = function () {
-        if (this.window) {
-            this.unbindEvents();
-        }
-    };
-    Resizable.prototype.createSizeForCssProperty = function (newSize, kind) {
-        var propsSize = this.propsSize && this.propsSize[kind];
-        return this.state[kind] === 'auto' &&
-            this.state.original[kind] === newSize &&
-            (typeof propsSize === 'undefined' || propsSize === 'auto')
-            ? 'auto'
-            : newSize;
-    };
-    Resizable.prototype.calculateNewMaxFromBoundary = function (maxWidth, maxHeight) {
-        var boundsByDirection = this.props.boundsByDirection;
-        var direction = this.state.direction;
-        var widthByDirection = boundsByDirection && hasDirection('left', direction);
-        var heightByDirection = boundsByDirection && hasDirection('top', direction);
-        var boundWidth;
-        var boundHeight;
-        if (this.props.bounds === 'parent') {
-            var parent_1 = this.parentNode;
-            if (parent_1) {
-                boundWidth = widthByDirection
-                    ? this.resizableRight - this.parentLeft
-                    : parent_1.offsetWidth + (this.parentLeft - this.resizableLeft);
-                boundHeight = heightByDirection
-                    ? this.resizableBottom - this.parentTop
-                    : parent_1.offsetHeight + (this.parentTop - this.resizableTop);
-            }
-        }
-        else if (this.props.bounds === 'window') {
-            if (this.window) {
-                boundWidth = widthByDirection ? this.resizableRight : this.window.innerWidth - this.resizableLeft;
-                boundHeight = heightByDirection ? this.resizableBottom : this.window.innerHeight - this.resizableTop;
-            }
-        }
-        else if (this.props.bounds) {
-            boundWidth = widthByDirection
-                ? this.resizableRight - this.targetLeft
-                : this.props.bounds.offsetWidth + (this.targetLeft - this.resizableLeft);
-            boundHeight = heightByDirection
-                ? this.resizableBottom - this.targetTop
-                : this.props.bounds.offsetHeight + (this.targetTop - this.resizableTop);
-        }
-        if (boundWidth && Number.isFinite(boundWidth)) {
-            maxWidth = maxWidth && maxWidth < boundWidth ? maxWidth : boundWidth;
-        }
-        if (boundHeight && Number.isFinite(boundHeight)) {
-            maxHeight = maxHeight && maxHeight < boundHeight ? maxHeight : boundHeight;
-        }
-        return { maxWidth: maxWidth, maxHeight: maxHeight };
-    };
-    Resizable.prototype.calculateNewSizeFromDirection = function (clientX, clientY) {
-        var scale = this.props.scale || 1;
-        var resizeRatio = this.props.resizeRatio || 1;
-        var _a = this.state, direction = _a.direction, original = _a.original;
-        var _b = this.props, lockAspectRatio = _b.lockAspectRatio, lockAspectRatioExtraHeight = _b.lockAspectRatioExtraHeight, lockAspectRatioExtraWidth = _b.lockAspectRatioExtraWidth;
-        var newWidth = original.width;
-        var newHeight = original.height;
-        var extraHeight = lockAspectRatioExtraHeight || 0;
-        var extraWidth = lockAspectRatioExtraWidth || 0;
-        if (hasDirection('right', direction)) {
-            newWidth = original.width + ((clientX - original.x) * resizeRatio) / scale;
-            if (lockAspectRatio) {
-                newHeight = (newWidth - extraWidth) / this.ratio + extraHeight;
-            }
-        }
-        if (hasDirection('left', direction)) {
-            newWidth = original.width - ((clientX - original.x) * resizeRatio) / scale;
-            if (lockAspectRatio) {
-                newHeight = (newWidth - extraWidth) / this.ratio + extraHeight;
-            }
-        }
-        if (hasDirection('bottom', direction)) {
-            newHeight = original.height + ((clientY - original.y) * resizeRatio) / scale;
-            if (lockAspectRatio) {
-                newWidth = (newHeight - extraHeight) * this.ratio + extraWidth;
-            }
-        }
-        if (hasDirection('top', direction)) {
-            newHeight = original.height - ((clientY - original.y) * resizeRatio) / scale;
-            if (lockAspectRatio) {
-                newWidth = (newHeight - extraHeight) * this.ratio + extraWidth;
-            }
-        }
-        return { newWidth: newWidth, newHeight: newHeight };
-    };
-    Resizable.prototype.calculateNewSizeFromAspectRatio = function (newWidth, newHeight, max, min) {
-        var _a = this.props, lockAspectRatio = _a.lockAspectRatio, lockAspectRatioExtraHeight = _a.lockAspectRatioExtraHeight, lockAspectRatioExtraWidth = _a.lockAspectRatioExtraWidth;
-        var computedMinWidth = typeof min.width === 'undefined' ? 10 : min.width;
-        var computedMaxWidth = typeof max.width === 'undefined' || max.width < 0 ? newWidth : max.width;
-        var computedMinHeight = typeof min.height === 'undefined' ? 10 : min.height;
-        var computedMaxHeight = typeof max.height === 'undefined' || max.height < 0 ? newHeight : max.height;
-        var extraHeight = lockAspectRatioExtraHeight || 0;
-        var extraWidth = lockAspectRatioExtraWidth || 0;
-        if (lockAspectRatio) {
-            var extraMinWidth = (computedMinHeight - extraHeight) * this.ratio + extraWidth;
-            var extraMaxWidth = (computedMaxHeight - extraHeight) * this.ratio + extraWidth;
-            var extraMinHeight = (computedMinWidth - extraWidth) / this.ratio + extraHeight;
-            var extraMaxHeight = (computedMaxWidth - extraWidth) / this.ratio + extraHeight;
-            var lockedMinWidth = Math.max(computedMinWidth, extraMinWidth);
-            var lockedMaxWidth = Math.min(computedMaxWidth, extraMaxWidth);
-            var lockedMinHeight = Math.max(computedMinHeight, extraMinHeight);
-            var lockedMaxHeight = Math.min(computedMaxHeight, extraMaxHeight);
-            newWidth = clamp(newWidth, lockedMinWidth, lockedMaxWidth);
-            newHeight = clamp(newHeight, lockedMinHeight, lockedMaxHeight);
-        }
-        else {
-            newWidth = clamp(newWidth, computedMinWidth, computedMaxWidth);
-            newHeight = clamp(newHeight, computedMinHeight, computedMaxHeight);
-        }
-        return { newWidth: newWidth, newHeight: newHeight };
-    };
-    Resizable.prototype.setBoundingClientRect = function () {
-        // For parent boundary
-        if (this.props.bounds === 'parent') {
-            var parent_2 = this.parentNode;
-            if (parent_2) {
-                var parentRect = parent_2.getBoundingClientRect();
-                this.parentLeft = parentRect.left;
-                this.parentTop = parentRect.top;
-            }
-        }
-        // For target(html element) boundary
-        if (this.props.bounds && typeof this.props.bounds !== 'string') {
-            var targetRect = this.props.bounds.getBoundingClientRect();
-            this.targetLeft = targetRect.left;
-            this.targetTop = targetRect.top;
-        }
-        // For boundary
-        if (this.resizable) {
-            var _a = this.resizable.getBoundingClientRect(), left = _a.left, top_1 = _a.top, right = _a.right, bottom = _a.bottom;
-            this.resizableLeft = left;
-            this.resizableRight = right;
-            this.resizableTop = top_1;
-            this.resizableBottom = bottom;
-        }
-    };
-    Resizable.prototype.onResizeStart = function (event, direction) {
-        if (!this.resizable || !this.window) {
-            return;
-        }
-        var clientX = 0;
-        var clientY = 0;
-        if (event.nativeEvent && isMouseEvent(event.nativeEvent)) {
-            clientX = event.nativeEvent.clientX;
-            clientY = event.nativeEvent.clientY;
-            // When user click with right button the resize is stuck in resizing mode
-            // until users clicks again, dont continue if right click is used.
-            // HACK: MouseEvent does not have `which` from flow-bin v0.68.
-            if (event.nativeEvent.which === 3) {
-                return;
-            }
-        }
-        else if (event.nativeEvent && isTouchEvent(event.nativeEvent)) {
-            clientX = event.nativeEvent.touches[0].clientX;
-            clientY = event.nativeEvent.touches[0].clientY;
-        }
-        if (this.props.onResizeStart) {
-            if (this.resizable) {
-                var startResize = this.props.onResizeStart(event, direction, this.resizable);
-                if (startResize === false) {
-                    return;
-                }
-            }
-        }
-        // Fix #168
-        if (this.props.size) {
-            if (typeof this.props.size.height !== 'undefined' && this.props.size.height !== this.state.height) {
-                this.setState({ height: this.props.size.height });
-            }
-            if (typeof this.props.size.width !== 'undefined' && this.props.size.width !== this.state.width) {
-                this.setState({ width: this.props.size.width });
-            }
-        }
-        // For lockAspectRatio case
-        this.ratio =
-            typeof this.props.lockAspectRatio === 'number' ? this.props.lockAspectRatio : this.size.width / this.size.height;
-        var flexBasis;
-        var computedStyle = this.window.getComputedStyle(this.resizable);
-        if (computedStyle.flexBasis !== 'auto') {
-            var parent_3 = this.parentNode;
-            if (parent_3) {
-                var dir = this.window.getComputedStyle(parent_3).flexDirection;
-                this.flexDir = dir.startsWith('row') ? 'row' : 'column';
-                flexBasis = computedStyle.flexBasis;
-            }
-        }
-        // For boundary
-        this.setBoundingClientRect();
-        this.bindEvents();
-        var state = {
-            original: {
-                x: clientX,
-                y: clientY,
-                width: this.size.width,
-                height: this.size.height,
-            },
-            isResizing: true,
-            backgroundStyle: lib_assign(lib_assign({}, this.state.backgroundStyle), { cursor: this.window.getComputedStyle(event.target).cursor || 'auto' }),
-            direction: direction,
-            flexBasis: flexBasis,
-        };
-        this.setState(state);
-    };
-    Resizable.prototype.onMouseMove = function (event) {
-        if (!this.state.isResizing || !this.resizable || !this.window) {
-            return;
-        }
-        if (this.window.TouchEvent && isTouchEvent(event)) {
-            try {
-                event.preventDefault();
-                event.stopPropagation();
-            }
-            catch (e) {
-                // Ignore on fail
-            }
-        }
-        var _a = this.props, maxWidth = _a.maxWidth, maxHeight = _a.maxHeight, minWidth = _a.minWidth, minHeight = _a.minHeight;
-        var clientX = isTouchEvent(event) ? event.touches[0].clientX : event.clientX;
-        var clientY = isTouchEvent(event) ? event.touches[0].clientY : event.clientY;
-        var _b = this.state, direction = _b.direction, original = _b.original, width = _b.width, height = _b.height;
-        var parentSize = this.getParentSize();
-        var max = calculateNewMax(parentSize, this.window.innerWidth, this.window.innerHeight, maxWidth, maxHeight, minWidth, minHeight);
-        maxWidth = max.maxWidth;
-        maxHeight = max.maxHeight;
-        minWidth = max.minWidth;
-        minHeight = max.minHeight;
-        // Calculate new size
-        var _c = this.calculateNewSizeFromDirection(clientX, clientY), newHeight = _c.newHeight, newWidth = _c.newWidth;
-        // Calculate max size from boundary settings
-        var boundaryMax = this.calculateNewMaxFromBoundary(maxWidth, maxHeight);
-        // Calculate new size from aspect ratio
-        var newSize = this.calculateNewSizeFromAspectRatio(newWidth, newHeight, { width: boundaryMax.maxWidth, height: boundaryMax.maxHeight }, { width: minWidth, height: minHeight });
-        newWidth = newSize.newWidth;
-        newHeight = newSize.newHeight;
-        if (this.props.grid) {
-            var newGridWidth = snap(newWidth, this.props.grid[0]);
-            var newGridHeight = snap(newHeight, this.props.grid[1]);
-            var gap = this.props.snapGap || 0;
-            newWidth = gap === 0 || Math.abs(newGridWidth - newWidth) <= gap ? newGridWidth : newWidth;
-            newHeight = gap === 0 || Math.abs(newGridHeight - newHeight) <= gap ? newGridHeight : newHeight;
-        }
-        if (this.props.snap && this.props.snap.x) {
-            newWidth = findClosestSnap(newWidth, this.props.snap.x, this.props.snapGap);
-        }
-        if (this.props.snap && this.props.snap.y) {
-            newHeight = findClosestSnap(newHeight, this.props.snap.y, this.props.snapGap);
-        }
-        var delta = {
-            width: newWidth - original.width,
-            height: newHeight - original.height,
-        };
-        if (width && typeof width === 'string') {
-            if (endsWith(width, '%')) {
-                var percent = (newWidth / parentSize.width) * 100;
-                newWidth = percent + "%";
-            }
-            else if (endsWith(width, 'vw')) {
-                var vw = (newWidth / this.window.innerWidth) * 100;
-                newWidth = vw + "vw";
-            }
-            else if (endsWith(width, 'vh')) {
-                var vh = (newWidth / this.window.innerHeight) * 100;
-                newWidth = vh + "vh";
-            }
-        }
-        if (height && typeof height === 'string') {
-            if (endsWith(height, '%')) {
-                var percent = (newHeight / parentSize.height) * 100;
-                newHeight = percent + "%";
-            }
-            else if (endsWith(height, 'vw')) {
-                var vw = (newHeight / this.window.innerWidth) * 100;
-                newHeight = vw + "vw";
-            }
-            else if (endsWith(height, 'vh')) {
-                var vh = (newHeight / this.window.innerHeight) * 100;
-                newHeight = vh + "vh";
-            }
-        }
-        var newState = {
-            width: this.createSizeForCssProperty(newWidth, 'width'),
-            height: this.createSizeForCssProperty(newHeight, 'height'),
-        };
-        if (this.flexDir === 'row') {
-            newState.flexBasis = newState.width;
-        }
-        else if (this.flexDir === 'column') {
-            newState.flexBasis = newState.height;
-        }
-        this.setState(newState);
-        if (this.props.onResize) {
-            this.props.onResize(event, direction, this.resizable, delta);
-        }
-    };
-    Resizable.prototype.onMouseUp = function (event) {
-        var _a = this.state, isResizing = _a.isResizing, direction = _a.direction, original = _a.original;
-        if (!isResizing || !this.resizable) {
-            return;
-        }
-        var delta = {
-            width: this.size.width - original.width,
-            height: this.size.height - original.height,
-        };
-        if (this.props.onResizeStop) {
-            this.props.onResizeStop(event, direction, this.resizable, delta);
-        }
-        if (this.props.size) {
-            this.setState(this.props.size);
-        }
-        this.unbindEvents();
-        this.setState({
-            isResizing: false,
-            backgroundStyle: lib_assign(lib_assign({}, this.state.backgroundStyle), { cursor: 'auto' }),
-        });
-    };
-    Resizable.prototype.updateSize = function (size) {
-        this.setState({ width: size.width, height: size.height });
-    };
-    Resizable.prototype.renderResizer = function () {
-        var _this = this;
-        var _a = this.props, enable = _a.enable, handleStyles = _a.handleStyles, handleClasses = _a.handleClasses, handleWrapperStyle = _a.handleWrapperStyle, handleWrapperClass = _a.handleWrapperClass, handleComponent = _a.handleComponent;
-        if (!enable) {
-            return null;
-        }
-        var resizers = Object.keys(enable).map(function (dir) {
-            if (enable[dir] !== false) {
-                return (external_React_["createElement"](resizer_Resizer, { key: dir, direction: dir, onResizeStart: _this.onResizeStart, replaceStyles: handleStyles && handleStyles[dir], className: handleClasses && handleClasses[dir] }, handleComponent && handleComponent[dir] ? handleComponent[dir] : null));
-            }
-            return null;
-        });
-        // #93 Wrap the resize box in span (will not break 100% width/height)
-        return (external_React_["createElement"]("div", { className: handleWrapperClass, style: handleWrapperStyle }, resizers));
-    };
-    Resizable.prototype.render = function () {
-        var _this = this;
-        var extendsProps = Object.keys(this.props).reduce(function (acc, key) {
-            if (definedProps.indexOf(key) !== -1) {
-                return acc;
-            }
-            acc[key] = _this.props[key];
-            return acc;
-        }, {});
-        var style = lib_assign(lib_assign(lib_assign({ position: 'relative', userSelect: this.state.isResizing ? 'none' : 'auto' }, this.props.style), this.sizeStyle), { maxWidth: this.props.maxWidth, maxHeight: this.props.maxHeight, minWidth: this.props.minWidth, minHeight: this.props.minHeight, boxSizing: 'border-box', flexShrink: 0 });
-        if (this.state.flexBasis) {
-            style.flexBasis = this.state.flexBasis;
-        }
-        var Wrapper = this.props.as || 'div';
-        return (external_React_["createElement"](Wrapper, lib_assign({ ref: this.ref, style: style, className: this.props.className }, extendsProps),
-            this.state.isResizing && external_React_["createElement"]("div", { style: this.state.backgroundStyle }),
-            this.props.children,
-            this.renderResizer()));
-    };
-    Resizable.defaultProps = {
-        as: 'div',
-        onResizeStart: function () { },
-        onResize: function () { },
-        onResizeStop: function () { },
-        enable: {
-            top: true,
-            right: true,
-            bottom: true,
-            left: true,
-            topRight: true,
-            bottomRight: true,
-            bottomLeft: true,
-            topLeft: true,
-        },
-        style: {},
-        grid: [1, 1],
-        lockAspectRatio: false,
-        lockAspectRatioExtraWidth: 0,
-        lockAspectRatioExtraHeight: 0,
-        scale: 1,
-        resizeRatio: 1,
-        snapGap: 0,
-    };
-    return Resizable;
-}(external_React_["PureComponent"]));
-
-
-// EXTERNAL MODULE: ./node_modules/react-resize-aware/dist/index.js
-var react_resize_aware_dist = __webpack_require__("SSiF");
-var react_resize_aware_dist_default = /*#__PURE__*/__webpack_require__.n(react_resize_aware_dist);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/resizable-box/resize-tooltip/utils.js
-/**
- * External dependencies
- */
-
-
-/**
- * WordPress dependencies
- */
-
-
-const {
-  clearTimeout: utils_clearTimeout,
-  setTimeout: utils_setTimeout
-} = typeof window !== 'undefined' ? window : {};
-const POSITIONS = {
-  bottom: 'bottom',
-  corner: 'corner'
-};
-/**
- * @typedef {Object} UseResizeLabelProps
- *
- * @property {undefined|string} label The label value.
- * @property {Function} resizeListener Element to be rendered for resize listening events.
- */
-
-/**
- * Custom hook that manages resize listener events. It also provides a label
- * based on current resize width x height values.
- *
- * @param {Object} props
- * @param {string} props.axis Only shows the label corresponding to the axis.
- * @param {number} props.fadeTimeout Duration (ms) before deactivating the resize label.
- * @param {boolean} props.onResize Callback when a resize occurs. Provides { width, height } callback.
- * @param {string} props.position Adjusts label value.
- * @param {boolean} props.showPx Whether to add `PX` to the label.
- *
- * @return {UseResizeLabelProps} Properties for hook.
- */
-
-function useResizeLabel({
-  axis,
-  fadeTimeout = 180,
-  onResize = external_lodash_["noop"],
-  position = POSITIONS.bottom,
-  showPx = false
-}) {
-  /*
-   * The width/height values derive from this special useResizeAware hook.
-   * This custom hook uses injects an iFrame into the element, allowing it
-   * to tap into the onResize (window) callback events.
-   */
-  const [resizeListener, sizes] = react_resize_aware_dist_default()();
-  /*
-   * Indicates if the x/y axis is preferred.
-   * If set, we will avoid resetting the moveX and moveY values.
-   * This will allow for the preferred axis values to persist in the label.
-   */
-
-  const isAxisControlled = !!axis;
-  /*
-   * The moveX and moveY values are used to track whether the label should
-   * display width, height, or width x height.
-   */
-
-  const [moveX, setMoveX] = Object(external_wp_element_["useState"])(false);
-  const [moveY, setMoveY] = Object(external_wp_element_["useState"])(false);
-  /*
-   * Cached dimension values to check for width/height updates from the
-   * sizes property from useResizeAware()
-   */
-
-  const {
-    width,
-    height
-  } = sizes;
-  const heightRef = Object(external_wp_element_["useRef"])(height);
-  const widthRef = Object(external_wp_element_["useRef"])(width);
-  /*
-   * This timeout is used with setMoveX and setMoveY to determine of
-   * both width and height values have changed at (roughly) the same time.
-   */
-
-  const moveTimeoutRef = Object(external_wp_element_["useRef"])();
-
-  const unsetMoveXY = () => {
-    /*
-     * If axis is controlled, we will avoid resetting the moveX and moveY values.
-     * This will allow for the preferred axis values to persist in the label.
-     */
-    if (isAxisControlled) return;
-    setMoveX(false);
-    setMoveY(false);
-  };
-
-  const debounceUnsetMoveXY = () => {
-    if (moveTimeoutRef.current) {
-      utils_clearTimeout(moveTimeoutRef.current);
-    }
-
-    moveTimeoutRef.current = utils_setTimeout(unsetMoveXY, fadeTimeout);
-  };
-
-  Object(external_wp_element_["useEffect"])(() => {
-    /*
-     * On the initial render of useResizeAware, the height and width values are
-     * null. They are calculated then set using via an internal useEffect hook.
-     */
-    const isRendered = width !== null || height !== null;
-    if (!isRendered) return;
-    const didWidthChange = width !== widthRef.current;
-    const didHeightChange = height !== heightRef.current;
-    if (!didWidthChange && !didHeightChange) return;
-    /*
-     * After the initial render, the useResizeAware will set the first
-     * width and height values. We'll sync those values with our
-     * width and height refs. However, we shouldn't render our Tooltip
-     * label on this first cycle.
-     */
-
-    if (width && !widthRef.current && height && !heightRef.current) {
-      widthRef.current = width;
-      heightRef.current = height;
-      return;
-    }
-    /*
-     * After the first cycle, we can track width and height changes.
-     */
-
-
-    if (didWidthChange) {
-      setMoveX(true);
-      widthRef.current = width;
-    }
-
-    if (didHeightChange) {
-      setMoveY(true);
-      heightRef.current = height;
-    }
-
-    onResize({
-      width,
-      height
-    });
-    debounceUnsetMoveXY();
-  }, [width, height]);
-  const label = getSizeLabel({
-    axis,
-    height,
-    moveX,
-    moveY,
-    position,
-    showPx,
-    width
-  });
-  return {
-    label,
-    resizeListener
-  };
-}
-/**
- * Gets the resize label based on width and height values (as well as recent changes).
- *
- * @param {Object} props
- * @param {string} props.axis Only shows the label corresponding to the axis.
- * @param {number} props.height Height value.
- * @param {boolean} props.moveX Recent width (x axis) changes.
- * @param {boolean} props.moveY Recent width (y axis) changes.
- * @param {string} props.position Adjusts label value.
- * @param {boolean} props.showPx Whether to add `PX` to the label.
- * @param {number} props.width Width value.
- *
- * @return {undefined | string} The rendered label.
- */
-
-function getSizeLabel({
-  axis,
-  height,
-  moveX = false,
-  moveY = false,
-  position = POSITIONS.bottom,
-  showPx = false,
-  width
-}) {
-  if (!moveX && !moveY) return null;
-  /*
-   * Corner position...
-   * We want the label to appear like width x height.
-   */
-
-  if (position === POSITIONS.corner) {
-    return `${width} x ${height}`;
-  }
-  /*
-   * Other POSITIONS...
-   * The label will combine both width x height values if both
-   * values have recently been changed.
-   *
-   * Otherwise, only width or height will be displayed.
-   * The `PX` unit will be added, if specified by the `showPx` prop.
-   */
-
-
-  const labelUnit = showPx ? ' px' : '';
-
-  if (axis) {
-    if (axis === 'x' && moveX) {
-      return `${width}${labelUnit}`;
-    }
-
-    if (axis === 'y' && moveY) {
-      return `${height}${labelUnit}`;
-    }
-  }
-
-  if (moveX && moveY) {
-    return `${width} x ${height}`;
-  }
-
-  if (moveX) {
-    return `${width}${labelUnit}`;
-  }
-
-  if (moveY) {
-    return `${height}${labelUnit}`;
-  }
-
-  return null;
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js
-
-
-function resize_tooltip_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
-
-/**
- * Internal dependencies
- */
-
-
-const resize_tooltip_styles_Root = styled_base_browser_esm("div", {
-  target: "ekdag500",
-  label: "Root"
-})( true ? {
-  name: "mt2ez5",
-  styles: "bottom:0;box-sizing:border-box;left:0;pointer-events:none;position:absolute;right:0;top:0;"
-} : undefined);
-const TooltipWrapper = styled_base_browser_esm("div", {
-  target: "ekdag501",
-  label: "TooltipWrapper"
-})( true ? {
-  name: "1kllayo",
-  styles: "align-items:center;box-sizing:border-box;display:inline-flex;justify-content:center;opacity:0;pointer-events:none;transition:opacity 120ms linear;"
-} : undefined);
-const resize_tooltip_styles_Tooltip = styled_base_browser_esm("div", {
-  target: "ekdag502",
-  label: "Tooltip"
-})("background:", COLORS.ui.border, ";border-radius:2px;box-sizing:border-box;font-size:12px;color:", COLORS.ui.textDark, ";padding:4px 8px;position:relative;" + ( true ? "" : undefined)); // TODO: Resolve need to use &&& to increase specificity
-// https://github.com/WordPress/gutenberg/issues/18483
-
-const LabelText = /*#__PURE__*/styled_base_browser_esm(text_component, {
-  target: "ekdag503",
-  label: "LabelText"
-})( true ? {
-  name: "1kboj1g",
-  styles: "&&&{color:white;display:block;font-size:13px;line-height:1.4;}"
-} : undefined);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/resizable-box/resize-tooltip/label.js
-
-
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-const CORNER_OFFSET = 4;
-const CURSOR_OFFSET_TOP = CORNER_OFFSET * 2.5;
-
-function resize_tooltip_label_Label({
-  label,
-  position = POSITIONS.corner,
-  zIndex = 1000,
-  ...props
-}, ref) {
-  const showLabel = !!label;
-  const isBottom = position === POSITIONS.bottom;
-  const isCorner = position === POSITIONS.corner;
-  if (!showLabel) return null;
-  let style = {
-    opacity: showLabel ? 1 : null,
-    zIndex
-  };
-  let labelStyle = {};
-
-  if (isBottom) {
-    style = { ...style,
-      position: 'absolute',
-      bottom: CURSOR_OFFSET_TOP * -1,
-      left: '50%',
-      transform: 'translate(-50%, 0)'
-    };
-    labelStyle = {
-      transform: `translate(0, 100%)`
-    };
-  }
-
-  if (isCorner) {
-    style = { ...style,
-      position: 'absolute',
-      top: CORNER_OFFSET,
-      right: Object(external_wp_i18n_["isRTL"])() ? null : CORNER_OFFSET,
-      left: Object(external_wp_i18n_["isRTL"])() ? CORNER_OFFSET : null
-    };
-  }
-
-  return Object(external_wp_element_["createElement"])(TooltipWrapper, Object(esm_extends["a" /* default */])({
-    "aria-hidden": "true",
-    className: "components-resizable-tooltip__tooltip-wrapper",
-    isActive: showLabel,
-    ref: ref,
-    style: style
-  }, props), Object(external_wp_element_["createElement"])(resize_tooltip_styles_Tooltip, {
-    className: "components-resizable-tooltip__tooltip",
-    style: labelStyle
-  }, Object(external_wp_element_["createElement"])(LabelText, {
-    as: "span"
-  }, label)));
-}
-
-const label_ForwardedComponent = Object(external_wp_element_["forwardRef"])(resize_tooltip_label_Label);
-/* harmony default export */ var resize_tooltip_label = (label_ForwardedComponent);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/resizable-box/resize-tooltip/index.js
-
-
-
-/**
- * External dependencies
- */
-
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-function ResizeTooltip({
-  axis,
-  className,
-  fadeTimeout = 180,
-  isVisible = true,
-  labelRef,
-  onResize = external_lodash_["noop"],
-  position = POSITIONS.bottom,
-  showPx = true,
-  zIndex = 1000,
-  ...props
-}, ref) {
-  const {
-    label,
-    resizeListener
-  } = useResizeLabel({
-    axis,
-    fadeTimeout,
-    onResize,
-    showPx,
-    position
-  });
-  if (!isVisible) return null;
-  const classes = classnames_default()('components-resize-tooltip', className);
-  return Object(external_wp_element_["createElement"])(resize_tooltip_styles_Root, Object(esm_extends["a" /* default */])({
-    "aria-hidden": "true",
-    className: classes,
-    ref: ref
-  }, props), resizeListener, Object(external_wp_element_["createElement"])(resize_tooltip_label, {
-    "aria-hidden": props['aria-hidden'],
-    fadeTimeout: fadeTimeout,
-    isVisible: isVisible,
-    label: label,
-    position: position,
-    ref: labelRef,
-    zIndex: zIndex
-  }));
-}
-
-const resize_tooltip_ForwardedComponent = Object(external_wp_element_["forwardRef"])(ResizeTooltip);
-/* harmony default export */ var resize_tooltip = (resize_tooltip_ForwardedComponent);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/resizable-box/index.js
-
-
-
-/**
- * WordPress dependencies
- */
-
-/**
- * External dependencies
- */
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-function ResizableBox({
-  className,
-  children,
-  showHandle = true,
-  __experimentalShowTooltip: showTooltip = false,
-  __experimentalTooltipProps: tooltipProps = {},
-  ...props
-}, ref) {
-  // Removes the inline styles in the drag handles.
-  const handleStylesOverrides = {
-    width: null,
-    height: null,
-    top: null,
-    right: null,
-    bottom: null,
-    left: null
-  };
-  const handleClassName = 'components-resizable-box__handle';
-  const sideHandleClassName = 'components-resizable-box__side-handle';
-  const cornerHandleClassName = 'components-resizable-box__corner-handle';
-  return Object(external_wp_element_["createElement"])(lib_Resizable, Object(esm_extends["a" /* default */])({
-    className: classnames_default()('components-resizable-box__container', showHandle && 'has-show-handle', className),
-    handleClasses: {
-      top: classnames_default()(handleClassName, sideHandleClassName, 'components-resizable-box__handle-top'),
-      right: classnames_default()(handleClassName, sideHandleClassName, 'components-resizable-box__handle-right'),
-      bottom: classnames_default()(handleClassName, sideHandleClassName, 'components-resizable-box__handle-bottom'),
-      left: classnames_default()(handleClassName, sideHandleClassName, 'components-resizable-box__handle-left'),
-      topLeft: classnames_default()(handleClassName, cornerHandleClassName, 'components-resizable-box__handle-top', 'components-resizable-box__handle-left'),
-      topRight: classnames_default()(handleClassName, cornerHandleClassName, 'components-resizable-box__handle-top', 'components-resizable-box__handle-right'),
-      bottomRight: classnames_default()(handleClassName, cornerHandleClassName, 'components-resizable-box__handle-bottom', 'components-resizable-box__handle-right'),
-      bottomLeft: classnames_default()(handleClassName, cornerHandleClassName, 'components-resizable-box__handle-bottom', 'components-resizable-box__handle-left')
-    },
-    handleStyles: {
-      top: handleStylesOverrides,
-      right: handleStylesOverrides,
-      bottom: handleStylesOverrides,
-      left: handleStylesOverrides,
-      topLeft: handleStylesOverrides,
-      topRight: handleStylesOverrides,
-      bottomRight: handleStylesOverrides,
-      bottomLeft: handleStylesOverrides
-    },
-    ref: ref
-  }, props), children, showTooltip && Object(external_wp_element_["createElement"])(resize_tooltip, tooltipProps));
-}
-
-/* harmony default export */ var resizable_box = (Object(external_wp_element_["forwardRef"])(ResizableBox));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/responsive-wrapper/index.js
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-
-function ResponsiveWrapper({
-  naturalWidth,
-  naturalHeight,
-  children,
-  isInline = false
-}) {
-  const [containerResizeListener, {
-    width: containerWidth
-  }] = Object(external_wp_compose_["useResizeObserver"])();
-
-  if (external_wp_element_["Children"].count(children) !== 1) {
-    return null;
-  }
-
-  const imageStyle = {
-    paddingBottom: naturalWidth < containerWidth ? naturalHeight : naturalHeight / naturalWidth * 100 + '%'
-  };
-  const TagName = isInline ? 'span' : 'div';
-  return Object(external_wp_element_["createElement"])(TagName, {
-    className: "components-responsive-wrapper"
-  }, containerResizeListener, Object(external_wp_element_["createElement"])(TagName, {
-    style: imageStyle
-  }), Object(external_wp_element_["cloneElement"])(children, {
-    className: classnames_default()('components-responsive-wrapper__content', children.props.className)
-  }));
-}
-
-/* harmony default export */ var responsive_wrapper = (ResponsiveWrapper);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/sandbox/index.js
-
-
-/**
- * WordPress dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-const observeAndResizeJS = `
-	( function() {
-		var observer;
-
-		if ( ! window.MutationObserver || ! document.body || ! window.parent ) {
-			return;
-		}
-
-		function sendResize() {
-			var clientBoundingRect = document.body.getBoundingClientRect();
-
-			window.parent.postMessage( {
-				action: 'resize',
-				width: clientBoundingRect.width,
-				height: clientBoundingRect.height,
-			}, '*' );
-		}
-
-		observer = new MutationObserver( sendResize );
-		observer.observe( document.body, {
-			attributes: true,
-			attributeOldValue: false,
-			characterData: true,
-			characterDataOldValue: false,
-			childList: true,
-			subtree: true
-		} );
-
-		window.addEventListener( 'load', sendResize, true );
-
-		// Hack: Remove viewport unit styles, as these are relative
-		// the iframe root and interfere with our mechanism for
-		// determining the unconstrained page bounds.
-		function removeViewportStyles( ruleOrNode ) {
-			if( ruleOrNode.style ) {
-				[ 'width', 'height', 'minHeight', 'maxHeight' ].forEach( function( style ) {
-					if ( /^\\d+(vmin|vmax|vh|vw)$/.test( ruleOrNode.style[ style ] ) ) {
-						ruleOrNode.style[ style ] = '';
-					}
-				} );
+noop.isRequired = noop;
+
+function noopThunk() {
+  return noop;
+}
+
+module.exports = {
+  and: noopThunk,
+  between: noopThunk,
+  booleanSome: noopThunk,
+  childrenHavePropXorChildren: noopThunk,
+  childrenOf: noopThunk,
+  childrenOfType: noopThunk,
+  childrenSequenceOf: noopThunk,
+  componentWithName: noopThunk,
+  disallowedIf: noopThunk,
+  elementType: noopThunk,
+  empty: noopThunk,
+  explicitNull: noopThunk,
+  forbidExtraProps: Object,
+  integer: noopThunk,
+  keysOf: noopThunk,
+  mutuallyExclusiveProps: noopThunk,
+  mutuallyExclusiveTrueProps: noopThunk,
+  nChildren: noopThunk,
+  nonNegativeInteger: noop,
+  nonNegativeNumber: noopThunk,
+  numericString: noopThunk,
+  object: noopThunk,
+  or: noopThunk,
+  predicate: noopThunk,
+  range: noopThunk,
+  ref: noopThunk,
+  requiredBy: noopThunk,
+  restrictedProp: noopThunk,
+  sequenceOf: noopThunk,
+  shape: noopThunk,
+  stringEndsWith: noopThunk,
+  stringStartsWith: noopThunk,
+  uniqueArray: noopThunk,
+  uniqueArrayOf: noopThunk,
+  valuesOf: noopThunk,
+  withShape: noopThunk
+};
+
+
+/***/ }),
+
+/***/ 4882:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+module.exports =  true ? __webpack_require__(5096) : 0;
+
+
+
+/***/ }),
+
+/***/ 4485:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var ArraySpeciesCreate = __webpack_require__(1539);
+var FlattenIntoArray = __webpack_require__(6739);
+var Get = __webpack_require__(6448);
+var ToIntegerOrInfinity = __webpack_require__(1723);
+var ToLength = __webpack_require__(6840);
+var ToObject = __webpack_require__(1283);
+
+module.exports = function flat() {
+	var O = ToObject(this);
+	var sourceLen = ToLength(Get(O, 'length'));
+
+	var depthNum = 1;
+	if (arguments.length > 0 && typeof arguments[0] !== 'undefined') {
+		depthNum = ToIntegerOrInfinity(arguments[0]);
+	}
+
+	var A = ArraySpeciesCreate(O, 0);
+	FlattenIntoArray(A, O, sourceLen, 0, depthNum);
+	return A;
+};
+
+
+/***/ }),
+
+/***/ 116:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var define = __webpack_require__(9170);
+var callBind = __webpack_require__(9961);
+
+var implementation = __webpack_require__(4485);
+var getPolyfill = __webpack_require__(616);
+var polyfill = getPolyfill();
+var shim = __webpack_require__(2059);
+
+var boundFlat = callBind(polyfill);
+
+define(boundFlat, {
+	getPolyfill: getPolyfill,
+	implementation: implementation,
+	shim: shim
+});
+
+module.exports = boundFlat;
+
+
+/***/ }),
+
+/***/ 9630:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(1801);
+
+var callBind = __webpack_require__(9961);
+
+var $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));
+
+module.exports = function callBoundIntrinsic(name, allowMissing) {
+	var intrinsic = GetIntrinsic(name, !!allowMissing);
+	if (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {
+		return callBind(intrinsic);
+	}
+	return intrinsic;
+};
+
+
+/***/ }),
+
+/***/ 9961:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var bind = __webpack_require__(1930);
+var GetIntrinsic = __webpack_require__(1801);
+
+var $apply = GetIntrinsic('%Function.prototype.apply%');
+var $call = GetIntrinsic('%Function.prototype.call%');
+var $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);
+
+var $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);
+var $defineProperty = GetIntrinsic('%Object.defineProperty%', true);
+var $max = GetIntrinsic('%Math.max%');
+
+if ($defineProperty) {
+	try {
+		$defineProperty({}, 'a', { value: 1 });
+	} catch (e) {
+		// IE 8 has a broken defineProperty
+		$defineProperty = null;
+	}
+}
+
+module.exports = function callBind(originalFunction) {
+	var func = $reflectApply(bind, $call, arguments);
+	if ($gOPD && $defineProperty) {
+		var desc = $gOPD(func, 'length');
+		if (desc.configurable) {
+			// original length, plus the receiver, minus any additional arguments (after the receiver)
+			$defineProperty(
+				func,
+				'length',
+				{ value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }
+			);
+		}
+	}
+	return func;
+};
+
+var applyBind = function applyBind() {
+	return $reflectApply(bind, $apply, arguments);
+};
+
+if ($defineProperty) {
+	$defineProperty(module.exports, 'apply', { value: applyBind });
+} else {
+	module.exports.apply = applyBind;
+}
+
+
+/***/ }),
+
+/***/ 4219:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var undefined;
+
+var $SyntaxError = SyntaxError;
+var $Function = Function;
+var $TypeError = TypeError;
+
+// eslint-disable-next-line consistent-return
+var getEvalledConstructor = function (expressionSyntax) {
+	try {
+		return $Function('"use strict"; return (' + expressionSyntax + ').constructor;')();
+	} catch (e) {}
+};
+
+var $gOPD = Object.getOwnPropertyDescriptor;
+if ($gOPD) {
+	try {
+		$gOPD({}, '');
+	} catch (e) {
+		$gOPD = null; // this is IE 8, which has a broken gOPD
+	}
+}
+
+var throwTypeError = function () {
+	throw new $TypeError();
+};
+var ThrowTypeError = $gOPD
+	? (function () {
+		try {
+			// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties
+			arguments.callee; // IE 8 does not throw here
+			return throwTypeError;
+		} catch (calleeThrows) {
+			try {
+				// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')
+				return $gOPD(arguments, 'callee').get;
+			} catch (gOPDthrows) {
+				return throwTypeError;
 			}
 		}
-
-		Array.prototype.forEach.call( document.querySelectorAll( '[style]' ), removeViewportStyles );
-		Array.prototype.forEach.call( document.styleSheets, function( stylesheet ) {
-			Array.prototype.forEach.call( stylesheet.cssRules || stylesheet.rules, removeViewportStyles );
-		} );
-
-		document.body.style.position = 'absolute';
-		document.body.style.width = '100%';
-		document.body.setAttribute( 'data-resizable-iframe-connected', '' );
-
-		sendResize();
-
-		// Resize events can change the width of elements with 100% width, but we don't
-		// get an DOM mutations for that, so do the resize when the window is resized, too.
-		window.addEventListener( 'resize', sendResize, true );
-} )();`;
-const sandbox_style = `
-	body {
-		margin: 0;
-	}
-	html,
-	body,
-	body > div,
-	body > div iframe {
-		width: 100%;
-	}
-	html.wp-has-aspect-ratio,
-	body.wp-has-aspect-ratio,
-	body.wp-has-aspect-ratio > div,
-	body.wp-has-aspect-ratio > div iframe {
-		height: 100%;
-		overflow: hidden; /* If it has an aspect ratio, it shouldn't scroll. */
-	}
-	body > div > * {
-		margin-top: 0 !important; /* Has to have !important to override inline styles. */
-		margin-bottom: 0 !important;
-	}
-`;
-function Sandbox({
-  html = '',
-  title = '',
-  type,
-  styles = [],
-  scripts = [],
-  onFocus
-}) {
-  const ref = Object(external_wp_element_["useRef"])();
-  const [width, setWidth] = Object(external_wp_element_["useState"])(0);
-  const [height, setHeight] = Object(external_wp_element_["useState"])(0);
-
-  function isFrameAccessible() {
-    try {
-      return !!ref.current.contentDocument.body;
-    } catch (e) {
-      return false;
-    }
-  }
-
-  function trySandbox(forceRerender = false) {
-    if (!isFrameAccessible()) {
-      return;
-    }
-
-    const {
-      contentDocument,
-      ownerDocument
-    } = ref.current;
-    const {
-      body
-    } = contentDocument;
-
-    if (!forceRerender && null !== body.getAttribute('data-resizable-iframe-connected')) {
-      return;
-    } // put the html snippet into a html document, and then write it to the iframe's document
-    // we can use this in the future to inject custom styles or scripts.
-    // Scripts go into the body rather than the head, to support embedded content such as Instagram
-    // that expect the scripts to be part of the body.
-
-
-    const htmlDoc = Object(external_wp_element_["createElement"])("html", {
-      lang: ownerDocument.documentElement.lang,
-      className: type
-    }, Object(external_wp_element_["createElement"])("head", null, Object(external_wp_element_["createElement"])("title", null, title), Object(external_wp_element_["createElement"])("style", {
-      dangerouslySetInnerHTML: {
-        __html: sandbox_style
-      }
-    }), styles.map((rules, i) => Object(external_wp_element_["createElement"])("style", {
-      key: i,
-      dangerouslySetInnerHTML: {
-        __html: rules
-      }
-    }))), Object(external_wp_element_["createElement"])("body", {
-      "data-resizable-iframe-connected": "data-resizable-iframe-connected",
-      className: type
-    }, Object(external_wp_element_["createElement"])("div", {
-      dangerouslySetInnerHTML: {
-        __html: html
-      }
-    }), Object(external_wp_element_["createElement"])("script", {
-      type: "text/javascript",
-      dangerouslySetInnerHTML: {
-        __html: observeAndResizeJS
-      }
-    }), scripts.map(src => Object(external_wp_element_["createElement"])("script", {
-      key: src,
-      src: src
-    })))); // writing the document like this makes it act in the same way as if it was
-    // loaded over the network, so DOM creation and mutation, script execution, etc.
-    // all work as expected
-
-    contentDocument.open();
-    contentDocument.write('<!DOCTYPE html>' + Object(external_wp_element_["renderToString"])(htmlDoc));
-    contentDocument.close();
-  }
-
-  Object(external_wp_element_["useEffect"])(() => {
-    trySandbox();
-
-    function tryNoForceSandbox() {
-      trySandbox(false);
-    }
-
-    function checkMessageForResize(event) {
-      const iframe = ref.current; // Verify that the mounted element is the source of the message
-
-      if (!iframe || iframe.contentWindow !== event.source) {
-        return;
-      } // Attempt to parse the message data as JSON if passed as string
-
-
-      let data = event.data || {};
-
-      if ('string' === typeof data) {
-        try {
-          data = JSON.parse(data);
-        } catch (e) {}
-      } // Update the state only if the message is formatted as we expect,
-      // i.e. as an object with a 'resize' action.
-
-
-      if ('resize' !== data.action) {
-        return;
-      }
-
-      setWidth(data.width);
-      setHeight(data.height);
-    }
-
-    const {
-      ownerDocument
-    } = ref.current;
-    const {
-      defaultView
-    } = ownerDocument; // This used to be registered using <iframe onLoad={} />, but it made the iframe blank
-    // after reordering the containing block. See these two issues for more details:
-    // https://github.com/WordPress/gutenberg/issues/6146
-    // https://github.com/facebook/react/issues/18752
-
-    ref.current.addEventListener('load', tryNoForceSandbox, false);
-    defaultView.addEventListener('message', checkMessageForResize);
-    return () => {
-      ref.current.removeEventListener('load', tryNoForceSandbox, false);
-      defaultView.addEventListener('message', checkMessageForResize);
-    };
-  }, []);
-  Object(external_wp_element_["useEffect"])(() => {
-    trySandbox();
-  }, [title, type, styles, scripts]);
-  Object(external_wp_element_["useEffect"])(() => {
-    trySandbox(true);
-  }, [html]);
-  return Object(external_wp_element_["createElement"])(FocusableIframe, {
-    iframeRef: ref,
-    title: title,
-    className: "components-sandbox",
-    sandbox: "allow-scripts allow-same-origin allow-presentation",
-    onFocus: onFocus,
-    width: Math.ceil(width),
-    height: Math.ceil(height)
-  });
-}
-
-// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/snackbar/index.js
-var snackbar = __webpack_require__("iB/h");
-
-// EXTERNAL MODULE: ./node_modules/react-spring/web.cjs.js
-var web_cjs = __webpack_require__("ZO3Q");
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/snackbar/list.js
-
-
-
-/**
- * External dependencies
- */
-
-
-
-/**
- * WordPress dependencies
- */
-
-
-
-/**
- * Internal dependencies
- */
-
-
-/**
- * Renders a list of notices.
- *
- * @param  {Object}   $0           Props passed to the component.
- * @param  {Array}    $0.notices   Array of notices to render.
- * @param  {Function} $0.onRemove  Function called when a notice should be removed / dismissed.
- * @param  {Object}   $0.className Name of the class used by the component.
- * @param  {Object}   $0.children  Array of children to be rendered inside the notice list.
- * @return {Object}                The rendered notices list.
- */
-
-function SnackbarList({
-  notices,
-  className,
-  children,
-  onRemove = external_lodash_["noop"]
-}) {
-  const isReducedMotion = Object(external_wp_compose_["useReducedMotion"])();
-  const [refMap] = Object(external_wp_element_["useState"])(() => new WeakMap());
-  const transitions = Object(web_cjs["useTransition"])(notices, notice => notice.id, {
-    from: {
-      opacity: 0,
-      height: 0
-    },
-    enter: item => async (next) => await next({
-      opacity: 1,
-      height: refMap.get(item).offsetHeight
-    }),
-    leave: () => async next => {
-      await next({
-        opacity: 0
-      });
-      await next({
-        height: 0
-      });
-    },
-    immediate: isReducedMotion
-  });
-  className = classnames_default()('components-snackbar-list', className);
-
-  const removeNotice = notice => () => onRemove(notice.id);
-
-  return Object(external_wp_element_["createElement"])("div", {
-    className: className
-  }, children, transitions.map(({
-    item: notice,
-    key,
-    props: style
-  }) => Object(external_wp_element_["createElement"])(web_cjs["animated"].div, {
-    key: key,
-    style: style
-  }, Object(external_wp_element_["createElement"])("div", {
-    className: "components-snackbar-list__notice-container",
-    ref: ref => ref && refMap.set(notice, ref)
-  }, Object(external_wp_element_["createElement"])(snackbar["a" /* default */], Object(esm_extends["a" /* default */])({}, Object(external_lodash_["omit"])(notice, ['content']), {
-    onRemove: removeNotice(notice)
-  }), notice.content)))));
-}
-
-/* harmony default export */ var snackbar_list = (SnackbarList);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/spacer/hook.js
-
-
-
-/**
- * Internal dependencies
- */
- // eslint-disable-next-line no-duplicate-imports
-
-
-
-const isDefined = o => typeof o !== 'undefined' && o !== null;
-
-function useSpacer(props) {
-  const {
-    className,
-    margin,
-    marginBottom = 2,
-    marginLeft,
-    marginRight,
-    marginTop,
-    marginX,
-    marginY,
-    padding,
-    paddingBottom,
-    paddingLeft,
-    paddingRight,
-    paddingTop,
-    paddingX,
-    paddingY,
-    ...otherProps
-  } = Object(use_context_system["a" /* useContextSystem */])(props, 'Spacer');
-
-  const classes = Object(emotion_esm["b" /* cx */])(isDefined(marginTop) && /*#__PURE__*/Object(emotion_esm["a" /* css */])("margin-top:", space_space(marginTop), ";;label:classes;" + ( true ? "" : undefined)), isDefined(marginBottom) && /*#__PURE__*/Object(emotion_esm["a" /* css */])("margin-bottom:", space_space(marginBottom), ";;label:classes;" + ( true ? "" : undefined)), isDefined(marginLeft) && /*#__PURE__*/Object(emotion_esm["a" /* css */])("margin-left:", space_space(marginLeft), ";;label:classes;" + ( true ? "" : undefined)), isDefined(marginRight) && /*#__PURE__*/Object(emotion_esm["a" /* css */])("margin-right:", space_space(marginRight), ";;label:classes;" + ( true ? "" : undefined)), isDefined(marginX) && /*#__PURE__*/Object(emotion_esm["a" /* css */])("margin-left:", space_space(marginX), ";margin-right:", space_space(marginX), ";;label:classes;" + ( true ? "" : undefined)), isDefined(marginY) && /*#__PURE__*/Object(emotion_esm["a" /* css */])("margin-bottom:", space_space(marginY), ";margin-top:", space_space(marginY), ";;label:classes;" + ( true ? "" : undefined)), isDefined(margin) && /*#__PURE__*/Object(emotion_esm["a" /* css */])("margin:", space_space(margin), ";;label:classes;" + ( true ? "" : undefined)), isDefined(paddingTop) && /*#__PURE__*/Object(emotion_esm["a" /* css */])("padding-top:", space_space(paddingTop), ";;label:classes;" + ( true ? "" : undefined)), isDefined(paddingBottom) && /*#__PURE__*/Object(emotion_esm["a" /* css */])("padding-bottom:", space_space(paddingBottom), ";;label:classes;" + ( true ? "" : undefined)), isDefined(paddingLeft) && /*#__PURE__*/Object(emotion_esm["a" /* css */])("padding-left:", space_space(paddingLeft), ";;label:classes;" + ( true ? "" : undefined)), isDefined(paddingRight) && /*#__PURE__*/Object(emotion_esm["a" /* css */])("padding-right:", space_space(paddingRight), ";;label:classes;" + ( true ? "" : undefined)), isDefined(paddingX) && /*#__PURE__*/Object(emotion_esm["a" /* css */])("padding-left:", space_space(paddingX), ";padding-right:", space_space(paddingX), ";;label:classes;" + ( true ? "" : undefined)), isDefined(paddingY) && /*#__PURE__*/Object(emotion_esm["a" /* css */])("padding-bottom:", space_space(paddingY), ";padding-top:", space_space(paddingY), ";;label:classes;" + ( true ? "" : undefined)), isDefined(padding) && /*#__PURE__*/Object(emotion_esm["a" /* css */])("padding:", space_space(padding), ";;label:classes;" + ( true ? "" : undefined)), className);
-
-  return { ...otherProps,
-    className: classes
-  };
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/spacer/component.js
-/**
- * Internal dependencies
- */
-
-
-/**
- * `Spacer` is a primitive layout component that providers inner (`padding`) or outer (`margin`) space in-between components. It can also be used to adaptively provide space within an `HStack` or `VStack`.
- *
- * `Spacer` comes with a bunch of shorthand props to adjust `margin` and `padding`. The values of these props work as a multiplier to the library's grid system (base of `4px`).
- *
- * @example
- * ```jsx
- * import { Spacer } from `@wordpress/components`
- *
- * function Example() {
- *   return (
- *     <View>
- *       <Spacer>
- *         <Heading>WordPress.org</Heading>
- *       </Spacer>
- *       <Text>
- *         Code is Poetry
- *       </Text>
- *     </View>
- *   );
- * }
- * ```
- */
-
-const Spacer = create_component_createComponent({
-  as: 'div',
-  useHook: useSpacer,
-  name: 'Spacer'
-});
-/* harmony default export */ var spacer_component = (Spacer);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/spinner/styles/spinner-styles.js
-
-
-/**
- * Internal dependencies
- */
-
-
-const spinAnimation = core_browser_esm_keyframes`
-	from {
-		transform: rotate(0deg);
-	}
-
-	to {
-		transform: rotate(360deg);
-	}
-`;
-const topLeft = `calc( ( ${config_values.spinnerSize} - ${config_values.spinnerSize} * ( 2 / 3 ) ) / 2 )`;
-const StyledSpinner = styled_base_browser_esm("span", {
-  target: "e1s472tg0",
-  label: "StyledSpinner"
-})("display:inline-block;background-color:", COLORS.gray[600], ";width:", config_values.spinnerSize, ";height:", config_values.spinnerSize, ";opacity:0.7;margin:5px 11px 0;border-radius:100%;position:relative;&::before{content:'';position:absolute;background-color:", COLORS.white, ";top:", topLeft, ";left:", topLeft, ";width:calc( ", config_values.spinnerSize, " / 4.5 );height:calc( ", config_values.spinnerSize, " / 4.5 );border-radius:100%;transform-origin:calc( ", config_values.spinnerSize, " / 3 ) calc( ", config_values.spinnerSize, " / 3 );animation:", spinAnimation, " 1s infinite linear;}" + ( true ? "" : undefined));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/spinner/index.js
-
-
-/**
- * Internal dependencies
- */
-
-function Spinner() {
-  return Object(external_wp_element_["createElement"])(StyledSpinner, {
-    className: "components-spinner"
-  });
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/tab-panel/index.js
-
-
-
-/**
- * External dependencies
- */
-
-
-/**
- * WordPress dependencies
- */
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-const TabButton = ({
-  tabId,
-  onClick,
-  children,
-  selected,
-  ...rest
-}) => Object(external_wp_element_["createElement"])(build_module_button["a" /* default */], Object(esm_extends["a" /* default */])({
-  role: "tab",
-  tabIndex: selected ? null : -1,
-  "aria-selected": selected,
-  id: tabId,
-  onClick: onClick
-}, rest), children);
-
-function TabPanel({
-  className,
-  children,
-  tabs,
-  initialTabName,
-  orientation = 'horizontal',
-  activeClass = 'is-active',
-  onSelect = external_lodash_["noop"]
-}) {
-  var _selectedTab$name;
-
-  const instanceId = Object(external_wp_compose_["useInstanceId"])(TabPanel, 'tab-panel');
-  const [selected, setSelected] = Object(external_wp_element_["useState"])(null);
-
-  const handleClick = tabKey => {
-    setSelected(tabKey);
-    onSelect(tabKey);
-  };
-
-  const onNavigate = (childIndex, child) => {
-    child.click();
-  };
-
-  const selectedTab = Object(external_lodash_["find"])(tabs, {
-    name: selected
-  });
-  const selectedId = `${instanceId}-${(_selectedTab$name = selectedTab === null || selectedTab === void 0 ? void 0 : selectedTab.name) !== null && _selectedTab$name !== void 0 ? _selectedTab$name : 'none'}`;
-  Object(external_wp_element_["useEffect"])(() => {
-    const newSelectedTab = Object(external_lodash_["find"])(tabs, {
-      name: selected
-    });
-
-    if (!newSelectedTab) {
-      setSelected(initialTabName || (tabs.length > 0 ? tabs[0].name : null));
-    }
-  }, [tabs]);
-  return Object(external_wp_element_["createElement"])("div", {
-    className: className
-  }, Object(external_wp_element_["createElement"])(navigable_container_menu, {
-    role: "tablist",
-    orientation: orientation,
-    onNavigate: onNavigate,
-    className: "components-tab-panel__tabs"
-  }, tabs.map(tab => Object(external_wp_element_["createElement"])(TabButton, {
-    className: classnames_default()('components-tab-panel__tabs-item', tab.className, {
-      [activeClass]: tab.name === selected
-    }),
-    tabId: `${instanceId}-${tab.name}`,
-    "aria-controls": `${instanceId}-${tab.name}-view`,
-    selected: tab.name === selected,
-    key: tab.name,
-    onClick: Object(external_lodash_["partial"])(handleClick, tab.name)
-  }, tab.title))), selectedTab && Object(external_wp_element_["createElement"])("div", {
-    key: selectedId,
-    "aria-labelledby": selectedId,
-    role: "tabpanel",
-    id: `${selectedId}-view`,
-    className: "components-tab-panel__tab-content"
-  }, children(selectedTab)));
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/input/base.js
-/**
- * External dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-
-
-const inputStyleNeutral = /*#__PURE__*/css_browser_esm("box-shadow:0 0 0 transparent;transition:box-shadow 0.1s linear;border-radius:", config_values.radiusBlockUi, ";border:", config_values.borderWidth, " solid ", COLORS.ui.border, "};", reduceMotion('transition'), ";label:inputStyleNeutral;" + ( true ? "" : undefined));
-const inputStyleFocus = /*#__PURE__*/css_browser_esm("border-color:var( --wp-admin-theme-color );box-shadow:0 0 0 calc( ", config_values.borderWidthFocus, " - ", config_values.borderWidth, " ) var( --wp-admin-theme-color );outline:2px solid transparent;;label:inputStyleFocus;" + ( true ? "" : undefined));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/breakpoint-values.js
-/* harmony default export */ var breakpoint_values = ({
-  huge: '1440px',
-  wide: '1280px',
-  'x-large': '1080px',
-  large: '960px',
-  // admin sidebar auto folds
-  medium: '782px',
-  // adminbar goes big
-  small: '600px',
-  mobile: '480px',
-  'zoomed-in': '280px'
-});
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/breakpoint.js
-/**
- * Internal dependencies
- */
-
-/**
- * @param {keyof breakpoints} point
- * @return {string} Media query declaration.
- */
-
-const breakpoint = point => `@media (min-width: ${breakpoint_values[point]})`;
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/input/input-control.js
-/**
- * External dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-const inputControl = /*#__PURE__*/css_browser_esm("font-family:", font('default.fontFamily'), ";padding:6px 8px;", inputStyleNeutral, ";font-size:", font('mobileTextMinFontSize'), ";line-height:normal;", breakpoint('small'), "{font-size:", font('default.fontSize'), ";line-height:normal;}&:focus{", inputStyleFocus, "}&::-webkit-input-placeholder{color:", COLORS.darkGray.placeholder, ";}&::-moz-placeholder{opacity:1;color:", COLORS.darkGray.placeholder, ";}&:-ms-input-placeholder{color:", COLORS.darkGray.placeholder, ";}.is-dark-theme &{&::-webkit-input-placeholder{color:", COLORS.lightGray.placeholder, ";}&::-moz-placeholder{opacity:1;color:", COLORS.lightGray.placeholder, ";}&:-ms-input-placeholder{color:", COLORS.lightGray.placeholder, ";}};label:inputControl;" + ( true ? "" : undefined));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/textarea-control/styles/textarea-control-styles.js
-
-
-/**
- * Internal dependencies
- */
-
-const StyledTextarea = styled_base_browser_esm("textarea", {
-  target: "ebk7yr50",
-  label: "StyledTextarea"
-})("width:100%;", inputControl,  true ? "" : undefined);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/textarea-control/index.js
-
-
-
-/**
- * WordPress dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-
-function TextareaControl({
-  label,
-  hideLabelFromVision,
-  value,
-  help,
-  onChange,
-  rows = 4,
-  className,
-  ...props
-}) {
-  const instanceId = Object(external_wp_compose_["useInstanceId"])(TextareaControl);
-  const id = `inspector-textarea-control-${instanceId}`;
-
-  const onChangeValue = event => onChange(event.target.value);
-
-  return Object(external_wp_element_["createElement"])(base_control, {
-    label: label,
-    hideLabelFromVision: hideLabelFromVision,
-    id: id,
-    help: help,
-    className: className
-  }, Object(external_wp_element_["createElement"])(StyledTextarea, Object(esm_extends["a" /* default */])({
-    className: "components-textarea-control__input",
-    id: id,
-    rows: rows,
-    onChange: onChangeValue,
-    "aria-describedby": !!help ? id + '__help' : undefined,
-    value: value
-  }, props)));
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/text-highlight/index.js
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-const TextHighlight = ({
-  text = '',
-  highlight = ''
-}) => {
-  const trimmedHighlightText = highlight.trim();
-
-  if (!trimmedHighlightText) {
-    return text;
-  }
-
-  const regex = new RegExp(`(${Object(external_lodash_["escapeRegExp"])(trimmedHighlightText)})`, 'gi');
-  return Object(external_wp_element_["createInterpolateElement"])(text.replace(regex, '<mark>$&</mark>'), {
-    mark: Object(external_wp_element_["createElement"])("mark", null)
-  });
-};
-
-/* harmony default export */ var text_highlight = (TextHighlight);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/tip/index.js
-
-
-/**
- * WordPress dependencies
- */
-
-/**
- * @typedef Props
- * @property {import('react').ReactNode} children Children to render in the tip.
- */
-
-/**
- * @param {Props} props
- * @return {JSX.Element} Element
- */
-
-function Tip(props) {
-  return Object(external_wp_element_["createElement"])("div", {
-    className: "components-tip"
-  }, Object(external_wp_element_["createElement"])(external_wp_primitives_["SVG"], {
-    width: "24",
-    height: "24",
-    viewBox: "0 0 24 24"
-  }, Object(external_wp_element_["createElement"])(external_wp_primitives_["Path"], {
-    d: "M12 15.8c-3.7 0-6.8-3-6.8-6.8s3-6.8 6.8-6.8c3.7 0 6.8 3 6.8 6.8s-3.1 6.8-6.8 6.8zm0-12C9.1 3.8 6.8 6.1 6.8 9s2.4 5.2 5.2 5.2c2.9 0 5.2-2.4 5.2-5.2S14.9 3.8 12 3.8zM8 17.5h8V19H8zM10 20.5h4V22h-4z"
-  })), Object(external_wp_element_["createElement"])("p", null, props.children));
-}
-
-/* harmony default export */ var tip = (Tip);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/toggle-control/index.js
-
-
-/**
- * External dependencies
- */
-
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-function ToggleControl({
-  label,
-  checked,
-  help,
-  className,
-  onChange,
-  disabled
-}) {
-  function onChangeToggle(event) {
-    onChange(event.target.checked);
-  }
-
-  const instanceId = Object(external_wp_compose_["useInstanceId"])(ToggleControl);
-  const id = `inspector-toggle-control-${instanceId}`;
-  let describedBy, helpLabel;
-
-  if (help) {
-    describedBy = id + '__help';
-    helpLabel = Object(external_lodash_["isFunction"])(help) ? help(checked) : help;
-  }
-
-  return Object(external_wp_element_["createElement"])(base_control, {
-    id: id,
-    help: helpLabel,
-    className: classnames_default()('components-toggle-control', className)
-  }, Object(external_wp_element_["createElement"])(form_toggle, {
-    id: id,
-    checked: checked,
-    onChange: onChangeToggle,
-    "aria-describedby": describedBy,
-    disabled: disabled
-  }), Object(external_wp_element_["createElement"])("label", {
-    htmlFor: id,
-    className: "components-toggle-control__label"
-  }, label));
-}
-
-// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/toolbar-item/index.js
-var toolbar_item = __webpack_require__("aA0e");
-
-// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/toolbar-context/index.js
-var toolbar_context = __webpack_require__("GK4x");
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/toolbar-button/toolbar-button-container.js
-
-
-const ToolbarButtonContainer = props => Object(external_wp_element_["createElement"])("div", {
-  className: props.className
-}, props.children);
-
-/* harmony default export */ var toolbar_button_container = (ToolbarButtonContainer);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/toolbar-button/index.js
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-
-function ToolbarButton({
-  containerClassName,
-  className,
-  extraProps,
-  children,
-  title,
-  isActive,
-  isDisabled,
-  ...props
-}, ref) {
-  const accessibleToolbarState = Object(external_wp_element_["useContext"])(toolbar_context["a" /* default */]);
-
-  if (!accessibleToolbarState) {
-    return Object(external_wp_element_["createElement"])(toolbar_button_container, {
-      className: containerClassName
-    }, Object(external_wp_element_["createElement"])(build_module_button["a" /* default */], Object(esm_extends["a" /* default */])({
-      ref: ref,
-      icon: props.icon,
-      label: title,
-      shortcut: props.shortcut,
-      "data-subscript": props.subscript,
-      onClick: event => {
-        event.stopPropagation();
-
-        if (props.onClick) {
-          props.onClick(event);
-        }
-      },
-      className: classnames_default()('components-toolbar__control', className),
-      isPressed: isActive,
-      disabled: isDisabled,
-      "data-toolbar-item": true
-    }, extraProps, props), children));
-  } // ToobarItem will pass all props to the render prop child, which will pass
-  // all props to Button. This means that ToolbarButton has the same API as
-  // Button.
-
-
-  return Object(external_wp_element_["createElement"])(toolbar_item["a" /* default */], Object(esm_extends["a" /* default */])({
-    className: classnames_default()('components-toolbar-button', className)
-  }, extraProps, props, {
-    ref: ref
-  }), toolbarItemProps => Object(external_wp_element_["createElement"])(build_module_button["a" /* default */], Object(esm_extends["a" /* default */])({
-    label: title,
-    isPressed: isActive,
-    disabled: isDisabled
-  }, toolbarItemProps), children));
-}
-
-/* harmony default export */ var toolbar_button = (Object(external_wp_element_["forwardRef"])(ToolbarButton));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/toolbar-group/toolbar-group-container.js
-
-
-
-const ToolbarGroupContainer = ({
-  className,
-  children,
-  ...props
-}) => Object(external_wp_element_["createElement"])("div", Object(esm_extends["a" /* default */])({
-  className: className
-}, props), children);
-
-/* harmony default export */ var toolbar_group_container = (ToolbarGroupContainer);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/toolbar-group/toolbar-group-collapsed.js
-
-
-
-/**
- * WordPress dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-function ToolbarGroupCollapsed({
-  controls = [],
-  toggleProps,
-  ...props
-}) {
-  // It'll contain state if `ToolbarGroup` is being used within
-  // `<Toolbar label="label" />`
-  const accessibleToolbarState = Object(external_wp_element_["useContext"])(toolbar_context["a" /* default */]);
-
-  const renderDropdownMenu = internalToggleProps => Object(external_wp_element_["createElement"])(dropdown_menu, Object(esm_extends["a" /* default */])({
-    controls: controls,
-    toggleProps: { ...internalToggleProps,
-      'data-toolbar-item': true
-    }
-  }, props));
-
-  if (accessibleToolbarState) {
-    return Object(external_wp_element_["createElement"])(toolbar_item["a" /* default */], toggleProps, renderDropdownMenu);
-  }
-
-  return renderDropdownMenu(toggleProps);
-}
-
-/* harmony default export */ var toolbar_group_collapsed = (ToolbarGroupCollapsed);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/toolbar-group/index.js
-
-
-
-/**
- * External dependencies
- */
-
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-/**
- * Renders a collapsible group of controls
- *
- * The `controls` prop accepts an array of sets. A set is an array of controls.
- * Controls have the following shape:
- *
- * ```
- * {
- *   icon: string,
- *   title: string,
- *   subscript: string,
- *   onClick: Function,
- *   isActive: boolean,
- *   isDisabled: boolean
- * }
- * ```
- *
- * For convenience it is also possible to pass only an array of controls. It is
- * then assumed this is the only set.
- *
- * Either `controls` or `children` is required, otherwise this components
- * renders nothing.
- *
- * @param {Object}    props               Component props.
- * @param {Array}     [props.controls]    The controls to render in this toolbar.
- * @param {WPElement} [props.children]    Any other things to render inside the toolbar besides the controls.
- * @param {string}    [props.className]   Class to set on the container div.
- * @param {boolean}   [props.isCollapsed] Turns ToolbarGroup into a dropdown menu.
- * @param {string}    [props.title]       ARIA label for dropdown menu if is collapsed.
- */
-
-function ToolbarGroup({
-  controls = [],
-  children,
-  className,
-  isCollapsed,
-  title,
-  ...props
-}) {
-  // It'll contain state if `ToolbarGroup` is being used within
-  // `<Toolbar label="label" />`
-  const accessibleToolbarState = Object(external_wp_element_["useContext"])(toolbar_context["a" /* default */]);
-
-  if ((!controls || !controls.length) && !children) {
-    return null;
-  }
-
-  const finalClassName = classnames_default()( // Unfortunately, there's legacy code referencing to `.components-toolbar`
-  // So we can't get rid of it
-  accessibleToolbarState ? 'components-toolbar-group' : 'components-toolbar', className); // Normalize controls to nested array of objects (sets of controls)
-
-  let controlSets = controls;
-
-  if (!Array.isArray(controlSets[0])) {
-    controlSets = [controlSets];
-  }
-
-  if (isCollapsed) {
-    return Object(external_wp_element_["createElement"])(toolbar_group_collapsed, Object(esm_extends["a" /* default */])({
-      label: title,
-      controls: controlSets,
-      className: finalClassName,
-      children: children
-    }, props));
-  }
-
-  return Object(external_wp_element_["createElement"])(toolbar_group_container, Object(esm_extends["a" /* default */])({
-    className: finalClassName
-  }, props), Object(external_lodash_["flatMap"])(controlSets, (controlSet, indexOfSet) => controlSet.map((control, indexOfControl) => Object(external_wp_element_["createElement"])(toolbar_button, Object(esm_extends["a" /* default */])({
-    key: [indexOfSet, indexOfControl].join(),
-    containerClassName: indexOfSet > 0 && indexOfControl === 0 ? 'has-left-divider' : null
-  }, control)))), children);
-}
-
-/* harmony default export */ var toolbar_group = (ToolbarGroup);
-
-// CONCATENATED MODULE: ./node_modules/reakit/es/Toolbar/ToolbarState.js
-
-
-
-
-
-
-
-
-
-
-
-
-
-function useToolbarState(initialState) {
-  if (initialState === void 0) {
-    initialState = {};
-  }
-
-  var _useSealedState = useSealedState(initialState),
-      _useSealedState$orien = _useSealedState.orientation,
-      orientation = _useSealedState$orien === void 0 ? "horizontal" : _useSealedState$orien,
-      sealed = Object(_rollupPluginBabelHelpers_1f0bf8c2["a" /* _ */])(_useSealedState, ["orientation"]);
-
-  return useCompositeState(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({
-    orientation: orientation
-  }, sealed));
-}
-
-
-
-// EXTERNAL MODULE: ./node_modules/reakit/es/__keys-ae468c11.js
-var _keys_ae468c11 = __webpack_require__("mjVI");
-
-// CONCATENATED MODULE: ./node_modules/reakit/es/Toolbar/Toolbar.js
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-var useToolbar = Object(createHook["a" /* createHook */])({
-  name: "Toolbar",
-  compose: useComposite,
-  keys: _keys_ae468c11["a" /* T */],
-  useProps: function useProps(options, htmlProps) {
-    return Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({
-      role: "toolbar",
-      "aria-orientation": options.orientation
-    }, htmlProps);
-  }
-});
-var Toolbar = Object(createComponent["a" /* createComponent */])({
-  as: "div",
-  useHook: useToolbar,
-  useCreateElement: function useCreateElement$1(type, props, children) {
-     false ? undefined : void 0;
-    return Object(useCreateElement["a" /* useCreateElement */])(type, props, children);
-  }
-});
-
-
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/toolbar/toolbar-container.js
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-function ToolbarContainer({
-  label,
-  ...props
-}, ref) {
-  // https://reakit.io/docs/basic-concepts/#state-hooks
-  // Passing baseId for server side rendering (which includes snapshots)
-  // If an id prop is passed to Toolbar, toolbar items will use it as a base for their ids
-  const toolbarState = useToolbarState({
-    loop: true,
-    baseId: props.id,
-    rtl: Object(external_wp_i18n_["isRTL"])()
-  });
-  return (// This will provide state for `ToolbarButton`'s
-    Object(external_wp_element_["createElement"])(toolbar_context["a" /* default */].Provider, {
-      value: toolbarState
-    }, Object(external_wp_element_["createElement"])(Toolbar, Object(esm_extends["a" /* default */])({
-      ref: ref,
-      "aria-label": label
-    }, toolbarState, props)))
-  );
-}
-
-/* harmony default export */ var toolbar_container = (Object(external_wp_element_["forwardRef"])(ToolbarContainer));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/toolbar/index.js
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-/**
- * Renders a toolbar.
- *
- * To add controls, simply pass `ToolbarButton` components as children.
- *
- * @param {Object} props Component props.
- * @param {string} [props.className] Class to set on the container div.
- * @param {string} [props.label] ARIA label for toolbar container.
- * @param {Object} ref React Element ref.
- */
-
-function toolbar_Toolbar({
-  className,
-  label,
-  ...props
-}, ref) {
-  if (!label) {
-    external_wp_deprecated_default()('Using Toolbar without label prop', {
-      since: '5.6',
-      alternative: 'ToolbarGroup component',
-      link: 'https://developer.wordpress.org/block-editor/components/toolbar/'
-    });
-    return Object(external_wp_element_["createElement"])(toolbar_group, Object(esm_extends["a" /* default */])({}, props, {
-      className: className
-    }));
-  } // `ToolbarGroup` already uses components-toolbar for compatibility reasons
-
-
-  const finalClassName = classnames_default()('components-accessible-toolbar', className);
-  return Object(external_wp_element_["createElement"])(toolbar_container, Object(esm_extends["a" /* default */])({
-    className: finalClassName,
-    label: label,
-    ref: ref
-  }, props));
-}
-
-/* harmony default export */ var toolbar = (Object(external_wp_element_["forwardRef"])(toolbar_Toolbar));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/toolbar-dropdown-menu/index.js
-
-
-
-/**
- * WordPress dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-function ToolbarDropdownMenu(props) {
-  const accessibleToolbarState = Object(external_wp_element_["useContext"])(toolbar_context["a" /* default */]);
-
-  if (!accessibleToolbarState) {
-    return Object(external_wp_element_["createElement"])(dropdown_menu, props);
-  } // ToobarItem will pass all props to the render prop child, which will pass
-  // all props to the toggle of DrpodownMenu. This means that ToolbarDropdownMenu has the same API as
-  // DrpodownMenu.
-
-
-  return Object(external_wp_element_["createElement"])(toolbar_item["a" /* default */], null, toolbarItemProps => Object(external_wp_element_["createElement"])(dropdown_menu, Object(esm_extends["a" /* default */])({}, props, {
-    toggleProps: props.toggleProps ? { ...props.toggleProps,
-      ...toolbarItemProps
-    } : toolbarItemProps
-  })));
-}
-
-/* harmony default export */ var toolbar_dropdown_menu = (ToolbarDropdownMenu);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/tree-grid/roving-tab-index-context.js
-/**
- * WordPress dependencies
- */
-
-const RovingTabIndexContext = Object(external_wp_element_["createContext"])();
-const useRovingTabIndexContext = () => Object(external_wp_element_["useContext"])(RovingTabIndexContext);
-const RovingTabIndexProvider = RovingTabIndexContext.Provider;
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/tree-grid/roving-tab-index.js
-
-
-/**
- * WordPress dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-/**
- * Provider for adding roving tab index behaviors to tree grid structures.
- *
- * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/components/src/tree-grid/README.md
- *
- * @param {Object}    props          Component props.
- * @param {WPElement} props.children Children to be rendered
- */
-
-function RovingTabIndex({
-  children
-}) {
-  const [lastFocusedElement, setLastFocusedElement] = Object(external_wp_element_["useState"])(); // Use `useMemo` to avoid creation of a new object for the providerValue
-  // on every render. Only create a new object when the `lastFocusedElement`
-  // value changes.
-
-  const providerValue = Object(external_wp_element_["useMemo"])(() => ({
-    lastFocusedElement,
-    setLastFocusedElement
-  }), [lastFocusedElement]);
-  return Object(external_wp_element_["createElement"])(RovingTabIndexProvider, {
-    value: providerValue
-  }, children);
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/tree-grid/index.js
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-
-/**
- * Internal dependencies
- */
-
-
-/**
- * Return focusables in a row element, excluding those from other branches
- * nested within the row.
- *
- * @param {Element} rowElement The DOM element representing the row.
- *
- * @return {?Array} The array of focusables in the row.
- */
-
-function getRowFocusables(rowElement) {
-  const focusablesInRow = external_wp_dom_["focus"].focusable.find(rowElement);
-
-  if (!focusablesInRow || !focusablesInRow.length) {
-    return;
-  }
-
-  return focusablesInRow.filter(focusable => {
-    return focusable.closest('[role="row"]') === rowElement;
-  });
-}
-/**
- * Renders both a table and tbody element, used to create a tree hierarchy.
- *
- * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/components/src/tree-grid/README.md
- * @param {Object}    props          Component props.
- * @param {WPElement} props.children Children to be rendered.
- * @param {Object}    ref            A ref to the underlying DOM table element.
- */
-
-
-function TreeGrid({
-  children,
-  ...props
-}, ref) {
-  const onKeyDown = Object(external_wp_element_["useCallback"])(event => {
-    const {
-      keyCode,
-      metaKey,
-      ctrlKey,
-      altKey,
-      shiftKey
-    } = event;
-    const hasModifierKeyPressed = metaKey || ctrlKey || altKey || shiftKey;
-
-    if (hasModifierKeyPressed || !Object(external_lodash_["includes"])([external_wp_keycodes_["UP"], external_wp_keycodes_["DOWN"], external_wp_keycodes_["LEFT"], external_wp_keycodes_["RIGHT"]], keyCode)) {
-      return;
-    } // The event will be handled, stop propagation.
-
-
-    event.stopPropagation();
-    const {
-      activeElement
-    } = document;
-    const {
-      currentTarget: treeGridElement
-    } = event;
-
-    if (!treeGridElement.contains(activeElement)) {
-      return;
-    } // Calculate the columnIndex of the active element.
-
-
-    const activeRow = activeElement.closest('[role="row"]');
-    const focusablesInRow = getRowFocusables(activeRow);
-    const currentColumnIndex = focusablesInRow.indexOf(activeElement);
-
-    if (Object(external_lodash_["includes"])([external_wp_keycodes_["LEFT"], external_wp_keycodes_["RIGHT"]], keyCode)) {
-      // Calculate to the next element.
-      let nextIndex;
-
-      if (keyCode === external_wp_keycodes_["LEFT"]) {
-        nextIndex = Math.max(0, currentColumnIndex - 1);
-      } else {
-        nextIndex = Math.min(currentColumnIndex + 1, focusablesInRow.length - 1);
-      } // Focus is either at the left or right edge of the grid. Do nothing.
-
-
-      if (nextIndex === currentColumnIndex) {
-        // Prevent key use for anything else. For example, Voiceover
-        // will start reading text on continued use of left/right arrow
-        // keys.
-        event.preventDefault();
-        return;
-      } // Focus the next element.
-
-
-      focusablesInRow[nextIndex].focus(); // Prevent key use for anything else. This ensures Voiceover
-      // doesn't try to handle key navigation.
-
-      event.preventDefault();
-    } else if (Object(external_lodash_["includes"])([external_wp_keycodes_["UP"], external_wp_keycodes_["DOWN"]], keyCode)) {
-      // Calculate the rowIndex of the next row.
-      const rows = Array.from(treeGridElement.querySelectorAll('[role="row"]'));
-      const currentRowIndex = rows.indexOf(activeRow);
-      let nextRowIndex;
-
-      if (keyCode === external_wp_keycodes_["UP"]) {
-        nextRowIndex = Math.max(0, currentRowIndex - 1);
-      } else {
-        nextRowIndex = Math.min(currentRowIndex + 1, rows.length - 1);
-      } // Focus is either at the top or bottom edge of the grid. Do nothing.
-
-
-      if (nextRowIndex === currentRowIndex) {
-        // Prevent key use for anything else. For example, Voiceover
-        // will start navigating horizontally when reaching the vertical
-        // bounds of a table.
-        event.preventDefault();
-        return;
-      } // Get the focusables in the next row.
-
-
-      const focusablesInNextRow = getRowFocusables(rows[nextRowIndex]); // If for some reason there are no focusables in the next row, do nothing.
-
-      if (!focusablesInNextRow || !focusablesInNextRow.length) {
-        // Prevent key use for anything else. For example, Voiceover
-        // will still focus text when using arrow keys, while this
-        // component should limit navigation to focusables.
-        event.preventDefault();
-        return;
-      } // Try to focus the element in the next row that's at a similar column to the activeElement.
-
-
-      const nextIndex = Math.min(currentColumnIndex, focusablesInNextRow.length - 1);
-      focusablesInNextRow[nextIndex].focus(); // Prevent key use for anything else. This ensures Voiceover
-      // doesn't try to handle key navigation.
-
-      event.preventDefault();
-    }
-  }, []);
-  /* Disable reason: A treegrid is implemented using a table element. */
-
-  /* eslint-disable jsx-a11y/no-noninteractive-element-to-interactive-role */
-
-  return Object(external_wp_element_["createElement"])(RovingTabIndex, null, Object(external_wp_element_["createElement"])("table", Object(esm_extends["a" /* default */])({}, props, {
-    role: "treegrid",
-    onKeyDown: onKeyDown,
-    ref: ref
-  }), Object(external_wp_element_["createElement"])("tbody", null, children)));
-  /* eslint-enable jsx-a11y/no-noninteractive-element-to-interactive-role */
-}
-
-/* harmony default export */ var tree_grid = (Object(external_wp_element_["forwardRef"])(TreeGrid));
-
-
-
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/tree-grid/row.js
-
-
-
-/**
- * WordPress dependencies
- */
-
-
-function TreeGridRow({
-  children,
-  level,
-  positionInSet,
-  setSize,
-  isExpanded,
-  ...props
-}, ref) {
-  return (// Disable reason: Due to an error in the ARIA 1.1 specification, the
-    // aria-posinset and aria-setsize properties are not supported on row
-    // elements. This is being corrected in ARIA 1.2. Consequently, the
-    // linting rule fails when validating this markup.
-    //
-    // eslint-disable-next-line jsx-a11y/role-supports-aria-props
-    Object(external_wp_element_["createElement"])("tr", Object(esm_extends["a" /* default */])({}, props, {
-      ref: ref,
-      role: "row",
-      "aria-level": level,
-      "aria-posinset": positionInSet,
-      "aria-setsize": setSize,
-      "aria-expanded": isExpanded
-    }), children)
-  );
-}
-
-/* harmony default export */ var tree_grid_row = (Object(external_wp_element_["forwardRef"])(TreeGridRow));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/tree-grid/roving-tab-index-item.js
-
-
-/**
- * WordPress dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-/* harmony default export */ var roving_tab_index_item = (Object(external_wp_element_["forwardRef"])(function RovingTabIndexItem({
-  children,
-  as: Component,
-  ...props
-}, forwardedRef) {
-  const localRef = Object(external_wp_element_["useRef"])();
-  const ref = forwardedRef || localRef;
-  const {
-    lastFocusedElement,
-    setLastFocusedElement
-  } = useRovingTabIndexContext();
-  let tabIndex;
-
-  if (lastFocusedElement) {
-    tabIndex = lastFocusedElement === ref.current ? 0 : -1;
-  }
-
-  const onFocus = event => setLastFocusedElement(event.target);
-
-  const allProps = {
-    ref,
-    tabIndex,
-    onFocus,
-    ...props
-  };
-
-  if (typeof children === 'function') {
-    return children(allProps);
-  }
-
-  return Object(external_wp_element_["createElement"])(Component, allProps, children);
-}));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/tree-grid/item.js
-
-
-
-/**
- * WordPress dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-/* harmony default export */ var tree_grid_item = (Object(external_wp_element_["forwardRef"])(function TreeGridItem({
-  children,
-  ...props
-}, ref) {
-  return Object(external_wp_element_["createElement"])(roving_tab_index_item, Object(esm_extends["a" /* default */])({
-    ref: ref
-  }, props), children);
-}));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/tree-grid/cell.js
-
-
-
-/**
- * WordPress dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-/* harmony default export */ var tree_grid_cell = (Object(external_wp_element_["forwardRef"])(function TreeGridCell({
-  children,
-  withoutGridItem = false,
-  ...props
-}, ref) {
-  return Object(external_wp_element_["createElement"])("td", Object(esm_extends["a" /* default */])({}, props, {
-    role: "gridcell"
-  }), withoutGridItem ? children : Object(external_wp_element_["createElement"])(tree_grid_item, {
-    ref: ref
-  }, children));
-}));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/truncate/component.js
-/**
- * Internal dependencies
- */
-
-
-/**
- * `Truncate` is a typography primitive that trims text content.
- * For almost all cases, it is recommended that `Text`, `Heading`, or
- * `Subheading` is used to render text content. However,`Truncate` is
- * available for custom implementations.
- *
- * @example
- * ```jsx
- * import { __experimentalTruncate as Truncate } from `@wordpress/components`;
- *
- * function Example() {
- * 	return (
- * 		<Truncate>
- * 			Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc ex
- * 			neque, vulputate a diam et, luctus convallis lacus. Vestibulum ac
- * 			mollis mi. Morbi id elementum massa.
- * 		</Truncate>
- * 	);
- * }
- * ```
- */
-
-const component_Truncate = create_component_createComponent({
-  as: 'span',
-  useHook: useTruncate,
-  name: 'Truncate'
-});
-/* harmony default export */ var truncate_component = (component_Truncate);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/v-stack/hook.js
-/**
- * Internal dependencies
- */
-
-
-/**
- *
- * @param {import('../ui/context').ViewOwnProps<import('./types').Props, 'div'>} props
- */
-
-function useVStack(props) {
-  const {
-    expanded = false,
-    ...otherProps
-  } = Object(use_context_system["a" /* useContextSystem */])(props, 'VStack');
-  const hStackProps = useHStack({
-    direction: 'column',
-    expanded,
-    ...otherProps
-  });
-  return hStackProps;
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/v-stack/component.js
-/**
- * Internal dependencies
- */
-
-
-/**
- * `VStack` (or Vertical Stack) is a layout component that arranges child elements in a vertical line.
- *
- * `VStack` can render anything inside.
- *
- * @example
- * ```jsx
- * import {
- * 	__experimentalText as Text,
- * 	__experimentalVStack as VStack,
- * } from `@wordpress/components`;
- *
- * function Example() {
- * 	return (
- * 		<VStack>
- * 			<Text>Code</Text>
- * 			<Text>is</Text>
- * 			<Text>Poetry</Text>
- * 		</VStack>
- * 	);
- * }
- * ```
- */
-
-const VStack = create_component_createComponent({
-  as: 'div',
-  useHook: useVStack,
-  name: 'VStack'
-});
-/* harmony default export */ var v_stack_component = (VStack);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/isolated-event-container/index.js
-
-
-
-/**
- * WordPress dependencies
- */
-
-
-
-function stopPropagation(event) {
-  event.stopPropagation();
-}
-
-/* harmony default export */ var isolated_event_container = (Object(external_wp_element_["forwardRef"])(({
-  children,
-  ...props
-}, ref) => {
-  external_wp_deprecated_default()('wp.components.IsolatedEventContainer', {
-    since: '5.7'
-  }); // Disable reason: this stops certain events from propagating outside of the component.
-  //   - onMouseDown is disabled as this can cause interactions with other DOM elements
-
-  /* eslint-disable jsx-a11y/no-static-element-interactions */
-
-  return Object(external_wp_element_["createElement"])("div", Object(esm_extends["a" /* default */])({}, props, {
-    ref: ref,
-    onMouseDown: stopPropagation
-  }), children);
-  /* eslint-enable jsx-a11y/no-static-element-interactions */
-}));
-
-// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/index.js + 8 modules
-var slot_fill = __webpack_require__("dSD1");
-
-// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/bubbles-virtually/use-slot.js
-var use_slot = __webpack_require__("+WFq");
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/style-provider/index.js
-
-
-/**
- * External dependencies
- */
-
-
-
-const memoizedCreateCacheWithContainer = memize_default()(container => {
-  return Object(cache_browser_esm["a" /* default */])({
-    container
-  });
-});
-function StyleProvider({
-  children,
-  document
-}) {
-  if (!document) {
-    return null;
-  }
-
-  const cache = memoizedCreateCacheWithContainer(document.head);
-  return Object(external_wp_element_["createElement"])(CacheProvider, {
-    value: cache
-  }, children);
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/higher-order/navigate-regions/index.js
-
-
-/**
- * WordPress dependencies
- */
-
-
-
-const defaultShortcuts = {
-  previous: ['ctrl+shift+`', external_wp_keycodes_["rawShortcut"].access('p')],
-  next: ['ctrl+`', external_wp_keycodes_["rawShortcut"].access('n')]
-};
-function useNavigateRegions(ref, shortcuts = defaultShortcuts) {
-  const [isFocusingRegions, setIsFocusingRegions] = Object(external_wp_element_["useState"])(false);
-
-  function focusRegion(offset) {
-    const regions = Array.from(ref.current.querySelectorAll('[role="region"]'));
-
-    if (!regions.length) {
-      return;
-    }
-
-    let nextRegion = regions[0];
-    const selectedIndex = regions.indexOf(ref.current.ownerDocument.activeElement);
-
-    if (selectedIndex !== -1) {
-      let nextIndex = selectedIndex + offset;
-      nextIndex = nextIndex === -1 ? regions.length - 1 : nextIndex;
-      nextIndex = nextIndex === regions.length ? 0 : nextIndex;
-      nextRegion = regions[nextIndex];
-    }
-
-    nextRegion.focus();
-    setIsFocusingRegions(true);
-  }
-
-  const focusPrevious = Object(external_wp_element_["useCallback"])(() => focusRegion(-1), []);
-  const focusNext = Object(external_wp_element_["useCallback"])(() => focusRegion(1), []);
-  Object(external_wp_compose_["useKeyboardShortcut"])(shortcuts.previous, focusPrevious, {
-    bindGlobal: true
-  });
-  Object(external_wp_compose_["useKeyboardShortcut"])(shortcuts.next, focusNext, {
-    bindGlobal: true
-  });
-  Object(external_wp_element_["useEffect"])(() => {
-    function onClick() {
-      setIsFocusingRegions(false);
-    }
-
-    ref.current.addEventListener('click', onClick);
-    return () => {
-      ref.current.removeEventListener('click', onClick);
-    };
-  }, [setIsFocusingRegions]);
-
-  if (!isFocusingRegions) {
-    return;
-  }
-
-  return 'is-focusing-regions';
-}
-/* harmony default export */ var navigate_regions = (Object(external_wp_compose_["createHigherOrderComponent"])(Component => ({
-  shortcuts,
-  ...props
-}) => {
-  const ref = Object(external_wp_element_["useRef"])();
-  const className = useNavigateRegions(ref, shortcuts);
-  return Object(external_wp_element_["createElement"])("div", {
-    ref: ref,
-    className: className
-  }, Object(external_wp_element_["createElement"])(Component, props));
-}, 'navigateRegions'));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/higher-order/with-constrained-tabbing/index.js
-
-
-/**
- * WordPress dependencies
- */
-
-const withConstrainedTabbing = Object(external_wp_compose_["createHigherOrderComponent"])(WrappedComponent => function ComponentWithConstrainedTabbing(props) {
-  const ref = Object(external_wp_compose_["useConstrainedTabbing"])();
-  return Object(external_wp_element_["createElement"])("div", {
-    ref: ref,
-    tabIndex: "-1"
-  }, Object(external_wp_element_["createElement"])(WrappedComponent, props));
-}, 'withConstrainedTabbing');
-/* harmony default export */ var with_constrained_tabbing = (withConstrainedTabbing);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/higher-order/with-fallback-styles/index.js
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-/* harmony default export */ var with_fallback_styles = (mapNodeToProps => Object(external_wp_compose_["createHigherOrderComponent"])(WrappedComponent => {
-  return class extends external_wp_element_["Component"] {
-    constructor() {
-      super(...arguments);
-      this.nodeRef = this.props.node;
-      this.state = {
-        fallbackStyles: undefined,
-        grabStylesCompleted: false
-      };
-      this.bindRef = this.bindRef.bind(this);
-    }
-
-    bindRef(node) {
-      if (!node) {
-        return;
-      }
-
-      this.nodeRef = node;
-    }
-
-    componentDidMount() {
-      this.grabFallbackStyles();
-    }
-
-    componentDidUpdate() {
-      this.grabFallbackStyles();
-    }
-
-    grabFallbackStyles() {
-      const {
-        grabStylesCompleted,
-        fallbackStyles
-      } = this.state;
-
-      if (this.nodeRef && !grabStylesCompleted) {
-        const newFallbackStyles = mapNodeToProps(this.nodeRef, this.props);
-
-        if (!Object(external_lodash_["isEqual"])(newFallbackStyles, fallbackStyles)) {
-          this.setState({
-            fallbackStyles: newFallbackStyles,
-            grabStylesCompleted: !!Object(external_lodash_["every"])(newFallbackStyles)
-          });
-        }
-      }
-    }
-
-    render() {
-      const wrappedComponent = Object(external_wp_element_["createElement"])(WrappedComponent, Object(esm_extends["a" /* default */])({}, this.props, this.state.fallbackStyles));
-      return this.props.node ? wrappedComponent : Object(external_wp_element_["createElement"])("div", {
-        ref: this.bindRef
-      }, " ", wrappedComponent, " ");
-    }
-
-  };
-}, 'withFallbackStyles'));
-
-// EXTERNAL MODULE: external ["wp","hooks"]
-var external_wp_hooks_ = __webpack_require__("g56x");
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/higher-order/with-filters/index.js
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-
-const ANIMATION_FRAME_PERIOD = 16;
-/**
- * Creates a higher-order component which adds filtering capability to the
- * wrapped component. Filters get applied when the original component is about
- * to be mounted. When a filter is added or removed that matches the hook name,
- * the wrapped component re-renders.
- *
- * @param {string} hookName Hook name exposed to be used by filters.
- *
- * @return {Function} Higher-order component factory.
- */
-
-function withFilters(hookName) {
-  return Object(external_wp_compose_["createHigherOrderComponent"])(OriginalComponent => {
-    const namespace = 'core/with-filters/' + hookName;
-    /**
-     * The component definition with current filters applied. Each instance
-     * reuse this shared reference as an optimization to avoid excessive
-     * calls to `applyFilters` when many instances exist.
-     *
-     * @type {?Component}
-     */
-
-    let FilteredComponent;
-    /**
-     * Initializes the FilteredComponent variable once, if not already
-     * assigned. Subsequent calls are effectively a noop.
-     */
-
-    function ensureFilteredComponent() {
-      if (FilteredComponent === undefined) {
-        FilteredComponent = Object(external_wp_hooks_["applyFilters"])(hookName, OriginalComponent);
-      }
-    }
-
-    class FilteredComponentRenderer extends external_wp_element_["Component"] {
-      constructor() {
-        super(...arguments);
-        ensureFilteredComponent();
-      }
-
-      componentDidMount() {
-        FilteredComponentRenderer.instances.push(this); // If there were previously no mounted instances for components
-        // filtered on this hook, add the hook handler.
-
-        if (FilteredComponentRenderer.instances.length === 1) {
-          Object(external_wp_hooks_["addAction"])('hookRemoved', namespace, onHooksUpdated);
-          Object(external_wp_hooks_["addAction"])('hookAdded', namespace, onHooksUpdated);
-        }
-      }
-
-      componentWillUnmount() {
-        FilteredComponentRenderer.instances = Object(external_lodash_["without"])(FilteredComponentRenderer.instances, this); // If this was the last of the mounted components filtered on
-        // this hook, remove the hook handler.
-
-        if (FilteredComponentRenderer.instances.length === 0) {
-          Object(external_wp_hooks_["removeAction"])('hookRemoved', namespace);
-          Object(external_wp_hooks_["removeAction"])('hookAdded', namespace);
-        }
-      }
-
-      render() {
-        return Object(external_wp_element_["createElement"])(FilteredComponent, this.props);
-      }
-
-    }
-
-    FilteredComponentRenderer.instances = [];
-    /**
-     * Updates the FilteredComponent definition, forcing a render for each
-     * mounted instance. This occurs a maximum of once per animation frame.
-     */
-
-    const throttledForceUpdate = Object(external_lodash_["debounce"])(() => {
-      // Recreate the filtered component, only after delay so that it's
-      // computed once, even if many filters added.
-      FilteredComponent = Object(external_wp_hooks_["applyFilters"])(hookName, OriginalComponent); // Force each instance to render.
-
-      FilteredComponentRenderer.instances.forEach(instance => {
-        instance.forceUpdate();
-      });
-    }, ANIMATION_FRAME_PERIOD);
-    /**
-     * When a filter is added or removed for the matching hook name, each
-     * mounted instance should re-render with the new filters having been
-     * applied to the original component.
-     *
-     * @param {string} updatedHookName Name of the hook that was updated.
-     */
-
-    function onHooksUpdated(updatedHookName) {
-      if (updatedHookName === hookName) {
-        throttledForceUpdate();
-      }
-    }
-
-    return FilteredComponentRenderer;
-  }, 'withFilters');
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/higher-order/with-focus-return/index.js
-
-
-/**
- * WordPress dependencies
- */
-
-
-
-/**
- * Returns true if the given object is component-like. An object is component-
- * like if it is an instance of wp.element.Component, or is a function.
- *
- * @param {*} object Object to test.
- *
- * @return {boolean} Whether object is component-like.
- */
-
-function isComponentLike(object) {
-  return object instanceof external_wp_element_["Component"] || typeof object === 'function';
-}
-/**
- * Higher Order Component used to be used to wrap disposable elements like
- * sidebars, modals, dropdowns. When mounting the wrapped component, we track a
- * reference to the current active element so we know where to restore focus
- * when the component is unmounted.
- *
- * @param {(WPComponent|Object)} options The component to be enhanced with
- *                                      focus return behavior, or an object
- *                                      describing the component and the
- *                                      focus return characteristics.
- *
- * @return {Function} Higher Order Component with the focus restauration behaviour.
- */
-
-
-/* harmony default export */ var with_focus_return = (Object(external_wp_compose_["createHigherOrderComponent"])(options => {
-  const HoC = ({
-    onFocusReturn
-  } = {}) => WrappedComponent => {
-    const WithFocusReturn = props => {
-      const ref = Object(external_wp_compose_["useFocusReturn"])(onFocusReturn);
-      return Object(external_wp_element_["createElement"])("div", {
-        ref: ref
-      }, Object(external_wp_element_["createElement"])(WrappedComponent, props));
-    };
-
-    return WithFocusReturn;
-  };
-
-  if (isComponentLike(options)) {
-    const WrappedComponent = options;
-    return HoC()(WrappedComponent);
-  }
-
-  return HoC(options);
-}, 'withFocusReturn'));
-const with_focus_return_Provider = ({
-  children
-}) => {
-  external_wp_deprecated_default()('wp.components.FocusReturnProvider component', {
-    since: '5.7',
-    hint: 'This provider is not used anymore. You can just remove it from your codebase'
-  });
-  return children;
-};
-
-// EXTERNAL MODULE: ./node_modules/uuid/dist/esm-browser/v4.js + 4 modules
-var v4 = __webpack_require__("7Cbv");
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/higher-order/with-notices/index.js
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-/**
- * Internal dependencies
- */
-
-
-/**
- * Override the default edit UI to include notices if supported.
- *
- * @param  {WPComponent} OriginalComponent Original component.
- *
- * @return {WPComponent} Wrapped component.
- */
-
-/* harmony default export */ var with_notices = (Object(external_wp_compose_["createHigherOrderComponent"])(OriginalComponent => {
-  function Component(props, ref) {
-    const [noticeList, setNoticeList] = Object(external_wp_element_["useState"])([]);
-    const noticeOperations = Object(external_wp_element_["useMemo"])(() => {
-      /**
-       * Function passed down as a prop that adds a new notice.
-       *
-       * @param {Object} notice  Notice to add.
-       */
-      const createNotice = notice => {
-        const noticeToAdd = notice.id ? notice : { ...notice,
-          id: Object(v4["a" /* default */])()
-        };
-        setNoticeList(current => [...current, noticeToAdd]);
-      };
-
-      return {
-        createNotice,
-
-        /**
-         * Function passed as a prop that adds a new error notice.
-         *
-         * @param {string} msg  Error message of the notice.
-         */
-        createErrorNotice: msg => {
-          createNotice({
-            status: 'error',
-            content: msg
-          });
-        },
-
-        /**
-         * Removes a notice by id.
-         *
-         * @param {string} id  Id of the notice to remove.
-         */
-        removeNotice: id => {
-          setNoticeList(current => current.filter(notice => notice.id !== id));
-        },
-
-        /**
-         * Removes all notices
-         */
-        removeAllNotices: () => {
-          setNoticeList([]);
-        }
-      };
-    }, []);
-    const propsOut = { ...props,
-      noticeList,
-      noticeOperations,
-      noticeUI: noticeList.length > 0 && Object(external_wp_element_["createElement"])(list, {
-        className: "components-with-notices-ui",
-        notices: noticeList,
-        onRemove: noticeOperations.removeNotice
-      })
-    };
-    return isForwardRef ? Object(external_wp_element_["createElement"])(OriginalComponent, Object(esm_extends["a" /* default */])({}, propsOut, {
-      ref: ref
-    })) : Object(external_wp_element_["createElement"])(OriginalComponent, propsOut);
-  }
-
-  let isForwardRef;
-  const {
-    render
-  } = OriginalComponent; // Returns a forwardRef if OriginalComponent appears to be a forwardRef
-
-  if (typeof render === 'function') {
-    isForwardRef = true;
-    return Object(external_wp_element_["forwardRef"])(Component);
-  }
-
-  return Component;
-}));
-
-// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/ui/context/with-next.js
-var with_next = __webpack_require__("9NHk");
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/ui/context/component-system-provider.js
-
-
-/**
- * Internal dependencies
- */
-
-/**
- * @param {Object} props
- * @param {string[]} [props.__unstableNextInclude]
- * @param {import('react').ReactNode} props.children
- * @param {any} props.value
- */
-
-function ComponentSystemProvider({
-  __unstableNextInclude = [],
-  children,
-  value = {}
-}) {
-  if (false) {}
-
-  return children;
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/index.js
-// Primitives
- // Components
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- // Higher-Order Components
-
-
-
-
-
-
-
-
- // Component System
-
-
-
-
-/***/ }),
-
-/***/ "SIPS":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return getRegisteredStyles; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return insertStyles; });
-var isBrowser = "object" !== 'undefined';
-function getRegisteredStyles(registered, registeredStyles, classNames) {
-  var rawClassName = '';
-  classNames.split(' ').forEach(function (className) {
-    if (registered[className] !== undefined) {
-      registeredStyles.push(registered[className]);
-    } else {
-      rawClassName += className + " ";
-    }
-  });
-  return rawClassName;
-}
-var insertStyles = function insertStyles(cache, serialized, isStringTag) {
-  var className = cache.key + "-" + serialized.name;
-
-  if ( // we only need to add the styles to the registered cache if the
-  // class name could be used further down
-  // the tree but if it's a string tag, we know it won't
-  // so we don't have to add it to registered cache.
-  // this improves memory usage since we can avoid storing the whole style string
-  (isStringTag === false || // we need to always store it if we're in compat mode and
-  // in node since emotion-server relies on whether a style is in
-  // the registered cache to know whether a style is global or not
-  // also, note that this check will be dead code eliminated in the browser
-  isBrowser === false && cache.compat !== undefined) && cache.registered[className] === undefined) {
-    cache.registered[className] = serialized.styles;
-  }
-
-  if (cache.inserted[serialized.name] === undefined) {
-    var current = serialized;
-
-    do {
-      var maybeStyles = cache.insert("." + className, current, cache.sheet, true);
-
-      current = current.next;
-    } while (current !== undefined);
-  }
-};
-
-
-
-
-/***/ }),
-
-/***/ "SSiF":
-/***/ (function(module, exports, __webpack_require__) {
-
-var e=__webpack_require__("cDcd"),n={display:"block",opacity:0,position:"absolute",top:0,left:0,height:"100%",width:"100%",overflow:"hidden",pointerEvents:"none",zIndex:-1},t=function(t){var r=t.onResize,u=e.useRef();return function(n,t){var r=function(){return n.current&&n.current.contentDocument&&n.current.contentDocument.defaultView};function u(){t();var e=r();e&&e.addEventListener("resize",t)}e.useEffect((function(){return r()?u():n.current&&n.current.addEventListener&&n.current.addEventListener("load",u),function(){var e=r();e&&"function"==typeof e.removeEventListener&&e.removeEventListener("resize",t)}}),[])}(u,(function(){return r(u)})),e.createElement("iframe",{style:n,src:"about:blank",ref:u,"aria-hidden":!0,tabIndex:-1,frameBorder:0})},r=function(e){return{width:null!=e?e.offsetWidth:null,height:null!=e?e.offsetHeight:null}};module.exports=function(n){void 0===n&&(n=r);var u=e.useState(n(null)),o=u[0],i=u[1],c=e.useCallback((function(e){return i(n(e.current))}),[n]);return[e.useMemo((function(){return e.createElement(t,{onResize:c})}),[c]),o]};
-
-
-/***/ }),
-
-/***/ "SegQ":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var callBound = __webpack_require__("6ZB3");
-var hasToStringTag = __webpack_require__("B6Q+")();
+	}())
+	: throwTypeError;
+
+var hasSymbols = __webpack_require__(9828)();
+
+var getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto
+
+var needsEval = {};
+
+var TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);
+
+var INTRINSICS = {
+	'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,
+	'%Array%': Array,
+	'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,
+	'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,
+	'%AsyncFromSyncIteratorPrototype%': undefined,
+	'%AsyncFunction%': needsEval,
+	'%AsyncGenerator%': needsEval,
+	'%AsyncGeneratorFunction%': needsEval,
+	'%AsyncIteratorPrototype%': needsEval,
+	'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,
+	'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,
+	'%Boolean%': Boolean,
+	'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,
+	'%Date%': Date,
+	'%decodeURI%': decodeURI,
+	'%decodeURIComponent%': decodeURIComponent,
+	'%encodeURI%': encodeURI,
+	'%encodeURIComponent%': encodeURIComponent,
+	'%Error%': Error,
+	'%eval%': eval, // eslint-disable-line no-eval
+	'%EvalError%': EvalError,
+	'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,
+	'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,
+	'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,
+	'%Function%': $Function,
+	'%GeneratorFunction%': needsEval,
+	'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,
+	'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,
+	'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,
+	'%isFinite%': isFinite,
+	'%isNaN%': isNaN,
+	'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,
+	'%JSON%': typeof JSON === 'object' ? JSON : undefined,
+	'%Map%': typeof Map === 'undefined' ? undefined : Map,
+	'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),
+	'%Math%': Math,
+	'%Number%': Number,
+	'%Object%': Object,
+	'%parseFloat%': parseFloat,
+	'%parseInt%': parseInt,
+	'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,
+	'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,
+	'%RangeError%': RangeError,
+	'%ReferenceError%': ReferenceError,
+	'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,
+	'%RegExp%': RegExp,
+	'%Set%': typeof Set === 'undefined' ? undefined : Set,
+	'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),
+	'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,
+	'%String%': String,
+	'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,
+	'%Symbol%': hasSymbols ? Symbol : undefined,
+	'%SyntaxError%': $SyntaxError,
+	'%ThrowTypeError%': ThrowTypeError,
+	'%TypedArray%': TypedArray,
+	'%TypeError%': $TypeError,
+	'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,
+	'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,
+	'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,
+	'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,
+	'%URIError%': URIError,
+	'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,
+	'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,
+	'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet
+};
+
+var doEval = function doEval(name) {
+	var value;
+	if (name === '%AsyncFunction%') {
+		value = getEvalledConstructor('async function () {}');
+	} else if (name === '%GeneratorFunction%') {
+		value = getEvalledConstructor('function* () {}');
+	} else if (name === '%AsyncGeneratorFunction%') {
+		value = getEvalledConstructor('async function* () {}');
+	} else if (name === '%AsyncGenerator%') {
+		var fn = doEval('%AsyncGeneratorFunction%');
+		if (fn) {
+			value = fn.prototype;
+		}
+	} else if (name === '%AsyncIteratorPrototype%') {
+		var gen = doEval('%AsyncGenerator%');
+		if (gen) {
+			value = getProto(gen.prototype);
+		}
+	}
+
+	INTRINSICS[name] = value;
+
+	return value;
+};
+
+var LEGACY_ALIASES = {
+	'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],
+	'%ArrayPrototype%': ['Array', 'prototype'],
+	'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],
+	'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],
+	'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],
+	'%ArrayProto_values%': ['Array', 'prototype', 'values'],
+	'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],
+	'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],
+	'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],
+	'%BooleanPrototype%': ['Boolean', 'prototype'],
+	'%DataViewPrototype%': ['DataView', 'prototype'],
+	'%DatePrototype%': ['Date', 'prototype'],
+	'%ErrorPrototype%': ['Error', 'prototype'],
+	'%EvalErrorPrototype%': ['EvalError', 'prototype'],
+	'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],
+	'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],
+	'%FunctionPrototype%': ['Function', 'prototype'],
+	'%Generator%': ['GeneratorFunction', 'prototype'],
+	'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],
+	'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],
+	'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],
+	'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],
+	'%JSONParse%': ['JSON', 'parse'],
+	'%JSONStringify%': ['JSON', 'stringify'],
+	'%MapPrototype%': ['Map', 'prototype'],
+	'%NumberPrototype%': ['Number', 'prototype'],
+	'%ObjectPrototype%': ['Object', 'prototype'],
+	'%ObjProto_toString%': ['Object', 'prototype', 'toString'],
+	'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],
+	'%PromisePrototype%': ['Promise', 'prototype'],
+	'%PromiseProto_then%': ['Promise', 'prototype', 'then'],
+	'%Promise_all%': ['Promise', 'all'],
+	'%Promise_reject%': ['Promise', 'reject'],
+	'%Promise_resolve%': ['Promise', 'resolve'],
+	'%RangeErrorPrototype%': ['RangeError', 'prototype'],
+	'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],
+	'%RegExpPrototype%': ['RegExp', 'prototype'],
+	'%SetPrototype%': ['Set', 'prototype'],
+	'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],
+	'%StringPrototype%': ['String', 'prototype'],
+	'%SymbolPrototype%': ['Symbol', 'prototype'],
+	'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],
+	'%TypedArrayPrototype%': ['TypedArray', 'prototype'],
+	'%TypeErrorPrototype%': ['TypeError', 'prototype'],
+	'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],
+	'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],
+	'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],
+	'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],
+	'%URIErrorPrototype%': ['URIError', 'prototype'],
+	'%WeakMapPrototype%': ['WeakMap', 'prototype'],
+	'%WeakSetPrototype%': ['WeakSet', 'prototype']
+};
+
+var bind = __webpack_require__(1930);
+var hasOwn = __webpack_require__(9284);
+var $concat = bind.call(Function.call, Array.prototype.concat);
+var $spliceApply = bind.call(Function.apply, Array.prototype.splice);
+var $replace = bind.call(Function.call, String.prototype.replace);
+var $strSlice = bind.call(Function.call, String.prototype.slice);
+var $exec = bind.call(Function.call, RegExp.prototype.exec);
+
+/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */
+var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g;
+var reEscapeChar = /\\(\\)?/g; /** Used to match backslashes in property paths. */
+var stringToPath = function stringToPath(string) {
+	var first = $strSlice(string, 0, 1);
+	var last = $strSlice(string, -1);
+	if (first === '%' && last !== '%') {
+		throw new $SyntaxError('invalid intrinsic syntax, expected closing `%`');
+	} else if (last === '%' && first !== '%') {
+		throw new $SyntaxError('invalid intrinsic syntax, expected opening `%`');
+	}
+	var result = [];
+	$replace(string, rePropName, function (match, number, quote, subString) {
+		result[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;
+	});
+	return result;
+};
+/* end adaptation */
+
+var getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {
+	var intrinsicName = name;
+	var alias;
+	if (hasOwn(LEGACY_ALIASES, intrinsicName)) {
+		alias = LEGACY_ALIASES[intrinsicName];
+		intrinsicName = '%' + alias[0] + '%';
+	}
+
+	if (hasOwn(INTRINSICS, intrinsicName)) {
+		var value = INTRINSICS[intrinsicName];
+		if (value === needsEval) {
+			value = doEval(intrinsicName);
+		}
+		if (typeof value === 'undefined' && !allowMissing) {
+			throw new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');
+		}
+
+		return {
+			alias: alias,
+			name: intrinsicName,
+			value: value
+		};
+	}
+
+	throw new $SyntaxError('intrinsic ' + name + ' does not exist!');
+};
+
+module.exports = function GetIntrinsic(name, allowMissing) {
+	if (typeof name !== 'string' || name.length === 0) {
+		throw new $TypeError('intrinsic name must be a non-empty string');
+	}
+	if (arguments.length > 1 && typeof allowMissing !== 'boolean') {
+		throw new $TypeError('"allowMissing" argument must be a boolean');
+	}
+
+	if ($exec(/^%?[^%]*%?$/g, name) === null) {
+		throw new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');
+	}
+	var parts = stringToPath(name);
+	var intrinsicBaseName = parts.length > 0 ? parts[0] : '';
+
+	var intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);
+	var intrinsicRealName = intrinsic.name;
+	var value = intrinsic.value;
+	var skipFurtherCaching = false;
+
+	var alias = intrinsic.alias;
+	if (alias) {
+		intrinsicBaseName = alias[0];
+		$spliceApply(parts, $concat([0, 1], alias));
+	}
+
+	for (var i = 1, isOwn = true; i < parts.length; i += 1) {
+		var part = parts[i];
+		var first = $strSlice(part, 0, 1);
+		var last = $strSlice(part, -1);
+		if (
+			(
+				(first === '"' || first === "'" || first === '`')
+				|| (last === '"' || last === "'" || last === '`')
+			)
+			&& first !== last
+		) {
+			throw new $SyntaxError('property names with quotes must have matching quotes');
+		}
+		if (part === 'constructor' || !isOwn) {
+			skipFurtherCaching = true;
+		}
+
+		intrinsicBaseName += '.' + part;
+		intrinsicRealName = '%' + intrinsicBaseName + '%';
+
+		if (hasOwn(INTRINSICS, intrinsicRealName)) {
+			value = INTRINSICS[intrinsicRealName];
+		} else if (value != null) {
+			if (!(part in value)) {
+				if (!allowMissing) {
+					throw new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');
+				}
+				return void undefined;
+			}
+			if ($gOPD && (i + 1) >= parts.length) {
+				var desc = $gOPD(value, part);
+				isOwn = !!desc;
+
+				// By convention, when a data property is converted to an accessor
+				// property to emulate a data property that does not suffer from
+				// the override mistake, that accessor's getter is marked with
+				// an `originalValue` property. Here, when we detect this, we
+				// uphold the illusion by pretending to see that original data
+				// property, i.e., returning the value rather than the getter
+				// itself.
+				if (isOwn && 'get' in desc && !('originalValue' in desc.get)) {
+					value = desc.get;
+				} else {
+					value = value[part];
+				}
+			} else {
+				isOwn = hasOwn(value, part);
+				value = value[part];
+			}
+
+			if (isOwn && !skipFurtherCaching) {
+				INTRINSICS[intrinsicRealName] = value;
+			}
+		}
+	}
+	return value;
+};
+
+
+/***/ }),
+
+/***/ 9828:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var origSymbol = typeof Symbol !== 'undefined' && Symbol;
+var hasSymbolSham = __webpack_require__(5960);
+
+module.exports = function hasNativeSymbols() {
+	if (typeof origSymbol !== 'function') { return false; }
+	if (typeof Symbol !== 'function') { return false; }
+	if (typeof origSymbol('foo') !== 'symbol') { return false; }
+	if (typeof Symbol('bar') !== 'symbol') { return false; }
+
+	return hasSymbolSham();
+};
+
+
+/***/ }),
+
+/***/ 5960:
+/***/ (function(module) {
+
+"use strict";
+
+
+/* eslint complexity: [2, 18], max-statements: [2, 33] */
+module.exports = function hasSymbols() {
+	if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }
+	if (typeof Symbol.iterator === 'symbol') { return true; }
+
+	var obj = {};
+	var sym = Symbol('test');
+	var symObj = Object(sym);
+	if (typeof sym === 'string') { return false; }
+
+	if (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }
+	if (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }
+
+	// temp disabled per https://github.com/ljharb/object.assign/issues/17
+	// if (sym instanceof Symbol) { return false; }
+	// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4
+	// if (!(symObj instanceof Symbol)) { return false; }
+
+	// if (typeof Symbol.prototype.toString !== 'function') { return false; }
+	// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }
+
+	var symVal = 42;
+	obj[sym] = symVal;
+	for (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop
+	if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }
+
+	if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }
+
+	var syms = Object.getOwnPropertySymbols(obj);
+	if (syms.length !== 1 || syms[0] !== sym) { return false; }
+
+	if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }
+
+	if (typeof Object.getOwnPropertyDescriptor === 'function') {
+		var descriptor = Object.getOwnPropertyDescriptor(obj, sym);
+		if (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }
+	}
+
+	return true;
+};
+
+
+/***/ }),
+
+/***/ 4363:
+/***/ (function(module) {
+
+"use strict";
+
+
+var fnToStr = Function.prototype.toString;
+var reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;
+var badArrayLike;
+var isCallableMarker;
+if (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {
+	try {
+		badArrayLike = Object.defineProperty({}, 'length', {
+			get: function () {
+				throw isCallableMarker;
+			}
+		});
+		isCallableMarker = {};
+		// eslint-disable-next-line no-throw-literal
+		reflectApply(function () { throw 42; }, null, badArrayLike);
+	} catch (_) {
+		if (_ !== isCallableMarker) {
+			reflectApply = null;
+		}
+	}
+} else {
+	reflectApply = null;
+}
+
+var constructorRegex = /^\s*class\b/;
+var isES6ClassFn = function isES6ClassFunction(value) {
+	try {
+		var fnStr = fnToStr.call(value);
+		return constructorRegex.test(fnStr);
+	} catch (e) {
+		return false; // not a function
+	}
+};
+
+var tryFunctionObject = function tryFunctionToStr(value) {
+	try {
+		if (isES6ClassFn(value)) { return false; }
+		fnToStr.call(value);
+		return true;
+	} catch (e) {
+		return false;
+	}
+};
+var toStr = Object.prototype.toString;
+var fnClass = '[object Function]';
+var genClass = '[object GeneratorFunction]';
+var hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; // better: use `has-tostringtag`
+/* globals document: false */
+var documentDotAll = typeof document === 'object' && typeof document.all === 'undefined' && document.all !== undefined ? document.all : {};
+
+module.exports = reflectApply
+	? function isCallable(value) {
+		if (value === documentDotAll) { return true; }
+		if (!value) { return false; }
+		if (typeof value !== 'function' && typeof value !== 'object') { return false; }
+		if (typeof value === 'function' && !value.prototype) { return true; }
+		try {
+			reflectApply(value, null, badArrayLike);
+		} catch (e) {
+			if (e !== isCallableMarker) { return false; }
+		}
+		return !isES6ClassFn(value);
+	}
+	: function isCallable(value) {
+		if (value === documentDotAll) { return true; }
+		if (!value) { return false; }
+		if (typeof value !== 'function' && typeof value !== 'object') { return false; }
+		if (typeof value === 'function' && !value.prototype) { return true; }
+		if (hasToStringTag) { return tryFunctionObject(value); }
+		if (isES6ClassFn(value)) { return false; }
+		var strClass = toStr.call(value);
+		return strClass === fnClass || strClass === genClass;
+	};
+
+
+/***/ }),
+
+/***/ 4221:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var callBound = __webpack_require__(9630);
+var hasToStringTag = __webpack_require__(4111)();
 var has;
 var $exec;
 var isRegexMarker;
@@ -43553,379 +764,635 @@
 
 /***/ }),
 
-/***/ "SksO":
+/***/ 3205:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+var hasMap = typeof Map === 'function' && Map.prototype;
+var mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;
+var mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;
+var mapForEach = hasMap && Map.prototype.forEach;
+var hasSet = typeof Set === 'function' && Set.prototype;
+var setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;
+var setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;
+var setForEach = hasSet && Set.prototype.forEach;
+var hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;
+var weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;
+var hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;
+var weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;
+var hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;
+var weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;
+var booleanValueOf = Boolean.prototype.valueOf;
+var objectToString = Object.prototype.toString;
+var functionToString = Function.prototype.toString;
+var $match = String.prototype.match;
+var $slice = String.prototype.slice;
+var $replace = String.prototype.replace;
+var $toUpperCase = String.prototype.toUpperCase;
+var $toLowerCase = String.prototype.toLowerCase;
+var $test = RegExp.prototype.test;
+var $concat = Array.prototype.concat;
+var $join = Array.prototype.join;
+var $arrSlice = Array.prototype.slice;
+var $floor = Math.floor;
+var bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;
+var gOPS = Object.getOwnPropertySymbols;
+var symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;
+var hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';
+// ie, `has-tostringtag/shams
+var toStringTag = typeof Symbol === 'function' && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? 'object' : 'symbol')
+    ? Symbol.toStringTag
+    : null;
+var isEnumerable = Object.prototype.propertyIsEnumerable;
+
+var gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (
+    [].__proto__ === Array.prototype // eslint-disable-line no-proto
+        ? function (O) {
+            return O.__proto__; // eslint-disable-line no-proto
+        }
+        : null
+);
+
+function addNumericSeparator(num, str) {
+    if (
+        num === Infinity
+        || num === -Infinity
+        || num !== num
+        || (num && num > -1000 && num < 1000)
+        || $test.call(/e/, str)
+    ) {
+        return str;
+    }
+    var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;
+    if (typeof num === 'number') {
+        var int = num < 0 ? -$floor(-num) : $floor(num); // trunc(num)
+        if (int !== num) {
+            var intStr = String(int);
+            var dec = $slice.call(str, intStr.length + 1);
+            return $replace.call(intStr, sepRegex, '$&_') + '.' + $replace.call($replace.call(dec, /([0-9]{3})/g, '$&_'), /_$/, '');
+        }
+    }
+    return $replace.call(str, sepRegex, '$&_');
+}
+
+var utilInspect = __webpack_require__(4080);
+var inspectCustom = utilInspect.custom;
+var inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null;
+
+module.exports = function inspect_(obj, options, depth, seen) {
+    var opts = options || {};
+
+    if (has(opts, 'quoteStyle') && (opts.quoteStyle !== 'single' && opts.quoteStyle !== 'double')) {
+        throw new TypeError('option "quoteStyle" must be "single" or "double"');
+    }
+    if (
+        has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'
+            ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity
+            : opts.maxStringLength !== null
+        )
+    ) {
+        throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');
+    }
+    var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;
+    if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {
+        throw new TypeError('option "customInspect", if provided, must be `true`, `false`, or `\'symbol\'`');
+    }
+
+    if (
+        has(opts, 'indent')
+        && opts.indent !== null
+        && opts.indent !== '\t'
+        && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)
+    ) {
+        throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');
+    }
+    if (has(opts, 'numericSeparator') && typeof opts.numericSeparator !== 'boolean') {
+        throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');
+    }
+    var numericSeparator = opts.numericSeparator;
+
+    if (typeof obj === 'undefined') {
+        return 'undefined';
+    }
+    if (obj === null) {
+        return 'null';
+    }
+    if (typeof obj === 'boolean') {
+        return obj ? 'true' : 'false';
+    }
+
+    if (typeof obj === 'string') {
+        return inspectString(obj, opts);
+    }
+    if (typeof obj === 'number') {
+        if (obj === 0) {
+            return Infinity / obj > 0 ? '0' : '-0';
+        }
+        var str = String(obj);
+        return numericSeparator ? addNumericSeparator(obj, str) : str;
+    }
+    if (typeof obj === 'bigint') {
+        var bigIntStr = String(obj) + 'n';
+        return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr;
+    }
+
+    var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;
+    if (typeof depth === 'undefined') { depth = 0; }
+    if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {
+        return isArray(obj) ? '[Array]' : '[Object]';
+    }
+
+    var indent = getIndent(opts, depth);
+
+    if (typeof seen === 'undefined') {
+        seen = [];
+    } else if (indexOf(seen, obj) >= 0) {
+        return '[Circular]';
+    }
+
+    function inspect(value, from, noIndent) {
+        if (from) {
+            seen = $arrSlice.call(seen);
+            seen.push(from);
+        }
+        if (noIndent) {
+            var newOpts = {
+                depth: opts.depth
+            };
+            if (has(opts, 'quoteStyle')) {
+                newOpts.quoteStyle = opts.quoteStyle;
+            }
+            return inspect_(value, newOpts, depth + 1, seen);
+        }
+        return inspect_(value, opts, depth + 1, seen);
+    }
+
+    if (typeof obj === 'function' && !isRegExp(obj)) { // in older engines, regexes are callable
+        var name = nameOf(obj);
+        var keys = arrObjKeys(obj, inspect);
+        return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + $join.call(keys, ', ') + ' }' : '');
+    }
+    if (isSymbol(obj)) {
+        var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\(.*\))_[^)]*$/, '$1') : symToString.call(obj);
+        return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;
+    }
+    if (isElement(obj)) {
+        var s = '<' + $toLowerCase.call(String(obj.nodeName));
+        var attrs = obj.attributes || [];
+        for (var i = 0; i < attrs.length; i++) {
+            s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);
+        }
+        s += '>';
+        if (obj.childNodes && obj.childNodes.length) { s += '...'; }
+        s += '</' + $toLowerCase.call(String(obj.nodeName)) + '>';
+        return s;
+    }
+    if (isArray(obj)) {
+        if (obj.length === 0) { return '[]'; }
+        var xs = arrObjKeys(obj, inspect);
+        if (indent && !singleLineValues(xs)) {
+            return '[' + indentedJoin(xs, indent) + ']';
+        }
+        return '[ ' + $join.call(xs, ', ') + ' ]';
+    }
+    if (isError(obj)) {
+        var parts = arrObjKeys(obj, inspect);
+        if (!('cause' in Error.prototype) && 'cause' in obj && !isEnumerable.call(obj, 'cause')) {
+            return '{ [' + String(obj) + '] ' + $join.call($concat.call('[cause]: ' + inspect(obj.cause), parts), ', ') + ' }';
+        }
+        if (parts.length === 0) { return '[' + String(obj) + ']'; }
+        return '{ [' + String(obj) + '] ' + $join.call(parts, ', ') + ' }';
+    }
+    if (typeof obj === 'object' && customInspect) {
+        if (inspectSymbol && typeof obj[inspectSymbol] === 'function' && utilInspect) {
+            return utilInspect(obj, { depth: maxDepth - depth });
+        } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {
+            return obj.inspect();
+        }
+    }
+    if (isMap(obj)) {
+        var mapParts = [];
+        mapForEach.call(obj, function (value, key) {
+            mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));
+        });
+        return collectionOf('Map', mapSize.call(obj), mapParts, indent);
+    }
+    if (isSet(obj)) {
+        var setParts = [];
+        setForEach.call(obj, function (value) {
+            setParts.push(inspect(value, obj));
+        });
+        return collectionOf('Set', setSize.call(obj), setParts, indent);
+    }
+    if (isWeakMap(obj)) {
+        return weakCollectionOf('WeakMap');
+    }
+    if (isWeakSet(obj)) {
+        return weakCollectionOf('WeakSet');
+    }
+    if (isWeakRef(obj)) {
+        return weakCollectionOf('WeakRef');
+    }
+    if (isNumber(obj)) {
+        return markBoxed(inspect(Number(obj)));
+    }
+    if (isBigInt(obj)) {
+        return markBoxed(inspect(bigIntValueOf.call(obj)));
+    }
+    if (isBoolean(obj)) {
+        return markBoxed(booleanValueOf.call(obj));
+    }
+    if (isString(obj)) {
+        return markBoxed(inspect(String(obj)));
+    }
+    if (!isDate(obj) && !isRegExp(obj)) {
+        var ys = arrObjKeys(obj, inspect);
+        var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;
+        var protoTag = obj instanceof Object ? '' : 'null prototype';
+        var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? 'Object' : '';
+        var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';
+        var tag = constructorTag + (stringTag || protoTag ? '[' + $join.call($concat.call([], stringTag || [], protoTag || []), ': ') + '] ' : '');
+        if (ys.length === 0) { return tag + '{}'; }
+        if (indent) {
+            return tag + '{' + indentedJoin(ys, indent) + '}';
+        }
+        return tag + '{ ' + $join.call(ys, ', ') + ' }';
+    }
+    return String(obj);
+};
+
+function wrapQuotes(s, defaultStyle, opts) {
+    var quoteChar = (opts.quoteStyle || defaultStyle) === 'double' ? '"' : "'";
+    return quoteChar + s + quoteChar;
+}
+
+function quote(s) {
+    return $replace.call(String(s), /"/g, '&quot;');
+}
+
+function isArray(obj) { return toStr(obj) === '[object Array]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }
+function isDate(obj) { return toStr(obj) === '[object Date]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }
+function isRegExp(obj) { return toStr(obj) === '[object RegExp]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }
+function isError(obj) { return toStr(obj) === '[object Error]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }
+function isString(obj) { return toStr(obj) === '[object String]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }
+function isNumber(obj) { return toStr(obj) === '[object Number]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }
+function isBoolean(obj) { return toStr(obj) === '[object Boolean]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }
+
+// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives
+function isSymbol(obj) {
+    if (hasShammedSymbols) {
+        return obj && typeof obj === 'object' && obj instanceof Symbol;
+    }
+    if (typeof obj === 'symbol') {
+        return true;
+    }
+    if (!obj || typeof obj !== 'object' || !symToString) {
+        return false;
+    }
+    try {
+        symToString.call(obj);
+        return true;
+    } catch (e) {}
+    return false;
+}
+
+function isBigInt(obj) {
+    if (!obj || typeof obj !== 'object' || !bigIntValueOf) {
+        return false;
+    }
+    try {
+        bigIntValueOf.call(obj);
+        return true;
+    } catch (e) {}
+    return false;
+}
+
+var hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };
+function has(obj, key) {
+    return hasOwn.call(obj, key);
+}
+
+function toStr(obj) {
+    return objectToString.call(obj);
+}
+
+function nameOf(f) {
+    if (f.name) { return f.name; }
+    var m = $match.call(functionToString.call(f), /^function\s*([\w$]+)/);
+    if (m) { return m[1]; }
+    return null;
+}
+
+function indexOf(xs, x) {
+    if (xs.indexOf) { return xs.indexOf(x); }
+    for (var i = 0, l = xs.length; i < l; i++) {
+        if (xs[i] === x) { return i; }
+    }
+    return -1;
+}
+
+function isMap(x) {
+    if (!mapSize || !x || typeof x !== 'object') {
+        return false;
+    }
+    try {
+        mapSize.call(x);
+        try {
+            setSize.call(x);
+        } catch (s) {
+            return true;
+        }
+        return x instanceof Map; // core-js workaround, pre-v2.5.0
+    } catch (e) {}
+    return false;
+}
+
+function isWeakMap(x) {
+    if (!weakMapHas || !x || typeof x !== 'object') {
+        return false;
+    }
+    try {
+        weakMapHas.call(x, weakMapHas);
+        try {
+            weakSetHas.call(x, weakSetHas);
+        } catch (s) {
+            return true;
+        }
+        return x instanceof WeakMap; // core-js workaround, pre-v2.5.0
+    } catch (e) {}
+    return false;
+}
+
+function isWeakRef(x) {
+    if (!weakRefDeref || !x || typeof x !== 'object') {
+        return false;
+    }
+    try {
+        weakRefDeref.call(x);
+        return true;
+    } catch (e) {}
+    return false;
+}
+
+function isSet(x) {
+    if (!setSize || !x || typeof x !== 'object') {
+        return false;
+    }
+    try {
+        setSize.call(x);
+        try {
+            mapSize.call(x);
+        } catch (m) {
+            return true;
+        }
+        return x instanceof Set; // core-js workaround, pre-v2.5.0
+    } catch (e) {}
+    return false;
+}
+
+function isWeakSet(x) {
+    if (!weakSetHas || !x || typeof x !== 'object') {
+        return false;
+    }
+    try {
+        weakSetHas.call(x, weakSetHas);
+        try {
+            weakMapHas.call(x, weakMapHas);
+        } catch (s) {
+            return true;
+        }
+        return x instanceof WeakSet; // core-js workaround, pre-v2.5.0
+    } catch (e) {}
+    return false;
+}
+
+function isElement(x) {
+    if (!x || typeof x !== 'object') { return false; }
+    if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {
+        return true;
+    }
+    return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';
+}
+
+function inspectString(str, opts) {
+    if (str.length > opts.maxStringLength) {
+        var remaining = str.length - opts.maxStringLength;
+        var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');
+        return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer;
+    }
+    // eslint-disable-next-line no-control-regex
+    var s = $replace.call($replace.call(str, /(['\\])/g, '\\$1'), /[\x00-\x1f]/g, lowbyte);
+    return wrapQuotes(s, 'single', opts);
+}
+
+function lowbyte(c) {
+    var n = c.charCodeAt(0);
+    var x = {
+        8: 'b',
+        9: 't',
+        10: 'n',
+        12: 'f',
+        13: 'r'
+    }[n];
+    if (x) { return '\\' + x; }
+    return '\\x' + (n < 0x10 ? '0' : '') + $toUpperCase.call(n.toString(16));
+}
+
+function markBoxed(str) {
+    return 'Object(' + str + ')';
+}
+
+function weakCollectionOf(type) {
+    return type + ' { ? }';
+}
+
+function collectionOf(type, size, entries, indent) {
+    var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ', ');
+    return type + ' (' + size + ') {' + joinedEntries + '}';
+}
+
+function singleLineValues(xs) {
+    for (var i = 0; i < xs.length; i++) {
+        if (indexOf(xs[i], '\n') >= 0) {
+            return false;
+        }
+    }
+    return true;
+}
+
+function getIndent(opts, depth) {
+    var baseIndent;
+    if (opts.indent === '\t') {
+        baseIndent = '\t';
+    } else if (typeof opts.indent === 'number' && opts.indent > 0) {
+        baseIndent = $join.call(Array(opts.indent + 1), ' ');
+    } else {
+        return null;
+    }
+    return {
+        base: baseIndent,
+        prev: $join.call(Array(depth + 1), baseIndent)
+    };
+}
+
+function indentedJoin(xs, indent) {
+    if (xs.length === 0) { return ''; }
+    var lineJoiner = '\n' + indent.prev + indent.base;
+    return lineJoiner + $join.call(xs, ',' + lineJoiner) + '\n' + indent.prev;
+}
+
+function arrObjKeys(obj, inspect) {
+    var isArr = isArray(obj);
+    var xs = [];
+    if (isArr) {
+        xs.length = obj.length;
+        for (var i = 0; i < obj.length; i++) {
+            xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';
+        }
+    }
+    var syms = typeof gOPS === 'function' ? gOPS(obj) : [];
+    var symMap;
+    if (hasShammedSymbols) {
+        symMap = {};
+        for (var k = 0; k < syms.length; k++) {
+            symMap['$' + syms[k]] = syms[k];
+        }
+    }
+
+    for (var key in obj) { // eslint-disable-line no-restricted-syntax
+        if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue
+        if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue
+        if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {
+            // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section
+            continue; // eslint-disable-line no-restricted-syntax, no-continue
+        } else if ($test.call(/[^\w$]/, key)) {
+            xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));
+        } else {
+            xs.push(key + ': ' + inspect(obj[key], obj));
+        }
+    }
+    if (typeof gOPS === 'function') {
+        for (var j = 0; j < syms.length; j++) {
+            if (isEnumerable.call(obj, syms[j])) {
+                xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));
+            }
+        }
+    }
+    return xs;
+}
+
+
+/***/ }),
+
+/***/ 616:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var implementation = __webpack_require__(4485);
+
+module.exports = function getPolyfill() {
+	return Array.prototype.flat || implementation;
+};
+
+
+/***/ }),
+
+/***/ 2059:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var define = __webpack_require__(9170);
+var shimUnscopables = __webpack_require__(2505);
+
+var getPolyfill = __webpack_require__(616);
+
+module.exports = function shimFlat() {
+	var polyfill = getPolyfill();
+
+	define(
+		Array.prototype,
+		{ flat: polyfill },
+		{ flat: function () { return Array.prototype.flat !== polyfill; } }
+	);
+
+	shimUnscopables('flat');
+
+	return polyfill;
+};
+
+
+/***/ }),
+
+/***/ 7615:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(1801);
+
+var callBind = __webpack_require__(2550);
+
+var $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));
+
+module.exports = function callBoundIntrinsic(name, allowMissing) {
+	var intrinsic = GetIntrinsic(name, !!allowMissing);
+	if (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {
+		return callBind(intrinsic);
+	}
+	return intrinsic;
+};
+
+
+/***/ }),
+
+/***/ 2550:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var bind = __webpack_require__(1930);
+var GetIntrinsic = __webpack_require__(1801);
+
+var $apply = GetIntrinsic('%Function.prototype.apply%');
+var $call = GetIntrinsic('%Function.prototype.call%');
+var $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);
+
+var $defineProperty = GetIntrinsic('%Object.defineProperty%', true);
+
+if ($defineProperty) {
+	try {
+		$defineProperty({}, 'a', { value: 1 });
+	} catch (e) {
+		// IE 8 has a broken defineProperty
+		$defineProperty = null;
+	}
+}
+
+module.exports = function callBind() {
+	return $reflectApply(bind, $call, arguments);
+};
+
+var applyBind = function applyBind() {
+	return $reflectApply(bind, $apply, arguments);
+};
+
+if ($defineProperty) {
+	$defineProperty(module.exports, 'apply', { value: applyBind });
+} else {
+	module.exports.apply = applyBind;
+}
+
+
+/***/ }),
+
+/***/ 4403:
 /***/ (function(module, exports) {
 
-function _setPrototypeOf(o, p) {
-  module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
-    o.__proto__ = p;
-    return o;
-  };
-
-  module.exports["default"] = module.exports, module.exports.__esModule = true;
-  return _setPrototypeOf(o, p);
-}
-
-module.exports = _setPrototypeOf;
-module.exports["default"] = module.exports, module.exports.__esModule = true;
-
-/***/ }),
-
-/***/ "SyVe":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return getWindow; });
-/* harmony import */ var _getDocument_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("ouKs");
-
-
-// Thanks to Fluent UI for doing the [research on IE11 memery leak](https://github.com/microsoft/fluentui/pull/9010#issuecomment-490768427)
-
-var _window; // Note: Accessing "window" in IE11 is somewhat expensive, and calling "typeof window"
-// hits a memory leak, whereas aliasing it and calling "typeof _window" does not.
-// Caching the window value at the file scope lets us minimize the impact.
-
-
-try {
-  _window = window;
-} catch (e) {
-  /* no-op */
-}
-/**
- * Returns `element.ownerDocument.defaultView || window`.
- */
-
-
-function getWindow(element) {
-  if (!element) {
-    return _window;
-  }
-
-  return Object(_getDocument_js__WEBPACK_IMPORTED_MODULE_0__[/* getDocument */ "a"])(element).defaultView || _window;
-}
-
-
-
-
-/***/ }),
-
-/***/ "TFuP":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return COMPOSITE_KEYS; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return COMPOSITE_GROUP_KEYS; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return COMPOSITE_ITEM_KEYS; });
-/* unused harmony export c */
-// Automatically generated
-var COMPOSITE_STATE_KEYS = ["baseId", "unstable_idCountRef", "setBaseId", "unstable_virtual", "rtl", "orientation", "items", "groups", "currentId", "loop", "wrap", "shift", "unstable_moves", "unstable_hasActiveWidget", "unstable_includesBaseElement", "registerItem", "unregisterItem", "registerGroup", "unregisterGroup", "move", "next", "previous", "up", "down", "first", "last", "sort", "unstable_setVirtual", "setRTL", "setOrientation", "setCurrentId", "setLoop", "setWrap", "setShift", "reset", "unstable_setIncludesBaseElement", "unstable_setHasActiveWidget"];
-var COMPOSITE_KEYS = COMPOSITE_STATE_KEYS;
-var COMPOSITE_GROUP_KEYS = COMPOSITE_KEYS;
-var COMPOSITE_ITEM_KEYS = COMPOSITE_GROUP_KEYS;
-var COMPOSITE_ITEM_WIDGET_KEYS = COMPOSITE_ITEM_KEYS;
-
-
-
-
-/***/ }),
-
-/***/ "TG4+":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.withStylesPropTypes = exports.css = undefined;
-
-var _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; };
-
-var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
-
-exports.withStyles = withStyles;
-
-var _object = __webpack_require__("Koq/");
-
-var _object2 = _interopRequireDefault(_object);
-
-var _react = __webpack_require__("cDcd");
-
-var _react2 = _interopRequireDefault(_react);
-
-var _propTypes = __webpack_require__("17x9");
-
-var _propTypes2 = _interopRequireDefault(_propTypes);
-
-var _hoistNonReactStatics = __webpack_require__("2mql");
-
-var _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics);
-
-var _constants = __webpack_require__("QEu6");
-
-var _brcast = __webpack_require__("sDMB");
-
-var _brcast2 = _interopRequireDefault(_brcast);
-
-var _ThemedStyleSheet = __webpack_require__("030x");
-
-var _ThemedStyleSheet2 = _interopRequireDefault(_ThemedStyleSheet);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
-
-function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
-
-function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-
-function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } /* eslint react/forbid-foreign-prop-types: off */
-
-// Add some named exports to assist in upgrading and for convenience
-var css = exports.css = _ThemedStyleSheet2['default'].resolveLTR;
-var withStylesPropTypes = exports.withStylesPropTypes = {
-  styles: _propTypes2['default'].object.isRequired, // eslint-disable-line react/forbid-prop-types
-  theme: _propTypes2['default'].object.isRequired, // eslint-disable-line react/forbid-prop-types
-  css: _propTypes2['default'].func.isRequired
-};
-
-var EMPTY_STYLES = {};
-var EMPTY_STYLES_FN = function EMPTY_STYLES_FN() {
-  return EMPTY_STYLES;
-};
-
-var START_MARK = 'react-with-styles.createStyles.start';
-var END_MARK = 'react-with-styles.createStyles.end';
-
-function baseClass(pureComponent) {
-  if (pureComponent) {
-    if (!_react2['default'].PureComponent) {
-      throw new ReferenceError('withStyles() pureComponent option requires React 15.3.0 or later');
-    }
-
-    return _react2['default'].PureComponent;
-  }
-
-  return _react2['default'].Component;
-}
-
-var contextTypes = _defineProperty({}, _constants.CHANNEL, _brcast2['default']);
-
-var defaultDirection = _constants.DIRECTIONS.LTR;
-
-function withStyles(styleFn) {
-  var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
-      _ref$stylesPropName = _ref.stylesPropName,
-      stylesPropName = _ref$stylesPropName === undefined ? 'styles' : _ref$stylesPropName,
-      _ref$themePropName = _ref.themePropName,
-      themePropName = _ref$themePropName === undefined ? 'theme' : _ref$themePropName,
-      _ref$cssPropName = _ref.cssPropName,
-      cssPropName = _ref$cssPropName === undefined ? 'css' : _ref$cssPropName,
-      _ref$flushBefore = _ref.flushBefore,
-      flushBefore = _ref$flushBefore === undefined ? false : _ref$flushBefore,
-      _ref$pureComponent = _ref.pureComponent,
-      pureComponent = _ref$pureComponent === undefined ? false : _ref$pureComponent;
-
-  var styleDefLTR = void 0;
-  var styleDefRTL = void 0;
-  var currentThemeLTR = void 0;
-  var currentThemeRTL = void 0;
-  var BaseClass = baseClass(pureComponent);
-
-  function getResolveMethod(direction) {
-    return direction === _constants.DIRECTIONS.LTR ? _ThemedStyleSheet2['default'].resolveLTR : _ThemedStyleSheet2['default'].resolveRTL;
-  }
-
-  function getCurrentTheme(direction) {
-    return direction === _constants.DIRECTIONS.LTR ? currentThemeLTR : currentThemeRTL;
-  }
-
-  function getStyleDef(direction, wrappedComponentName) {
-    var currentTheme = getCurrentTheme(direction);
-    var styleDef = direction === _constants.DIRECTIONS.LTR ? styleDefLTR : styleDefRTL;
-
-    var registeredTheme = _ThemedStyleSheet2['default'].get();
-
-    // Return the existing styles if they've already been defined
-    // and if the theme used to create them corresponds to the theme
-    // registered with ThemedStyleSheet
-    if (styleDef && currentTheme === registeredTheme) {
-      return styleDef;
-    }
-
-    if (false) {}
-
-    var isRTL = direction === _constants.DIRECTIONS.RTL;
-
-    if (isRTL) {
-      styleDefRTL = styleFn ? _ThemedStyleSheet2['default'].createRTL(styleFn) : EMPTY_STYLES_FN;
-
-      currentThemeRTL = registeredTheme;
-      styleDef = styleDefRTL;
-    } else {
-      styleDefLTR = styleFn ? _ThemedStyleSheet2['default'].createLTR(styleFn) : EMPTY_STYLES_FN;
-
-      currentThemeLTR = registeredTheme;
-      styleDef = styleDefLTR;
-    }
-
-    if (false) { var measureName; }
-
-    return styleDef;
-  }
-
-  function getState(direction, wrappedComponentName) {
-    return {
-      resolveMethod: getResolveMethod(direction),
-      styleDef: getStyleDef(direction, wrappedComponentName)
-    };
-  }
-
-  return function () {
-    function withStylesHOC(WrappedComponent) {
-      var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';
-
-      // NOTE: Use a class here so components are ref-able if need be:
-      // eslint-disable-next-line react/prefer-stateless-function
-
-      var WithStyles = function (_BaseClass) {
-        _inherits(WithStyles, _BaseClass);
-
-        function WithStyles(props, context) {
-          _classCallCheck(this, WithStyles);
-
-          var _this = _possibleConstructorReturn(this, (WithStyles.__proto__ || Object.getPrototypeOf(WithStyles)).call(this, props, context));
-
-          var direction = _this.context[_constants.CHANNEL] ? _this.context[_constants.CHANNEL].getState() : defaultDirection;
-
-          _this.state = getState(direction, wrappedComponentName);
-          return _this;
-        }
-
-        _createClass(WithStyles, [{
-          key: 'componentDidMount',
-          value: function () {
-            function componentDidMount() {
-              var _this2 = this;
-
-              if (this.context[_constants.CHANNEL]) {
-                // subscribe to future direction changes
-                this.channelUnsubscribe = this.context[_constants.CHANNEL].subscribe(function (direction) {
-                  _this2.setState(getState(direction, wrappedComponentName));
-                });
-              }
-            }
-
-            return componentDidMount;
-          }()
-        }, {
-          key: 'componentWillUnmount',
-          value: function () {
-            function componentWillUnmount() {
-              if (this.channelUnsubscribe) {
-                this.channelUnsubscribe();
-              }
-            }
-
-            return componentWillUnmount;
-          }()
-        }, {
-          key: 'render',
-          value: function () {
-            function render() {
-              var _ref2;
-
-              // As some components will depend on previous styles in
-              // the component tree, we provide the option of flushing the
-              // buffered styles (i.e. to a style tag) **before** the rendering
-              // cycle begins.
-              //
-              // The interfaces provide the optional "flush" method which
-              // is run in turn by ThemedStyleSheet.flush.
-              if (flushBefore) {
-                _ThemedStyleSheet2['default'].flush();
-              }
-
-              var _state = this.state,
-                  resolveMethod = _state.resolveMethod,
-                  styleDef = _state.styleDef;
-
-
-              return _react2['default'].createElement(WrappedComponent, _extends({}, this.props, (_ref2 = {}, _defineProperty(_ref2, themePropName, _ThemedStyleSheet2['default'].get()), _defineProperty(_ref2, stylesPropName, styleDef()), _defineProperty(_ref2, cssPropName, resolveMethod), _ref2)));
-            }
-
-            return render;
-          }()
-        }]);
-
-        return WithStyles;
-      }(BaseClass);
-
-      WithStyles.WrappedComponent = WrappedComponent;
-      WithStyles.displayName = 'withStyles(' + String(wrappedComponentName) + ')';
-      WithStyles.contextTypes = contextTypes;
-      if (WrappedComponent.propTypes) {
-        WithStyles.propTypes = (0, _object2['default'])({}, WrappedComponent.propTypes);
-        delete WithStyles.propTypes[stylesPropName];
-        delete WithStyles.propTypes[themePropName];
-        delete WithStyles.propTypes[cssPropName];
-      }
-      if (WrappedComponent.defaultProps) {
-        WithStyles.defaultProps = (0, _object2['default'])({}, WrappedComponent.defaultProps);
-      }
-
-      return (0, _hoistNonReactStatics2['default'])(WithStyles, WrappedComponent);
-    }
-
-    return withStylesHOC;
-  }();
-}
-
-/***/ }),
-
-/***/ "TO8r":
-/***/ (function(module, exports) {
-
-/** Used to match a single whitespace character. */
-var reWhitespace = /\s/;
-
-/**
- * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace
- * character of `string`.
- *
- * @private
- * @param {string} string The string to inspect.
- * @returns {number} Returns the index of the last non-whitespace character.
- */
-function trimmedEndIndex(string) {
-  var index = string.length;
-
-  while (index-- && reWhitespace.test(string.charAt(index))) {}
-  return index;
-}
-
-module.exports = trimmedEndIndex;
-
-
-/***/ }),
-
-/***/ "TOwV":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-if (true) {
-  module.exports = __webpack_require__("qT12");
-} else {}
-
-
-/***/ }),
-
-/***/ "TSYQ":
-/***/ (function(module, exports, __webpack_require__) {
-
 var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
   Copyright (c) 2018 Jed Watson.
   Licensed under the MIT License (MIT), see
@@ -43980,42 +1447,1155 @@
 		!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {
 			return classNames;
 		}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
-				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
+		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
 	} else {}
 }());
 
 
 /***/ }),
 
-/***/ "TUyu":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports['default'] = registerCSSInterfaceWithDefaultTheme;
-
-var _reactWithStylesInterfaceCss = __webpack_require__("lzPt");
-
-var _reactWithStylesInterfaceCss2 = _interopRequireDefault(_reactWithStylesInterfaceCss);
-
-var _registerInterfaceWithDefaultTheme = __webpack_require__("WI5Z");
-
-var _registerInterfaceWithDefaultTheme2 = _interopRequireDefault(_registerInterfaceWithDefaultTheme);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-function registerCSSInterfaceWithDefaultTheme() {
-  (0, _registerInterfaceWithDefaultTheme2['default'])(_reactWithStylesInterfaceCss2['default']);
-}
-
-/***/ }),
-
-/***/ "Teho":
-/***/ (function(module, exports, __webpack_require__) {
+/***/ 8495:
+/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */   "addEventListener": function() { return /* binding */ addEventListener; }
+/* harmony export */ });
+var CAN_USE_DOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);
+
+// Adapted from Modernizr
+// https://github.com/Modernizr/Modernizr/blob/acb3f0d9/feature-detects/dom/passiveeventlisteners.js#L26-L37
+function testPassiveEventListeners() {
+  if (!CAN_USE_DOM) {
+    return false;
+  }
+
+  if (!window.addEventListener || !window.removeEventListener || !Object.defineProperty) {
+    return false;
+  }
+
+  var supportsPassiveOption = false;
+  try {
+    var opts = Object.defineProperty({}, 'passive', {
+      // eslint-disable-next-line getter-return
+      get: function () {
+        function get() {
+          supportsPassiveOption = true;
+        }
+
+        return get;
+      }()
+    });
+    var noop = function noop() {};
+    window.addEventListener('testPassiveEventSupport', noop, opts);
+    window.removeEventListener('testPassiveEventSupport', noop, opts);
+  } catch (e) {
+    // do nothing
+  }
+
+  return supportsPassiveOption;
+}
+
+var memoized = void 0;
+
+function canUsePassiveEventListeners() {
+  if (memoized === undefined) {
+    memoized = testPassiveEventListeners();
+  }
+  return memoized;
+}
+
+function normalizeEventOptions(eventOptions) {
+  if (!eventOptions) {
+    return undefined;
+  }
+
+  if (!canUsePassiveEventListeners()) {
+    // If the browser does not support the passive option, then it is expecting
+    // a boolean for the options argument to specify whether it should use
+    // capture or not. In more modern browsers, this is passed via the `capture`
+    // option, so let's just hoist that value up.
+    return !!eventOptions.capture;
+  }
+
+  return eventOptions;
+}
+
+/* eslint-disable no-bitwise */
+
+/**
+ * Generate a unique key for any set of event options
+ */
+function eventOptionsKey(normalizedEventOptions) {
+  if (!normalizedEventOptions) {
+    return 0;
+  }
+
+  // If the browser does not support passive event listeners, the normalized
+  // event options will be a boolean.
+  if (normalizedEventOptions === true) {
+    return 100;
+  }
+
+  // At this point, the browser supports passive event listeners, so we expect
+  // the event options to be an object with possible properties of capture,
+  // passive, and once.
+  //
+  // We want to consistently return the same value, regardless of the order of
+  // these properties, so let's use binary maths to assign each property to a
+  // bit, and then add those together (with an offset to account for the
+  // booleans at the beginning of this function).
+  var capture = normalizedEventOptions.capture << 0;
+  var passive = normalizedEventOptions.passive << 1;
+  var once = normalizedEventOptions.once << 2;
+  return capture + passive + once;
+}
+
+function ensureCanMutateNextEventHandlers(eventHandlers) {
+  if (eventHandlers.handlers === eventHandlers.nextHandlers) {
+    // eslint-disable-next-line no-param-reassign
+    eventHandlers.nextHandlers = eventHandlers.handlers.slice();
+  }
+}
+
+function TargetEventHandlers(target) {
+  this.target = target;
+  this.events = {};
+}
+
+TargetEventHandlers.prototype.getEventHandlers = function () {
+  function getEventHandlers(eventName, options) {
+    var key = String(eventName) + ' ' + String(eventOptionsKey(options));
+
+    if (!this.events[key]) {
+      this.events[key] = {
+        handlers: [],
+        handleEvent: undefined
+      };
+      this.events[key].nextHandlers = this.events[key].handlers;
+    }
+
+    return this.events[key];
+  }
+
+  return getEventHandlers;
+}();
+
+TargetEventHandlers.prototype.handleEvent = function () {
+  function handleEvent(eventName, options, event) {
+    var eventHandlers = this.getEventHandlers(eventName, options);
+    eventHandlers.handlers = eventHandlers.nextHandlers;
+    eventHandlers.handlers.forEach(function (handler) {
+      if (handler) {
+        // We need to check for presence here because a handler function may
+        // cause later handlers to get removed. This can happen if you for
+        // instance have a waypoint that unmounts another waypoint as part of an
+        // onEnter/onLeave handler.
+        handler(event);
+      }
+    });
+  }
+
+  return handleEvent;
+}();
+
+TargetEventHandlers.prototype.add = function () {
+  function add(eventName, listener, options) {
+    var _this = this;
+
+    // options has already been normalized at this point.
+    var eventHandlers = this.getEventHandlers(eventName, options);
+
+    ensureCanMutateNextEventHandlers(eventHandlers);
+
+    if (eventHandlers.nextHandlers.length === 0) {
+      eventHandlers.handleEvent = this.handleEvent.bind(this, eventName, options);
+
+      this.target.addEventListener(eventName, eventHandlers.handleEvent, options);
+    }
+
+    eventHandlers.nextHandlers.push(listener);
+
+    var isSubscribed = true;
+    var unsubscribe = function () {
+      function unsubscribe() {
+        if (!isSubscribed) {
+          return;
+        }
+
+        isSubscribed = false;
+
+        ensureCanMutateNextEventHandlers(eventHandlers);
+        var index = eventHandlers.nextHandlers.indexOf(listener);
+        eventHandlers.nextHandlers.splice(index, 1);
+
+        if (eventHandlers.nextHandlers.length === 0) {
+          // All event handlers have been removed, so we want to remove the event
+          // listener from the target node.
+
+          if (_this.target) {
+            // There can be a race condition where the target may no longer exist
+            // when this function is called, e.g. when a React component is
+            // unmounting. Guarding against this prevents the following error:
+            //
+            //   Cannot read property 'removeEventListener' of undefined
+            _this.target.removeEventListener(eventName, eventHandlers.handleEvent, options);
+          }
+
+          eventHandlers.handleEvent = undefined;
+        }
+      }
+
+      return unsubscribe;
+    }();
+    return unsubscribe;
+  }
+
+  return add;
+}();
+
+var EVENT_HANDLERS_KEY = '__consolidated_events_handlers__';
+
+// eslint-disable-next-line import/prefer-default-export
+function addEventListener(target, eventName, listener, options) {
+  if (!target[EVENT_HANDLERS_KEY]) {
+    // eslint-disable-next-line no-param-reassign
+    target[EVENT_HANDLERS_KEY] = new TargetEventHandlers(target);
+  }
+  var normalizedEventOptions = normalizeEventOptions(options);
+  return target[EVENT_HANDLERS_KEY].add(eventName, listener, normalizedEventOptions);
+}
+
+
+
+
+/***/ }),
+
+/***/ 9170:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var keys = __webpack_require__(806);
+var hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';
+
+var toStr = Object.prototype.toString;
+var concat = Array.prototype.concat;
+var origDefineProperty = Object.defineProperty;
+
+var isFunction = function (fn) {
+	return typeof fn === 'function' && toStr.call(fn) === '[object Function]';
+};
+
+var arePropertyDescriptorsSupported = function () {
+	var obj = {};
+	try {
+		origDefineProperty(obj, 'x', { enumerable: false, value: obj });
+		// eslint-disable-next-line no-unused-vars, no-restricted-syntax
+		for (var _ in obj) { // jscs:ignore disallowUnusedVariables
+			return false;
+		}
+		return obj.x === obj;
+	} catch (e) { /* this is IE 8. */
+		return false;
+	}
+};
+var supportsDescriptors = origDefineProperty && arePropertyDescriptorsSupported();
+
+var defineProperty = function (object, name, value, predicate) {
+	if (name in object && (!isFunction(predicate) || !predicate())) {
+		return;
+	}
+	if (supportsDescriptors) {
+		origDefineProperty(object, name, {
+			configurable: true,
+			enumerable: false,
+			value: value,
+			writable: true
+		});
+	} else {
+		object[name] = value;
+	}
+};
+
+var defineProperties = function (object, map) {
+	var predicates = arguments.length > 2 ? arguments[2] : {};
+	var props = keys(map);
+	if (hasSymbols) {
+		props = concat.call(props, Object.getOwnPropertySymbols(map));
+	}
+	for (var i = 0; i < props.length; i += 1) {
+		defineProperty(object, props[i], map[props[i]], predicates[props[i]]);
+	}
+};
+
+defineProperties.supportsDescriptors = !!supportsDescriptors;
+
+module.exports = defineProperties;
+
+
+/***/ }),
+
+/***/ 8110:
+/***/ (function(module) {
+
+"use strict";
+
+
+module.exports = function contains(other) {
+	if (arguments.length < 1) {
+		throw new TypeError('1 argument is required');
+	}
+	if (typeof other !== 'object') {
+		throw new TypeError('Argument 1 (”other“) to Node.contains must be an instance of Node');
+	}
+
+	var node = other;
+	do {
+		if (this === node) {
+			return true;
+		}
+		if (node) {
+			node = node.parentNode;
+		}
+	} while (node);
+
+	return false;
+};
+
+
+/***/ }),
+
+/***/ 6789:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var define = __webpack_require__(9170);
+
+var implementation = __webpack_require__(8110);
+var getPolyfill = __webpack_require__(8267);
+var polyfill = getPolyfill();
+var shim = __webpack_require__(714);
+
+var boundContains = function contains(node, other) {
+	return polyfill.apply(node, [other]);
+};
+
+define(boundContains, {
+	getPolyfill: getPolyfill,
+	implementation: implementation,
+	shim: shim
+});
+
+module.exports = boundContains;
+
+
+/***/ }),
+
+/***/ 8267:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var implementation = __webpack_require__(8110);
+
+module.exports = function getPolyfill() {
+	if (typeof document !== 'undefined') {
+		if (document.contains) {
+			return document.contains;
+		}
+		if (document.body && document.body.contains) {
+			try {
+				if (typeof document.body.contains.call(document, '') === 'boolean') {
+					return document.body.contains;
+				}
+			} catch (e) { /**/ }
+		}
+	}
+	return implementation;
+};
+
+
+/***/ }),
+
+/***/ 714:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var define = __webpack_require__(9170);
+var getPolyfill = __webpack_require__(8267);
+
+module.exports = function shimContains() {
+	var polyfill = getPolyfill();
+	if (typeof document !== 'undefined') {
+		define(
+			document,
+			{ contains: polyfill },
+			{ contains: function () { return document.contains !== polyfill; } }
+		);
+		if (typeof Element !== 'undefined') {
+			define(
+				Element.prototype,
+				{ contains: polyfill },
+				{ contains: function () { return Element.prototype.contains !== polyfill; } }
+			);
+		}
+	}
+	return polyfill;
+};
+
+
+/***/ }),
+
+/***/ 1345:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var util = __webpack_require__(5022);
+
+function scrollIntoView(elem, container, config) {
+  config = config || {};
+  // document 归一化到 window
+  if (container.nodeType === 9) {
+    container = util.getWindow(container);
+  }
+
+  var allowHorizontalScroll = config.allowHorizontalScroll;
+  var onlyScrollIfNeeded = config.onlyScrollIfNeeded;
+  var alignWithTop = config.alignWithTop;
+  var alignWithLeft = config.alignWithLeft;
+  var offsetTop = config.offsetTop || 0;
+  var offsetLeft = config.offsetLeft || 0;
+  var offsetBottom = config.offsetBottom || 0;
+  var offsetRight = config.offsetRight || 0;
+
+  allowHorizontalScroll = allowHorizontalScroll === undefined ? true : allowHorizontalScroll;
+
+  var isWin = util.isWindow(container);
+  var elemOffset = util.offset(elem);
+  var eh = util.outerHeight(elem);
+  var ew = util.outerWidth(elem);
+  var containerOffset = undefined;
+  var ch = undefined;
+  var cw = undefined;
+  var containerScroll = undefined;
+  var diffTop = undefined;
+  var diffBottom = undefined;
+  var win = undefined;
+  var winScroll = undefined;
+  var ww = undefined;
+  var wh = undefined;
+
+  if (isWin) {
+    win = container;
+    wh = util.height(win);
+    ww = util.width(win);
+    winScroll = {
+      left: util.scrollLeft(win),
+      top: util.scrollTop(win)
+    };
+    // elem 相对 container 可视视窗的距离
+    diffTop = {
+      left: elemOffset.left - winScroll.left - offsetLeft,
+      top: elemOffset.top - winScroll.top - offsetTop
+    };
+    diffBottom = {
+      left: elemOffset.left + ew - (winScroll.left + ww) + offsetRight,
+      top: elemOffset.top + eh - (winScroll.top + wh) + offsetBottom
+    };
+    containerScroll = winScroll;
+  } else {
+    containerOffset = util.offset(container);
+    ch = container.clientHeight;
+    cw = container.clientWidth;
+    containerScroll = {
+      left: container.scrollLeft,
+      top: container.scrollTop
+    };
+    // elem 相对 container 可视视窗的距离
+    // 注意边框, offset 是边框到根节点
+    diffTop = {
+      left: elemOffset.left - (containerOffset.left + (parseFloat(util.css(container, 'borderLeftWidth')) || 0)) - offsetLeft,
+      top: elemOffset.top - (containerOffset.top + (parseFloat(util.css(container, 'borderTopWidth')) || 0)) - offsetTop
+    };
+    diffBottom = {
+      left: elemOffset.left + ew - (containerOffset.left + cw + (parseFloat(util.css(container, 'borderRightWidth')) || 0)) + offsetRight,
+      top: elemOffset.top + eh - (containerOffset.top + ch + (parseFloat(util.css(container, 'borderBottomWidth')) || 0)) + offsetBottom
+    };
+  }
+
+  if (diffTop.top < 0 || diffBottom.top > 0) {
+    // 强制向上
+    if (alignWithTop === true) {
+      util.scrollTop(container, containerScroll.top + diffTop.top);
+    } else if (alignWithTop === false) {
+      util.scrollTop(container, containerScroll.top + diffBottom.top);
+    } else {
+      // 自动调整
+      if (diffTop.top < 0) {
+        util.scrollTop(container, containerScroll.top + diffTop.top);
+      } else {
+        util.scrollTop(container, containerScroll.top + diffBottom.top);
+      }
+    }
+  } else {
+    if (!onlyScrollIfNeeded) {
+      alignWithTop = alignWithTop === undefined ? true : !!alignWithTop;
+      if (alignWithTop) {
+        util.scrollTop(container, containerScroll.top + diffTop.top);
+      } else {
+        util.scrollTop(container, containerScroll.top + diffBottom.top);
+      }
+    }
+  }
+
+  if (allowHorizontalScroll) {
+    if (diffTop.left < 0 || diffBottom.left > 0) {
+      // 强制向上
+      if (alignWithLeft === true) {
+        util.scrollLeft(container, containerScroll.left + diffTop.left);
+      } else if (alignWithLeft === false) {
+        util.scrollLeft(container, containerScroll.left + diffBottom.left);
+      } else {
+        // 自动调整
+        if (diffTop.left < 0) {
+          util.scrollLeft(container, containerScroll.left + diffTop.left);
+        } else {
+          util.scrollLeft(container, containerScroll.left + diffBottom.left);
+        }
+      }
+    } else {
+      if (!onlyScrollIfNeeded) {
+        alignWithLeft = alignWithLeft === undefined ? true : !!alignWithLeft;
+        if (alignWithLeft) {
+          util.scrollLeft(container, containerScroll.left + diffTop.left);
+        } else {
+          util.scrollLeft(container, containerScroll.left + diffBottom.left);
+        }
+      }
+    }
+  }
+}
+
+module.exports = scrollIntoView;
+
+/***/ }),
+
+/***/ 5425:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+module.exports = __webpack_require__(1345);
+
+/***/ }),
+
+/***/ 5022:
+/***/ (function(module) {
+
+"use strict";
+
+
+var _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; };
+
+var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; };
+
+var RE_NUM = /[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source;
+
+function getClientPosition(elem) {
+  var box = undefined;
+  var x = undefined;
+  var y = undefined;
+  var doc = elem.ownerDocument;
+  var body = doc.body;
+  var docElem = doc && doc.documentElement;
+  // 根据 GBS 最新数据,A-Grade Browsers 都已支持 getBoundingClientRect 方法,不用再考虑传统的实现方式
+  box = elem.getBoundingClientRect();
+
+  // 注:jQuery 还考虑减去 docElem.clientLeft/clientTop
+  // 但测试发现,这样反而会导致当 html 和 body 有边距/边框样式时,获取的值不正确
+  // 此外,ie6 会忽略 html 的 margin 值,幸运地是没有谁会去设置 html 的 margin
+
+  x = box.left;
+  y = box.top;
+
+  // In IE, most of the time, 2 extra pixels are added to the top and left
+  // due to the implicit 2-pixel inset border.  In IE6/7 quirks mode and
+  // IE6 standards mode, this border can be overridden by setting the
+  // document element's border to zero -- thus, we cannot rely on the
+  // offset always being 2 pixels.
+
+  // In quirks mode, the offset can be determined by querying the body's
+  // clientLeft/clientTop, but in standards mode, it is found by querying
+  // the document element's clientLeft/clientTop.  Since we already called
+  // getClientBoundingRect we have already forced a reflow, so it is not
+  // too expensive just to query them all.
+
+  // ie 下应该减去窗口的边框吧,毕竟默认 absolute 都是相对窗口定位的
+  // 窗口边框标准是设 documentElement ,quirks 时设置 body
+  // 最好禁止在 body 和 html 上边框 ,但 ie < 9 html 默认有 2px ,减去
+  // 但是非 ie 不可能设置窗口边框,body html 也不是窗口 ,ie 可以通过 html,body 设置
+  // 标准 ie 下 docElem.clientTop 就是 border-top
+  // ie7 html 即窗口边框改变不了。永远为 2
+  // 但标准 firefox/chrome/ie9 下 docElem.clientTop 是窗口边框,即使设了 border-top 也为 0
+
+  x -= docElem.clientLeft || body.clientLeft || 0;
+  y -= docElem.clientTop || body.clientTop || 0;
+
+  return {
+    left: x,
+    top: y
+  };
+}
+
+function getScroll(w, top) {
+  var ret = w['page' + (top ? 'Y' : 'X') + 'Offset'];
+  var method = 'scroll' + (top ? 'Top' : 'Left');
+  if (typeof ret !== 'number') {
+    var d = w.document;
+    // ie6,7,8 standard mode
+    ret = d.documentElement[method];
+    if (typeof ret !== 'number') {
+      // quirks mode
+      ret = d.body[method];
+    }
+  }
+  return ret;
+}
+
+function getScrollLeft(w) {
+  return getScroll(w);
+}
+
+function getScrollTop(w) {
+  return getScroll(w, true);
+}
+
+function getOffset(el) {
+  var pos = getClientPosition(el);
+  var doc = el.ownerDocument;
+  var w = doc.defaultView || doc.parentWindow;
+  pos.left += getScrollLeft(w);
+  pos.top += getScrollTop(w);
+  return pos;
+}
+function _getComputedStyle(elem, name, computedStyle_) {
+  var val = '';
+  var d = elem.ownerDocument;
+  var computedStyle = computedStyle_ || d.defaultView.getComputedStyle(elem, null);
+
+  // https://github.com/kissyteam/kissy/issues/61
+  if (computedStyle) {
+    val = computedStyle.getPropertyValue(name) || computedStyle[name];
+  }
+
+  return val;
+}
+
+var _RE_NUM_NO_PX = new RegExp('^(' + RE_NUM + ')(?!px)[a-z%]+$', 'i');
+var RE_POS = /^(top|right|bottom|left)$/;
+var CURRENT_STYLE = 'currentStyle';
+var RUNTIME_STYLE = 'runtimeStyle';
+var LEFT = 'left';
+var PX = 'px';
+
+function _getComputedStyleIE(elem, name) {
+  // currentStyle maybe null
+  // http://msdn.microsoft.com/en-us/library/ms535231.aspx
+  var ret = elem[CURRENT_STYLE] && elem[CURRENT_STYLE][name];
+
+  // 当 width/height 设置为百分比时,通过 pixelLeft 方式转换的 width/height 值
+  // 一开始就处理了! CUSTOM_STYLE.height,CUSTOM_STYLE.width ,cssHook 解决@2011-08-19
+  // 在 ie 下不对,需要直接用 offset 方式
+  // borderWidth 等值也有问题,但考虑到 borderWidth 设为百分比的概率很小,这里就不考虑了
+
+  // From the awesome hack by Dean Edwards
+  // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
+  // If we're not dealing with a regular pixel number
+  // but a number that has a weird ending, we need to convert it to pixels
+  // exclude left right for relativity
+  if (_RE_NUM_NO_PX.test(ret) && !RE_POS.test(name)) {
+    // Remember the original values
+    var style = elem.style;
+    var left = style[LEFT];
+    var rsLeft = elem[RUNTIME_STYLE][LEFT];
+
+    // prevent flashing of content
+    elem[RUNTIME_STYLE][LEFT] = elem[CURRENT_STYLE][LEFT];
+
+    // Put in the new values to get a computed value out
+    style[LEFT] = name === 'fontSize' ? '1em' : ret || 0;
+    ret = style.pixelLeft + PX;
+
+    // Revert the changed values
+    style[LEFT] = left;
+
+    elem[RUNTIME_STYLE][LEFT] = rsLeft;
+  }
+  return ret === '' ? 'auto' : ret;
+}
+
+var getComputedStyleX = undefined;
+if (typeof window !== 'undefined') {
+  getComputedStyleX = window.getComputedStyle ? _getComputedStyle : _getComputedStyleIE;
+}
+
+function each(arr, fn) {
+  for (var i = 0; i < arr.length; i++) {
+    fn(arr[i]);
+  }
+}
+
+function isBorderBoxFn(elem) {
+  return getComputedStyleX(elem, 'boxSizing') === 'border-box';
+}
+
+var BOX_MODELS = ['margin', 'border', 'padding'];
+var CONTENT_INDEX = -1;
+var PADDING_INDEX = 2;
+var BORDER_INDEX = 1;
+var MARGIN_INDEX = 0;
+
+function swap(elem, options, callback) {
+  var old = {};
+  var style = elem.style;
+  var name = undefined;
+
+  // Remember the old values, and insert the new ones
+  for (name in options) {
+    if (options.hasOwnProperty(name)) {
+      old[name] = style[name];
+      style[name] = options[name];
+    }
+  }
+
+  callback.call(elem);
+
+  // Revert the old values
+  for (name in options) {
+    if (options.hasOwnProperty(name)) {
+      style[name] = old[name];
+    }
+  }
+}
+
+function getPBMWidth(elem, props, which) {
+  var value = 0;
+  var prop = undefined;
+  var j = undefined;
+  var i = undefined;
+  for (j = 0; j < props.length; j++) {
+    prop = props[j];
+    if (prop) {
+      for (i = 0; i < which.length; i++) {
+        var cssProp = undefined;
+        if (prop === 'border') {
+          cssProp = prop + which[i] + 'Width';
+        } else {
+          cssProp = prop + which[i];
+        }
+        value += parseFloat(getComputedStyleX(elem, cssProp)) || 0;
+      }
+    }
+  }
+  return value;
+}
+
+/**
+ * A crude way of determining if an object is a window
+ * @member util
+ */
+function isWindow(obj) {
+  // must use == for ie8
+  /* eslint eqeqeq:0 */
+  return obj != null && obj == obj.window;
+}
+
+var domUtils = {};
+
+each(['Width', 'Height'], function (name) {
+  domUtils['doc' + name] = function (refWin) {
+    var d = refWin.document;
+    return Math.max(
+    // firefox chrome documentElement.scrollHeight< body.scrollHeight
+    // ie standard mode : documentElement.scrollHeight> body.scrollHeight
+    d.documentElement['scroll' + name],
+    // quirks : documentElement.scrollHeight 最大等于可视窗口多一点?
+    d.body['scroll' + name], domUtils['viewport' + name](d));
+  };
+
+  domUtils['viewport' + name] = function (win) {
+    // pc browser includes scrollbar in window.innerWidth
+    var prop = 'client' + name;
+    var doc = win.document;
+    var body = doc.body;
+    var documentElement = doc.documentElement;
+    var documentElementProp = documentElement[prop];
+    // 标准模式取 documentElement
+    // backcompat 取 body
+    return doc.compatMode === 'CSS1Compat' && documentElementProp || body && body[prop] || documentElementProp;
+  };
+});
+
+/*
+ 得到元素的大小信息
+ @param elem
+ @param name
+ @param {String} [extra]  'padding' : (css width) + padding
+ 'border' : (css width) + padding + border
+ 'margin' : (css width) + padding + border + margin
+ */
+function getWH(elem, name, extra) {
+  if (isWindow(elem)) {
+    return name === 'width' ? domUtils.viewportWidth(elem) : domUtils.viewportHeight(elem);
+  } else if (elem.nodeType === 9) {
+    return name === 'width' ? domUtils.docWidth(elem) : domUtils.docHeight(elem);
+  }
+  var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];
+  var borderBoxValue = name === 'width' ? elem.offsetWidth : elem.offsetHeight;
+  var computedStyle = getComputedStyleX(elem);
+  var isBorderBox = isBorderBoxFn(elem, computedStyle);
+  var cssBoxValue = 0;
+  if (borderBoxValue == null || borderBoxValue <= 0) {
+    borderBoxValue = undefined;
+    // Fall back to computed then un computed css if necessary
+    cssBoxValue = getComputedStyleX(elem, name);
+    if (cssBoxValue == null || Number(cssBoxValue) < 0) {
+      cssBoxValue = elem.style[name] || 0;
+    }
+    // Normalize '', auto, and prepare for extra
+    cssBoxValue = parseFloat(cssBoxValue) || 0;
+  }
+  if (extra === undefined) {
+    extra = isBorderBox ? BORDER_INDEX : CONTENT_INDEX;
+  }
+  var borderBoxValueOrIsBorderBox = borderBoxValue !== undefined || isBorderBox;
+  var val = borderBoxValue || cssBoxValue;
+  if (extra === CONTENT_INDEX) {
+    if (borderBoxValueOrIsBorderBox) {
+      return val - getPBMWidth(elem, ['border', 'padding'], which, computedStyle);
+    }
+    return cssBoxValue;
+  }
+  if (borderBoxValueOrIsBorderBox) {
+    var padding = extra === PADDING_INDEX ? -getPBMWidth(elem, ['border'], which, computedStyle) : getPBMWidth(elem, ['margin'], which, computedStyle);
+    return val + (extra === BORDER_INDEX ? 0 : padding);
+  }
+  return cssBoxValue + getPBMWidth(elem, BOX_MODELS.slice(extra), which, computedStyle);
+}
+
+var cssShow = {
+  position: 'absolute',
+  visibility: 'hidden',
+  display: 'block'
+};
+
+// fix #119 : https://github.com/kissyteam/kissy/issues/119
+function getWHIgnoreDisplay(elem) {
+  var val = undefined;
+  var args = arguments;
+  // in case elem is window
+  // elem.offsetWidth === undefined
+  if (elem.offsetWidth !== 0) {
+    val = getWH.apply(undefined, args);
+  } else {
+    swap(elem, cssShow, function () {
+      val = getWH.apply(undefined, args);
+    });
+  }
+  return val;
+}
+
+function css(el, name, v) {
+  var value = v;
+  if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') {
+    for (var i in name) {
+      if (name.hasOwnProperty(i)) {
+        css(el, i, name[i]);
+      }
+    }
+    return undefined;
+  }
+  if (typeof value !== 'undefined') {
+    if (typeof value === 'number') {
+      value += 'px';
+    }
+    el.style[name] = value;
+    return undefined;
+  }
+  return getComputedStyleX(el, name);
+}
+
+each(['width', 'height'], function (name) {
+  var first = name.charAt(0).toUpperCase() + name.slice(1);
+  domUtils['outer' + first] = function (el, includeMargin) {
+    return el && getWHIgnoreDisplay(el, name, includeMargin ? MARGIN_INDEX : BORDER_INDEX);
+  };
+  var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];
+
+  domUtils[name] = function (elem, val) {
+    if (val !== undefined) {
+      if (elem) {
+        var computedStyle = getComputedStyleX(elem);
+        var isBorderBox = isBorderBoxFn(elem);
+        if (isBorderBox) {
+          val += getPBMWidth(elem, ['padding', 'border'], which, computedStyle);
+        }
+        return css(elem, name, val);
+      }
+      return undefined;
+    }
+    return elem && getWHIgnoreDisplay(elem, name, CONTENT_INDEX);
+  };
+});
+
+// 设置 elem 相对 elem.ownerDocument 的坐标
+function setOffset(elem, offset) {
+  // set position first, in-case top/left are set even on static elem
+  if (css(elem, 'position') === 'static') {
+    elem.style.position = 'relative';
+  }
+
+  var old = getOffset(elem);
+  var ret = {};
+  var current = undefined;
+  var key = undefined;
+
+  for (key in offset) {
+    if (offset.hasOwnProperty(key)) {
+      current = parseFloat(css(elem, key)) || 0;
+      ret[key] = current + offset[key] - old[key];
+    }
+  }
+  css(elem, ret);
+}
+
+module.exports = _extends({
+  getWindow: function getWindow(node) {
+    var doc = node.ownerDocument || node;
+    return doc.defaultView || doc.parentWindow;
+  },
+  offset: function offset(el, value) {
+    if (typeof value !== 'undefined') {
+      setOffset(el, value);
+    } else {
+      return getOffset(el);
+    }
+  },
+
+  isWindow: isWindow,
+  each: each,
+  css: css,
+  clone: function clone(obj) {
+    var ret = {};
+    for (var i in obj) {
+      if (obj.hasOwnProperty(i)) {
+        ret[i] = obj[i];
+      }
+    }
+    var overflow = obj.overflow;
+    if (overflow) {
+      for (var i in obj) {
+        if (obj.hasOwnProperty(i)) {
+          ret.overflow[i] = obj.overflow[i];
+        }
+      }
+    }
+    return ret;
+  },
+  scrollLeft: function scrollLeft(w, v) {
+    if (isWindow(w)) {
+      if (v === undefined) {
+        return getScrollLeft(w);
+      }
+      window.scrollTo(v, getScrollTop(w));
+    } else {
+      if (v === undefined) {
+        return w.scrollLeft;
+      }
+      w.scrollLeft = v;
+    }
+  },
+  scrollTop: function scrollTop(w, v) {
+    if (isWindow(w)) {
+      if (v === undefined) {
+        return getScrollTop(w);
+      }
+      window.scrollTo(getScrollLeft(w), v);
+    } else {
+      if (v === undefined) {
+        return w.scrollTop;
+      }
+      w.scrollTop = v;
+    }
+  },
+
+  viewportWidth: 0,
+  viewportHeight: 0
+}, domUtils);
+
+/***/ }),
+
+/***/ 9214:
+/***/ (function(__unused_webpack_module, exports) {
+
+"use strict";
+var __webpack_unused_export__;
+/** @license React v17.0.2
+ * react-is.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+var b=60103,c=60106,d=60107,e=60108,f=60114,g=60109,h=60110,k=60112,l=60113,m=60120,n=60115,p=60116,q=60121,r=60122,u=60117,v=60129,w=60131;
+if("function"===typeof Symbol&&Symbol.for){var x=Symbol.for;b=x("react.element");c=x("react.portal");d=x("react.fragment");e=x("react.strict_mode");f=x("react.profiler");g=x("react.provider");h=x("react.context");k=x("react.forward_ref");l=x("react.suspense");m=x("react.suspense_list");n=x("react.memo");p=x("react.lazy");q=x("react.block");r=x("react.server.block");u=x("react.fundamental");v=x("react.debug_trace_mode");w=x("react.legacy_hidden")}
+function y(a){if("object"===typeof a&&null!==a){var t=a.$$typeof;switch(t){case b:switch(a=a.type,a){case d:case f:case e:case l:case m:return a;default:switch(a=a&&a.$$typeof,a){case h:case k:case p:case n:case g:return a;default:return t}}case c:return t}}}var z=g,A=b,B=k,C=d,D=p,E=n,F=c,G=f,H=e,I=l;__webpack_unused_export__=h;__webpack_unused_export__=z;__webpack_unused_export__=A;__webpack_unused_export__=B;__webpack_unused_export__=C;__webpack_unused_export__=D;__webpack_unused_export__=E;__webpack_unused_export__=F;__webpack_unused_export__=G;__webpack_unused_export__=H;
+__webpack_unused_export__=I;__webpack_unused_export__=function(){return!1};__webpack_unused_export__=function(){return!1};__webpack_unused_export__=function(a){return y(a)===h};__webpack_unused_export__=function(a){return y(a)===g};__webpack_unused_export__=function(a){return"object"===typeof a&&null!==a&&a.$$typeof===b};__webpack_unused_export__=function(a){return y(a)===k};__webpack_unused_export__=function(a){return y(a)===d};__webpack_unused_export__=function(a){return y(a)===p};__webpack_unused_export__=function(a){return y(a)===n};
+__webpack_unused_export__=function(a){return y(a)===c};__webpack_unused_export__=function(a){return y(a)===f};__webpack_unused_export__=function(a){return y(a)===e};__webpack_unused_export__=function(a){return y(a)===l};__webpack_unused_export__=function(a){return"string"===typeof a||"function"===typeof a||a===d||a===f||a===v||a===e||a===l||a===m||a===w||"object"===typeof a&&null!==a&&(a.$$typeof===p||a.$$typeof===n||a.$$typeof===g||a.$$typeof===h||a.$$typeof===k||a.$$typeof===u||a.$$typeof===q||a[0]===r)?!0:!1};
+__webpack_unused_export__=y;
+
+
+/***/ }),
+
+/***/ 2797:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+if (true) {
+  /* unused reexport */ __webpack_require__(9214);
+} else {}
+
+
+/***/ }),
+
+/***/ 2505:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var has = __webpack_require__(9284);
+
+var hasUnscopables = typeof Symbol === 'function' && typeof Symbol.unscopables === 'symbol';
+
+var map = hasUnscopables && Array.prototype[Symbol.unscopables];
+
+var $TypeError = TypeError;
+
+module.exports = function shimUnscopables(method) {
+	if (typeof method !== 'string' || !method) {
+		throw new $TypeError('method must be a non-empty string');
+	}
+	if (!has(Array.prototype, method)) {
+		throw new $TypeError('method must be on Array.prototype');
+	}
+	if (hasUnscopables) {
+		map[method] = true;
+	}
+};
+
+
+/***/ }),
+
+/***/ 5249:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var hasSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol';
+
+var isPrimitive = __webpack_require__(3777);
+var isCallable = __webpack_require__(5443);
+var isDate = __webpack_require__(8659);
+var isSymbol = __webpack_require__(3082);
+
+var ordinaryToPrimitive = function OrdinaryToPrimitive(O, hint) {
+	if (typeof O === 'undefined' || O === null) {
+		throw new TypeError('Cannot call method on ' + O);
+	}
+	if (typeof hint !== 'string' || (hint !== 'number' && hint !== 'string')) {
+		throw new TypeError('hint must be "string" or "number"');
+	}
+	var methodNames = hint === 'string' ? ['toString', 'valueOf'] : ['valueOf', 'toString'];
+	var method, result, i;
+	for (i = 0; i < methodNames.length; ++i) {
+		method = O[methodNames[i]];
+		if (isCallable(method)) {
+			result = method.call(O);
+			if (isPrimitive(result)) {
+				return result;
+			}
+		}
+	}
+	throw new TypeError('No default value');
+};
+
+var GetMethod = function GetMethod(O, P) {
+	var func = O[P];
+	if (func !== null && typeof func !== 'undefined') {
+		if (!isCallable(func)) {
+			throw new TypeError(func + ' returned for property ' + P + ' of object ' + O + ' is not a function');
+		}
+		return func;
+	}
+	return void 0;
+};
+
+// http://www.ecma-international.org/ecma-262/6.0/#sec-toprimitive
+module.exports = function ToPrimitive(input) {
+	if (isPrimitive(input)) {
+		return input;
+	}
+	var hint = 'default';
+	if (arguments.length > 1) {
+		if (arguments[1] === String) {
+			hint = 'string';
+		} else if (arguments[1] === Number) {
+			hint = 'number';
+		}
+	}
+
+	var exoticToPrim;
+	if (hasSymbols) {
+		if (Symbol.toPrimitive) {
+			exoticToPrim = GetMethod(input, Symbol.toPrimitive);
+		} else if (isSymbol(input)) {
+			exoticToPrim = Symbol.prototype.valueOf;
+		}
+	}
+	if (typeof exoticToPrim !== 'undefined') {
+		var result = exoticToPrim.call(input, hint);
+		if (isPrimitive(result)) {
+			return result;
+		}
+		throw new TypeError('unable to convert exotic object to primitive');
+	}
+	if (hint === 'default' && (isDate(input) || isSymbol(input))) {
+		hint = 'string';
+	}
+	return ordinaryToPrimitive(input, hint === 'default' ? 'number' : hint);
+};
+
+
+/***/ }),
+
+/***/ 3777:
+/***/ (function(module) {
 
 "use strict";
 
@@ -44027,97 +2607,4810 @@
 
 /***/ }),
 
-/***/ "Thzv":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
+/***/ 9930:
+/***/ (function(module) {
+
+"use strict";
+
+
+/* eslint no-invalid-this: 1 */
+
+var ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';
+var slice = Array.prototype.slice;
+var toStr = Object.prototype.toString;
+var funcType = '[object Function]';
+
+module.exports = function bind(that) {
+    var target = this;
+    if (typeof target !== 'function' || toStr.call(target) !== funcType) {
+        throw new TypeError(ERROR_MESSAGE + target);
+    }
+    var args = slice.call(arguments, 1);
+
+    var bound;
+    var binder = function () {
+        if (this instanceof bound) {
+            var result = target.apply(
+                this,
+                args.concat(slice.call(arguments))
+            );
+            if (Object(result) === result) {
+                return result;
+            }
+            return this;
+        } else {
+            return target.apply(
+                that,
+                args.concat(slice.call(arguments))
+            );
+        }
+    };
+
+    var boundLength = Math.max(0, target.length - args.length);
+    var boundArgs = [];
+    for (var i = 0; i < boundLength; i++) {
+        boundArgs.push('$' + i);
+    }
+
+    bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);
+
+    if (target.prototype) {
+        var Empty = function Empty() {};
+        Empty.prototype = target.prototype;
+        bound.prototype = new Empty();
+        Empty.prototype = null;
+    }
+
+    return bound;
+};
+
+
+/***/ }),
+
+/***/ 1930:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var implementation = __webpack_require__(9930);
+
+module.exports = Function.prototype.bind || implementation;
+
+
+/***/ }),
+
+/***/ 1801:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+/* globals
+	AggregateError,
+	Atomics,
+	FinalizationRegistry,
+	SharedArrayBuffer,
+	WeakRef,
+*/
+
+var undefined;
+
+var $SyntaxError = SyntaxError;
+var $Function = Function;
+var $TypeError = TypeError;
+
+// eslint-disable-next-line consistent-return
+var getEvalledConstructor = function (expressionSyntax) {
+	try {
+		// eslint-disable-next-line no-new-func
+		return Function('"use strict"; return (' + expressionSyntax + ').constructor;')();
+	} catch (e) {}
+};
+
+var $gOPD = Object.getOwnPropertyDescriptor;
+if ($gOPD) {
+	try {
+		$gOPD({}, '');
+	} catch (e) {
+		$gOPD = null; // this is IE 8, which has a broken gOPD
+	}
+}
+
+var throwTypeError = function () {
+	throw new $TypeError();
+};
+var ThrowTypeError = $gOPD
+	? (function () {
+		try {
+			// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties
+			arguments.callee; // IE 8 does not throw here
+			return throwTypeError;
+		} catch (calleeThrows) {
+			try {
+				// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')
+				return $gOPD(arguments, 'callee').get;
+			} catch (gOPDthrows) {
+				return throwTypeError;
+			}
+		}
+	}())
+	: throwTypeError;
+
+var hasSymbols = __webpack_require__(9905)();
+
+var getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto
+
+var asyncGenFunction = getEvalledConstructor('async function* () {}');
+var asyncGenFunctionPrototype = asyncGenFunction ? asyncGenFunction.prototype : undefined;
+var asyncGenPrototype = asyncGenFunctionPrototype ? asyncGenFunctionPrototype.prototype : undefined;
+
+var TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);
+
+var INTRINSICS = {
+	'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,
+	'%Array%': Array,
+	'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,
+	'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,
+	'%AsyncFromSyncIteratorPrototype%': undefined,
+	'%AsyncFunction%': getEvalledConstructor('async function () {}'),
+	'%AsyncGenerator%': asyncGenFunctionPrototype,
+	'%AsyncGeneratorFunction%': asyncGenFunction,
+	'%AsyncIteratorPrototype%': asyncGenPrototype ? getProto(asyncGenPrototype) : undefined,
+	'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,
+	'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,
+	'%Boolean%': Boolean,
+	'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,
+	'%Date%': Date,
+	'%decodeURI%': decodeURI,
+	'%decodeURIComponent%': decodeURIComponent,
+	'%encodeURI%': encodeURI,
+	'%encodeURIComponent%': encodeURIComponent,
+	'%Error%': Error,
+	'%eval%': eval, // eslint-disable-line no-eval
+	'%EvalError%': EvalError,
+	'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,
+	'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,
+	'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,
+	'%Function%': $Function,
+	'%GeneratorFunction%': getEvalledConstructor('function* () {}'),
+	'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,
+	'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,
+	'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,
+	'%isFinite%': isFinite,
+	'%isNaN%': isNaN,
+	'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,
+	'%JSON%': typeof JSON === 'object' ? JSON : undefined,
+	'%Map%': typeof Map === 'undefined' ? undefined : Map,
+	'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),
+	'%Math%': Math,
+	'%Number%': Number,
+	'%Object%': Object,
+	'%parseFloat%': parseFloat,
+	'%parseInt%': parseInt,
+	'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,
+	'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,
+	'%RangeError%': RangeError,
+	'%ReferenceError%': ReferenceError,
+	'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,
+	'%RegExp%': RegExp,
+	'%Set%': typeof Set === 'undefined' ? undefined : Set,
+	'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),
+	'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,
+	'%String%': String,
+	'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,
+	'%Symbol%': hasSymbols ? Symbol : undefined,
+	'%SyntaxError%': $SyntaxError,
+	'%ThrowTypeError%': ThrowTypeError,
+	'%TypedArray%': TypedArray,
+	'%TypeError%': $TypeError,
+	'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,
+	'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,
+	'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,
+	'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,
+	'%URIError%': URIError,
+	'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,
+	'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,
+	'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet
+};
+
+var LEGACY_ALIASES = {
+	'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],
+	'%ArrayPrototype%': ['Array', 'prototype'],
+	'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],
+	'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],
+	'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],
+	'%ArrayProto_values%': ['Array', 'prototype', 'values'],
+	'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],
+	'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],
+	'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],
+	'%BooleanPrototype%': ['Boolean', 'prototype'],
+	'%DataViewPrototype%': ['DataView', 'prototype'],
+	'%DatePrototype%': ['Date', 'prototype'],
+	'%ErrorPrototype%': ['Error', 'prototype'],
+	'%EvalErrorPrototype%': ['EvalError', 'prototype'],
+	'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],
+	'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],
+	'%FunctionPrototype%': ['Function', 'prototype'],
+	'%Generator%': ['GeneratorFunction', 'prototype'],
+	'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],
+	'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],
+	'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],
+	'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],
+	'%JSONParse%': ['JSON', 'parse'],
+	'%JSONStringify%': ['JSON', 'stringify'],
+	'%MapPrototype%': ['Map', 'prototype'],
+	'%NumberPrototype%': ['Number', 'prototype'],
+	'%ObjectPrototype%': ['Object', 'prototype'],
+	'%ObjProto_toString%': ['Object', 'prototype', 'toString'],
+	'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],
+	'%PromisePrototype%': ['Promise', 'prototype'],
+	'%PromiseProto_then%': ['Promise', 'prototype', 'then'],
+	'%Promise_all%': ['Promise', 'all'],
+	'%Promise_reject%': ['Promise', 'reject'],
+	'%Promise_resolve%': ['Promise', 'resolve'],
+	'%RangeErrorPrototype%': ['RangeError', 'prototype'],
+	'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],
+	'%RegExpPrototype%': ['RegExp', 'prototype'],
+	'%SetPrototype%': ['Set', 'prototype'],
+	'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],
+	'%StringPrototype%': ['String', 'prototype'],
+	'%SymbolPrototype%': ['Symbol', 'prototype'],
+	'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],
+	'%TypedArrayPrototype%': ['TypedArray', 'prototype'],
+	'%TypeErrorPrototype%': ['TypeError', 'prototype'],
+	'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],
+	'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],
+	'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],
+	'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],
+	'%URIErrorPrototype%': ['URIError', 'prototype'],
+	'%WeakMapPrototype%': ['WeakMap', 'prototype'],
+	'%WeakSetPrototype%': ['WeakSet', 'prototype']
+};
+
+var bind = __webpack_require__(1930);
+var hasOwn = __webpack_require__(9284);
+var $concat = bind.call(Function.call, Array.prototype.concat);
+var $spliceApply = bind.call(Function.apply, Array.prototype.splice);
+var $replace = bind.call(Function.call, String.prototype.replace);
+var $strSlice = bind.call(Function.call, String.prototype.slice);
+
+/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */
+var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g;
+var reEscapeChar = /\\(\\)?/g; /** Used to match backslashes in property paths. */
+var stringToPath = function stringToPath(string) {
+	var first = $strSlice(string, 0, 1);
+	var last = $strSlice(string, -1);
+	if (first === '%' && last !== '%') {
+		throw new $SyntaxError('invalid intrinsic syntax, expected closing `%`');
+	} else if (last === '%' && first !== '%') {
+		throw new $SyntaxError('invalid intrinsic syntax, expected opening `%`');
+	}
+	var result = [];
+	$replace(string, rePropName, function (match, number, quote, subString) {
+		result[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;
+	});
+	return result;
+};
+/* end adaptation */
+
+var getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {
+	var intrinsicName = name;
+	var alias;
+	if (hasOwn(LEGACY_ALIASES, intrinsicName)) {
+		alias = LEGACY_ALIASES[intrinsicName];
+		intrinsicName = '%' + alias[0] + '%';
+	}
+
+	if (hasOwn(INTRINSICS, intrinsicName)) {
+		var value = INTRINSICS[intrinsicName];
+		if (typeof value === 'undefined' && !allowMissing) {
+			throw new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');
+		}
+
+		return {
+			alias: alias,
+			name: intrinsicName,
+			value: value
+		};
+	}
+
+	throw new $SyntaxError('intrinsic ' + name + ' does not exist!');
+};
+
+module.exports = function GetIntrinsic(name, allowMissing) {
+	if (typeof name !== 'string' || name.length === 0) {
+		throw new $TypeError('intrinsic name must be a non-empty string');
+	}
+	if (arguments.length > 1 && typeof allowMissing !== 'boolean') {
+		throw new $TypeError('"allowMissing" argument must be a boolean');
+	}
+
+	var parts = stringToPath(name);
+	var intrinsicBaseName = parts.length > 0 ? parts[0] : '';
+
+	var intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);
+	var intrinsicRealName = intrinsic.name;
+	var value = intrinsic.value;
+	var skipFurtherCaching = false;
+
+	var alias = intrinsic.alias;
+	if (alias) {
+		intrinsicBaseName = alias[0];
+		$spliceApply(parts, $concat([0, 1], alias));
+	}
+
+	for (var i = 1, isOwn = true; i < parts.length; i += 1) {
+		var part = parts[i];
+		var first = $strSlice(part, 0, 1);
+		var last = $strSlice(part, -1);
+		if (
+			(
+				(first === '"' || first === "'" || first === '`')
+				|| (last === '"' || last === "'" || last === '`')
+			)
+			&& first !== last
+		) {
+			throw new $SyntaxError('property names with quotes must have matching quotes');
+		}
+		if (part === 'constructor' || !isOwn) {
+			skipFurtherCaching = true;
+		}
+
+		intrinsicBaseName += '.' + part;
+		intrinsicRealName = '%' + intrinsicBaseName + '%';
+
+		if (hasOwn(INTRINSICS, intrinsicRealName)) {
+			value = INTRINSICS[intrinsicRealName];
+		} else if (value != null) {
+			if (!(part in value)) {
+				if (!allowMissing) {
+					throw new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');
+				}
+				return void undefined;
+			}
+			if ($gOPD && (i + 1) >= parts.length) {
+				var desc = $gOPD(value, part);
+				isOwn = !!desc;
+
+				// By convention, when a data property is converted to an accessor
+				// property to emulate a data property that does not suffer from
+				// the override mistake, that accessor's getter is marked with
+				// an `originalValue` property. Here, when we detect this, we
+				// uphold the illusion by pretending to see that original data
+				// property, i.e., returning the value rather than the getter
+				// itself.
+				if (isOwn && 'get' in desc && !('originalValue' in desc.get)) {
+					value = desc.get;
+				} else {
+					value = value[part];
+				}
+			} else {
+				isOwn = hasOwn(value, part);
+				value = value[part];
+			}
+
+			if (isOwn && !skipFurtherCaching) {
+				INTRINSICS[intrinsicRealName] = value;
+			}
+		}
+	}
+	return value;
+};
+
+
+/***/ }),
+
+/***/ 5371:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var define = __webpack_require__(9170);
+var isSymbol = __webpack_require__(3082);
+
+var globalKey = '__ global cache key __';
+/* istanbul ignore else */
+// eslint-disable-next-line no-restricted-properties
+if (typeof Symbol === 'function' && isSymbol(Symbol('foo')) && typeof Symbol['for'] === 'function') {
+	// eslint-disable-next-line no-restricted-properties
+	globalKey = Symbol['for'](globalKey);
+}
+
+var trueThunk = function () {
+	return true;
+};
+
+var ensureCache = function ensureCache() {
+	if (!__webpack_require__.g[globalKey]) {
+		var properties = {};
+		properties[globalKey] = {};
+		var predicates = {};
+		predicates[globalKey] = trueThunk;
+		define(__webpack_require__.g, properties, predicates);
+	}
+	return __webpack_require__.g[globalKey];
+};
+
+var cache = ensureCache();
+
+var isPrimitive = function isPrimitive(val) {
+	return val === null || (typeof val !== 'object' && typeof val !== 'function');
+};
+
+var getPrimitiveKey = function getPrimitiveKey(val) {
+	if (isSymbol(val)) {
+		return Symbol.prototype.valueOf.call(val);
+	}
+	return typeof val + ' | ' + String(val);
+};
+
+var requirePrimitiveKey = function requirePrimitiveKey(val) {
+	if (!isPrimitive(val)) {
+		throw new TypeError('key must not be an object');
+	}
+};
+
+var globalCache = {
+	clear: function clear() {
+		delete __webpack_require__.g[globalKey];
+		cache = ensureCache();
+	},
+
+	'delete': function deleteKey(key) {
+		requirePrimitiveKey(key);
+		delete cache[getPrimitiveKey(key)];
+		return !globalCache.has(key);
+	},
+
+	get: function get(key) {
+		requirePrimitiveKey(key);
+		return cache[getPrimitiveKey(key)];
+	},
+
+	has: function has(key) {
+		requirePrimitiveKey(key);
+		return getPrimitiveKey(key) in cache;
+	},
+
+	set: function set(key, value) {
+		requirePrimitiveKey(key);
+		var primitiveKey = getPrimitiveKey(key);
+		var props = {};
+		props[primitiveKey] = value;
+		var predicates = {};
+		predicates[primitiveKey] = trueThunk;
+		define(cache, props, predicates);
+		return globalCache.has(key);
+	},
+
+	setIfMissingThenGet: function setIfMissingThenGet(key, valueThunk) {
+		if (globalCache.has(key)) {
+			return globalCache.get(key);
+		}
+		var item = valueThunk();
+		globalCache.set(key, item);
+		return item;
+	}
+};
+
+module.exports = globalCache;
+
+
+/***/ }),
+
+/***/ 7115:
+/***/ (function(__unused_webpack_module, exports) {
+
+// Copyright (c) 2014 Rafael Caricio. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+var GradientParser = {};
+
+GradientParser.parse = (function() {
+
+  var tokens = {
+    linearGradient: /^(\-(webkit|o|ms|moz)\-)?(linear\-gradient)/i,
+    repeatingLinearGradient: /^(\-(webkit|o|ms|moz)\-)?(repeating\-linear\-gradient)/i,
+    radialGradient: /^(\-(webkit|o|ms|moz)\-)?(radial\-gradient)/i,
+    repeatingRadialGradient: /^(\-(webkit|o|ms|moz)\-)?(repeating\-radial\-gradient)/i,
+    sideOrCorner: /^to (left (top|bottom)|right (top|bottom)|left|right|top|bottom)/i,
+    extentKeywords: /^(closest\-side|closest\-corner|farthest\-side|farthest\-corner|contain|cover)/,
+    positionKeywords: /^(left|center|right|top|bottom)/i,
+    pixelValue: /^(-?(([0-9]*\.[0-9]+)|([0-9]+\.?)))px/,
+    percentageValue: /^(-?(([0-9]*\.[0-9]+)|([0-9]+\.?)))\%/,
+    emValue: /^(-?(([0-9]*\.[0-9]+)|([0-9]+\.?)))em/,
+    angleValue: /^(-?(([0-9]*\.[0-9]+)|([0-9]+\.?)))deg/,
+    startCall: /^\(/,
+    endCall: /^\)/,
+    comma: /^,/,
+    hexColor: /^\#([0-9a-fA-F]+)/,
+    literalColor: /^([a-zA-Z]+)/,
+    rgbColor: /^rgb/i,
+    rgbaColor: /^rgba/i,
+    number: /^(([0-9]*\.[0-9]+)|([0-9]+\.?))/
+  };
+
+  var input = '';
+
+  function error(msg) {
+    var err = new Error(input + ': ' + msg);
+    err.source = input;
+    throw err;
+  }
+
+  function getAST() {
+    var ast = matchListDefinitions();
+
+    if (input.length > 0) {
+      error('Invalid input not EOF');
+    }
+
+    return ast;
+  }
+
+  function matchListDefinitions() {
+    return matchListing(matchDefinition);
+  }
+
+  function matchDefinition() {
+    return matchGradient(
+            'linear-gradient',
+            tokens.linearGradient,
+            matchLinearOrientation) ||
+
+          matchGradient(
+            'repeating-linear-gradient',
+            tokens.repeatingLinearGradient,
+            matchLinearOrientation) ||
+
+          matchGradient(
+            'radial-gradient',
+            tokens.radialGradient,
+            matchListRadialOrientations) ||
+
+          matchGradient(
+            'repeating-radial-gradient',
+            tokens.repeatingRadialGradient,
+            matchListRadialOrientations);
+  }
+
+  function matchGradient(gradientType, pattern, orientationMatcher) {
+    return matchCall(pattern, function(captures) {
+
+      var orientation = orientationMatcher();
+      if (orientation) {
+        if (!scan(tokens.comma)) {
+          error('Missing comma before color stops');
+        }
+      }
+
+      return {
+        type: gradientType,
+        orientation: orientation,
+        colorStops: matchListing(matchColorStop)
+      };
+    });
+  }
+
+  function matchCall(pattern, callback) {
+    var captures = scan(pattern);
+
+    if (captures) {
+      if (!scan(tokens.startCall)) {
+        error('Missing (');
+      }
+
+      result = callback(captures);
+
+      if (!scan(tokens.endCall)) {
+        error('Missing )');
+      }
+
+      return result;
+    }
+  }
+
+  function matchLinearOrientation() {
+    return matchSideOrCorner() ||
+      matchAngle();
+  }
+
+  function matchSideOrCorner() {
+    return match('directional', tokens.sideOrCorner, 1);
+  }
+
+  function matchAngle() {
+    return match('angular', tokens.angleValue, 1);
+  }
+
+  function matchListRadialOrientations() {
+    var radialOrientations,
+        radialOrientation = matchRadialOrientation(),
+        lookaheadCache;
+
+    if (radialOrientation) {
+      radialOrientations = [];
+      radialOrientations.push(radialOrientation);
+
+      lookaheadCache = input;
+      if (scan(tokens.comma)) {
+        radialOrientation = matchRadialOrientation();
+        if (radialOrientation) {
+          radialOrientations.push(radialOrientation);
+        } else {
+          input = lookaheadCache;
+        }
+      }
+    }
+
+    return radialOrientations;
+  }
+
+  function matchRadialOrientation() {
+    var radialType = matchCircle() ||
+      matchEllipse();
+
+    if (radialType) {
+      radialType.at = matchAtPosition();
+    } else {
+      var defaultPosition = matchPositioning();
+      if (defaultPosition) {
+        radialType = {
+          type: 'default-radial',
+          at: defaultPosition
+        };
+      }
+    }
+
+    return radialType;
+  }
+
+  function matchCircle() {
+    var circle = match('shape', /^(circle)/i, 0);
+
+    if (circle) {
+      circle.style = matchLength() || matchExtentKeyword();
+    }
+
+    return circle;
+  }
+
+  function matchEllipse() {
+    var ellipse = match('shape', /^(ellipse)/i, 0);
+
+    if (ellipse) {
+      ellipse.style =  matchDistance() || matchExtentKeyword();
+    }
+
+    return ellipse;
+  }
+
+  function matchExtentKeyword() {
+    return match('extent-keyword', tokens.extentKeywords, 1);
+  }
+
+  function matchAtPosition() {
+    if (match('position', /^at/, 0)) {
+      var positioning = matchPositioning();
+
+      if (!positioning) {
+        error('Missing positioning value');
+      }
+
+      return positioning;
+    }
+  }
+
+  function matchPositioning() {
+    var location = matchCoordinates();
+
+    if (location.x || location.y) {
+      return {
+        type: 'position',
+        value: location
+      };
+    }
+  }
+
+  function matchCoordinates() {
+    return {
+      x: matchDistance(),
+      y: matchDistance()
+    };
+  }
+
+  function matchListing(matcher) {
+    var captures = matcher(),
+      result = [];
+
+    if (captures) {
+      result.push(captures);
+      while (scan(tokens.comma)) {
+        captures = matcher();
+        if (captures) {
+          result.push(captures);
+        } else {
+          error('One extra comma');
+        }
+      }
+    }
+
+    return result;
+  }
+
+  function matchColorStop() {
+    var color = matchColor();
+
+    if (!color) {
+      error('Expected color definition');
+    }
+
+    color.length = matchDistance();
+    return color;
+  }
+
+  function matchColor() {
+    return matchHexColor() ||
+      matchRGBAColor() ||
+      matchRGBColor() ||
+      matchLiteralColor();
+  }
+
+  function matchLiteralColor() {
+    return match('literal', tokens.literalColor, 0);
+  }
+
+  function matchHexColor() {
+    return match('hex', tokens.hexColor, 1);
+  }
+
+  function matchRGBColor() {
+    return matchCall(tokens.rgbColor, function() {
+      return  {
+        type: 'rgb',
+        value: matchListing(matchNumber)
+      };
+    });
+  }
+
+  function matchRGBAColor() {
+    return matchCall(tokens.rgbaColor, function() {
+      return  {
+        type: 'rgba',
+        value: matchListing(matchNumber)
+      };
+    });
+  }
+
+  function matchNumber() {
+    return scan(tokens.number)[1];
+  }
+
+  function matchDistance() {
+    return match('%', tokens.percentageValue, 1) ||
+      matchPositionKeyword() ||
+      matchLength();
+  }
+
+  function matchPositionKeyword() {
+    return match('position-keyword', tokens.positionKeywords, 1);
+  }
+
+  function matchLength() {
+    return match('px', tokens.pixelValue, 1) ||
+      match('em', tokens.emValue, 1);
+  }
+
+  function match(type, pattern, captureIndex) {
+    var captures = scan(pattern);
+    if (captures) {
+      return {
+        type: type,
+        value: captures[captureIndex]
+      };
+    }
+  }
+
+  function scan(regexp) {
+    var captures,
+        blankCaptures;
+
+    blankCaptures = /^[\n\r\t\s]+/.exec(input);
+    if (blankCaptures) {
+        consume(blankCaptures[0].length);
+    }
+
+    captures = regexp.exec(input);
+    if (captures) {
+        consume(captures[0].length);
+    }
+
+    return captures;
+  }
+
+  function consume(size) {
+    input = input.substr(size);
+  }
+
+  return function(code) {
+    input = code.toString();
+    return getAST();
+  };
+})();
+
+exports.parse = (GradientParser || {}).parse;
+
+
+/***/ }),
+
+/***/ 8198:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(3010);
+
+var $defineProperty = GetIntrinsic('%Object.defineProperty%', true);
+
+var hasPropertyDescriptors = function hasPropertyDescriptors() {
+	if ($defineProperty) {
+		try {
+			$defineProperty({}, 'a', { value: 1 });
+			return true;
+		} catch (e) {
+			// IE 8 has a broken defineProperty
+			return false;
+		}
+	}
+	return false;
+};
+
+hasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {
+	// node v0.6 has a bug where array lengths can be Set but not Defined
+	if (!hasPropertyDescriptors()) {
+		return null;
+	}
+	try {
+		return $defineProperty([], 'length', { value: 1 }).length !== 1;
+	} catch (e) {
+		// In Firefox 4-22, defining length on an array throws an exception.
+		return true;
+	}
+};
+
+module.exports = hasPropertyDescriptors;
+
+
+/***/ }),
+
+/***/ 3010:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var undefined;
+
+var $SyntaxError = SyntaxError;
+var $Function = Function;
+var $TypeError = TypeError;
+
+// eslint-disable-next-line consistent-return
+var getEvalledConstructor = function (expressionSyntax) {
+	try {
+		return $Function('"use strict"; return (' + expressionSyntax + ').constructor;')();
+	} catch (e) {}
+};
+
+var $gOPD = Object.getOwnPropertyDescriptor;
+if ($gOPD) {
+	try {
+		$gOPD({}, '');
+	} catch (e) {
+		$gOPD = null; // this is IE 8, which has a broken gOPD
+	}
+}
+
+var throwTypeError = function () {
+	throw new $TypeError();
+};
+var ThrowTypeError = $gOPD
+	? (function () {
+		try {
+			// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties
+			arguments.callee; // IE 8 does not throw here
+			return throwTypeError;
+		} catch (calleeThrows) {
+			try {
+				// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')
+				return $gOPD(arguments, 'callee').get;
+			} catch (gOPDthrows) {
+				return throwTypeError;
+			}
+		}
+	}())
+	: throwTypeError;
+
+var hasSymbols = __webpack_require__(1779)();
+
+var getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto
+
+var needsEval = {};
+
+var TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);
+
+var INTRINSICS = {
+	'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,
+	'%Array%': Array,
+	'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,
+	'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,
+	'%AsyncFromSyncIteratorPrototype%': undefined,
+	'%AsyncFunction%': needsEval,
+	'%AsyncGenerator%': needsEval,
+	'%AsyncGeneratorFunction%': needsEval,
+	'%AsyncIteratorPrototype%': needsEval,
+	'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,
+	'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,
+	'%Boolean%': Boolean,
+	'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,
+	'%Date%': Date,
+	'%decodeURI%': decodeURI,
+	'%decodeURIComponent%': decodeURIComponent,
+	'%encodeURI%': encodeURI,
+	'%encodeURIComponent%': encodeURIComponent,
+	'%Error%': Error,
+	'%eval%': eval, // eslint-disable-line no-eval
+	'%EvalError%': EvalError,
+	'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,
+	'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,
+	'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,
+	'%Function%': $Function,
+	'%GeneratorFunction%': needsEval,
+	'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,
+	'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,
+	'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,
+	'%isFinite%': isFinite,
+	'%isNaN%': isNaN,
+	'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,
+	'%JSON%': typeof JSON === 'object' ? JSON : undefined,
+	'%Map%': typeof Map === 'undefined' ? undefined : Map,
+	'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),
+	'%Math%': Math,
+	'%Number%': Number,
+	'%Object%': Object,
+	'%parseFloat%': parseFloat,
+	'%parseInt%': parseInt,
+	'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,
+	'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,
+	'%RangeError%': RangeError,
+	'%ReferenceError%': ReferenceError,
+	'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,
+	'%RegExp%': RegExp,
+	'%Set%': typeof Set === 'undefined' ? undefined : Set,
+	'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),
+	'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,
+	'%String%': String,
+	'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,
+	'%Symbol%': hasSymbols ? Symbol : undefined,
+	'%SyntaxError%': $SyntaxError,
+	'%ThrowTypeError%': ThrowTypeError,
+	'%TypedArray%': TypedArray,
+	'%TypeError%': $TypeError,
+	'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,
+	'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,
+	'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,
+	'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,
+	'%URIError%': URIError,
+	'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,
+	'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,
+	'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet
+};
+
+var doEval = function doEval(name) {
+	var value;
+	if (name === '%AsyncFunction%') {
+		value = getEvalledConstructor('async function () {}');
+	} else if (name === '%GeneratorFunction%') {
+		value = getEvalledConstructor('function* () {}');
+	} else if (name === '%AsyncGeneratorFunction%') {
+		value = getEvalledConstructor('async function* () {}');
+	} else if (name === '%AsyncGenerator%') {
+		var fn = doEval('%AsyncGeneratorFunction%');
+		if (fn) {
+			value = fn.prototype;
+		}
+	} else if (name === '%AsyncIteratorPrototype%') {
+		var gen = doEval('%AsyncGenerator%');
+		if (gen) {
+			value = getProto(gen.prototype);
+		}
+	}
+
+	INTRINSICS[name] = value;
+
+	return value;
+};
+
+var LEGACY_ALIASES = {
+	'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],
+	'%ArrayPrototype%': ['Array', 'prototype'],
+	'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],
+	'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],
+	'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],
+	'%ArrayProto_values%': ['Array', 'prototype', 'values'],
+	'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],
+	'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],
+	'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],
+	'%BooleanPrototype%': ['Boolean', 'prototype'],
+	'%DataViewPrototype%': ['DataView', 'prototype'],
+	'%DatePrototype%': ['Date', 'prototype'],
+	'%ErrorPrototype%': ['Error', 'prototype'],
+	'%EvalErrorPrototype%': ['EvalError', 'prototype'],
+	'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],
+	'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],
+	'%FunctionPrototype%': ['Function', 'prototype'],
+	'%Generator%': ['GeneratorFunction', 'prototype'],
+	'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],
+	'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],
+	'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],
+	'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],
+	'%JSONParse%': ['JSON', 'parse'],
+	'%JSONStringify%': ['JSON', 'stringify'],
+	'%MapPrototype%': ['Map', 'prototype'],
+	'%NumberPrototype%': ['Number', 'prototype'],
+	'%ObjectPrototype%': ['Object', 'prototype'],
+	'%ObjProto_toString%': ['Object', 'prototype', 'toString'],
+	'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],
+	'%PromisePrototype%': ['Promise', 'prototype'],
+	'%PromiseProto_then%': ['Promise', 'prototype', 'then'],
+	'%Promise_all%': ['Promise', 'all'],
+	'%Promise_reject%': ['Promise', 'reject'],
+	'%Promise_resolve%': ['Promise', 'resolve'],
+	'%RangeErrorPrototype%': ['RangeError', 'prototype'],
+	'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],
+	'%RegExpPrototype%': ['RegExp', 'prototype'],
+	'%SetPrototype%': ['Set', 'prototype'],
+	'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],
+	'%StringPrototype%': ['String', 'prototype'],
+	'%SymbolPrototype%': ['Symbol', 'prototype'],
+	'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],
+	'%TypedArrayPrototype%': ['TypedArray', 'prototype'],
+	'%TypeErrorPrototype%': ['TypeError', 'prototype'],
+	'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],
+	'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],
+	'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],
+	'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],
+	'%URIErrorPrototype%': ['URIError', 'prototype'],
+	'%WeakMapPrototype%': ['WeakMap', 'prototype'],
+	'%WeakSetPrototype%': ['WeakSet', 'prototype']
+};
+
+var bind = __webpack_require__(1930);
+var hasOwn = __webpack_require__(9284);
+var $concat = bind.call(Function.call, Array.prototype.concat);
+var $spliceApply = bind.call(Function.apply, Array.prototype.splice);
+var $replace = bind.call(Function.call, String.prototype.replace);
+var $strSlice = bind.call(Function.call, String.prototype.slice);
+var $exec = bind.call(Function.call, RegExp.prototype.exec);
+
+/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */
+var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g;
+var reEscapeChar = /\\(\\)?/g; /** Used to match backslashes in property paths. */
+var stringToPath = function stringToPath(string) {
+	var first = $strSlice(string, 0, 1);
+	var last = $strSlice(string, -1);
+	if (first === '%' && last !== '%') {
+		throw new $SyntaxError('invalid intrinsic syntax, expected closing `%`');
+	} else if (last === '%' && first !== '%') {
+		throw new $SyntaxError('invalid intrinsic syntax, expected opening `%`');
+	}
+	var result = [];
+	$replace(string, rePropName, function (match, number, quote, subString) {
+		result[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;
+	});
+	return result;
+};
+/* end adaptation */
+
+var getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {
+	var intrinsicName = name;
+	var alias;
+	if (hasOwn(LEGACY_ALIASES, intrinsicName)) {
+		alias = LEGACY_ALIASES[intrinsicName];
+		intrinsicName = '%' + alias[0] + '%';
+	}
+
+	if (hasOwn(INTRINSICS, intrinsicName)) {
+		var value = INTRINSICS[intrinsicName];
+		if (value === needsEval) {
+			value = doEval(intrinsicName);
+		}
+		if (typeof value === 'undefined' && !allowMissing) {
+			throw new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');
+		}
+
+		return {
+			alias: alias,
+			name: intrinsicName,
+			value: value
+		};
+	}
+
+	throw new $SyntaxError('intrinsic ' + name + ' does not exist!');
+};
+
+module.exports = function GetIntrinsic(name, allowMissing) {
+	if (typeof name !== 'string' || name.length === 0) {
+		throw new $TypeError('intrinsic name must be a non-empty string');
+	}
+	if (arguments.length > 1 && typeof allowMissing !== 'boolean') {
+		throw new $TypeError('"allowMissing" argument must be a boolean');
+	}
+
+	if ($exec(/^%?[^%]*%?$/g, name) === null) {
+		throw new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');
+	}
+	var parts = stringToPath(name);
+	var intrinsicBaseName = parts.length > 0 ? parts[0] : '';
+
+	var intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);
+	var intrinsicRealName = intrinsic.name;
+	var value = intrinsic.value;
+	var skipFurtherCaching = false;
+
+	var alias = intrinsic.alias;
+	if (alias) {
+		intrinsicBaseName = alias[0];
+		$spliceApply(parts, $concat([0, 1], alias));
+	}
+
+	for (var i = 1, isOwn = true; i < parts.length; i += 1) {
+		var part = parts[i];
+		var first = $strSlice(part, 0, 1);
+		var last = $strSlice(part, -1);
+		if (
+			(
+				(first === '"' || first === "'" || first === '`')
+				|| (last === '"' || last === "'" || last === '`')
+			)
+			&& first !== last
+		) {
+			throw new $SyntaxError('property names with quotes must have matching quotes');
+		}
+		if (part === 'constructor' || !isOwn) {
+			skipFurtherCaching = true;
+		}
+
+		intrinsicBaseName += '.' + part;
+		intrinsicRealName = '%' + intrinsicBaseName + '%';
+
+		if (hasOwn(INTRINSICS, intrinsicRealName)) {
+			value = INTRINSICS[intrinsicRealName];
+		} else if (value != null) {
+			if (!(part in value)) {
+				if (!allowMissing) {
+					throw new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');
+				}
+				return void undefined;
+			}
+			if ($gOPD && (i + 1) >= parts.length) {
+				var desc = $gOPD(value, part);
+				isOwn = !!desc;
+
+				// By convention, when a data property is converted to an accessor
+				// property to emulate a data property that does not suffer from
+				// the override mistake, that accessor's getter is marked with
+				// an `originalValue` property. Here, when we detect this, we
+				// uphold the illusion by pretending to see that original data
+				// property, i.e., returning the value rather than the getter
+				// itself.
+				if (isOwn && 'get' in desc && !('originalValue' in desc.get)) {
+					value = desc.get;
+				} else {
+					value = value[part];
+				}
+			} else {
+				isOwn = hasOwn(value, part);
+				value = value[part];
+			}
+
+			if (isOwn && !skipFurtherCaching) {
+				INTRINSICS[intrinsicRealName] = value;
+			}
+		}
+	}
+	return value;
+};
+
+
+/***/ }),
+
+/***/ 1779:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var origSymbol = typeof Symbol !== 'undefined' && Symbol;
+var hasSymbolSham = __webpack_require__(8030);
+
+module.exports = function hasNativeSymbols() {
+	if (typeof origSymbol !== 'function') { return false; }
+	if (typeof Symbol !== 'function') { return false; }
+	if (typeof origSymbol('foo') !== 'symbol') { return false; }
+	if (typeof Symbol('bar') !== 'symbol') { return false; }
+
+	return hasSymbolSham();
+};
+
+
+/***/ }),
+
+/***/ 8030:
+/***/ (function(module) {
+
+"use strict";
+
+
+/* eslint complexity: [2, 18], max-statements: [2, 33] */
+module.exports = function hasSymbols() {
+	if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }
+	if (typeof Symbol.iterator === 'symbol') { return true; }
+
+	var obj = {};
+	var sym = Symbol('test');
+	var symObj = Object(sym);
+	if (typeof sym === 'string') { return false; }
+
+	if (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }
+	if (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }
+
+	// temp disabled per https://github.com/ljharb/object.assign/issues/17
+	// if (sym instanceof Symbol) { return false; }
+	// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4
+	// if (!(symObj instanceof Symbol)) { return false; }
+
+	// if (typeof Symbol.prototype.toString !== 'function') { return false; }
+	// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }
+
+	var symVal = 42;
+	obj[sym] = symVal;
+	for (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop
+	if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }
+
+	if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }
+
+	var syms = Object.getOwnPropertySymbols(obj);
+	if (syms.length !== 1 || syms[0] !== sym) { return false; }
+
+	if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }
+
+	if (typeof Object.getOwnPropertyDescriptor === 'function') {
+		var descriptor = Object.getOwnPropertyDescriptor(obj, sym);
+		if (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }
+	}
+
+	return true;
+};
+
+
+/***/ }),
+
+/***/ 9905:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var origSymbol = __webpack_require__.g.Symbol;
+var hasSymbolSham = __webpack_require__(5682);
+
+module.exports = function hasNativeSymbols() {
+	if (typeof origSymbol !== 'function') { return false; }
+	if (typeof Symbol !== 'function') { return false; }
+	if (typeof origSymbol('foo') !== 'symbol') { return false; }
+	if (typeof Symbol('bar') !== 'symbol') { return false; }
+
+	return hasSymbolSham();
+};
+
+
+/***/ }),
+
+/***/ 5682:
+/***/ (function(module) {
+
+"use strict";
+
+
+/* eslint complexity: [2, 18], max-statements: [2, 33] */
+module.exports = function hasSymbols() {
+	if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }
+	if (typeof Symbol.iterator === 'symbol') { return true; }
+
+	var obj = {};
+	var sym = Symbol('test');
+	var symObj = Object(sym);
+	if (typeof sym === 'string') { return false; }
+
+	if (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }
+	if (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }
+
+	// temp disabled per https://github.com/ljharb/object.assign/issues/17
+	// if (sym instanceof Symbol) { return false; }
+	// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4
+	// if (!(symObj instanceof Symbol)) { return false; }
+
+	// if (typeof Symbol.prototype.toString !== 'function') { return false; }
+	// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }
+
+	var symVal = 42;
+	obj[sym] = symVal;
+	for (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax
+	if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }
+
+	if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }
+
+	var syms = Object.getOwnPropertySymbols(obj);
+	if (syms.length !== 1 || syms[0] !== sym) { return false; }
+
+	if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }
+
+	if (typeof Object.getOwnPropertyDescriptor === 'function') {
+		var descriptor = Object.getOwnPropertyDescriptor(obj, sym);
+		if (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }
+	}
+
+	return true;
+};
+
+
+/***/ }),
+
+/***/ 81:
+/***/ (function(module) {
+
+"use strict";
+
+
+/* eslint complexity: [2, 18], max-statements: [2, 33] */
+module.exports = function hasSymbols() {
+	if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }
+	if (typeof Symbol.iterator === 'symbol') { return true; }
+
+	var obj = {};
+	var sym = Symbol('test');
+	var symObj = Object(sym);
+	if (typeof sym === 'string') { return false; }
+
+	if (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }
+	if (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }
+
+	// temp disabled per https://github.com/ljharb/object.assign/issues/17
+	// if (sym instanceof Symbol) { return false; }
+	// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4
+	// if (!(symObj instanceof Symbol)) { return false; }
+
+	// if (typeof Symbol.prototype.toString !== 'function') { return false; }
+	// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }
+
+	var symVal = 42;
+	obj[sym] = symVal;
+	for (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop
+	if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }
+
+	if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }
+
+	var syms = Object.getOwnPropertySymbols(obj);
+	if (syms.length !== 1 || syms[0] !== sym) { return false; }
+
+	if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }
+
+	if (typeof Object.getOwnPropertyDescriptor === 'function') {
+		var descriptor = Object.getOwnPropertyDescriptor(obj, sym);
+		if (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }
+	}
+
+	return true;
+};
+
+
+/***/ }),
+
+/***/ 4111:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var hasSymbols = __webpack_require__(81);
+
+module.exports = function hasToStringTagShams() {
+	return hasSymbols() && !!Symbol.toStringTag;
+};
+
+
+/***/ }),
+
+/***/ 9284:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var bind = __webpack_require__(1930);
+
+module.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);
+
+
+/***/ }),
+
+/***/ 3138:
+/***/ (function(module) {
+
+module.exports =
+/******/ (function(modules) { // webpackBootstrap
+/******/ 	// The module cache
+/******/ 	var installedModules = {};
+/******/
+/******/ 	// The require function
+/******/ 	function __nested_webpack_require_187__(moduleId) {
+/******/
+/******/ 		// Check if module is in cache
+/******/ 		if(installedModules[moduleId])
+/******/ 			return installedModules[moduleId].exports;
+/******/
+/******/ 		// Create a new module (and put it into the cache)
+/******/ 		var module = installedModules[moduleId] = {
+/******/ 			exports: {},
+/******/ 			id: moduleId,
+/******/ 			loaded: false
+/******/ 		};
+/******/
+/******/ 		// Execute the module function
+/******/ 		modules[moduleId].call(module.exports, module, module.exports, __nested_webpack_require_187__);
+/******/
+/******/ 		// Flag the module as loaded
+/******/ 		module.loaded = true;
+/******/
+/******/ 		// Return the exports of the module
+/******/ 		return module.exports;
+/******/ 	}
+/******/
+/******/
+/******/ 	// expose the modules object (__webpack_modules__)
+/******/ 	__nested_webpack_require_187__.m = modules;
+/******/
+/******/ 	// expose the module cache
+/******/ 	__nested_webpack_require_187__.c = installedModules;
+/******/
+/******/ 	// __webpack_public_path__
+/******/ 	__nested_webpack_require_187__.p = "";
+/******/
+/******/ 	// Load entry module and return exports
+/******/ 	return __nested_webpack_require_187__(0);
+/******/ })
+/************************************************************************/
+/******/ ([
+/* 0 */
+/***/ (function(module, exports, __nested_webpack_require_1468__) {
+
+	module.exports = __nested_webpack_require_1468__(1);
+
+
+/***/ }),
+/* 1 */
+/***/ (function(module, exports, __nested_webpack_require_1587__) {
+
+	'use strict';
+	
+	Object.defineProperty(exports, "__esModule", {
+	  value: true
+	});
+	
+	var _utils = __nested_webpack_require_1587__(2);
+	
+	Object.defineProperty(exports, 'combineChunks', {
+	  enumerable: true,
+	  get: function get() {
+	    return _utils.combineChunks;
+	  }
+	});
+	Object.defineProperty(exports, 'fillInChunks', {
+	  enumerable: true,
+	  get: function get() {
+	    return _utils.fillInChunks;
+	  }
+	});
+	Object.defineProperty(exports, 'findAll', {
+	  enumerable: true,
+	  get: function get() {
+	    return _utils.findAll;
+	  }
+	});
+	Object.defineProperty(exports, 'findChunks', {
+	  enumerable: true,
+	  get: function get() {
+	    return _utils.findChunks;
+	  }
+	});
+
+/***/ }),
+/* 2 */
+/***/ (function(module, exports) {
+
+	'use strict';
+	
+	Object.defineProperty(exports, "__esModule", {
+	  value: true
+	});
+	
+	
+	/**
+	 * Creates an array of chunk objects representing both higlightable and non highlightable pieces of text that match each search word.
+	 * @return Array of "chunks" (where a Chunk is { start:number, end:number, highlight:boolean })
+	 */
+	var findAll = exports.findAll = function findAll(_ref) {
+	  var autoEscape = _ref.autoEscape,
+	      _ref$caseSensitive = _ref.caseSensitive,
+	      caseSensitive = _ref$caseSensitive === undefined ? false : _ref$caseSensitive,
+	      _ref$findChunks = _ref.findChunks,
+	      findChunks = _ref$findChunks === undefined ? defaultFindChunks : _ref$findChunks,
+	      sanitize = _ref.sanitize,
+	      searchWords = _ref.searchWords,
+	      textToHighlight = _ref.textToHighlight;
+	  return fillInChunks({
+	    chunksToHighlight: combineChunks({
+	      chunks: findChunks({
+	        autoEscape: autoEscape,
+	        caseSensitive: caseSensitive,
+	        sanitize: sanitize,
+	        searchWords: searchWords,
+	        textToHighlight: textToHighlight
+	      })
+	    }),
+	    totalLength: textToHighlight ? textToHighlight.length : 0
+	  });
+	};
+	
+	/**
+	 * Takes an array of {start:number, end:number} objects and combines chunks that overlap into single chunks.
+	 * @return {start:number, end:number}[]
+	 */
+	
+	
+	var combineChunks = exports.combineChunks = function combineChunks(_ref2) {
+	  var chunks = _ref2.chunks;
+	
+	  chunks = chunks.sort(function (first, second) {
+	    return first.start - second.start;
+	  }).reduce(function (processedChunks, nextChunk) {
+	    // First chunk just goes straight in the array...
+	    if (processedChunks.length === 0) {
+	      return [nextChunk];
+	    } else {
+	      // ... subsequent chunks get checked to see if they overlap...
+	      var prevChunk = processedChunks.pop();
+	      if (nextChunk.start <= prevChunk.end) {
+	        // It may be the case that prevChunk completely surrounds nextChunk, so take the
+	        // largest of the end indeces.
+	        var endIndex = Math.max(prevChunk.end, nextChunk.end);
+	        processedChunks.push({ highlight: false, start: prevChunk.start, end: endIndex });
+	      } else {
+	        processedChunks.push(prevChunk, nextChunk);
+	      }
+	      return processedChunks;
+	    }
+	  }, []);
+	
+	  return chunks;
+	};
+	
+	/**
+	 * Examine text for any matches.
+	 * If we find matches, add them to the returned array as a "chunk" object ({start:number, end:number}).
+	 * @return {start:number, end:number}[]
+	 */
+	var defaultFindChunks = function defaultFindChunks(_ref3) {
+	  var autoEscape = _ref3.autoEscape,
+	      caseSensitive = _ref3.caseSensitive,
+	      _ref3$sanitize = _ref3.sanitize,
+	      sanitize = _ref3$sanitize === undefined ? defaultSanitize : _ref3$sanitize,
+	      searchWords = _ref3.searchWords,
+	      textToHighlight = _ref3.textToHighlight;
+	
+	  textToHighlight = sanitize(textToHighlight);
+	
+	  return searchWords.filter(function (searchWord) {
+	    return searchWord;
+	  }) // Remove empty words
+	  .reduce(function (chunks, searchWord) {
+	    searchWord = sanitize(searchWord);
+	
+	    if (autoEscape) {
+	      searchWord = escapeRegExpFn(searchWord);
+	    }
+	
+	    var regex = new RegExp(searchWord, caseSensitive ? 'g' : 'gi');
+	
+	    var match = void 0;
+	    while (match = regex.exec(textToHighlight)) {
+	      var _start = match.index;
+	      var _end = regex.lastIndex;
+	      // We do not return zero-length matches
+	      if (_end > _start) {
+	        chunks.push({ highlight: false, start: _start, end: _end });
+	      }
+	
+	      // Prevent browsers like Firefox from getting stuck in an infinite loop
+	      // See http://www.regexguru.com/2008/04/watch-out-for-zero-length-matches/
+	      if (match.index === regex.lastIndex) {
+	        regex.lastIndex++;
+	      }
+	    }
+	
+	    return chunks;
+	  }, []);
+	};
+	// Allow the findChunks to be overridden in findAll,
+	// but for backwards compatibility we export as the old name
+	exports.findChunks = defaultFindChunks;
+	
+	/**
+	 * Given a set of chunks to highlight, create an additional set of chunks
+	 * to represent the bits of text between the highlighted text.
+	 * @param chunksToHighlight {start:number, end:number}[]
+	 * @param totalLength number
+	 * @return {start:number, end:number, highlight:boolean}[]
+	 */
+	
+	var fillInChunks = exports.fillInChunks = function fillInChunks(_ref4) {
+	  var chunksToHighlight = _ref4.chunksToHighlight,
+	      totalLength = _ref4.totalLength;
+	
+	  var allChunks = [];
+	  var append = function append(start, end, highlight) {
+	    if (end - start > 0) {
+	      allChunks.push({
+	        start: start,
+	        end: end,
+	        highlight: highlight
+	      });
+	    }
+	  };
+	
+	  if (chunksToHighlight.length === 0) {
+	    append(0, totalLength, false);
+	  } else {
+	    var lastIndex = 0;
+	    chunksToHighlight.forEach(function (chunk) {
+	      append(lastIndex, chunk.start, false);
+	      append(chunk.start, chunk.end, true);
+	      lastIndex = chunk.end;
+	    });
+	    append(lastIndex, totalLength, false);
+	  }
+	  return allChunks;
+	};
+	
+	function defaultSanitize(string) {
+	  return string;
+	}
+	
+	function escapeRegExpFn(string) {
+	  return string.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, '\\$&');
+	}
+
+/***/ })
+/******/ ]);
+
+
+/***/ }),
+
+/***/ 1281:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var reactIs = __webpack_require__(338);
+
+/**
+ * Copyright 2015, Yahoo! Inc.
+ * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
+ */
+var REACT_STATICS = {
+  childContextTypes: true,
+  contextType: true,
+  contextTypes: true,
+  defaultProps: true,
+  displayName: true,
+  getDefaultProps: true,
+  getDerivedStateFromError: true,
+  getDerivedStateFromProps: true,
+  mixins: true,
+  propTypes: true,
+  type: true
+};
+var KNOWN_STATICS = {
+  name: true,
+  length: true,
+  prototype: true,
+  caller: true,
+  callee: true,
+  arguments: true,
+  arity: true
+};
+var FORWARD_REF_STATICS = {
+  '$$typeof': true,
+  render: true,
+  defaultProps: true,
+  displayName: true,
+  propTypes: true
+};
+var MEMO_STATICS = {
+  '$$typeof': true,
+  compare: true,
+  defaultProps: true,
+  displayName: true,
+  propTypes: true,
+  type: true
+};
+var TYPE_STATICS = {};
+TYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;
+TYPE_STATICS[reactIs.Memo] = MEMO_STATICS;
+
+function getStatics(component) {
+  // React v16.11 and below
+  if (reactIs.isMemo(component)) {
+    return MEMO_STATICS;
+  } // React v16.12 and above
+
+
+  return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;
+}
+
+var defineProperty = Object.defineProperty;
+var getOwnPropertyNames = Object.getOwnPropertyNames;
+var getOwnPropertySymbols = Object.getOwnPropertySymbols;
+var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
+var getPrototypeOf = Object.getPrototypeOf;
+var objectPrototype = Object.prototype;
+function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {
+  if (typeof sourceComponent !== 'string') {
+    // don't hoist over string (html) components
+    if (objectPrototype) {
+      var inheritedComponent = getPrototypeOf(sourceComponent);
+
+      if (inheritedComponent && inheritedComponent !== objectPrototype) {
+        hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);
+      }
+    }
+
+    var keys = getOwnPropertyNames(sourceComponent);
+
+    if (getOwnPropertySymbols) {
+      keys = keys.concat(getOwnPropertySymbols(sourceComponent));
+    }
+
+    var targetStatics = getStatics(targetComponent);
+    var sourceStatics = getStatics(sourceComponent);
+
+    for (var i = 0; i < keys.length; ++i) {
+      var key = keys[i];
+
+      if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {
+        var descriptor = getOwnPropertyDescriptor(sourceComponent, key);
+
+        try {
+          // Avoid failures from read-only properties
+          defineProperty(targetComponent, key, descriptor);
+        } catch (e) {}
+      }
+    }
+  }
+
+  return targetComponent;
+}
+
+module.exports = hoistNonReactStatics;
+
+
+/***/ }),
+
+/***/ 5443:
+/***/ (function(module) {
+
+"use strict";
+
+
+var fnToStr = Function.prototype.toString;
+var reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;
+var badArrayLike;
+var isCallableMarker;
+if (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {
+	try {
+		badArrayLike = Object.defineProperty({}, 'length', {
+			get: function () {
+				throw isCallableMarker;
+			}
+		});
+		isCallableMarker = {};
+		// eslint-disable-next-line no-throw-literal
+		reflectApply(function () { throw 42; }, null, badArrayLike);
+	} catch (_) {
+		if (_ !== isCallableMarker) {
+			reflectApply = null;
+		}
+	}
+} else {
+	reflectApply = null;
+}
+
+var constructorRegex = /^\s*class\b/;
+var isES6ClassFn = function isES6ClassFunction(value) {
+	try {
+		var fnStr = fnToStr.call(value);
+		return constructorRegex.test(fnStr);
+	} catch (e) {
+		return false; // not a function
+	}
+};
+
+var tryFunctionObject = function tryFunctionToStr(value) {
+	try {
+		if (isES6ClassFn(value)) { return false; }
+		fnToStr.call(value);
+		return true;
+	} catch (e) {
+		return false;
+	}
+};
+var toStr = Object.prototype.toString;
+var fnClass = '[object Function]';
+var genClass = '[object GeneratorFunction]';
+var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';
+
+module.exports = reflectApply
+	? function isCallable(value) {
+		if (!value) { return false; }
+		if (typeof value !== 'function' && typeof value !== 'object') { return false; }
+		if (typeof value === 'function' && !value.prototype) { return true; }
+		try {
+			reflectApply(value, null, badArrayLike);
+		} catch (e) {
+			if (e !== isCallableMarker) { return false; }
+		}
+		return !isES6ClassFn(value);
+	}
+	: function isCallable(value) {
+		if (!value) { return false; }
+		if (typeof value !== 'function' && typeof value !== 'object') { return false; }
+		if (typeof value === 'function' && !value.prototype) { return true; }
+		if (hasToStringTag) { return tryFunctionObject(value); }
+		if (isES6ClassFn(value)) { return false; }
+		var strClass = toStr.call(value);
+		return strClass === fnClass || strClass === genClass;
+	};
+
+
+/***/ }),
+
+/***/ 8659:
+/***/ (function(module) {
+
+"use strict";
+
+
+var getDay = Date.prototype.getDay;
+var tryDateObject = function tryDateGetDayCall(value) {
+	try {
+		getDay.call(value);
+		return true;
+	} catch (e) {
+		return false;
+	}
+};
+
+var toStr = Object.prototype.toString;
+var dateClass = '[object Date]';
+var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';
+
+module.exports = function isDateObject(value) {
+	if (typeof value !== 'object' || value === null) {
+		return false;
+	}
+	return hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass;
+};
+
+
+/***/ }),
+
+/***/ 3082:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var toStr = Object.prototype.toString;
+var hasSymbols = __webpack_require__(9905)();
+
+if (hasSymbols) {
+	var symToStr = Symbol.prototype.toString;
+	var symStringRegex = /^Symbol\(.*\)$/;
+	var isSymbolObject = function isRealSymbolObject(value) {
+		if (typeof value.valueOf() !== 'symbol') {
+			return false;
+		}
+		return symStringRegex.test(symToStr.call(value));
+	};
+
+	module.exports = function isSymbol(value) {
+		if (typeof value === 'symbol') {
+			return true;
+		}
+		if (toStr.call(value) !== '[object Symbol]') {
+			return false;
+		}
+		try {
+			return isSymbolObject(value);
+		} catch (e) {
+			return false;
+		}
+	};
+} else {
+
+	module.exports = function isSymbol(value) {
+		// this environment does not support Symbols.
+		return  false && 0;
+	};
+}
+
+
+/***/ }),
+
+/***/ 5834:
+/***/ (function(module, exports) {
+
+Object.defineProperty(exports, "__esModule", ({
   value: true
-});
+}));
+exports["default"] = isTouchDevice;
+function isTouchDevice() {
+  return !!(typeof window !== 'undefined' && ('ontouchstart' in window || window.DocumentTouch && typeof document !== 'undefined' && document instanceof window.DocumentTouch)) || !!(typeof navigator !== 'undefined' && (navigator.maxTouchPoints || navigator.msMaxTouchPoints));
+}
+module.exports = exports['default'];
+
+/***/ }),
+
+/***/ 4937:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+var root = __webpack_require__(158);
+
+/** Built-in value references. */
+var Symbol = root.Symbol;
+
+module.exports = Symbol;
+
+
+/***/ }),
+
+/***/ 194:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+var Symbol = __webpack_require__(4937),
+    getRawTag = __webpack_require__(5401),
+    objectToString = __webpack_require__(2445);
+
+/** `Object#toString` result references. */
+var nullTag = '[object Null]',
+    undefinedTag = '[object Undefined]';
+
+/** Built-in value references. */
+var symToStringTag = Symbol ? Symbol.toStringTag : undefined;
+
+/**
+ * The base implementation of `getTag` without fallbacks for buggy environments.
+ *
+ * @private
+ * @param {*} value The value to query.
+ * @returns {string} Returns the `toStringTag`.
+ */
+function baseGetTag(value) {
+  if (value == null) {
+    return value === undefined ? undefinedTag : nullTag;
+  }
+  return (symToStringTag && symToStringTag in Object(value))
+    ? getRawTag(value)
+    : objectToString(value);
+}
+
+module.exports = baseGetTag;
+
+
+/***/ }),
+
+/***/ 2383:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+var trimmedEndIndex = __webpack_require__(8725);
+
+/** Used to match leading whitespace. */
+var reTrimStart = /^\s+/;
+
+/**
+ * The base implementation of `_.trim`.
+ *
+ * @private
+ * @param {string} string The string to trim.
+ * @returns {string} Returns the trimmed string.
+ */
+function baseTrim(string) {
+  return string
+    ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')
+    : string;
+}
+
+module.exports = baseTrim;
+
+
+/***/ }),
+
+/***/ 4528:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+/** Detect free variable `global` from Node.js. */
+var freeGlobal = typeof __webpack_require__.g == 'object' && __webpack_require__.g && __webpack_require__.g.Object === Object && __webpack_require__.g;
+
+module.exports = freeGlobal;
+
+
+/***/ }),
+
+/***/ 5401:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+var Symbol = __webpack_require__(4937);
+
+/** Used for built-in method references. */
+var objectProto = Object.prototype;
+
+/** Used to check objects for own properties. */
+var hasOwnProperty = objectProto.hasOwnProperty;
+
+/**
+ * Used to resolve the
+ * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
+ * of values.
+ */
+var nativeObjectToString = objectProto.toString;
+
+/** Built-in value references. */
+var symToStringTag = Symbol ? Symbol.toStringTag : undefined;
+
+/**
+ * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
+ *
+ * @private
+ * @param {*} value The value to query.
+ * @returns {string} Returns the raw `toStringTag`.
+ */
+function getRawTag(value) {
+  var isOwn = hasOwnProperty.call(value, symToStringTag),
+      tag = value[symToStringTag];
+
+  try {
+    value[symToStringTag] = undefined;
+    var unmasked = true;
+  } catch (e) {}
+
+  var result = nativeObjectToString.call(value);
+  if (unmasked) {
+    if (isOwn) {
+      value[symToStringTag] = tag;
+    } else {
+      delete value[symToStringTag];
+    }
+  }
+  return result;
+}
+
+module.exports = getRawTag;
+
+
+/***/ }),
+
+/***/ 2445:
+/***/ (function(module) {
+
+/** Used for built-in method references. */
+var objectProto = Object.prototype;
+
+/**
+ * Used to resolve the
+ * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
+ * of values.
+ */
+var nativeObjectToString = objectProto.toString;
+
+/**
+ * Converts `value` to a string using `Object.prototype.toString`.
+ *
+ * @private
+ * @param {*} value The value to convert.
+ * @returns {string} Returns the converted string.
+ */
+function objectToString(value) {
+  return nativeObjectToString.call(value);
+}
+
+module.exports = objectToString;
+
+
+/***/ }),
+
+/***/ 158:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+var freeGlobal = __webpack_require__(4528);
+
+/** Detect free variable `self`. */
+var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
+
+/** Used as a reference to the global object. */
+var root = freeGlobal || freeSelf || Function('return this')();
+
+module.exports = root;
+
+
+/***/ }),
+
+/***/ 8725:
+/***/ (function(module) {
+
+/** Used to match a single whitespace character. */
+var reWhitespace = /\s/;
+
+/**
+ * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace
+ * character of `string`.
+ *
+ * @private
+ * @param {string} string The string to inspect.
+ * @returns {number} Returns the index of the last non-whitespace character.
+ */
+function trimmedEndIndex(string) {
+  var index = string.length;
+
+  while (index-- && reWhitespace.test(string.charAt(index))) {}
+  return index;
+}
+
+module.exports = trimmedEndIndex;
+
+
+/***/ }),
+
+/***/ 6897:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+var isObject = __webpack_require__(3619),
+    now = __webpack_require__(8253),
+    toNumber = __webpack_require__(5053);
+
+/** Error message constants. */
+var FUNC_ERROR_TEXT = 'Expected a function';
+
+/* Built-in method references for those with the same name as other `lodash` methods. */
+var nativeMax = Math.max,
+    nativeMin = Math.min;
+
+/**
+ * Creates a debounced function that delays invoking `func` until after `wait`
+ * milliseconds have elapsed since the last time the debounced function was
+ * invoked. The debounced function comes with a `cancel` method to cancel
+ * delayed `func` invocations and a `flush` method to immediately invoke them.
+ * Provide `options` to indicate whether `func` should be invoked on the
+ * leading and/or trailing edge of the `wait` timeout. The `func` is invoked
+ * with the last arguments provided to the debounced function. Subsequent
+ * calls to the debounced function return the result of the last `func`
+ * invocation.
+ *
+ * **Note:** If `leading` and `trailing` options are `true`, `func` is
+ * invoked on the trailing edge of the timeout only if the debounced function
+ * is invoked more than once during the `wait` timeout.
+ *
+ * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
+ * until to the next tick, similar to `setTimeout` with a timeout of `0`.
+ *
+ * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
+ * for details over the differences between `_.debounce` and `_.throttle`.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Function
+ * @param {Function} func The function to debounce.
+ * @param {number} [wait=0] The number of milliseconds to delay.
+ * @param {Object} [options={}] The options object.
+ * @param {boolean} [options.leading=false]
+ *  Specify invoking on the leading edge of the timeout.
+ * @param {number} [options.maxWait]
+ *  The maximum time `func` is allowed to be delayed before it's invoked.
+ * @param {boolean} [options.trailing=true]
+ *  Specify invoking on the trailing edge of the timeout.
+ * @returns {Function} Returns the new debounced function.
+ * @example
+ *
+ * // Avoid costly calculations while the window size is in flux.
+ * jQuery(window).on('resize', _.debounce(calculateLayout, 150));
+ *
+ * // Invoke `sendMail` when clicked, debouncing subsequent calls.
+ * jQuery(element).on('click', _.debounce(sendMail, 300, {
+ *   'leading': true,
+ *   'trailing': false
+ * }));
+ *
+ * // Ensure `batchLog` is invoked once after 1 second of debounced calls.
+ * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });
+ * var source = new EventSource('/stream');
+ * jQuery(source).on('message', debounced);
+ *
+ * // Cancel the trailing debounced invocation.
+ * jQuery(window).on('popstate', debounced.cancel);
+ */
+function debounce(func, wait, options) {
+  var lastArgs,
+      lastThis,
+      maxWait,
+      result,
+      timerId,
+      lastCallTime,
+      lastInvokeTime = 0,
+      leading = false,
+      maxing = false,
+      trailing = true;
+
+  if (typeof func != 'function') {
+    throw new TypeError(FUNC_ERROR_TEXT);
+  }
+  wait = toNumber(wait) || 0;
+  if (isObject(options)) {
+    leading = !!options.leading;
+    maxing = 'maxWait' in options;
+    maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;
+    trailing = 'trailing' in options ? !!options.trailing : trailing;
+  }
+
+  function invokeFunc(time) {
+    var args = lastArgs,
+        thisArg = lastThis;
+
+    lastArgs = lastThis = undefined;
+    lastInvokeTime = time;
+    result = func.apply(thisArg, args);
+    return result;
+  }
+
+  function leadingEdge(time) {
+    // Reset any `maxWait` timer.
+    lastInvokeTime = time;
+    // Start the timer for the trailing edge.
+    timerId = setTimeout(timerExpired, wait);
+    // Invoke the leading edge.
+    return leading ? invokeFunc(time) : result;
+  }
+
+  function remainingWait(time) {
+    var timeSinceLastCall = time - lastCallTime,
+        timeSinceLastInvoke = time - lastInvokeTime,
+        timeWaiting = wait - timeSinceLastCall;
+
+    return maxing
+      ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)
+      : timeWaiting;
+  }
+
+  function shouldInvoke(time) {
+    var timeSinceLastCall = time - lastCallTime,
+        timeSinceLastInvoke = time - lastInvokeTime;
+
+    // Either this is the first call, activity has stopped and we're at the
+    // trailing edge, the system time has gone backwards and we're treating
+    // it as the trailing edge, or we've hit the `maxWait` limit.
+    return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||
+      (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));
+  }
+
+  function timerExpired() {
+    var time = now();
+    if (shouldInvoke(time)) {
+      return trailingEdge(time);
+    }
+    // Restart the timer.
+    timerId = setTimeout(timerExpired, remainingWait(time));
+  }
+
+  function trailingEdge(time) {
+    timerId = undefined;
+
+    // Only invoke if we have `lastArgs` which means `func` has been
+    // debounced at least once.
+    if (trailing && lastArgs) {
+      return invokeFunc(time);
+    }
+    lastArgs = lastThis = undefined;
+    return result;
+  }
+
+  function cancel() {
+    if (timerId !== undefined) {
+      clearTimeout(timerId);
+    }
+    lastInvokeTime = 0;
+    lastArgs = lastCallTime = lastThis = timerId = undefined;
+  }
+
+  function flush() {
+    return timerId === undefined ? result : trailingEdge(now());
+  }
+
+  function debounced() {
+    var time = now(),
+        isInvoking = shouldInvoke(time);
+
+    lastArgs = arguments;
+    lastThis = this;
+    lastCallTime = time;
+
+    if (isInvoking) {
+      if (timerId === undefined) {
+        return leadingEdge(lastCallTime);
+      }
+      if (maxing) {
+        // Handle invocations in a tight loop.
+        clearTimeout(timerId);
+        timerId = setTimeout(timerExpired, wait);
+        return invokeFunc(lastCallTime);
+      }
+    }
+    if (timerId === undefined) {
+      timerId = setTimeout(timerExpired, wait);
+    }
+    return result;
+  }
+  debounced.cancel = cancel;
+  debounced.flush = flush;
+  return debounced;
+}
+
+module.exports = debounce;
+
+
+/***/ }),
+
+/***/ 3619:
+/***/ (function(module) {
+
+/**
+ * Checks if `value` is the
+ * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
+ * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an object, else `false`.
+ * @example
+ *
+ * _.isObject({});
+ * // => true
+ *
+ * _.isObject([1, 2, 3]);
+ * // => true
+ *
+ * _.isObject(_.noop);
+ * // => true
+ *
+ * _.isObject(null);
+ * // => false
+ */
+function isObject(value) {
+  var type = typeof value;
+  return value != null && (type == 'object' || type == 'function');
+}
+
+module.exports = isObject;
+
+
+/***/ }),
+
+/***/ 1653:
+/***/ (function(module) {
+
+/**
+ * Checks if `value` is object-like. A value is object-like if it's not `null`
+ * and has a `typeof` result of "object".
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
+ * @example
+ *
+ * _.isObjectLike({});
+ * // => true
+ *
+ * _.isObjectLike([1, 2, 3]);
+ * // => true
+ *
+ * _.isObjectLike(_.noop);
+ * // => false
+ *
+ * _.isObjectLike(null);
+ * // => false
+ */
+function isObjectLike(value) {
+  return value != null && typeof value == 'object';
+}
+
+module.exports = isObjectLike;
+
+
+/***/ }),
+
+/***/ 1878:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+var baseGetTag = __webpack_require__(194),
+    isObjectLike = __webpack_require__(1653);
+
+/** `Object#toString` result references. */
+var symbolTag = '[object Symbol]';
+
+/**
+ * Checks if `value` is classified as a `Symbol` primitive or object.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
+ * @example
+ *
+ * _.isSymbol(Symbol.iterator);
+ * // => true
+ *
+ * _.isSymbol('abc');
+ * // => false
+ */
+function isSymbol(value) {
+  return typeof value == 'symbol' ||
+    (isObjectLike(value) && baseGetTag(value) == symbolTag);
+}
+
+module.exports = isSymbol;
+
+
+/***/ }),
+
+/***/ 8253:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+var root = __webpack_require__(158);
+
+/**
+ * Gets the timestamp of the number of milliseconds that have elapsed since
+ * the Unix epoch (1 January 1970 00:00:00 UTC).
+ *
+ * @static
+ * @memberOf _
+ * @since 2.4.0
+ * @category Date
+ * @returns {number} Returns the timestamp.
+ * @example
+ *
+ * _.defer(function(stamp) {
+ *   console.log(_.now() - stamp);
+ * }, _.now());
+ * // => Logs the number of milliseconds it took for the deferred invocation.
+ */
+var now = function() {
+  return root.Date.now();
+};
+
+module.exports = now;
+
+
+/***/ }),
+
+/***/ 8172:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+var debounce = __webpack_require__(6897),
+    isObject = __webpack_require__(3619);
+
+/** Error message constants. */
+var FUNC_ERROR_TEXT = 'Expected a function';
+
+/**
+ * Creates a throttled function that only invokes `func` at most once per
+ * every `wait` milliseconds. The throttled function comes with a `cancel`
+ * method to cancel delayed `func` invocations and a `flush` method to
+ * immediately invoke them. Provide `options` to indicate whether `func`
+ * should be invoked on the leading and/or trailing edge of the `wait`
+ * timeout. The `func` is invoked with the last arguments provided to the
+ * throttled function. Subsequent calls to the throttled function return the
+ * result of the last `func` invocation.
+ *
+ * **Note:** If `leading` and `trailing` options are `true`, `func` is
+ * invoked on the trailing edge of the timeout only if the throttled function
+ * is invoked more than once during the `wait` timeout.
+ *
+ * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
+ * until to the next tick, similar to `setTimeout` with a timeout of `0`.
+ *
+ * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
+ * for details over the differences between `_.throttle` and `_.debounce`.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Function
+ * @param {Function} func The function to throttle.
+ * @param {number} [wait=0] The number of milliseconds to throttle invocations to.
+ * @param {Object} [options={}] The options object.
+ * @param {boolean} [options.leading=true]
+ *  Specify invoking on the leading edge of the timeout.
+ * @param {boolean} [options.trailing=true]
+ *  Specify invoking on the trailing edge of the timeout.
+ * @returns {Function} Returns the new throttled function.
+ * @example
+ *
+ * // Avoid excessively updating the position while scrolling.
+ * jQuery(window).on('scroll', _.throttle(updatePosition, 100));
+ *
+ * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.
+ * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });
+ * jQuery(element).on('click', throttled);
+ *
+ * // Cancel the trailing throttled invocation.
+ * jQuery(window).on('popstate', throttled.cancel);
+ */
+function throttle(func, wait, options) {
+  var leading = true,
+      trailing = true;
+
+  if (typeof func != 'function') {
+    throw new TypeError(FUNC_ERROR_TEXT);
+  }
+  if (isObject(options)) {
+    leading = 'leading' in options ? !!options.leading : leading;
+    trailing = 'trailing' in options ? !!options.trailing : trailing;
+  }
+  return debounce(func, wait, {
+    'leading': leading,
+    'maxWait': wait,
+    'trailing': trailing
+  });
+}
+
+module.exports = throttle;
+
+
+/***/ }),
+
+/***/ 5053:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+var baseTrim = __webpack_require__(2383),
+    isObject = __webpack_require__(3619),
+    isSymbol = __webpack_require__(1878);
+
+/** Used as references for various `Number` constants. */
+var NAN = 0 / 0;
+
+/** Used to detect bad signed hexadecimal string values. */
+var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
+
+/** Used to detect binary string values. */
+var reIsBinary = /^0b[01]+$/i;
+
+/** Used to detect octal string values. */
+var reIsOctal = /^0o[0-7]+$/i;
+
+/** Built-in method references without a dependency on `root`. */
+var freeParseInt = parseInt;
+
+/**
+ * Converts `value` to a number.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to process.
+ * @returns {number} Returns the number.
+ * @example
+ *
+ * _.toNumber(3.2);
+ * // => 3.2
+ *
+ * _.toNumber(Number.MIN_VALUE);
+ * // => 5e-324
+ *
+ * _.toNumber(Infinity);
+ * // => Infinity
+ *
+ * _.toNumber('3.2');
+ * // => 3.2
+ */
+function toNumber(value) {
+  if (typeof value == 'number') {
+    return value;
+  }
+  if (isSymbol(value)) {
+    return NAN;
+  }
+  if (isObject(value)) {
+    var other = typeof value.valueOf == 'function' ? value.valueOf() : value;
+    value = isObject(other) ? (other + '') : other;
+  }
+  if (typeof value != 'string') {
+    return value === 0 ? value : +value;
+  }
+  value = baseTrim(value);
+  var isBinary = reIsBinary.test(value);
+  return (isBinary || reIsOctal.test(value))
+    ? freeParseInt(value.slice(2), isBinary ? 2 : 8)
+    : (reIsBadHex.test(value) ? NAN : +value);
+}
+
+module.exports = toNumber;
+
+
+/***/ }),
+
+/***/ 9756:
+/***/ (function(module) {
+
+/**
+ * Memize options object.
+ *
+ * @typedef MemizeOptions
+ *
+ * @property {number} [maxSize] Maximum size of the cache.
+ */
+
+/**
+ * Internal cache entry.
+ *
+ * @typedef MemizeCacheNode
+ *
+ * @property {?MemizeCacheNode|undefined} [prev] Previous node.
+ * @property {?MemizeCacheNode|undefined} [next] Next node.
+ * @property {Array<*>}                   args   Function arguments for cache
+ *                                               entry.
+ * @property {*}                          val    Function result.
+ */
+
+/**
+ * Properties of the enhanced function for controlling cache.
+ *
+ * @typedef MemizeMemoizedFunction
+ *
+ * @property {()=>void} clear Clear the cache.
+ */
+
+/**
+ * Accepts a function to be memoized, and returns a new memoized function, with
+ * optional options.
+ *
+ * @template {Function} F
+ *
+ * @param {F}             fn        Function to memoize.
+ * @param {MemizeOptions} [options] Options object.
+ *
+ * @return {F & MemizeMemoizedFunction} Memoized function.
+ */
+function memize( fn, options ) {
+	var size = 0;
+
+	/** @type {?MemizeCacheNode|undefined} */
+	var head;
+
+	/** @type {?MemizeCacheNode|undefined} */
+	var tail;
+
+	options = options || {};
+
+	function memoized( /* ...args */ ) {
+		var node = head,
+			len = arguments.length,
+			args, i;
+
+		searchCache: while ( node ) {
+			// Perform a shallow equality test to confirm that whether the node
+			// under test is a candidate for the arguments passed. Two arrays
+			// are shallowly equal if their length matches and each entry is
+			// strictly equal between the two sets. Avoid abstracting to a
+			// function which could incur an arguments leaking deoptimization.
+
+			// Check whether node arguments match arguments length
+			if ( node.args.length !== arguments.length ) {
+				node = node.next;
+				continue;
+			}
+
+			// Check whether node arguments match arguments values
+			for ( i = 0; i < len; i++ ) {
+				if ( node.args[ i ] !== arguments[ i ] ) {
+					node = node.next;
+					continue searchCache;
+				}
+			}
+
+			// At this point we can assume we've found a match
+
+			// Surface matched node to head if not already
+			if ( node !== head ) {
+				// As tail, shift to previous. Must only shift if not also
+				// head, since if both head and tail, there is no previous.
+				if ( node === tail ) {
+					tail = node.prev;
+				}
+
+				// Adjust siblings to point to each other. If node was tail,
+				// this also handles new tail's empty `next` assignment.
+				/** @type {MemizeCacheNode} */ ( node.prev ).next = node.next;
+				if ( node.next ) {
+					node.next.prev = node.prev;
+				}
+
+				node.next = head;
+				node.prev = null;
+				/** @type {MemizeCacheNode} */ ( head ).prev = node;
+				head = node;
+			}
+
+			// Return immediately
+			return node.val;
+		}
+
+		// No cached value found. Continue to insertion phase:
+
+		// Create a copy of arguments (avoid leaking deoptimization)
+		args = new Array( len );
+		for ( i = 0; i < len; i++ ) {
+			args[ i ] = arguments[ i ];
+		}
+
+		node = {
+			args: args,
+
+			// Generate the result from original function
+			val: fn.apply( null, args ),
+		};
+
+		// Don't need to check whether node is already head, since it would
+		// have been returned above already if it was
+
+		// Shift existing head down list
+		if ( head ) {
+			head.prev = node;
+			node.next = head;
+		} else {
+			// If no head, follows that there's no tail (at initial or reset)
+			tail = node;
+		}
+
+		// Trim tail if we're reached max size and are pending cache insertion
+		if ( size === /** @type {MemizeOptions} */ ( options ).maxSize ) {
+			tail = /** @type {MemizeCacheNode} */ ( tail ).prev;
+			/** @type {MemizeCacheNode} */ ( tail ).next = null;
+		} else {
+			size++;
+		}
+
+		head = node;
+
+		return node.val;
+	}
+
+	memoized.clear = function() {
+		head = null;
+		tail = null;
+		size = 0;
+	};
+
+	if ( false ) {}
+
+	// Ignore reason: There's not a clear solution to create an intersection of
+	// the function with additional properties, where the goal is to retain the
+	// function signature of the incoming argument and add control properties
+	// on the return value.
+
+	// @ts-ignore
+	return memoized;
+}
+
+module.exports = memize;
+
+
+/***/ }),
+
+/***/ 8383:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var keysShim;
+if (!Object.keys) {
+	// modified from https://github.com/es-shims/es5-shim
+	var has = Object.prototype.hasOwnProperty;
+	var toStr = Object.prototype.toString;
+	var isArgs = __webpack_require__(4418); // eslint-disable-line global-require
+	var isEnumerable = Object.prototype.propertyIsEnumerable;
+	var hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');
+	var hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');
+	var dontEnums = [
+		'toString',
+		'toLocaleString',
+		'valueOf',
+		'hasOwnProperty',
+		'isPrototypeOf',
+		'propertyIsEnumerable',
+		'constructor'
+	];
+	var equalsConstructorPrototype = function (o) {
+		var ctor = o.constructor;
+		return ctor && ctor.prototype === o;
+	};
+	var excludedKeys = {
+		$applicationCache: true,
+		$console: true,
+		$external: true,
+		$frame: true,
+		$frameElement: true,
+		$frames: true,
+		$innerHeight: true,
+		$innerWidth: true,
+		$onmozfullscreenchange: true,
+		$onmozfullscreenerror: true,
+		$outerHeight: true,
+		$outerWidth: true,
+		$pageXOffset: true,
+		$pageYOffset: true,
+		$parent: true,
+		$scrollLeft: true,
+		$scrollTop: true,
+		$scrollX: true,
+		$scrollY: true,
+		$self: true,
+		$webkitIndexedDB: true,
+		$webkitStorageInfo: true,
+		$window: true
+	};
+	var hasAutomationEqualityBug = (function () {
+		/* global window */
+		if (typeof window === 'undefined') { return false; }
+		for (var k in window) {
+			try {
+				if (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {
+					try {
+						equalsConstructorPrototype(window[k]);
+					} catch (e) {
+						return true;
+					}
+				}
+			} catch (e) {
+				return true;
+			}
+		}
+		return false;
+	}());
+	var equalsConstructorPrototypeIfNotBuggy = function (o) {
+		/* global window */
+		if (typeof window === 'undefined' || !hasAutomationEqualityBug) {
+			return equalsConstructorPrototype(o);
+		}
+		try {
+			return equalsConstructorPrototype(o);
+		} catch (e) {
+			return false;
+		}
+	};
+
+	keysShim = function keys(object) {
+		var isObject = object !== null && typeof object === 'object';
+		var isFunction = toStr.call(object) === '[object Function]';
+		var isArguments = isArgs(object);
+		var isString = isObject && toStr.call(object) === '[object String]';
+		var theKeys = [];
+
+		if (!isObject && !isFunction && !isArguments) {
+			throw new TypeError('Object.keys called on a non-object');
+		}
+
+		var skipProto = hasProtoEnumBug && isFunction;
+		if (isString && object.length > 0 && !has.call(object, 0)) {
+			for (var i = 0; i < object.length; ++i) {
+				theKeys.push(String(i));
+			}
+		}
+
+		if (isArguments && object.length > 0) {
+			for (var j = 0; j < object.length; ++j) {
+				theKeys.push(String(j));
+			}
+		} else {
+			for (var name in object) {
+				if (!(skipProto && name === 'prototype') && has.call(object, name)) {
+					theKeys.push(String(name));
+				}
+			}
+		}
+
+		if (hasDontEnumBug) {
+			var skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);
+
+			for (var k = 0; k < dontEnums.length; ++k) {
+				if (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {
+					theKeys.push(dontEnums[k]);
+				}
+			}
+		}
+		return theKeys;
+	};
+}
+module.exports = keysShim;
+
+
+/***/ }),
+
+/***/ 806:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var slice = Array.prototype.slice;
+var isArgs = __webpack_require__(4418);
+
+var origKeys = Object.keys;
+var keysShim = origKeys ? function keys(o) { return origKeys(o); } : __webpack_require__(8383);
+
+var originalKeys = Object.keys;
+
+keysShim.shim = function shimObjectKeys() {
+	if (Object.keys) {
+		var keysWorksWithArguments = (function () {
+			// Safari 5.0 bug
+			var args = Object.keys(arguments);
+			return args && args.length === arguments.length;
+		}(1, 2));
+		if (!keysWorksWithArguments) {
+			Object.keys = function keys(object) { // eslint-disable-line func-name-matching
+				if (isArgs(object)) {
+					return originalKeys(slice.call(object));
+				}
+				return originalKeys(object);
+			};
+		}
+	} else {
+		Object.keys = keysShim;
+	}
+	return Object.keys || keysShim;
+};
+
+module.exports = keysShim;
+
+
+/***/ }),
+
+/***/ 4418:
+/***/ (function(module) {
+
+"use strict";
+
+
+var toStr = Object.prototype.toString;
+
+module.exports = function isArguments(value) {
+	var str = toStr.call(value);
+	var isArgs = str === '[object Arguments]';
+	if (!isArgs) {
+		isArgs = str !== '[object Array]' &&
+			value !== null &&
+			typeof value === 'object' &&
+			typeof value.length === 'number' &&
+			value.length >= 0 &&
+			toStr.call(value.callee) === '[object Function]';
+	}
+	return isArgs;
+};
+
+
+/***/ }),
+
+/***/ 2148:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+// modified from https://github.com/es-shims/es6-shim
+var keys = __webpack_require__(806);
+var canBeObject = function (obj) {
+	return typeof obj !== 'undefined' && obj !== null;
+};
+var hasSymbols = __webpack_require__(5682)();
+var callBound = __webpack_require__(7615);
+var toObject = Object;
+var $push = callBound('Array.prototype.push');
+var $propIsEnumerable = callBound('Object.prototype.propertyIsEnumerable');
+var originalGetSymbols = hasSymbols ? Object.getOwnPropertySymbols : null;
+
+// eslint-disable-next-line no-unused-vars
+module.exports = function assign(target, source1) {
+	if (!canBeObject(target)) { throw new TypeError('target must be an object'); }
+	var objTarget = toObject(target);
+	var s, source, i, props, syms, value, key;
+	for (s = 1; s < arguments.length; ++s) {
+		source = toObject(arguments[s]);
+		props = keys(source);
+		var getSymbols = hasSymbols && (Object.getOwnPropertySymbols || originalGetSymbols);
+		if (getSymbols) {
+			syms = getSymbols(source);
+			for (i = 0; i < syms.length; ++i) {
+				key = syms[i];
+				if ($propIsEnumerable(source, key)) {
+					$push(props, key);
+				}
+			}
+		}
+		for (i = 0; i < props.length; ++i) {
+			key = props[i];
+			value = source[key];
+			if ($propIsEnumerable(source, key)) {
+				objTarget[key] = value;
+			}
+		}
+	}
+	return objTarget;
+};
+
+
+/***/ }),
+
+/***/ 4011:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var defineProperties = __webpack_require__(9170);
+var callBind = __webpack_require__(2550);
+
+var implementation = __webpack_require__(2148);
+var getPolyfill = __webpack_require__(293);
+var shim = __webpack_require__(2666);
+
+var polyfill = callBind.apply(getPolyfill());
+// eslint-disable-next-line no-unused-vars
+var bound = function assign(target, source1) {
+	return polyfill(Object, arguments);
+};
+
+defineProperties(bound, {
+	getPolyfill: getPolyfill,
+	implementation: implementation,
+	shim: shim
+});
+
+module.exports = bound;
+
+
+/***/ }),
+
+/***/ 293:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var implementation = __webpack_require__(2148);
+
+var lacksProperEnumerationOrder = function () {
+	if (!Object.assign) {
+		return false;
+	}
+	/*
+	 * v8, specifically in node 4.x, has a bug with incorrect property enumeration order
+	 * note: this does not detect the bug unless there's 20 characters
+	 */
+	var str = 'abcdefghijklmnopqrst';
+	var letters = str.split('');
+	var map = {};
+	for (var i = 0; i < letters.length; ++i) {
+		map[letters[i]] = letters[i];
+	}
+	var obj = Object.assign({}, map);
+	var actual = '';
+	for (var k in obj) {
+		actual += k;
+	}
+	return str !== actual;
+};
+
+var assignHasPendingExceptions = function () {
+	if (!Object.assign || !Object.preventExtensions) {
+		return false;
+	}
+	/*
+	 * Firefox 37 still has "pending exception" logic in its Object.assign implementation,
+	 * which is 72% slower than our shim, and Firefox 40's native implementation.
+	 */
+	var thrower = Object.preventExtensions({ 1: 2 });
+	try {
+		Object.assign(thrower, 'xy');
+	} catch (e) {
+		return thrower[1] === 'y';
+	}
+	return false;
+};
+
+module.exports = function getPolyfill() {
+	if (!Object.assign) {
+		return implementation;
+	}
+	if (lacksProperEnumerationOrder()) {
+		return implementation;
+	}
+	if (assignHasPendingExceptions()) {
+		return implementation;
+	}
+	return Object.assign;
+};
+
+
+/***/ }),
+
+/***/ 2666:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var define = __webpack_require__(9170);
+var getPolyfill = __webpack_require__(293);
+
+module.exports = function shimAssign() {
+	var polyfill = getPolyfill();
+	define(
+		Object,
+		{ assign: polyfill },
+		{ assign: function () { return Object.assign !== polyfill; } }
+	);
+	return polyfill;
+};
+
+
+/***/ }),
+
+/***/ 1631:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var has = __webpack_require__(9284);
+var RequireObjectCoercible = __webpack_require__(604);
+var callBound = __webpack_require__(7615);
+
+var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable');
+
+module.exports = function values(O) {
+	var obj = RequireObjectCoercible(O);
+	var vals = [];
+	for (var key in obj) {
+		if (has(obj, key) && $isEnumerable(obj, key)) {
+			vals.push(obj[key]);
+		}
+	}
+	return vals;
+};
+
+
+/***/ }),
+
+/***/ 5861:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var define = __webpack_require__(9170);
+var callBind = __webpack_require__(2550);
+
+var implementation = __webpack_require__(1631);
+var getPolyfill = __webpack_require__(779);
+var shim = __webpack_require__(7256);
+
+var polyfill = callBind(getPolyfill(), Object);
+
+define(polyfill, {
+	getPolyfill: getPolyfill,
+	implementation: implementation,
+	shim: shim
+});
+
+module.exports = polyfill;
+
+
+/***/ }),
+
+/***/ 604:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+module.exports = __webpack_require__(2559);
+
+
+/***/ }),
+
+/***/ 2559:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(6732);
+
+var $TypeError = GetIntrinsic('%TypeError%');
+
+// http://www.ecma-international.org/ecma-262/5.1/#sec-9.10
+
+module.exports = function CheckObjectCoercible(value, optMessage) {
+	if (value == null) {
+		throw new $TypeError(optMessage || ('Cannot call method on ' + value));
+	}
+	return value;
+};
+
+
+/***/ }),
+
+/***/ 6732:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+/* globals
+	AggregateError,
+	Atomics,
+	FinalizationRegistry,
+	SharedArrayBuffer,
+	WeakRef,
+*/
+
+var undefined;
+
+var $SyntaxError = SyntaxError;
+var $Function = Function;
+var $TypeError = TypeError;
+
+// eslint-disable-next-line consistent-return
+var getEvalledConstructor = function (expressionSyntax) {
+	try {
+		// eslint-disable-next-line no-new-func
+		return Function('"use strict"; return (' + expressionSyntax + ').constructor;')();
+	} catch (e) {}
+};
+
+var $gOPD = Object.getOwnPropertyDescriptor;
+if ($gOPD) {
+	try {
+		$gOPD({}, '');
+	} catch (e) {
+		$gOPD = null; // this is IE 8, which has a broken gOPD
+	}
+}
+
+var throwTypeError = function () { throw new $TypeError(); };
+var ThrowTypeError = $gOPD
+	? (function () {
+		try {
+			// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties
+			arguments.callee; // IE 8 does not throw here
+			return throwTypeError;
+		} catch (calleeThrows) {
+			try {
+				// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')
+				return $gOPD(arguments, 'callee').get;
+			} catch (gOPDthrows) {
+				return throwTypeError;
+			}
+		}
+	}())
+	: throwTypeError;
+
+var hasSymbols = __webpack_require__(9905)();
+
+var getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto
+
+var asyncGenFunction = getEvalledConstructor('async function* () {}');
+var asyncGenFunctionPrototype = asyncGenFunction ? asyncGenFunction.prototype : undefined;
+var asyncGenPrototype = asyncGenFunctionPrototype ? asyncGenFunctionPrototype.prototype : undefined;
+
+var TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);
+
+var INTRINSICS = {
+	'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,
+	'%Array%': Array,
+	'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,
+	'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,
+	'%AsyncFromSyncIteratorPrototype%': undefined,
+	'%AsyncFunction%': getEvalledConstructor('async function () {}'),
+	'%AsyncGenerator%': asyncGenFunctionPrototype,
+	'%AsyncGeneratorFunction%': asyncGenFunction,
+	'%AsyncIteratorPrototype%': asyncGenPrototype ? getProto(asyncGenPrototype) : undefined,
+	'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,
+	'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,
+	'%Boolean%': Boolean,
+	'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,
+	'%Date%': Date,
+	'%decodeURI%': decodeURI,
+	'%decodeURIComponent%': decodeURIComponent,
+	'%encodeURI%': encodeURI,
+	'%encodeURIComponent%': encodeURIComponent,
+	'%Error%': Error,
+	'%eval%': eval, // eslint-disable-line no-eval
+	'%EvalError%': EvalError,
+	'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,
+	'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,
+	'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,
+	'%Function%': $Function,
+	'%GeneratorFunction%': getEvalledConstructor('function* () {}'),
+	'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,
+	'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,
+	'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,
+	'%isFinite%': isFinite,
+	'%isNaN%': isNaN,
+	'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,
+	'%JSON%': typeof JSON === 'object' ? JSON : undefined,
+	'%Map%': typeof Map === 'undefined' ? undefined : Map,
+	'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),
+	'%Math%': Math,
+	'%Number%': Number,
+	'%Object%': Object,
+	'%parseFloat%': parseFloat,
+	'%parseInt%': parseInt,
+	'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,
+	'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,
+	'%RangeError%': RangeError,
+	'%ReferenceError%': ReferenceError,
+	'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,
+	'%RegExp%': RegExp,
+	'%Set%': typeof Set === 'undefined' ? undefined : Set,
+	'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),
+	'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,
+	'%String%': String,
+	'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,
+	'%Symbol%': hasSymbols ? Symbol : undefined,
+	'%SyntaxError%': $SyntaxError,
+	'%ThrowTypeError%': ThrowTypeError,
+	'%TypedArray%': TypedArray,
+	'%TypeError%': $TypeError,
+	'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,
+	'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,
+	'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,
+	'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,
+	'%URIError%': URIError,
+	'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,
+	'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,
+	'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet
+};
+
+var LEGACY_ALIASES = {
+	'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],
+	'%ArrayPrototype%': ['Array', 'prototype'],
+	'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],
+	'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],
+	'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],
+	'%ArrayProto_values%': ['Array', 'prototype', 'values'],
+	'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],
+	'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],
+	'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],
+	'%BooleanPrototype%': ['Boolean', 'prototype'],
+	'%DataViewPrototype%': ['DataView', 'prototype'],
+	'%DatePrototype%': ['Date', 'prototype'],
+	'%ErrorPrototype%': ['Error', 'prototype'],
+	'%EvalErrorPrototype%': ['EvalError', 'prototype'],
+	'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],
+	'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],
+	'%FunctionPrototype%': ['Function', 'prototype'],
+	'%Generator%': ['GeneratorFunction', 'prototype'],
+	'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],
+	'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],
+	'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],
+	'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],
+	'%JSONParse%': ['JSON', 'parse'],
+	'%JSONStringify%': ['JSON', 'stringify'],
+	'%MapPrototype%': ['Map', 'prototype'],
+	'%NumberPrototype%': ['Number', 'prototype'],
+	'%ObjectPrototype%': ['Object', 'prototype'],
+	'%ObjProto_toString%': ['Object', 'prototype', 'toString'],
+	'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],
+	'%PromisePrototype%': ['Promise', 'prototype'],
+	'%PromiseProto_then%': ['Promise', 'prototype', 'then'],
+	'%Promise_all%': ['Promise', 'all'],
+	'%Promise_reject%': ['Promise', 'reject'],
+	'%Promise_resolve%': ['Promise', 'resolve'],
+	'%RangeErrorPrototype%': ['RangeError', 'prototype'],
+	'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],
+	'%RegExpPrototype%': ['RegExp', 'prototype'],
+	'%SetPrototype%': ['Set', 'prototype'],
+	'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],
+	'%StringPrototype%': ['String', 'prototype'],
+	'%SymbolPrototype%': ['Symbol', 'prototype'],
+	'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],
+	'%TypedArrayPrototype%': ['TypedArray', 'prototype'],
+	'%TypeErrorPrototype%': ['TypeError', 'prototype'],
+	'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],
+	'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],
+	'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],
+	'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],
+	'%URIErrorPrototype%': ['URIError', 'prototype'],
+	'%WeakMapPrototype%': ['WeakMap', 'prototype'],
+	'%WeakSetPrototype%': ['WeakSet', 'prototype']
+};
+
+var bind = __webpack_require__(1930);
+var hasOwn = __webpack_require__(9284);
+var $concat = bind.call(Function.call, Array.prototype.concat);
+var $spliceApply = bind.call(Function.apply, Array.prototype.splice);
+var $replace = bind.call(Function.call, String.prototype.replace);
+
+/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */
+var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g;
+var reEscapeChar = /\\(\\)?/g; /** Used to match backslashes in property paths. */
+var stringToPath = function stringToPath(string) {
+	var result = [];
+	$replace(string, rePropName, function (match, number, quote, subString) {
+		result[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;
+	});
+	return result;
+};
+/* end adaptation */
+
+var getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {
+	var intrinsicName = name;
+	var alias;
+	if (hasOwn(LEGACY_ALIASES, intrinsicName)) {
+		alias = LEGACY_ALIASES[intrinsicName];
+		intrinsicName = '%' + alias[0] + '%';
+	}
+
+	if (hasOwn(INTRINSICS, intrinsicName)) {
+		var value = INTRINSICS[intrinsicName];
+		if (typeof value === 'undefined' && !allowMissing) {
+			throw new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');
+		}
+
+		return {
+			alias: alias,
+			name: intrinsicName,
+			value: value
+		};
+	}
+
+	throw new $SyntaxError('intrinsic ' + name + ' does not exist!');
+};
+
+module.exports = function GetIntrinsic(name, allowMissing) {
+	if (typeof name !== 'string' || name.length === 0) {
+		throw new $TypeError('intrinsic name must be a non-empty string');
+	}
+	if (arguments.length > 1 && typeof allowMissing !== 'boolean') {
+		throw new $TypeError('"allowMissing" argument must be a boolean');
+	}
+
+	var parts = stringToPath(name);
+	var intrinsicBaseName = parts.length > 0 ? parts[0] : '';
+
+	var intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);
+	var intrinsicRealName = intrinsic.name;
+	var value = intrinsic.value;
+	var skipFurtherCaching = false;
+
+	var alias = intrinsic.alias;
+	if (alias) {
+		intrinsicBaseName = alias[0];
+		$spliceApply(parts, $concat([0, 1], alias));
+	}
+
+	for (var i = 1, isOwn = true; i < parts.length; i += 1) {
+		var part = parts[i];
+		if (part === 'constructor' || !isOwn) {
+			skipFurtherCaching = true;
+		}
+
+		intrinsicBaseName += '.' + part;
+		intrinsicRealName = '%' + intrinsicBaseName + '%';
+
+		if (hasOwn(INTRINSICS, intrinsicRealName)) {
+			value = INTRINSICS[intrinsicRealName];
+		} else if (value != null) {
+			if ($gOPD && (i + 1) >= parts.length) {
+				var desc = $gOPD(value, part);
+				isOwn = !!desc;
+
+				if (!allowMissing && !(part in value)) {
+					throw new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');
+				}
+				// By convention, when a data property is converted to an accessor
+				// property to emulate a data property that does not suffer from
+				// the override mistake, that accessor's getter is marked with
+				// an `originalValue` property. Here, when we detect this, we
+				// uphold the illusion by pretending to see that original data
+				// property, i.e., returning the value rather than the getter
+				// itself.
+				if (isOwn && 'get' in desc && !('originalValue' in desc.get)) {
+					value = desc.get;
+				} else {
+					value = value[part];
+				}
+			} else {
+				isOwn = hasOwn(value, part);
+				value = value[part];
+			}
+
+			if (isOwn && !skipFurtherCaching) {
+				INTRINSICS[intrinsicRealName] = value;
+			}
+		}
+	}
+	return value;
+};
+
+
+/***/ }),
+
+/***/ 779:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var implementation = __webpack_require__(1631);
+
+module.exports = function getPolyfill() {
+	return typeof Object.values === 'function' ? Object.values : implementation;
+};
+
+
+/***/ }),
+
+/***/ 7256:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var getPolyfill = __webpack_require__(779);
+var define = __webpack_require__(9170);
+
+module.exports = function shimValues() {
+	var polyfill = getPolyfill();
+	define(Object, { values: polyfill }, {
+		values: function testValues() {
+			return Object.values !== polyfill;
+		}
+	});
+	return polyfill;
+};
+
+
+/***/ }),
+
+/***/ 5372:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+/**
+ * Copyright (c) 2013-present, Facebook, Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+
+
+var ReactPropTypesSecret = __webpack_require__(9567);
+
+function emptyFunction() {}
+function emptyFunctionWithReset() {}
+emptyFunctionWithReset.resetWarningCache = emptyFunction;
+
+module.exports = function() {
+  function shim(props, propName, componentName, location, propFullName, secret) {
+    if (secret === ReactPropTypesSecret) {
+      // It is still safe when called from React.
+      return;
+    }
+    var err = new Error(
+      'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
+      'Use PropTypes.checkPropTypes() to call them. ' +
+      'Read more at http://fb.me/use-check-prop-types'
+    );
+    err.name = 'Invariant Violation';
+    throw err;
+  };
+  shim.isRequired = shim;
+  function getShim() {
+    return shim;
+  };
+  // Important!
+  // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.
+  var ReactPropTypes = {
+    array: shim,
+    bigint: shim,
+    bool: shim,
+    func: shim,
+    number: shim,
+    object: shim,
+    string: shim,
+    symbol: shim,
+
+    any: shim,
+    arrayOf: getShim,
+    element: shim,
+    elementType: shim,
+    instanceOf: getShim,
+    node: shim,
+    objectOf: getShim,
+    oneOf: getShim,
+    oneOfType: getShim,
+    shape: getShim,
+    exact: getShim,
+
+    checkPropTypes: emptyFunctionWithReset,
+    resetWarningCache: emptyFunction
+  };
+
+  ReactPropTypes.PropTypes = ReactPropTypes;
+
+  return ReactPropTypes;
+};
+
+
+/***/ }),
+
+/***/ 2652:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+/**
+ * Copyright (c) 2013-present, Facebook, Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+if (false) { var throwOnDirectAccess, ReactIs; } else {
+  // By explicitly using `prop-types` you are opting into new production behavior.
+  // http://fb.me/prop-types-in-prod
+  module.exports = __webpack_require__(5372)();
+}
+
+
+/***/ }),
+
+/***/ 9567:
+/***/ (function(module) {
+
+"use strict";
+/**
+ * Copyright (c) 2013-present, Facebook, Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+
+
+var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
+
+module.exports = ReactPropTypesSecret;
+
+
+/***/ }),
+
+/***/ 2541:
+/***/ (function(module) {
+
+"use strict";
+/**
+ * Copyright (c) 2013-present, Facebook, Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ *
+ * @providesModule shallowCompare
+ */
+
+
+
+var hasOwnProperty = Object.prototype.hasOwnProperty;
+
+/**
+ * inlined Object.is polyfill to avoid requiring consumers ship their own
+ * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
+ */
+function is(x, y) {
+  // SameValue algorithm
+  if (x === y) {
+    // Steps 1-5, 7-10
+    // Steps 6.b-6.e: +0 != -0
+    // Added the nonzero y check to make Flow happy, but it is redundant
+    return x !== 0 || y !== 0 || 1 / x === 1 / y;
+  } else {
+    // Step 6.a: NaN == NaN
+    return x !== x && y !== y;
+  }
+}
+
+/**
+ * Performs equality by iterating through keys on an object and returning false
+ * when any key has values which are not strictly equal between the arguments.
+ * Returns true when the values of all keys are strictly equal.
+ */
+function shallowEqual(objA, objB) {
+  if (is(objA, objB)) {
+    return true;
+  }
+
+  if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {
+    return false;
+  }
+
+  var keysA = Object.keys(objA);
+  var keysB = Object.keys(objB);
+
+  if (keysA.length !== keysB.length) {
+    return false;
+  }
+
+  // Test for A's keys different from B.
+  for (var i = 0; i < keysA.length; i++) {
+    if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {
+      return false;
+    }
+  }
+
+  return true;
+}
+
+/**
+ * Does a shallow comparison for props and state.
+ * See ReactComponentWithPureRenderMixin
+ * See also https://facebook.github.io/react/docs/shallow-compare.html
+ */
+function shallowCompare(instance, nextProps, nextState) {
+  return (
+    !shallowEqual(instance.props, nextProps) ||
+    !shallowEqual(instance.state, nextState)
+  );
+}
+
+module.exports = shallowCompare;
+
+
+/***/ }),
+
+/***/ 4185:
+/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+// eslint-disable-next-line import/no-unresolved
+__webpack_require__(17);
+
+
+/***/ }),
+
+/***/ 7617:
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports.PureCalendarDay = undefined;
 
 var _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; };
 
 var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
 
-var _object = __webpack_require__("Koq/");
+var _object = __webpack_require__(4011);
 
 var _object2 = _interopRequireDefault(_object);
 
-var _react = __webpack_require__("cDcd");
+var _react = __webpack_require__(9196);
 
 var _react2 = _interopRequireDefault(_react);
 
-var _propTypes = __webpack_require__("17x9");
+var _propTypes = __webpack_require__(2652);
 
 var _propTypes2 = _interopRequireDefault(_propTypes);
 
-var _reactAddonsShallowCompare = __webpack_require__("YZDV");
+var _reactAddonsShallowCompare = __webpack_require__(2541);
 
 var _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare);
 
-var _reactMomentProptypes = __webpack_require__("XGBb");
+var _reactMomentProptypes = __webpack_require__(6150);
 
 var _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes);
 
-var _airbnbPropTypes = __webpack_require__("Hsqg");
-
-var _reactWithStyles = __webpack_require__("TG4+");
-
-var _moment = __webpack_require__("wy2R");
+var _airbnbPropTypes = __webpack_require__(4882);
+
+var _reactWithStyles = __webpack_require__(3576);
+
+var _moment = __webpack_require__(6292);
 
 var _moment2 = _interopRequireDefault(_moment);
 
-var _consolidatedEvents = __webpack_require__("1TsT");
-
-var _defaultPhrases = __webpack_require__("vV+G");
-
-var _getPhrasePropTypes = __webpack_require__("yc2e");
+var _defaultPhrases = __webpack_require__(6030);
+
+var _getPhrasePropTypes = __webpack_require__(2893);
 
 var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);
 
-var _CalendarMonth = __webpack_require__("mMiH");
+var _getCalendarDaySettings = __webpack_require__(7475);
+
+var _getCalendarDaySettings2 = _interopRequireDefault(_getCalendarDaySettings);
+
+var _ModifiersShape = __webpack_require__(6747);
+
+var _ModifiersShape2 = _interopRequireDefault(_ModifiersShape);
+
+var _constants = __webpack_require__(257);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
+
+function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, {
+  day: _reactMomentProptypes2['default'].momentObj,
+  daySize: _airbnbPropTypes.nonNegativeInteger,
+  isOutsideDay: _propTypes2['default'].bool,
+  modifiers: _ModifiersShape2['default'],
+  isFocused: _propTypes2['default'].bool,
+  tabIndex: _propTypes2['default'].oneOf([0, -1]),
+  onDayClick: _propTypes2['default'].func,
+  onDayMouseEnter: _propTypes2['default'].func,
+  onDayMouseLeave: _propTypes2['default'].func,
+  renderDayContents: _propTypes2['default'].func,
+  ariaLabelFormat: _propTypes2['default'].string,
+
+  // internationalization
+  phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.CalendarDayPhrases))
+}));
+
+var defaultProps = {
+  day: (0, _moment2['default'])(),
+  daySize: _constants.DAY_SIZE,
+  isOutsideDay: false,
+  modifiers: new Set(),
+  isFocused: false,
+  tabIndex: -1,
+  onDayClick: function () {
+    function onDayClick() {}
+
+    return onDayClick;
+  }(),
+  onDayMouseEnter: function () {
+    function onDayMouseEnter() {}
+
+    return onDayMouseEnter;
+  }(),
+  onDayMouseLeave: function () {
+    function onDayMouseLeave() {}
+
+    return onDayMouseLeave;
+  }(),
+
+  renderDayContents: null,
+  ariaLabelFormat: 'dddd, LL',
+
+  // internationalization
+  phrases: _defaultPhrases.CalendarDayPhrases
+};
+
+var CalendarDay = function (_React$Component) {
+  _inherits(CalendarDay, _React$Component);
+
+  function CalendarDay() {
+    var _ref;
+
+    _classCallCheck(this, CalendarDay);
+
+    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
+      args[_key] = arguments[_key];
+    }
+
+    var _this = _possibleConstructorReturn(this, (_ref = CalendarDay.__proto__ || Object.getPrototypeOf(CalendarDay)).call.apply(_ref, [this].concat(args)));
+
+    _this.setButtonRef = _this.setButtonRef.bind(_this);
+    return _this;
+  }
+
+  _createClass(CalendarDay, [{
+    key: 'shouldComponentUpdate',
+    value: function () {
+      function shouldComponentUpdate(nextProps, nextState) {
+        return (0, _reactAddonsShallowCompare2['default'])(this, nextProps, nextState);
+      }
+
+      return shouldComponentUpdate;
+    }()
+  }, {
+    key: 'componentDidUpdate',
+    value: function () {
+      function componentDidUpdate(prevProps) {
+        var _props = this.props,
+            isFocused = _props.isFocused,
+            tabIndex = _props.tabIndex;
+
+        if (tabIndex === 0) {
+          if (isFocused || tabIndex !== prevProps.tabIndex) {
+            this.buttonRef.focus();
+          }
+        }
+      }
+
+      return componentDidUpdate;
+    }()
+  }, {
+    key: 'onDayClick',
+    value: function () {
+      function onDayClick(day, e) {
+        var onDayClick = this.props.onDayClick;
+
+        onDayClick(day, e);
+      }
+
+      return onDayClick;
+    }()
+  }, {
+    key: 'onDayMouseEnter',
+    value: function () {
+      function onDayMouseEnter(day, e) {
+        var onDayMouseEnter = this.props.onDayMouseEnter;
+
+        onDayMouseEnter(day, e);
+      }
+
+      return onDayMouseEnter;
+    }()
+  }, {
+    key: 'onDayMouseLeave',
+    value: function () {
+      function onDayMouseLeave(day, e) {
+        var onDayMouseLeave = this.props.onDayMouseLeave;
+
+        onDayMouseLeave(day, e);
+      }
+
+      return onDayMouseLeave;
+    }()
+  }, {
+    key: 'onKeyDown',
+    value: function () {
+      function onKeyDown(day, e) {
+        var onDayClick = this.props.onDayClick;
+        var key = e.key;
+
+        if (key === 'Enter' || key === ' ') {
+          onDayClick(day, e);
+        }
+      }
+
+      return onKeyDown;
+    }()
+  }, {
+    key: 'setButtonRef',
+    value: function () {
+      function setButtonRef(ref) {
+        this.buttonRef = ref;
+      }
+
+      return setButtonRef;
+    }()
+  }, {
+    key: 'render',
+    value: function () {
+      function render() {
+        var _this2 = this;
+
+        var _props2 = this.props,
+            day = _props2.day,
+            ariaLabelFormat = _props2.ariaLabelFormat,
+            daySize = _props2.daySize,
+            isOutsideDay = _props2.isOutsideDay,
+            modifiers = _props2.modifiers,
+            renderDayContents = _props2.renderDayContents,
+            tabIndex = _props2.tabIndex,
+            styles = _props2.styles,
+            phrases = _props2.phrases;
+
+
+        if (!day) return _react2['default'].createElement('td', null);
+
+        var _getCalendarDaySettin = (0, _getCalendarDaySettings2['default'])(day, ariaLabelFormat, daySize, modifiers, phrases),
+            daySizeStyles = _getCalendarDaySettin.daySizeStyles,
+            useDefaultCursor = _getCalendarDaySettin.useDefaultCursor,
+            selected = _getCalendarDaySettin.selected,
+            hoveredSpan = _getCalendarDaySettin.hoveredSpan,
+            isOutsideRange = _getCalendarDaySettin.isOutsideRange,
+            ariaLabel = _getCalendarDaySettin.ariaLabel;
+
+        return _react2['default'].createElement(
+          'td',
+          _extends({}, (0, _reactWithStyles.css)(styles.CalendarDay, useDefaultCursor && styles.CalendarDay__defaultCursor, styles.CalendarDay__default, isOutsideDay && styles.CalendarDay__outside, modifiers.has('today') && styles.CalendarDay__today, modifiers.has('first-day-of-week') && styles.CalendarDay__firstDayOfWeek, modifiers.has('last-day-of-week') && styles.CalendarDay__lastDayOfWeek, modifiers.has('hovered-offset') && styles.CalendarDay__hovered_offset, modifiers.has('highlighted-calendar') && styles.CalendarDay__highlighted_calendar, modifiers.has('blocked-minimum-nights') && styles.CalendarDay__blocked_minimum_nights, modifiers.has('blocked-calendar') && styles.CalendarDay__blocked_calendar, hoveredSpan && styles.CalendarDay__hovered_span, modifiers.has('selected-span') && styles.CalendarDay__selected_span, modifiers.has('last-in-range') && styles.CalendarDay__last_in_range, modifiers.has('selected-start') && styles.CalendarDay__selected_start, modifiers.has('selected-end') && styles.CalendarDay__selected_end, selected && styles.CalendarDay__selected, isOutsideRange && styles.CalendarDay__blocked_out_of_range, daySizeStyles), {
+            role: 'button' // eslint-disable-line jsx-a11y/no-noninteractive-element-to-interactive-role
+            , ref: this.setButtonRef,
+            'aria-label': ariaLabel,
+            onMouseEnter: function () {
+              function onMouseEnter(e) {
+                _this2.onDayMouseEnter(day, e);
+              }
+
+              return onMouseEnter;
+            }(),
+            onMouseLeave: function () {
+              function onMouseLeave(e) {
+                _this2.onDayMouseLeave(day, e);
+              }
+
+              return onMouseLeave;
+            }(),
+            onMouseUp: function () {
+              function onMouseUp(e) {
+                e.currentTarget.blur();
+              }
+
+              return onMouseUp;
+            }(),
+            onClick: function () {
+              function onClick(e) {
+                _this2.onDayClick(day, e);
+              }
+
+              return onClick;
+            }(),
+            onKeyDown: function () {
+              function onKeyDown(e) {
+                _this2.onKeyDown(day, e);
+              }
+
+              return onKeyDown;
+            }(),
+            tabIndex: tabIndex
+          }),
+          renderDayContents ? renderDayContents(day, modifiers) : day.format('D')
+        );
+      }
+
+      return render;
+    }()
+  }]);
+
+  return CalendarDay;
+}(_react2['default'].Component);
+
+CalendarDay.propTypes = propTypes;
+CalendarDay.defaultProps = defaultProps;
+
+exports.PureCalendarDay = CalendarDay;
+exports["default"] = (0, _reactWithStyles.withStyles)(function (_ref2) {
+  var _ref2$reactDates = _ref2.reactDates,
+      color = _ref2$reactDates.color,
+      font = _ref2$reactDates.font;
+  return {
+    CalendarDay: {
+      boxSizing: 'border-box',
+      cursor: 'pointer',
+      fontSize: font.size,
+      textAlign: 'center',
+
+      ':active': {
+        outline: 0
+      }
+    },
+
+    CalendarDay__defaultCursor: {
+      cursor: 'default'
+    },
+
+    CalendarDay__default: {
+      border: '1px solid ' + String(color.core.borderLight),
+      color: color.text,
+      background: color.background,
+
+      ':hover': {
+        background: color.core.borderLight,
+        border: '1px double ' + String(color.core.borderLight),
+        color: 'inherit'
+      }
+    },
+
+    CalendarDay__hovered_offset: {
+      background: color.core.borderBright,
+      border: '1px double ' + String(color.core.borderLight),
+      color: 'inherit'
+    },
+
+    CalendarDay__outside: {
+      border: 0,
+      background: color.outside.backgroundColor,
+      color: color.outside.color,
+
+      ':hover': {
+        border: 0
+      }
+    },
+
+    CalendarDay__blocked_minimum_nights: {
+      background: color.minimumNights.backgroundColor,
+      border: '1px solid ' + String(color.minimumNights.borderColor),
+      color: color.minimumNights.color,
+
+      ':hover': {
+        background: color.minimumNights.backgroundColor_hover,
+        color: color.minimumNights.color_active
+      },
+
+      ':active': {
+        background: color.minimumNights.backgroundColor_active,
+        color: color.minimumNights.color_active
+      }
+    },
+
+    CalendarDay__highlighted_calendar: {
+      background: color.highlighted.backgroundColor,
+      color: color.highlighted.color,
+
+      ':hover': {
+        background: color.highlighted.backgroundColor_hover,
+        color: color.highlighted.color_active
+      },
+
+      ':active': {
+        background: color.highlighted.backgroundColor_active,
+        color: color.highlighted.color_active
+      }
+    },
+
+    CalendarDay__selected_span: {
+      background: color.selectedSpan.backgroundColor,
+      border: '1px solid ' + String(color.selectedSpan.borderColor),
+      color: color.selectedSpan.color,
+
+      ':hover': {
+        background: color.selectedSpan.backgroundColor_hover,
+        border: '1px solid ' + String(color.selectedSpan.borderColor),
+        color: color.selectedSpan.color_active
+      },
+
+      ':active': {
+        background: color.selectedSpan.backgroundColor_active,
+        border: '1px solid ' + String(color.selectedSpan.borderColor),
+        color: color.selectedSpan.color_active
+      }
+    },
+
+    CalendarDay__last_in_range: {
+      borderRight: color.core.primary
+    },
+
+    CalendarDay__selected: {
+      background: color.selected.backgroundColor,
+      border: '1px solid ' + String(color.selected.borderColor),
+      color: color.selected.color,
+
+      ':hover': {
+        background: color.selected.backgroundColor_hover,
+        border: '1px solid ' + String(color.selected.borderColor),
+        color: color.selected.color_active
+      },
+
+      ':active': {
+        background: color.selected.backgroundColor_active,
+        border: '1px solid ' + String(color.selected.borderColor),
+        color: color.selected.color_active
+      }
+    },
+
+    CalendarDay__hovered_span: {
+      background: color.hoveredSpan.backgroundColor,
+      border: '1px solid ' + String(color.hoveredSpan.borderColor),
+      color: color.hoveredSpan.color,
+
+      ':hover': {
+        background: color.hoveredSpan.backgroundColor_hover,
+        border: '1px solid ' + String(color.hoveredSpan.borderColor),
+        color: color.hoveredSpan.color_active
+      },
+
+      ':active': {
+        background: color.hoveredSpan.backgroundColor_active,
+        border: '1px solid ' + String(color.hoveredSpan.borderColor),
+        color: color.hoveredSpan.color_active
+      }
+    },
+
+    CalendarDay__blocked_calendar: {
+      background: color.blocked_calendar.backgroundColor,
+      border: '1px solid ' + String(color.blocked_calendar.borderColor),
+      color: color.blocked_calendar.color,
+
+      ':hover': {
+        background: color.blocked_calendar.backgroundColor_hover,
+        border: '1px solid ' + String(color.blocked_calendar.borderColor),
+        color: color.blocked_calendar.color_active
+      },
+
+      ':active': {
+        background: color.blocked_calendar.backgroundColor_active,
+        border: '1px solid ' + String(color.blocked_calendar.borderColor),
+        color: color.blocked_calendar.color_active
+      }
+    },
+
+    CalendarDay__blocked_out_of_range: {
+      background: color.blocked_out_of_range.backgroundColor,
+      border: '1px solid ' + String(color.blocked_out_of_range.borderColor),
+      color: color.blocked_out_of_range.color,
+
+      ':hover': {
+        background: color.blocked_out_of_range.backgroundColor_hover,
+        border: '1px solid ' + String(color.blocked_out_of_range.borderColor),
+        color: color.blocked_out_of_range.color_active
+      },
+
+      ':active': {
+        background: color.blocked_out_of_range.backgroundColor_active,
+        border: '1px solid ' + String(color.blocked_out_of_range.borderColor),
+        color: color.blocked_out_of_range.color_active
+      }
+    },
+
+    CalendarDay__selected_start: {},
+    CalendarDay__selected_end: {},
+    CalendarDay__today: {},
+    CalendarDay__firstDayOfWeek: {},
+    CalendarDay__lastDayOfWeek: {}
+  };
+})(CalendarDay);
+
+/***/ }),
+
+/***/ 5986:
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+
+var _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; };
+
+var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
+
+var _object = __webpack_require__(4011);
+
+var _object2 = _interopRequireDefault(_object);
+
+var _react = __webpack_require__(9196);
+
+var _react2 = _interopRequireDefault(_react);
+
+var _propTypes = __webpack_require__(2652);
+
+var _propTypes2 = _interopRequireDefault(_propTypes);
+
+var _reactAddonsShallowCompare = __webpack_require__(2541);
+
+var _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare);
+
+var _reactMomentProptypes = __webpack_require__(6150);
+
+var _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes);
+
+var _airbnbPropTypes = __webpack_require__(4882);
+
+var _reactWithStyles = __webpack_require__(3576);
+
+var _moment = __webpack_require__(6292);
+
+var _moment2 = _interopRequireDefault(_moment);
+
+var _defaultPhrases = __webpack_require__(6030);
+
+var _getPhrasePropTypes = __webpack_require__(2893);
+
+var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);
+
+var _CalendarWeek = __webpack_require__(4604);
+
+var _CalendarWeek2 = _interopRequireDefault(_CalendarWeek);
+
+var _CalendarDay = __webpack_require__(7617);
+
+var _CalendarDay2 = _interopRequireDefault(_CalendarDay);
+
+var _calculateDimension = __webpack_require__(8607);
+
+var _calculateDimension2 = _interopRequireDefault(_calculateDimension);
+
+var _getCalendarMonthWeeks = __webpack_require__(5644);
+
+var _getCalendarMonthWeeks2 = _interopRequireDefault(_getCalendarMonthWeeks);
+
+var _isSameDay = __webpack_require__(3923);
+
+var _isSameDay2 = _interopRequireDefault(_isSameDay);
+
+var _toISODateString = __webpack_require__(7310);
+
+var _toISODateString2 = _interopRequireDefault(_toISODateString);
+
+var _ModifiersShape = __webpack_require__(6747);
+
+var _ModifiersShape2 = _interopRequireDefault(_ModifiersShape);
+
+var _ScrollableOrientationShape = __webpack_require__(6553);
+
+var _ScrollableOrientationShape2 = _interopRequireDefault(_ScrollableOrientationShape);
+
+var _DayOfWeekShape = __webpack_require__(243);
+
+var _DayOfWeekShape2 = _interopRequireDefault(_DayOfWeekShape);
+
+var _constants = __webpack_require__(257);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
+
+function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /* eslint react/no-array-index-key: 0 */
+
+var propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, {
+  month: _reactMomentProptypes2['default'].momentObj,
+  horizontalMonthPadding: _airbnbPropTypes.nonNegativeInteger,
+  isVisible: _propTypes2['default'].bool,
+  enableOutsideDays: _propTypes2['default'].bool,
+  modifiers: _propTypes2['default'].objectOf(_ModifiersShape2['default']),
+  orientation: _ScrollableOrientationShape2['default'],
+  daySize: _airbnbPropTypes.nonNegativeInteger,
+  onDayClick: _propTypes2['default'].func,
+  onDayMouseEnter: _propTypes2['default'].func,
+  onDayMouseLeave: _propTypes2['default'].func,
+  onMonthSelect: _propTypes2['default'].func,
+  onYearSelect: _propTypes2['default'].func,
+  renderMonthText: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),
+  renderCalendarDay: _propTypes2['default'].func,
+  renderDayContents: _propTypes2['default'].func,
+  renderMonthElement: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),
+  firstDayOfWeek: _DayOfWeekShape2['default'],
+  setMonthTitleHeight: _propTypes2['default'].func,
+  verticalBorderSpacing: _airbnbPropTypes.nonNegativeInteger,
+
+  focusedDate: _reactMomentProptypes2['default'].momentObj, // indicates focusable day
+  isFocused: _propTypes2['default'].bool, // indicates whether or not to move focus to focusable day
+
+  // i18n
+  monthFormat: _propTypes2['default'].string,
+  phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.CalendarDayPhrases)),
+  dayAriaLabelFormat: _propTypes2['default'].string
+}));
+
+var defaultProps = {
+  month: (0, _moment2['default'])(),
+  horizontalMonthPadding: 13,
+  isVisible: true,
+  enableOutsideDays: false,
+  modifiers: {},
+  orientation: _constants.HORIZONTAL_ORIENTATION,
+  daySize: _constants.DAY_SIZE,
+  onDayClick: function () {
+    function onDayClick() {}
+
+    return onDayClick;
+  }(),
+  onDayMouseEnter: function () {
+    function onDayMouseEnter() {}
+
+    return onDayMouseEnter;
+  }(),
+  onDayMouseLeave: function () {
+    function onDayMouseLeave() {}
+
+    return onDayMouseLeave;
+  }(),
+  onMonthSelect: function () {
+    function onMonthSelect() {}
+
+    return onMonthSelect;
+  }(),
+  onYearSelect: function () {
+    function onYearSelect() {}
+
+    return onYearSelect;
+  }(),
+
+  renderMonthText: null,
+  renderCalendarDay: function () {
+    function renderCalendarDay(props) {
+      return _react2['default'].createElement(_CalendarDay2['default'], props);
+    }
+
+    return renderCalendarDay;
+  }(),
+  renderDayContents: null,
+  renderMonthElement: null,
+  firstDayOfWeek: null,
+  setMonthTitleHeight: null,
+
+  focusedDate: null,
+  isFocused: false,
+
+  // i18n
+  monthFormat: 'MMMM YYYY', // english locale
+  phrases: _defaultPhrases.CalendarDayPhrases,
+  dayAriaLabelFormat: undefined,
+  verticalBorderSpacing: undefined
+};
+
+var CalendarMonth = function (_React$Component) {
+  _inherits(CalendarMonth, _React$Component);
+
+  function CalendarMonth(props) {
+    _classCallCheck(this, CalendarMonth);
+
+    var _this = _possibleConstructorReturn(this, (CalendarMonth.__proto__ || Object.getPrototypeOf(CalendarMonth)).call(this, props));
+
+    _this.state = {
+      weeks: (0, _getCalendarMonthWeeks2['default'])(props.month, props.enableOutsideDays, props.firstDayOfWeek == null ? _moment2['default'].localeData().firstDayOfWeek() : props.firstDayOfWeek)
+    };
+
+    _this.setCaptionRef = _this.setCaptionRef.bind(_this);
+    _this.setMonthTitleHeight = _this.setMonthTitleHeight.bind(_this);
+    return _this;
+  }
+
+  _createClass(CalendarMonth, [{
+    key: 'componentDidMount',
+    value: function () {
+      function componentDidMount() {
+        this.setMonthTitleHeightTimeout = setTimeout(this.setMonthTitleHeight, 0);
+      }
+
+      return componentDidMount;
+    }()
+  }, {
+    key: 'componentWillReceiveProps',
+    value: function () {
+      function componentWillReceiveProps(nextProps) {
+        var month = nextProps.month,
+            enableOutsideDays = nextProps.enableOutsideDays,
+            firstDayOfWeek = nextProps.firstDayOfWeek;
+        var _props = this.props,
+            prevMonth = _props.month,
+            prevEnableOutsideDays = _props.enableOutsideDays,
+            prevFirstDayOfWeek = _props.firstDayOfWeek;
+
+        if (!month.isSame(prevMonth) || enableOutsideDays !== prevEnableOutsideDays || firstDayOfWeek !== prevFirstDayOfWeek) {
+          this.setState({
+            weeks: (0, _getCalendarMonthWeeks2['default'])(month, enableOutsideDays, firstDayOfWeek == null ? _moment2['default'].localeData().firstDayOfWeek() : firstDayOfWeek)
+          });
+        }
+      }
+
+      return componentWillReceiveProps;
+    }()
+  }, {
+    key: 'shouldComponentUpdate',
+    value: function () {
+      function shouldComponentUpdate(nextProps, nextState) {
+        return (0, _reactAddonsShallowCompare2['default'])(this, nextProps, nextState);
+      }
+
+      return shouldComponentUpdate;
+    }()
+  }, {
+    key: 'componentWillUnmount',
+    value: function () {
+      function componentWillUnmount() {
+        if (this.setMonthTitleHeightTimeout) {
+          clearTimeout(this.setMonthTitleHeightTimeout);
+        }
+      }
+
+      return componentWillUnmount;
+    }()
+  }, {
+    key: 'setMonthTitleHeight',
+    value: function () {
+      function setMonthTitleHeight() {
+        var setMonthTitleHeight = this.props.setMonthTitleHeight;
+
+        if (setMonthTitleHeight) {
+          var captionHeight = (0, _calculateDimension2['default'])(this.captionRef, 'height', true, true);
+          setMonthTitleHeight(captionHeight);
+        }
+      }
+
+      return setMonthTitleHeight;
+    }()
+  }, {
+    key: 'setCaptionRef',
+    value: function () {
+      function setCaptionRef(ref) {
+        this.captionRef = ref;
+      }
+
+      return setCaptionRef;
+    }()
+  }, {
+    key: 'render',
+    value: function () {
+      function render() {
+        var _props2 = this.props,
+            dayAriaLabelFormat = _props2.dayAriaLabelFormat,
+            daySize = _props2.daySize,
+            focusedDate = _props2.focusedDate,
+            horizontalMonthPadding = _props2.horizontalMonthPadding,
+            isFocused = _props2.isFocused,
+            isVisible = _props2.isVisible,
+            modifiers = _props2.modifiers,
+            month = _props2.month,
+            monthFormat = _props2.monthFormat,
+            onDayClick = _props2.onDayClick,
+            onDayMouseEnter = _props2.onDayMouseEnter,
+            onDayMouseLeave = _props2.onDayMouseLeave,
+            onMonthSelect = _props2.onMonthSelect,
+            onYearSelect = _props2.onYearSelect,
+            orientation = _props2.orientation,
+            phrases = _props2.phrases,
+            renderCalendarDay = _props2.renderCalendarDay,
+            renderDayContents = _props2.renderDayContents,
+            renderMonthElement = _props2.renderMonthElement,
+            renderMonthText = _props2.renderMonthText,
+            styles = _props2.styles,
+            verticalBorderSpacing = _props2.verticalBorderSpacing;
+        var weeks = this.state.weeks;
+
+        var monthTitle = renderMonthText ? renderMonthText(month) : month.format(monthFormat);
+
+        var verticalScrollable = orientation === _constants.VERTICAL_SCROLLABLE;
+
+        return _react2['default'].createElement(
+          'div',
+          _extends({}, (0, _reactWithStyles.css)(styles.CalendarMonth, { padding: '0 ' + String(horizontalMonthPadding) + 'px' }), {
+            'data-visible': isVisible
+          }),
+          _react2['default'].createElement(
+            'div',
+            _extends({
+              ref: this.setCaptionRef
+            }, (0, _reactWithStyles.css)(styles.CalendarMonth_caption, verticalScrollable && styles.CalendarMonth_caption__verticalScrollable)),
+            renderMonthElement ? renderMonthElement({ month: month, onMonthSelect: onMonthSelect, onYearSelect: onYearSelect }) : _react2['default'].createElement(
+              'strong',
+              null,
+              monthTitle
+            )
+          ),
+          _react2['default'].createElement(
+            'table',
+            _extends({}, (0, _reactWithStyles.css)(!verticalBorderSpacing && styles.CalendarMonth_table, verticalBorderSpacing && styles.CalendarMonth_verticalSpacing, verticalBorderSpacing && { borderSpacing: '0px ' + String(verticalBorderSpacing) + 'px' }), {
+              role: 'presentation'
+            }),
+            _react2['default'].createElement(
+              'tbody',
+              null,
+              weeks.map(function (week, i) {
+                return _react2['default'].createElement(
+                  _CalendarWeek2['default'],
+                  { key: i },
+                  week.map(function (day, dayOfWeek) {
+                    return renderCalendarDay({
+                      key: dayOfWeek,
+                      day: day,
+                      daySize: daySize,
+                      isOutsideDay: !day || day.month() !== month.month(),
+                      tabIndex: isVisible && (0, _isSameDay2['default'])(day, focusedDate) ? 0 : -1,
+                      isFocused: isFocused,
+                      onDayMouseEnter: onDayMouseEnter,
+                      onDayMouseLeave: onDayMouseLeave,
+                      onDayClick: onDayClick,
+                      renderDayContents: renderDayContents,
+                      phrases: phrases,
+                      modifiers: modifiers[(0, _toISODateString2['default'])(day)],
+                      ariaLabelFormat: dayAriaLabelFormat
+                    });
+                  })
+                );
+              })
+            )
+          )
+        );
+      }
+
+      return render;
+    }()
+  }]);
+
+  return CalendarMonth;
+}(_react2['default'].Component);
+
+CalendarMonth.propTypes = propTypes;
+CalendarMonth.defaultProps = defaultProps;
+
+exports["default"] = (0, _reactWithStyles.withStyles)(function (_ref) {
+  var _ref$reactDates = _ref.reactDates,
+      color = _ref$reactDates.color,
+      font = _ref$reactDates.font,
+      spacing = _ref$reactDates.spacing;
+  return {
+    CalendarMonth: {
+      background: color.background,
+      textAlign: 'center',
+      verticalAlign: 'top',
+      userSelect: 'none'
+    },
+
+    CalendarMonth_table: {
+      borderCollapse: 'collapse',
+      borderSpacing: 0
+    },
+
+    CalendarMonth_verticalSpacing: {
+      borderCollapse: 'separate'
+    },
+
+    CalendarMonth_caption: {
+      color: color.text,
+      fontSize: font.captionSize,
+      textAlign: 'center',
+      paddingTop: spacing.captionPaddingTop,
+      paddingBottom: spacing.captionPaddingBottom,
+      captionSide: 'initial'
+    },
+
+    CalendarMonth_caption__verticalScrollable: {
+      paddingTop: 12,
+      paddingBottom: 7
+    }
+  };
+})(CalendarMonth);
+
+/***/ }),
+
+/***/ 7938:
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+
+var _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; };
+
+var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
+
+var _object = __webpack_require__(4011);
+
+var _object2 = _interopRequireDefault(_object);
+
+var _react = __webpack_require__(9196);
+
+var _react2 = _interopRequireDefault(_react);
+
+var _propTypes = __webpack_require__(2652);
+
+var _propTypes2 = _interopRequireDefault(_propTypes);
+
+var _reactAddonsShallowCompare = __webpack_require__(2541);
+
+var _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare);
+
+var _reactMomentProptypes = __webpack_require__(6150);
+
+var _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes);
+
+var _airbnbPropTypes = __webpack_require__(4882);
+
+var _reactWithStyles = __webpack_require__(3576);
+
+var _moment = __webpack_require__(6292);
+
+var _moment2 = _interopRequireDefault(_moment);
+
+var _consolidatedEvents = __webpack_require__(8495);
+
+var _defaultPhrases = __webpack_require__(6030);
+
+var _getPhrasePropTypes = __webpack_require__(2893);
+
+var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);
+
+var _CalendarMonth = __webpack_require__(5986);
 
 var _CalendarMonth2 = _interopRequireDefault(_CalendarMonth);
 
-var _isTransitionEndSupported = __webpack_require__("dRQD");
+var _isTransitionEndSupported = __webpack_require__(7978);
 
 var _isTransitionEndSupported2 = _interopRequireDefault(_isTransitionEndSupported);
 
-var _getTransformStyles = __webpack_require__("q86A");
+var _getTransformStyles = __webpack_require__(8304);
 
 var _getTransformStyles2 = _interopRequireDefault(_getTransformStyles);
 
-var _getCalendarMonthWidth = __webpack_require__("m2ax");
+var _getCalendarMonthWidth = __webpack_require__(8964);
 
 var _getCalendarMonthWidth2 = _interopRequireDefault(_getCalendarMonthWidth);
 
-var _toISOMonthString = __webpack_require__("jenk");
+var _toISOMonthString = __webpack_require__(2705);
 
 var _toISOMonthString2 = _interopRequireDefault(_toISOMonthString);
 
-var _isPrevMonth = __webpack_require__("Pq96");
+var _isPrevMonth = __webpack_require__(3858);
 
 var _isPrevMonth2 = _interopRequireDefault(_isPrevMonth);
 
-var _isNextMonth = __webpack_require__("6HWY");
+var _isNextMonth = __webpack_require__(1310);
 
 var _isNextMonth2 = _interopRequireDefault(_isNextMonth);
 
-var _ModifiersShape = __webpack_require__("J7JS");
+var _ModifiersShape = __webpack_require__(6747);
 
 var _ModifiersShape2 = _interopRequireDefault(_ModifiersShape);
 
-var _ScrollableOrientationShape = __webpack_require__("aE6U");
+var _ScrollableOrientationShape = __webpack_require__(6553);
 
 var _ScrollableOrientationShape2 = _interopRequireDefault(_ScrollableOrientationShape);
 
-var _DayOfWeekShape = __webpack_require__("2S2E");
+var _DayOfWeekShape = __webpack_require__(243);
 
 var _DayOfWeekShape2 = _interopRequireDefault(_DayOfWeekShape);
 
-var _constants = __webpack_require__("Fv1B");
+var _constants = __webpack_require__(257);
 
 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
 
@@ -44536,7 +7829,7 @@
 CalendarMonthGrid.propTypes = propTypes;
 CalendarMonthGrid.defaultProps = defaultProps;
 
-exports['default'] = (0, _reactWithStyles.withStyles)(function (_ref) {
+exports["default"] = (0, _reactWithStyles.withStyles)(function (_ref) {
   var _ref$reactDates = _ref.reactDates,
       color = _ref$reactDates.color,
       noScrollBarOnVerticalScrollable = _ref$reactDates.noScrollBarOnVerticalScrollable,
@@ -44594,1641 +7887,3085 @@
 
 /***/ }),
 
-/***/ "TqVZ":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-
-// EXTERNAL MODULE: ./node_modules/@emotion/sheet/dist/sheet.browser.esm.js
-var sheet_browser_esm = __webpack_require__("z9I/");
-
-// CONCATENATED MODULE: ./node_modules/@emotion/stylis/dist/stylis.browser.esm.js
-function stylis_min (W) {
-  function M(d, c, e, h, a) {
-    for (var m = 0, b = 0, v = 0, n = 0, q, g, x = 0, K = 0, k, u = k = q = 0, l = 0, r = 0, I = 0, t = 0, B = e.length, J = B - 1, y, f = '', p = '', F = '', G = '', C; l < B;) {
-      g = e.charCodeAt(l);
-      l === J && 0 !== b + n + v + m && (0 !== b && (g = 47 === b ? 10 : 47), n = v = m = 0, B++, J++);
-
-      if (0 === b + n + v + m) {
-        if (l === J && (0 < r && (f = f.replace(N, '')), 0 < f.trim().length)) {
-          switch (g) {
-            case 32:
-            case 9:
-            case 59:
-            case 13:
-            case 10:
-              break;
-
-            default:
-              f += e.charAt(l);
-          }
-
-          g = 59;
-        }
-
-        switch (g) {
-          case 123:
-            f = f.trim();
-            q = f.charCodeAt(0);
-            k = 1;
-
-            for (t = ++l; l < B;) {
-              switch (g = e.charCodeAt(l)) {
-                case 123:
-                  k++;
-                  break;
-
-                case 125:
-                  k--;
-                  break;
-
-                case 47:
-                  switch (g = e.charCodeAt(l + 1)) {
-                    case 42:
-                    case 47:
-                      a: {
-                        for (u = l + 1; u < J; ++u) {
-                          switch (e.charCodeAt(u)) {
-                            case 47:
-                              if (42 === g && 42 === e.charCodeAt(u - 1) && l + 2 !== u) {
-                                l = u + 1;
-                                break a;
-                              }
-
-                              break;
-
-                            case 10:
-                              if (47 === g) {
-                                l = u + 1;
-                                break a;
-                              }
-
-                          }
-                        }
-
-                        l = u;
-                      }
-
-                  }
-
-                  break;
-
-                case 91:
-                  g++;
-
-                case 40:
-                  g++;
-
-                case 34:
-                case 39:
-                  for (; l++ < J && e.charCodeAt(l) !== g;) {
-                  }
-
-              }
-
-              if (0 === k) break;
-              l++;
-            }
-
-            k = e.substring(t, l);
-            0 === q && (q = (f = f.replace(ca, '').trim()).charCodeAt(0));
-
-            switch (q) {
-              case 64:
-                0 < r && (f = f.replace(N, ''));
-                g = f.charCodeAt(1);
-
-                switch (g) {
-                  case 100:
-                  case 109:
-                  case 115:
-                  case 45:
-                    r = c;
-                    break;
-
-                  default:
-                    r = O;
-                }
-
-                k = M(c, r, k, g, a + 1);
-                t = k.length;
-                0 < A && (r = X(O, f, I), C = H(3, k, r, c, D, z, t, g, a, h), f = r.join(''), void 0 !== C && 0 === (t = (k = C.trim()).length) && (g = 0, k = ''));
-                if (0 < t) switch (g) {
-                  case 115:
-                    f = f.replace(da, ea);
-
-                  case 100:
-                  case 109:
-                  case 45:
-                    k = f + '{' + k + '}';
-                    break;
-
-                  case 107:
-                    f = f.replace(fa, '$1 $2');
-                    k = f + '{' + k + '}';
-                    k = 1 === w || 2 === w && L('@' + k, 3) ? '@-webkit-' + k + '@' + k : '@' + k;
-                    break;
-
-                  default:
-                    k = f + k, 112 === h && (k = (p += k, ''));
-                } else k = '';
-                break;
-
-              default:
-                k = M(c, X(c, f, I), k, h, a + 1);
-            }
-
-            F += k;
-            k = I = r = u = q = 0;
-            f = '';
-            g = e.charCodeAt(++l);
-            break;
-
-          case 125:
-          case 59:
-            f = (0 < r ? f.replace(N, '') : f).trim();
-            if (1 < (t = f.length)) switch (0 === u && (q = f.charCodeAt(0), 45 === q || 96 < q && 123 > q) && (t = (f = f.replace(' ', ':')).length), 0 < A && void 0 !== (C = H(1, f, c, d, D, z, p.length, h, a, h)) && 0 === (t = (f = C.trim()).length) && (f = '\x00\x00'), q = f.charCodeAt(0), g = f.charCodeAt(1), q) {
-              case 0:
-                break;
-
-              case 64:
-                if (105 === g || 99 === g) {
-                  G += f + e.charAt(l);
-                  break;
-                }
-
-              default:
-                58 !== f.charCodeAt(t - 1) && (p += P(f, q, g, f.charCodeAt(2)));
-            }
-            I = r = u = q = 0;
-            f = '';
-            g = e.charCodeAt(++l);
-        }
-      }
-
-      switch (g) {
-        case 13:
-        case 10:
-          47 === b ? b = 0 : 0 === 1 + q && 107 !== h && 0 < f.length && (r = 1, f += '\x00');
-          0 < A * Y && H(0, f, c, d, D, z, p.length, h, a, h);
-          z = 1;
-          D++;
-          break;
-
-        case 59:
-        case 125:
-          if (0 === b + n + v + m) {
-            z++;
-            break;
-          }
-
-        default:
-          z++;
-          y = e.charAt(l);
-
-          switch (g) {
-            case 9:
-            case 32:
-              if (0 === n + m + b) switch (x) {
-                case 44:
-                case 58:
-                case 9:
-                case 32:
-                  y = '';
-                  break;
-
-                default:
-                  32 !== g && (y = ' ');
-              }
-              break;
-
-            case 0:
-              y = '\\0';
-              break;
-
-            case 12:
-              y = '\\f';
-              break;
-
-            case 11:
-              y = '\\v';
-              break;
-
-            case 38:
-              0 === n + b + m && (r = I = 1, y = '\f' + y);
-              break;
-
-            case 108:
-              if (0 === n + b + m + E && 0 < u) switch (l - u) {
-                case 2:
-                  112 === x && 58 === e.charCodeAt(l - 3) && (E = x);
-
-                case 8:
-                  111 === K && (E = K);
-              }
-              break;
-
-            case 58:
-              0 === n + b + m && (u = l);
-              break;
-
-            case 44:
-              0 === b + v + n + m && (r = 1, y += '\r');
-              break;
-
-            case 34:
-            case 39:
-              0 === b && (n = n === g ? 0 : 0 === n ? g : n);
-              break;
-
-            case 91:
-              0 === n + b + v && m++;
-              break;
-
-            case 93:
-              0 === n + b + v && m--;
-              break;
-
-            case 41:
-              0 === n + b + m && v--;
-              break;
-
-            case 40:
-              if (0 === n + b + m) {
-                if (0 === q) switch (2 * x + 3 * K) {
-                  case 533:
-                    break;
-
-                  default:
-                    q = 1;
-                }
-                v++;
-              }
-
-              break;
-
-            case 64:
-              0 === b + v + n + m + u + k && (k = 1);
-              break;
-
-            case 42:
-            case 47:
-              if (!(0 < n + m + v)) switch (b) {
-                case 0:
-                  switch (2 * g + 3 * e.charCodeAt(l + 1)) {
-                    case 235:
-                      b = 47;
-                      break;
-
-                    case 220:
-                      t = l, b = 42;
-                  }
-
-                  break;
-
-                case 42:
-                  47 === g && 42 === x && t + 2 !== l && (33 === e.charCodeAt(t + 2) && (p += e.substring(t, l + 1)), y = '', b = 0);
-              }
-          }
-
-          0 === b && (f += y);
-      }
-
-      K = x;
-      x = g;
-      l++;
-    }
-
-    t = p.length;
-
-    if (0 < t) {
-      r = c;
-      if (0 < A && (C = H(2, p, r, d, D, z, t, h, a, h), void 0 !== C && 0 === (p = C).length)) return G + p + F;
-      p = r.join(',') + '{' + p + '}';
-
-      if (0 !== w * E) {
-        2 !== w || L(p, 2) || (E = 0);
-
-        switch (E) {
-          case 111:
-            p = p.replace(ha, ':-moz-$1') + p;
-            break;
-
-          case 112:
-            p = p.replace(Q, '::-webkit-input-$1') + p.replace(Q, '::-moz-$1') + p.replace(Q, ':-ms-input-$1') + p;
-        }
-
-        E = 0;
-      }
-    }
-
-    return G + p + F;
-  }
-
-  function X(d, c, e) {
-    var h = c.trim().split(ia);
-    c = h;
-    var a = h.length,
-        m = d.length;
-
-    switch (m) {
-      case 0:
-      case 1:
-        var b = 0;
-
-        for (d = 0 === m ? '' : d[0] + ' '; b < a; ++b) {
-          c[b] = Z(d, c[b], e).trim();
-        }
-
-        break;
-
-      default:
-        var v = b = 0;
-
-        for (c = []; b < a; ++b) {
-          for (var n = 0; n < m; ++n) {
-            c[v++] = Z(d[n] + ' ', h[b], e).trim();
-          }
-        }
-
-    }
-
-    return c;
-  }
-
-  function Z(d, c, e) {
-    var h = c.charCodeAt(0);
-    33 > h && (h = (c = c.trim()).charCodeAt(0));
-
-    switch (h) {
-      case 38:
-        return c.replace(F, '$1' + d.trim());
-
-      case 58:
-        return d.trim() + c.replace(F, '$1' + d.trim());
-
-      default:
-        if (0 < 1 * e && 0 < c.indexOf('\f')) return c.replace(F, (58 === d.charCodeAt(0) ? '' : '$1') + d.trim());
-    }
-
-    return d + c;
-  }
-
-  function P(d, c, e, h) {
-    var a = d + ';',
-        m = 2 * c + 3 * e + 4 * h;
-
-    if (944 === m) {
-      d = a.indexOf(':', 9) + 1;
-      var b = a.substring(d, a.length - 1).trim();
-      b = a.substring(0, d).trim() + b + ';';
-      return 1 === w || 2 === w && L(b, 1) ? '-webkit-' + b + b : b;
-    }
-
-    if (0 === w || 2 === w && !L(a, 1)) return a;
-
-    switch (m) {
-      case 1015:
-        return 97 === a.charCodeAt(10) ? '-webkit-' + a + a : a;
-
-      case 951:
-        return 116 === a.charCodeAt(3) ? '-webkit-' + a + a : a;
-
-      case 963:
-        return 110 === a.charCodeAt(5) ? '-webkit-' + a + a : a;
-
-      case 1009:
-        if (100 !== a.charCodeAt(4)) break;
-
-      case 969:
-      case 942:
-        return '-webkit-' + a + a;
-
-      case 978:
-        return '-webkit-' + a + '-moz-' + a + a;
-
-      case 1019:
-      case 983:
-        return '-webkit-' + a + '-moz-' + a + '-ms-' + a + a;
-
-      case 883:
-        if (45 === a.charCodeAt(8)) return '-webkit-' + a + a;
-        if (0 < a.indexOf('image-set(', 11)) return a.replace(ja, '$1-webkit-$2') + a;
-        break;
-
-      case 932:
-        if (45 === a.charCodeAt(4)) switch (a.charCodeAt(5)) {
-          case 103:
-            return '-webkit-box-' + a.replace('-grow', '') + '-webkit-' + a + '-ms-' + a.replace('grow', 'positive') + a;
-
-          case 115:
-            return '-webkit-' + a + '-ms-' + a.replace('shrink', 'negative') + a;
-
-          case 98:
-            return '-webkit-' + a + '-ms-' + a.replace('basis', 'preferred-size') + a;
-        }
-        return '-webkit-' + a + '-ms-' + a + a;
-
-      case 964:
-        return '-webkit-' + a + '-ms-flex-' + a + a;
-
-      case 1023:
-        if (99 !== a.charCodeAt(8)) break;
-        b = a.substring(a.indexOf(':', 15)).replace('flex-', '').replace('space-between', 'justify');
-        return '-webkit-box-pack' + b + '-webkit-' + a + '-ms-flex-pack' + b + a;
-
-      case 1005:
-        return ka.test(a) ? a.replace(aa, ':-webkit-') + a.replace(aa, ':-moz-') + a : a;
-
-      case 1e3:
-        b = a.substring(13).trim();
-        c = b.indexOf('-') + 1;
-
-        switch (b.charCodeAt(0) + b.charCodeAt(c)) {
-          case 226:
-            b = a.replace(G, 'tb');
-            break;
-
-          case 232:
-            b = a.replace(G, 'tb-rl');
-            break;
-
-          case 220:
-            b = a.replace(G, 'lr');
-            break;
-
-          default:
-            return a;
-        }
-
-        return '-webkit-' + a + '-ms-' + b + a;
-
-      case 1017:
-        if (-1 === a.indexOf('sticky', 9)) break;
-
-      case 975:
-        c = (a = d).length - 10;
-        b = (33 === a.charCodeAt(c) ? a.substring(0, c) : a).substring(d.indexOf(':', 7) + 1).trim();
-
-        switch (m = b.charCodeAt(0) + (b.charCodeAt(7) | 0)) {
-          case 203:
-            if (111 > b.charCodeAt(8)) break;
-
-          case 115:
-            a = a.replace(b, '-webkit-' + b) + ';' + a;
-            break;
-
-          case 207:
-          case 102:
-            a = a.replace(b, '-webkit-' + (102 < m ? 'inline-' : '') + 'box') + ';' + a.replace(b, '-webkit-' + b) + ';' + a.replace(b, '-ms-' + b + 'box') + ';' + a;
-        }
-
-        return a + ';';
-
-      case 938:
-        if (45 === a.charCodeAt(5)) switch (a.charCodeAt(6)) {
-          case 105:
-            return b = a.replace('-items', ''), '-webkit-' + a + '-webkit-box-' + b + '-ms-flex-' + b + a;
-
-          case 115:
-            return '-webkit-' + a + '-ms-flex-item-' + a.replace(ba, '') + a;
-
-          default:
-            return '-webkit-' + a + '-ms-flex-line-pack' + a.replace('align-content', '').replace(ba, '') + a;
-        }
-        break;
-
-      case 973:
-      case 989:
-        if (45 !== a.charCodeAt(3) || 122 === a.charCodeAt(4)) break;
-
-      case 931:
-      case 953:
-        if (!0 === la.test(d)) return 115 === (b = d.substring(d.indexOf(':') + 1)).charCodeAt(0) ? P(d.replace('stretch', 'fill-available'), c, e, h).replace(':fill-available', ':stretch') : a.replace(b, '-webkit-' + b) + a.replace(b, '-moz-' + b.replace('fill-', '')) + a;
-        break;
-
-      case 962:
-        if (a = '-webkit-' + a + (102 === a.charCodeAt(5) ? '-ms-' + a : '') + a, 211 === e + h && 105 === a.charCodeAt(13) && 0 < a.indexOf('transform', 10)) return a.substring(0, a.indexOf(';', 27) + 1).replace(ma, '$1-webkit-$2') + a;
-    }
-
-    return a;
-  }
-
-  function L(d, c) {
-    var e = d.indexOf(1 === c ? ':' : '{'),
-        h = d.substring(0, 3 !== c ? e : 10);
-    e = d.substring(e + 1, d.length - 1);
-    return R(2 !== c ? h : h.replace(na, '$1'), e, c);
-  }
-
-  function ea(d, c) {
-    var e = P(c, c.charCodeAt(0), c.charCodeAt(1), c.charCodeAt(2));
-    return e !== c + ';' ? e.replace(oa, ' or ($1)').substring(4) : '(' + c + ')';
-  }
-
-  function H(d, c, e, h, a, m, b, v, n, q) {
-    for (var g = 0, x = c, w; g < A; ++g) {
-      switch (w = S[g].call(B, d, x, e, h, a, m, b, v, n, q)) {
-        case void 0:
-        case !1:
-        case !0:
-        case null:
-          break;
-
-        default:
-          x = w;
-      }
-    }
-
-    if (x !== c) return x;
-  }
-
-  function T(d) {
-    switch (d) {
-      case void 0:
-      case null:
-        A = S.length = 0;
-        break;
-
-      default:
-        if ('function' === typeof d) S[A++] = d;else if ('object' === typeof d) for (var c = 0, e = d.length; c < e; ++c) {
-          T(d[c]);
-        } else Y = !!d | 0;
-    }
-
-    return T;
-  }
-
-  function U(d) {
-    d = d.prefix;
-    void 0 !== d && (R = null, d ? 'function' !== typeof d ? w = 1 : (w = 2, R = d) : w = 0);
-    return U;
-  }
-
-  function B(d, c) {
-    var e = d;
-    33 > e.charCodeAt(0) && (e = e.trim());
-    V = e;
-    e = [V];
-
-    if (0 < A) {
-      var h = H(-1, c, e, e, D, z, 0, 0, 0, 0);
-      void 0 !== h && 'string' === typeof h && (c = h);
-    }
-
-    var a = M(O, e, c, 0, 0);
-    0 < A && (h = H(-2, a, e, e, D, z, a.length, 0, 0, 0), void 0 !== h && (a = h));
-    V = '';
-    E = 0;
-    z = D = 1;
-    return a;
-  }
-
-  var ca = /^\0+/g,
-      N = /[\0\r\f]/g,
-      aa = /: */g,
-      ka = /zoo|gra/,
-      ma = /([,: ])(transform)/g,
-      ia = /,\r+?/g,
-      F = /([\t\r\n ])*\f?&/g,
-      fa = /@(k\w+)\s*(\S*)\s*/,
-      Q = /::(place)/g,
-      ha = /:(read-only)/g,
-      G = /[svh]\w+-[tblr]{2}/,
-      da = /\(\s*(.*)\s*\)/g,
-      oa = /([\s\S]*?);/g,
-      ba = /-self|flex-/g,
-      na = /[^]*?(:[rp][el]a[\w-]+)[^]*/,
-      la = /stretch|:\s*\w+\-(?:conte|avail)/,
-      ja = /([^-])(image-set\()/,
-      z = 1,
-      D = 1,
-      E = 0,
-      w = 1,
-      O = [],
-      S = [],
-      A = 0,
-      R = null,
-      Y = 0,
-      V = '';
-  B.use = T;
-  B.set = U;
-  void 0 !== W && U(W);
-  return B;
-}
-
-/* harmony default export */ var stylis_browser_esm = (stylis_min);
-
-// CONCATENATED MODULE: ./node_modules/@emotion/weak-memoize/dist/weak-memoize.browser.esm.js
-var weakMemoize = function weakMemoize(func) {
-  // $FlowFixMe flow doesn't include all non-primitive types as allowed for weakmaps
-  var cache = new WeakMap();
-  return function (arg) {
-    if (cache.has(arg)) {
-      // $FlowFixMe
-      return cache.get(arg);
-    }
-
-    var ret = func(arg);
-    cache.set(arg, ret);
-    return ret;
-  };
-};
-
-/* harmony default export */ var weak_memoize_browser_esm = (weakMemoize);
-
-// CONCATENATED MODULE: ./node_modules/@emotion/cache/dist/cache.browser.esm.js
-
-
-
-
-// https://github.com/thysultan/stylis.js/tree/master/plugins/rule-sheet
-// inlined to avoid umd wrapper and peerDep warnings/installing stylis
-// since we use stylis after closure compiler
-var delimiter = '/*|*/';
-var needle = delimiter + '}';
-
-function toSheet(block) {
-  if (block) {
-    Sheet.current.insert(block + '}');
-  }
-}
-
-var Sheet = {
-  current: null
-};
-var ruleSheet = function ruleSheet(context, content, selectors, parents, line, column, length, ns, depth, at) {
-  switch (context) {
-    // property
-    case 1:
-      {
-        switch (content.charCodeAt(0)) {
-          case 64:
-            {
-              // @import
-              Sheet.current.insert(content + ';');
-              return '';
-            }
-          // charcode for l
-
-          case 108:
-            {
-              // charcode for b
-              // this ignores label
-              if (content.charCodeAt(2) === 98) {
-                return '';
-              }
-            }
-        }
-
-        break;
-      }
-    // selector
-
-    case 2:
-      {
-        if (ns === 0) return content + delimiter;
-        break;
-      }
-    // at-rule
-
-    case 3:
-      {
-        switch (ns) {
-          // @font-face, @page
-          case 102:
-          case 112:
-            {
-              Sheet.current.insert(selectors[0] + content);
-              return '';
-            }
-
-          default:
-            {
-              return content + (at === 0 ? delimiter : '');
-            }
-        }
-      }
-
-    case -2:
-      {
-        content.split(needle).forEach(toSheet);
-      }
-  }
-};
-
-var cache_browser_esm_createCache = function createCache(options) {
-  if (options === undefined) options = {};
-  var key = options.key || 'css';
-  var stylisOptions;
-
-  if (options.prefix !== undefined) {
-    stylisOptions = {
-      prefix: options.prefix
-    };
-  }
-
-  var stylis = new stylis_browser_esm(stylisOptions);
-
-  if (false) {}
-
-  var inserted = {}; // $FlowFixMe
-
-  var container;
-
-  {
-    container = options.container || document.head;
-    var nodes = document.querySelectorAll("style[data-emotion-" + key + "]");
-    Array.prototype.forEach.call(nodes, function (node) {
-      var attrib = node.getAttribute("data-emotion-" + key); // $FlowFixMe
-
-      attrib.split(' ').forEach(function (id) {
-        inserted[id] = true;
-      });
-
-      if (node.parentNode !== container) {
-        container.appendChild(node);
-      }
-    });
-  }
-
-  var _insert;
-
-  {
-    stylis.use(options.stylisPlugins)(ruleSheet);
-
-    _insert = function insert(selector, serialized, sheet, shouldCache) {
-      var name = serialized.name;
-      Sheet.current = sheet;
-
-      if (false) { var map; }
-
-      stylis(selector, serialized.styles);
-
-      if (shouldCache) {
-        cache.inserted[name] = true;
-      }
-    };
-  }
-
-  if (false) { var commentEnd, commentStart; }
-
-  var cache = {
-    key: key,
-    sheet: new sheet_browser_esm["a" /* StyleSheet */]({
-      key: key,
-      container: container,
-      nonce: options.nonce,
-      speedy: options.speedy
-    }),
-    nonce: options.nonce,
-    inserted: inserted,
-    registered: {},
-    insert: _insert
-  };
-  return cache;
-};
-
-/* harmony default export */ var cache_browser_esm = __webpack_exports__["a"] = (cache_browser_esm_createCache);
-
-
-/***/ }),
-
-/***/ "Tqx9":
-/***/ (function(module, exports) {
-
-(function() { module.exports = window["wp"]["primitives"]; }());
-
-/***/ }),
-
-/***/ "UAm0":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return getStyledClassNameFromKey; });
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("YLtl");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var memize__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("4eJC");
-/* harmony import */ var memize__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(memize__WEBPACK_IMPORTED_MODULE_1__);
-/**
- * External dependencies
- */
-
-
-/**
- * Generates the connected component CSS className based on the namespace.
- *
- * @param namespace The name of the connected component.
- * @return The generated CSS className.
- */
-
-function getStyledClassName(namespace) {
-  const kebab = Object(lodash__WEBPACK_IMPORTED_MODULE_0__["kebabCase"])(namespace);
-  return `components-${kebab}`;
-}
-
-const getStyledClassNameFromKey = memize__WEBPACK_IMPORTED_MODULE_1___default()(getStyledClassName);
-
-
-/***/ }),
-
-/***/ "UFhG":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-// var modulo = require('./modulo');
-var $floor = Math.floor;
-
-// http://262.ecma-international.org/5.1/#sec-5.2
-
-module.exports = function floor(x) {
-	// return x - modulo(x, 1);
-	return $floor(x);
-};
-
-
-/***/ }),
-
-/***/ "UVaH":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-/* WEBPACK VAR INJECTION */(function(global) {
-
-var origSymbol = global.Symbol;
-var hasSymbolSham = __webpack_require__("FpZJ");
-
-module.exports = function hasNativeSymbols() {
-	if (typeof origSymbol !== 'function') { return false; }
-	if (typeof Symbol !== 'function') { return false; }
-	if (typeof origSymbol('foo') !== 'symbol') { return false; }
-	if (typeof Symbol('bar') !== 'symbol') { return false; }
-
-	return hasSymbolSham();
-};
-
-/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("yLpj")))
-
-/***/ }),
-
-/***/ "V1cy":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var ES5Type = __webpack_require__("60zJ");
-
-// https://262.ecma-international.org/11.0/#sec-ecmascript-data-types-and-values
-
-module.exports = function Type(x) {
-	if (typeof x === 'symbol') {
-		return 'Symbol';
-	}
-	if (typeof x === 'bigint') {
-		return 'BigInt';
-	}
-	return ES5Type(x);
-};
-
-
-/***/ }),
-
-/***/ "VDVV":
-/***/ (function(module, exports, __webpack_require__) {
-
-Object.defineProperty(exports, "__esModule", {
+/***/ 4604:
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
   value: true
-});
-
-var _arrayPrototype = __webpack_require__("/ZKw");
-
-var _arrayPrototype2 = _interopRequireDefault(_arrayPrototype);
-
-var _globalCache = __webpack_require__("9pTB");
-
-var _globalCache2 = _interopRequireDefault(_globalCache);
-
-var _constants = __webpack_require__("kFtd");
-
-var _getClassName = __webpack_require__("nLTY");
-
-var _getClassName2 = _interopRequireDefault(_getClassName);
-
-var _separateStyles2 = __webpack_require__("3HjQ");
-
-var _separateStyles3 = _interopRequireDefault(_separateStyles2);
+}));
+exports["default"] = CalendarWeek;
+
+var _react = __webpack_require__(9196);
+
+var _react2 = _interopRequireDefault(_react);
+
+var _airbnbPropTypes = __webpack_require__(4882);
+
+var _CalendarDay = __webpack_require__(7617);
+
+var _CalendarDay2 = _interopRequireDefault(_CalendarDay);
+
+var _CustomizableCalendarDay = __webpack_require__(6698);
+
+var _CustomizableCalendarDay2 = _interopRequireDefault(_CustomizableCalendarDay);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+var propTypes = (0, _airbnbPropTypes.forbidExtraProps)({
+  children: (0, _airbnbPropTypes.or)([(0, _airbnbPropTypes.childrenOfType)(_CalendarDay2['default']), (0, _airbnbPropTypes.childrenOfType)(_CustomizableCalendarDay2['default'])]).isRequired
+});
+
+function CalendarWeek(_ref) {
+  var children = _ref.children;
+
+  return _react2['default'].createElement(
+    'tr',
+    null,
+    children
+  );
+}
+
+CalendarWeek.propTypes = propTypes;
+
+/***/ }),
+
+/***/ 9588:
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+
+var _react = __webpack_require__(9196);
+
+var _react2 = _interopRequireDefault(_react);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+var ChevronDown = function () {
+  function ChevronDown(props) {
+    return _react2['default'].createElement(
+      'svg',
+      props,
+      _react2['default'].createElement('path', {
+        d: 'M967.5 288.5L514.3 740.7c-11 11-21 11-32 0L29.1 288.5c-4-5-6-11-6-16 0-13 10-23 23-23 6 0 11 2 15 7l437.2 436.2 437.2-436.2c4-5 9-7 16-7 6 0 11 2 16 7 9 10.9 9 21 0 32z'
+      })
+    );
+  }
+
+  return ChevronDown;
+}();
+
+ChevronDown.defaultProps = {
+  viewBox: '0 0 1000 1000'
+};
+exports["default"] = ChevronDown;
+
+/***/ }),
+
+/***/ 1809:
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+
+var _react = __webpack_require__(9196);
+
+var _react2 = _interopRequireDefault(_react);
 
 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
 
-/**
- * Function required as part of the react-with-styles interface. Parses the styles provided by
- * react-with-styles to produce class names based on the style name and optionally the namespace if
- * available.
- *
- * stylesObject {Object} The styles object passed to withStyles.
- *
- * Return an object mapping style names to class names.
- */
-function create(stylesObject) {
-  var stylesToClasses = {};
-  var styleNames = Object.keys(stylesObject);
-  var sharedState = _globalCache2['default'].get(_constants.GLOBAL_CACHE_KEY) || {};
-  var _sharedState$namespac = sharedState.namespace,
-      namespace = _sharedState$namespac === undefined ? '' : _sharedState$namespac;
-
-  styleNames.forEach(function (styleName) {
-    var className = (0, _getClassName2['default'])(namespace, styleName);
-    stylesToClasses[styleName] = className;
-  });
-  return stylesToClasses;
-}
-
-/**
- * Process styles to be consumed by a component.
- *
- * stylesArray {Array} Array of the following: values returned by create, plain JavaScript objects
- * representing inline styles, or arrays thereof.
- *
- * Return an object with optional className and style properties to be spread on a component.
- */
-function resolve(stylesArray) {
-  var flattenedStyles = (0, _arrayPrototype2['default'])(stylesArray, Infinity);
-
-  var _separateStyles = (0, _separateStyles3['default'])(flattenedStyles),
-      classNames = _separateStyles.classNames,
-      hasInlineStyles = _separateStyles.hasInlineStyles,
-      inlineStyles = _separateStyles.inlineStyles;
-
-  var specificClassNames = classNames.map(function (name, index) {
-    return String(name) + ' ' + String(name) + '_' + String(index + 1);
-  });
-  var className = specificClassNames.join(' ');
-
-  var result = { className: className };
-  if (hasInlineStyles) result.style = inlineStyles;
-  return result;
-}
-
-exports['default'] = { create: create, resolve: resolve };
-
-/***/ }),
-
-/***/ "VF6F":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var GetIntrinsic = __webpack_require__("AM7I");
-
-var callBind = __webpack_require__("PrET");
-
-var $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));
-
-module.exports = function callBoundIntrinsic(name, allowMissing) {
-	var intrinsic = GetIntrinsic(name, !!allowMissing);
-	if (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {
-		return callBind(intrinsic);
-	}
-	return intrinsic;
-};
-
-
-/***/ }),
-
-/***/ "VbXa":
-/***/ (function(module, exports, __webpack_require__) {
-
-var setPrototypeOf = __webpack_require__("SksO");
-
-function _inheritsLoose(subClass, superClass) {
-  subClass.prototype = Object.create(superClass.prototype);
-  subClass.prototype.constructor = subClass;
-  setPrototypeOf(subClass, superClass);
-}
-
-module.exports = _inheritsLoose;
-module.exports["default"] = module.exports, module.exports.__esModule = true;
-
-/***/ }),
-
-/***/ "Vq1w":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return isPortalEvent; });
-/* harmony import */ var _contains_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("utzN");
-
-
-/**
- * Returns `true` if `event` has been fired within a React Portal element.
- */
-
-function isPortalEvent(event) {
-  return !Object(_contains_js__WEBPACK_IMPORTED_MODULE_0__[/* contains */ "a"])(event.currentTarget, event.target);
-}
-
-
-
-
-/***/ }),
-
-/***/ "W/NR":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-
-// UNUSED EXPORTS: TOOLTIP_DELAY
-
-// EXTERNAL MODULE: external ["wp","element"]
-var external_wp_element_ = __webpack_require__("GRId");
-
-// EXTERNAL MODULE: external "lodash"
-var external_lodash_ = __webpack_require__("YLtl");
-
-// EXTERNAL MODULE: external ["wp","compose"]
-var external_wp_compose_ = __webpack_require__("K9lf");
-
-// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/popover/index.js + 1 modules
-var popover = __webpack_require__("oXO/");
-
-// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/shortcut/index.js
-var build_module_shortcut = __webpack_require__("Cw+6");
-
-// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/ui/context/with-next.js
-var with_next = __webpack_require__("9NHk");
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/tooltip/next.js
-/**
- * Internal dependencies
- */
-
-
-const Tooltip =  false ? undefined : undefined;
-
-const adapter = ({
-  text,
-  ...props
-}) => ({ ...props,
-  content: text
-});
-
-function withNextComponent(Component) {
-  return Object(with_next["a" /* withNext */])(Component, Tooltip, 'WPComponentsTooltip', adapter);
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/tooltip/index.js
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-/**
- * Time over children to wait before showing tooltip
- *
- * @type {number}
- */
-
-const TOOLTIP_DELAY = 700;
-const eventCatcher = Object(external_wp_element_["createElement"])("div", {
-  className: "event-catcher"
-});
-
-const getDisabledElement = ({
-  eventHandlers,
-  child,
-  childrenWithPopover
-}) => Object(external_wp_element_["cloneElement"])(Object(external_wp_element_["createElement"])("span", {
-  className: "disabled-element-wrapper"
-}, Object(external_wp_element_["cloneElement"])(eventCatcher, eventHandlers), Object(external_wp_element_["cloneElement"])(child, {
-  children: childrenWithPopover
-}), ","), eventHandlers);
-
-const getRegularElement = ({
-  child,
-  eventHandlers,
-  childrenWithPopover
-}) => Object(external_wp_element_["cloneElement"])(child, { ...eventHandlers,
-  children: childrenWithPopover
-});
-
-const addPopoverToGrandchildren = ({
-  grandchildren,
-  isOver,
-  position,
-  text,
-  shortcut
-}) => Object(external_wp_element_["concatChildren"])(grandchildren, isOver && Object(external_wp_element_["createElement"])(popover["a" /* default */], {
-  focusOnMount: false,
-  position: position,
-  className: "components-tooltip",
-  "aria-hidden": "true",
-  animate: false,
-  noArrow: true
-}, text, Object(external_wp_element_["createElement"])(build_module_shortcut["a" /* default */], {
-  className: "components-tooltip__shortcut",
-  shortcut: shortcut
-})));
-
-const emitToChild = (children, eventName, event) => {
-  if (external_wp_element_["Children"].count(children) !== 1) {
-    return;
-  }
-
-  const child = external_wp_element_["Children"].only(children);
-
-  if (typeof child.props[eventName] === 'function') {
-    child.props[eventName](event);
-  }
-};
-
-function tooltip_Tooltip({
-  children,
-  position,
-  text,
-  shortcut
-}) {
-  /**
-   * Whether a mouse is currently pressed, used in determining whether
-   * to handle a focus event as displaying the tooltip immediately.
-   *
-   * @type {boolean}
-   */
-  const [isMouseDown, setIsMouseDown] = Object(external_wp_element_["useState"])(false);
-  const [isOver, setIsOver] = Object(external_wp_element_["useState"])(false);
-  const delayedSetIsOver = Object(external_wp_compose_["useDebounce"])(setIsOver, TOOLTIP_DELAY);
-
-  const createMouseDown = event => {
-    // Preserve original child callback behavior
-    emitToChild(children, 'onMouseDown', event); // On mouse down, the next `mouseup` should revert the value of the
-    // instance property and remove its own event handler. The bind is
-    // made on the document since the `mouseup` might not occur within
-    // the bounds of the element.
-
-    document.addEventListener('mouseup', cancelIsMouseDown);
-    setIsMouseDown(true);
-  };
-
-  const createMouseUp = event => {
-    emitToChild(children, 'onMouseUp', event);
-    document.removeEventListener('mouseup', cancelIsMouseDown);
-    setIsMouseDown(false);
-  };
-
-  const createMouseEvent = type => {
-    if (type === 'mouseUp') return createMouseUp;
-    if (type === 'mouseDown') return createMouseDown;
-  };
-  /**
-   * Prebound `isInMouseDown` handler, created as a constant reference to
-   * assure ability to remove in component unmount.
-   *
-   * @type {Function}
-   */
-
-
-  const cancelIsMouseDown = createMouseEvent('mouseUp');
-
-  const createToggleIsOver = (eventName, isDelayed) => {
-    return event => {
-      // Preserve original child callback behavior
-      emitToChild(children, eventName, event); // Mouse events behave unreliably in React for disabled elements,
-      // firing on mouseenter but not mouseleave.  Further, the default
-      // behavior for disabled elements in some browsers is to ignore
-      // mouse events. Don't bother trying to to handle them.
-      //
-      // See: https://github.com/facebook/react/issues/4251
-
-      if (event.currentTarget.disabled) {
-        return;
-      } // A focus event will occur as a result of a mouse click, but it
-      // should be disambiguated between interacting with the button and
-      // using an explicit focus shift as a cue to display the tooltip.
-
-
-      if ('focus' === event.type && isMouseDown) {
-        return;
-      } // Needed in case unsetting is over while delayed set pending, i.e.
-      // quickly blur/mouseleave before delayedSetIsOver is called
-
-
-      delayedSetIsOver.cancel();
-
-      const _isOver = Object(external_lodash_["includes"])(['focus', 'mouseenter'], event.type);
-
-      if (_isOver === isOver) {
-        return;
-      }
-
-      if (isDelayed) {
-        delayedSetIsOver(_isOver);
-      } else {
-        setIsOver(_isOver);
-      }
-    };
-  };
-
-  const clearOnUnmount = () => {
-    delayedSetIsOver.cancel();
-    document.removeEventListener('mouseup', cancelIsMouseDown);
-  };
-
-  Object(external_wp_element_["useEffect"])(() => clearOnUnmount, []);
-
-  if (external_wp_element_["Children"].count(children) !== 1) {
-    if (false) {}
-
-    return children;
-  }
-
-  const eventHandlers = {
-    onMouseEnter: createToggleIsOver('onMouseEnter', true),
-    onMouseLeave: createToggleIsOver('onMouseLeave'),
-    onClick: createToggleIsOver('onClick'),
-    onFocus: createToggleIsOver('onFocus'),
-    onBlur: createToggleIsOver('onBlur'),
-    onMouseDown: createMouseEvent('mouseDown')
-  };
-  const child = external_wp_element_["Children"].only(children);
-  const {
-    children: grandchildren,
-    disabled
-  } = child.props;
-  const getElementWithPopover = disabled ? getDisabledElement : getRegularElement;
-  const popoverData = {
-    isOver,
-    position,
-    text,
-    shortcut
-  };
-  const childrenWithPopover = addPopoverToGrandchildren({
-    grandchildren,
-    ...popoverData
-  });
-  return getElementWithPopover({
-    child,
-    eventHandlers,
-    childrenWithPopover
-  });
-}
-
-/* harmony default export */ var tooltip = __webpack_exports__["a"] = (withNextComponent(tooltip_Tooltip));
-
-
-/***/ }),
-
-/***/ "WFqU":
-/***/ (function(module, exports, __webpack_require__) {
-
-/* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */
-var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;
-
-module.exports = freeGlobal;
-
-/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("yLpj")))
-
-/***/ }),
-
-/***/ "WI5Z":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
+var ChevronUp = function () {
+  function ChevronUp(props) {
+    return _react2['default'].createElement(
+      'svg',
+      props,
+      _react2['default'].createElement('path', {
+        d: 'M32.1 712.6l453.2-452.2c11-11 21-11 32 0l453.2 452.2c4 5 6 10 6 16 0 13-10 23-22 23-7 0-12-2-16-7L501.3 308.5 64.1 744.7c-4 5-9 7-15 7-7 0-12-2-17-7-9-11-9-21 0-32.1z'
+      })
+    );
+  }
+
+  return ChevronUp;
+}();
+
+ChevronUp.defaultProps = {
+  viewBox: '0 0 1000 1000'
+};
+exports["default"] = ChevronUp;
+
+/***/ }),
+
+/***/ 6973:
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
   value: true
-});
-exports['default'] = registerInterfaceWithDefaultTheme;
-
-var _ThemedStyleSheet = __webpack_require__("030x");
-
-var _ThemedStyleSheet2 = _interopRequireDefault(_ThemedStyleSheet);
-
-var _DefaultTheme = __webpack_require__("xOhs");
+}));
+
+var _react = __webpack_require__(9196);
+
+var _react2 = _interopRequireDefault(_react);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+var CloseButton = function () {
+  function CloseButton(props) {
+    return _react2['default'].createElement(
+      'svg',
+      props,
+      _react2['default'].createElement('path', {
+        fillRule: 'evenodd',
+        d: 'M11.53.47a.75.75 0 0 0-1.061 0l-4.47 4.47L1.529.47A.75.75 0 1 0 .468 1.531l4.47 4.47-4.47 4.47a.75.75 0 1 0 1.061 1.061l4.47-4.47 4.47 4.47a.75.75 0 1 0 1.061-1.061l-4.47-4.47 4.47-4.47a.75.75 0 0 0 0-1.061z'
+      })
+    );
+  }
+
+  return CloseButton;
+}();
+
+CloseButton.defaultProps = {
+  viewBox: '0 0 12 12'
+};
+exports["default"] = CloseButton;
+
+/***/ }),
+
+/***/ 6698:
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports.PureCustomizableCalendarDay = exports.selectedStyles = exports.lastInRangeStyles = exports.selectedSpanStyles = exports.hoveredSpanStyles = exports.blockedOutOfRangeStyles = exports.blockedCalendarStyles = exports.blockedMinNightsStyles = exports.highlightedCalendarStyles = exports.outsideStyles = exports.defaultStyles = undefined;
+
+var _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; };
+
+var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
+
+var _object = __webpack_require__(4011);
+
+var _object2 = _interopRequireDefault(_object);
+
+var _react = __webpack_require__(9196);
+
+var _react2 = _interopRequireDefault(_react);
+
+var _propTypes = __webpack_require__(2652);
+
+var _propTypes2 = _interopRequireDefault(_propTypes);
+
+var _reactAddonsShallowCompare = __webpack_require__(2541);
+
+var _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare);
+
+var _reactMomentProptypes = __webpack_require__(6150);
+
+var _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes);
+
+var _airbnbPropTypes = __webpack_require__(4882);
+
+var _reactWithStyles = __webpack_require__(3576);
+
+var _moment = __webpack_require__(6292);
+
+var _moment2 = _interopRequireDefault(_moment);
+
+var _defaultPhrases = __webpack_require__(6030);
+
+var _getPhrasePropTypes = __webpack_require__(2893);
+
+var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);
+
+var _getCalendarDaySettings = __webpack_require__(7475);
+
+var _getCalendarDaySettings2 = _interopRequireDefault(_getCalendarDaySettings);
+
+var _constants = __webpack_require__(257);
+
+var _DefaultTheme = __webpack_require__(8158);
 
 var _DefaultTheme2 = _interopRequireDefault(_DefaultTheme);
 
 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
 
-function registerInterfaceWithDefaultTheme(reactWithStylesInterface) {
-  _ThemedStyleSheet2['default'].registerInterface(reactWithStylesInterface);
-  _ThemedStyleSheet2['default'].registerTheme(_DefaultTheme2['default']);
-}
-
-/***/ }),
-
-/***/ "WZeS":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var hasSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol';
-
-var isPrimitive = __webpack_require__("Teho");
-var isCallable = __webpack_require__("IdCN");
-var isDate = __webpack_require__("DmXP");
-var isSymbol = __webpack_require__("/sVA");
-
-var ordinaryToPrimitive = function OrdinaryToPrimitive(O, hint) {
-	if (typeof O === 'undefined' || O === null) {
-		throw new TypeError('Cannot call method on ' + O);
-	}
-	if (typeof hint !== 'string' || (hint !== 'number' && hint !== 'string')) {
-		throw new TypeError('hint must be "string" or "number"');
-	}
-	var methodNames = hint === 'string' ? ['toString', 'valueOf'] : ['valueOf', 'toString'];
-	var method, result, i;
-	for (i = 0; i < methodNames.length; ++i) {
-		method = O[methodNames[i]];
-		if (isCallable(method)) {
-			result = method.call(O);
-			if (isPrimitive(result)) {
-				return result;
-			}
-		}
-	}
-	throw new TypeError('No default value');
-};
-
-var GetMethod = function GetMethod(O, P) {
-	var func = O[P];
-	if (func !== null && typeof func !== 'undefined') {
-		if (!isCallable(func)) {
-			throw new TypeError(func + ' returned for property ' + P + ' of object ' + O + ' is not a function');
-		}
-		return func;
-	}
-	return void 0;
-};
-
-// http://www.ecma-international.org/ecma-262/6.0/#sec-toprimitive
-module.exports = function ToPrimitive(input) {
-	if (isPrimitive(input)) {
-		return input;
-	}
-	var hint = 'default';
-	if (arguments.length > 1) {
-		if (arguments[1] === String) {
-			hint = 'string';
-		} else if (arguments[1] === Number) {
-			hint = 'number';
-		}
-	}
-
-	var exoticToPrim;
-	if (hasSymbols) {
-		if (Symbol.toPrimitive) {
-			exoticToPrim = GetMethod(input, Symbol.toPrimitive);
-		} else if (isSymbol(input)) {
-			exoticToPrim = Symbol.prototype.valueOf;
-		}
-	}
-	if (typeof exoticToPrim !== 'undefined') {
-		var result = exoticToPrim.call(input, hint);
-		if (isPrimitive(result)) {
-			return result;
-		}
-		throw new TypeError('unable to convert exotic object to primitive');
-	}
-	if (hint === 'default' && (isDate(input) || isSymbol(input))) {
-		hint = 'string';
-	}
-	return ordinaryToPrimitive(input, hint === 'default' ? 'number' : hint);
-};
-
-
-/***/ }),
-
-/***/ "WbBG":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-/**
- * Copyright (c) 2013-present, Facebook, Inc.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-
-
-var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
-
-module.exports = ReactPropTypesSecret;
-
-
-/***/ }),
-
-/***/ "Wfh+":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var abs = __webpack_require__("nKkb");
-var floor = __webpack_require__("UFhG");
-var ToNumber = __webpack_require__("Pjai");
-
-var $isNaN = __webpack_require__("HwJD");
-var $isFinite = __webpack_require__("ald4");
-var $sign = __webpack_require__("6I5v");
-
-// http://262.ecma-international.org/5.1/#sec-9.4
-
-module.exports = function ToInteger(value) {
-	var number = ToNumber(value);
-	if ($isNaN(number)) { return 0; }
-	if (number === 0 || !$isFinite(number)) { return number; }
-	return $sign(number) * floor(abs(number));
-};
-
-
-/***/ }),
-
-/***/ "WmS1":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
+
+function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var color = _DefaultTheme2['default'].reactDates.color;
+
+
+function getStyles(stylesObj, isHovered) {
+  if (!stylesObj) return null;
+
+  var hover = stylesObj.hover;
+
+  if (isHovered && hover) {
+    return hover;
+  }
+
+  return stylesObj;
+}
+
+var DayStyleShape = _propTypes2['default'].shape({
+  background: _propTypes2['default'].string,
+  border: (0, _airbnbPropTypes.or)([_propTypes2['default'].string, _propTypes2['default'].number]),
+  color: _propTypes2['default'].string,
+
+  hover: _propTypes2['default'].shape({
+    background: _propTypes2['default'].string,
+    border: (0, _airbnbPropTypes.or)([_propTypes2['default'].string, _propTypes2['default'].number]),
+    color: _propTypes2['default'].string
+  })
+});
+
+var propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, {
+  day: _reactMomentProptypes2['default'].momentObj,
+  daySize: _airbnbPropTypes.nonNegativeInteger,
+  isOutsideDay: _propTypes2['default'].bool,
+  modifiers: _propTypes2['default'].instanceOf(Set),
+  isFocused: _propTypes2['default'].bool,
+  tabIndex: _propTypes2['default'].oneOf([0, -1]),
+  onDayClick: _propTypes2['default'].func,
+  onDayMouseEnter: _propTypes2['default'].func,
+  onDayMouseLeave: _propTypes2['default'].func,
+  renderDayContents: _propTypes2['default'].func,
+  ariaLabelFormat: _propTypes2['default'].string,
+
+  // style overrides
+  defaultStyles: DayStyleShape,
+  outsideStyles: DayStyleShape,
+  todayStyles: DayStyleShape,
+  firstDayOfWeekStyles: DayStyleShape,
+  lastDayOfWeekStyles: DayStyleShape,
+  highlightedCalendarStyles: DayStyleShape,
+  blockedMinNightsStyles: DayStyleShape,
+  blockedCalendarStyles: DayStyleShape,
+  blockedOutOfRangeStyles: DayStyleShape,
+  hoveredSpanStyles: DayStyleShape,
+  selectedSpanStyles: DayStyleShape,
+  lastInRangeStyles: DayStyleShape,
+  selectedStyles: DayStyleShape,
+  selectedStartStyles: DayStyleShape,
+  selectedEndStyles: DayStyleShape,
+  afterHoveredStartStyles: DayStyleShape,
+
+  // internationalization
+  phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.CalendarDayPhrases))
+}));
+
+var defaultStyles = exports.defaultStyles = {
+  border: '1px solid ' + String(color.core.borderLight),
+  color: color.text,
+  background: color.background,
+
+  hover: {
+    background: color.core.borderLight,
+    border: '1px double ' + String(color.core.borderLight),
+    color: 'inherit'
+  }
+};
+
+var outsideStyles = exports.outsideStyles = {
+  background: color.outside.backgroundColor,
+  border: 0,
+  color: color.outside.color
+};
+
+var highlightedCalendarStyles = exports.highlightedCalendarStyles = {
+  background: color.highlighted.backgroundColor,
+  color: color.highlighted.color,
+
+  hover: {
+    background: color.highlighted.backgroundColor_hover,
+    color: color.highlighted.color_active
+  }
+};
+
+var blockedMinNightsStyles = exports.blockedMinNightsStyles = {
+  background: color.minimumNights.backgroundColor,
+  border: '1px solid ' + String(color.minimumNights.borderColor),
+  color: color.minimumNights.color,
+
+  hover: {
+    background: color.minimumNights.backgroundColor_hover,
+    color: color.minimumNights.color_active
+  }
+};
+
+var blockedCalendarStyles = exports.blockedCalendarStyles = {
+  background: color.blocked_calendar.backgroundColor,
+  border: '1px solid ' + String(color.blocked_calendar.borderColor),
+  color: color.blocked_calendar.color,
+
+  hover: {
+    background: color.blocked_calendar.backgroundColor_hover,
+    border: '1px solid ' + String(color.blocked_calendar.borderColor),
+    color: color.blocked_calendar.color_active
+  }
+};
+
+var blockedOutOfRangeStyles = exports.blockedOutOfRangeStyles = {
+  background: color.blocked_out_of_range.backgroundColor,
+  border: '1px solid ' + String(color.blocked_out_of_range.borderColor),
+  color: color.blocked_out_of_range.color,
+
+  hover: {
+    background: color.blocked_out_of_range.backgroundColor_hover,
+    border: '1px solid ' + String(color.blocked_out_of_range.borderColor),
+    color: color.blocked_out_of_range.color_active
+  }
+};
+
+var hoveredSpanStyles = exports.hoveredSpanStyles = {
+  background: color.hoveredSpan.backgroundColor,
+  border: '1px solid ' + String(color.hoveredSpan.borderColor),
+  color: color.hoveredSpan.color,
+
+  hover: {
+    background: color.hoveredSpan.backgroundColor_hover,
+    border: '1px solid ' + String(color.hoveredSpan.borderColor),
+    color: color.hoveredSpan.color_active
+  }
+};
+
+var selectedSpanStyles = exports.selectedSpanStyles = {
+  background: color.selectedSpan.backgroundColor,
+  border: '1px solid ' + String(color.selectedSpan.borderColor),
+  color: color.selectedSpan.color,
+
+  hover: {
+    background: color.selectedSpan.backgroundColor_hover,
+    border: '1px solid ' + String(color.selectedSpan.borderColor),
+    color: color.selectedSpan.color_active
+  }
+};
+
+var lastInRangeStyles = exports.lastInRangeStyles = {
+  borderRight: color.core.primary
+};
+
+var selectedStyles = exports.selectedStyles = {
+  background: color.selected.backgroundColor,
+  border: '1px solid ' + String(color.selected.borderColor),
+  color: color.selected.color,
+
+  hover: {
+    background: color.selected.backgroundColor_hover,
+    border: '1px solid ' + String(color.selected.borderColor),
+    color: color.selected.color_active
+  }
+};
+
+var defaultProps = {
+  day: (0, _moment2['default'])(),
+  daySize: _constants.DAY_SIZE,
+  isOutsideDay: false,
+  modifiers: new Set(),
+  isFocused: false,
+  tabIndex: -1,
+  onDayClick: function () {
+    function onDayClick() {}
+
+    return onDayClick;
+  }(),
+  onDayMouseEnter: function () {
+    function onDayMouseEnter() {}
+
+    return onDayMouseEnter;
+  }(),
+  onDayMouseLeave: function () {
+    function onDayMouseLeave() {}
+
+    return onDayMouseLeave;
+  }(),
+
+  renderDayContents: null,
+  ariaLabelFormat: 'dddd, LL',
+
+  // style defaults
+  defaultStyles: defaultStyles,
+  outsideStyles: outsideStyles,
+  todayStyles: {},
+  highlightedCalendarStyles: highlightedCalendarStyles,
+  blockedMinNightsStyles: blockedMinNightsStyles,
+  blockedCalendarStyles: blockedCalendarStyles,
+  blockedOutOfRangeStyles: blockedOutOfRangeStyles,
+  hoveredSpanStyles: hoveredSpanStyles,
+  selectedSpanStyles: selectedSpanStyles,
+  lastInRangeStyles: lastInRangeStyles,
+  selectedStyles: selectedStyles,
+  selectedStartStyles: {},
+  selectedEndStyles: {},
+  afterHoveredStartStyles: {},
+  firstDayOfWeekStyles: {},
+  lastDayOfWeekStyles: {},
+
+  // internationalization
+  phrases: _defaultPhrases.CalendarDayPhrases
+};
+
+var CustomizableCalendarDay = function (_React$Component) {
+  _inherits(CustomizableCalendarDay, _React$Component);
+
+  function CustomizableCalendarDay() {
+    var _ref;
+
+    _classCallCheck(this, CustomizableCalendarDay);
+
+    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
+      args[_key] = arguments[_key];
+    }
+
+    var _this = _possibleConstructorReturn(this, (_ref = CustomizableCalendarDay.__proto__ || Object.getPrototypeOf(CustomizableCalendarDay)).call.apply(_ref, [this].concat(args)));
+
+    _this.state = {
+      isHovered: false
+    };
+
+    _this.setButtonRef = _this.setButtonRef.bind(_this);
+    return _this;
+  }
+
+  _createClass(CustomizableCalendarDay, [{
+    key: 'shouldComponentUpdate',
+    value: function () {
+      function shouldComponentUpdate(nextProps, nextState) {
+        return (0, _reactAddonsShallowCompare2['default'])(this, nextProps, nextState);
+      }
+
+      return shouldComponentUpdate;
+    }()
+  }, {
+    key: 'componentDidUpdate',
+    value: function () {
+      function componentDidUpdate(prevProps) {
+        var _props = this.props,
+            isFocused = _props.isFocused,
+            tabIndex = _props.tabIndex;
+
+        if (tabIndex === 0) {
+          if (isFocused || tabIndex !== prevProps.tabIndex) {
+            this.buttonRef.focus();
+          }
+        }
+      }
+
+      return componentDidUpdate;
+    }()
+  }, {
+    key: 'onDayClick',
+    value: function () {
+      function onDayClick(day, e) {
+        var onDayClick = this.props.onDayClick;
+
+        onDayClick(day, e);
+      }
+
+      return onDayClick;
+    }()
+  }, {
+    key: 'onDayMouseEnter',
+    value: function () {
+      function onDayMouseEnter(day, e) {
+        var onDayMouseEnter = this.props.onDayMouseEnter;
+
+        this.setState({ isHovered: true });
+        onDayMouseEnter(day, e);
+      }
+
+      return onDayMouseEnter;
+    }()
+  }, {
+    key: 'onDayMouseLeave',
+    value: function () {
+      function onDayMouseLeave(day, e) {
+        var onDayMouseLeave = this.props.onDayMouseLeave;
+
+        this.setState({ isHovered: false });
+        onDayMouseLeave(day, e);
+      }
+
+      return onDayMouseLeave;
+    }()
+  }, {
+    key: 'onKeyDown',
+    value: function () {
+      function onKeyDown(day, e) {
+        var onDayClick = this.props.onDayClick;
+        var key = e.key;
+
+        if (key === 'Enter' || key === ' ') {
+          onDayClick(day, e);
+        }
+      }
+
+      return onKeyDown;
+    }()
+  }, {
+    key: 'setButtonRef',
+    value: function () {
+      function setButtonRef(ref) {
+        this.buttonRef = ref;
+      }
+
+      return setButtonRef;
+    }()
+  }, {
+    key: 'render',
+    value: function () {
+      function render() {
+        var _this2 = this;
+
+        var _props2 = this.props,
+            day = _props2.day,
+            ariaLabelFormat = _props2.ariaLabelFormat,
+            daySize = _props2.daySize,
+            isOutsideDay = _props2.isOutsideDay,
+            modifiers = _props2.modifiers,
+            tabIndex = _props2.tabIndex,
+            renderDayContents = _props2.renderDayContents,
+            styles = _props2.styles,
+            phrases = _props2.phrases,
+            defaultStylesWithHover = _props2.defaultStyles,
+            outsideStylesWithHover = _props2.outsideStyles,
+            todayStylesWithHover = _props2.todayStyles,
+            firstDayOfWeekStylesWithHover = _props2.firstDayOfWeekStyles,
+            lastDayOfWeekStylesWithHover = _props2.lastDayOfWeekStyles,
+            highlightedCalendarStylesWithHover = _props2.highlightedCalendarStyles,
+            blockedMinNightsStylesWithHover = _props2.blockedMinNightsStyles,
+            blockedCalendarStylesWithHover = _props2.blockedCalendarStyles,
+            blockedOutOfRangeStylesWithHover = _props2.blockedOutOfRangeStyles,
+            hoveredSpanStylesWithHover = _props2.hoveredSpanStyles,
+            selectedSpanStylesWithHover = _props2.selectedSpanStyles,
+            lastInRangeStylesWithHover = _props2.lastInRangeStyles,
+            selectedStylesWithHover = _props2.selectedStyles,
+            selectedStartStylesWithHover = _props2.selectedStartStyles,
+            selectedEndStylesWithHover = _props2.selectedEndStyles,
+            afterHoveredStartStylesWithHover = _props2.afterHoveredStartStyles;
+        var isHovered = this.state.isHovered;
+
+
+        if (!day) return _react2['default'].createElement('td', null);
+
+        var _getCalendarDaySettin = (0, _getCalendarDaySettings2['default'])(day, ariaLabelFormat, daySize, modifiers, phrases),
+            daySizeStyles = _getCalendarDaySettin.daySizeStyles,
+            useDefaultCursor = _getCalendarDaySettin.useDefaultCursor,
+            selected = _getCalendarDaySettin.selected,
+            hoveredSpan = _getCalendarDaySettin.hoveredSpan,
+            isOutsideRange = _getCalendarDaySettin.isOutsideRange,
+            ariaLabel = _getCalendarDaySettin.ariaLabel;
+
+        return _react2['default'].createElement(
+          'td',
+          _extends({}, (0, _reactWithStyles.css)(styles.CalendarDay, useDefaultCursor && styles.CalendarDay__defaultCursor, daySizeStyles, getStyles(defaultStylesWithHover, isHovered), isOutsideDay && getStyles(outsideStylesWithHover, isHovered), modifiers.has('today') && getStyles(todayStylesWithHover, isHovered), modifiers.has('first-day-of-week') && getStyles(firstDayOfWeekStylesWithHover, isHovered), modifiers.has('last-day-of-week') && getStyles(lastDayOfWeekStylesWithHover, isHovered), modifiers.has('highlighted-calendar') && getStyles(highlightedCalendarStylesWithHover, isHovered), modifiers.has('blocked-minimum-nights') && getStyles(blockedMinNightsStylesWithHover, isHovered), modifiers.has('blocked-calendar') && getStyles(blockedCalendarStylesWithHover, isHovered), hoveredSpan && getStyles(hoveredSpanStylesWithHover, isHovered), modifiers.has('after-hovered-start') && getStyles(afterHoveredStartStylesWithHover, isHovered), modifiers.has('selected-span') && getStyles(selectedSpanStylesWithHover, isHovered), modifiers.has('last-in-range') && getStyles(lastInRangeStylesWithHover, isHovered), selected && getStyles(selectedStylesWithHover, isHovered), modifiers.has('selected-start') && getStyles(selectedStartStylesWithHover, isHovered), modifiers.has('selected-end') && getStyles(selectedEndStylesWithHover, isHovered), isOutsideRange && getStyles(blockedOutOfRangeStylesWithHover, isHovered)), {
+            role: 'button' // eslint-disable-line jsx-a11y/no-noninteractive-element-to-interactive-role
+            , ref: this.setButtonRef,
+            'aria-label': ariaLabel,
+            onMouseEnter: function () {
+              function onMouseEnter(e) {
+                _this2.onDayMouseEnter(day, e);
+              }
+
+              return onMouseEnter;
+            }(),
+            onMouseLeave: function () {
+              function onMouseLeave(e) {
+                _this2.onDayMouseLeave(day, e);
+              }
+
+              return onMouseLeave;
+            }(),
+            onMouseUp: function () {
+              function onMouseUp(e) {
+                e.currentTarget.blur();
+              }
+
+              return onMouseUp;
+            }(),
+            onClick: function () {
+              function onClick(e) {
+                _this2.onDayClick(day, e);
+              }
+
+              return onClick;
+            }(),
+            onKeyDown: function () {
+              function onKeyDown(e) {
+                _this2.onKeyDown(day, e);
+              }
+
+              return onKeyDown;
+            }(),
+            tabIndex: tabIndex
+          }),
+          renderDayContents ? renderDayContents(day, modifiers) : day.format('D')
+        );
+      }
+
+      return render;
+    }()
+  }]);
+
+  return CustomizableCalendarDay;
+}(_react2['default'].Component);
+
+CustomizableCalendarDay.propTypes = propTypes;
+CustomizableCalendarDay.defaultProps = defaultProps;
+
+exports.PureCustomizableCalendarDay = CustomizableCalendarDay;
+exports["default"] = (0, _reactWithStyles.withStyles)(function (_ref2) {
+  var font = _ref2.reactDates.font;
+  return {
+    CalendarDay: {
+      boxSizing: 'border-box',
+      cursor: 'pointer',
+      fontSize: font.size,
+      textAlign: 'center',
+
+      ':active': {
+        outline: 0
+      }
+    },
+
+    CalendarDay__defaultCursor: {
+      cursor: 'default'
+    }
+  };
+})(CustomizableCalendarDay);
+
+/***/ }),
+
+/***/ 8665:
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
   value: true
-});
-exports['default'] = toMomentObject;
-
-var _moment = __webpack_require__("wy2R");
+}));
+exports.PureDayPicker = exports.defaultProps = undefined;
+
+var _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; };
+
+var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
+
+var _object = __webpack_require__(4011);
+
+var _object2 = _interopRequireDefault(_object);
+
+var _react = __webpack_require__(9196);
+
+var _react2 = _interopRequireDefault(_react);
+
+var _propTypes = __webpack_require__(2652);
+
+var _propTypes2 = _interopRequireDefault(_propTypes);
+
+var _reactAddonsShallowCompare = __webpack_require__(2541);
+
+var _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare);
+
+var _airbnbPropTypes = __webpack_require__(4882);
+
+var _reactWithStyles = __webpack_require__(3576);
+
+var _moment = __webpack_require__(6292);
 
 var _moment2 = _interopRequireDefault(_moment);
 
-var _constants = __webpack_require__("Fv1B");
+var _throttle = __webpack_require__(8172);
+
+var _throttle2 = _interopRequireDefault(_throttle);
+
+var _isTouchDevice = __webpack_require__(5834);
+
+var _isTouchDevice2 = _interopRequireDefault(_isTouchDevice);
+
+var _reactOutsideClickHandler = __webpack_require__(6606);
+
+var _reactOutsideClickHandler2 = _interopRequireDefault(_reactOutsideClickHandler);
+
+var _defaultPhrases = __webpack_require__(6030);
+
+var _getPhrasePropTypes = __webpack_require__(2893);
+
+var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);
+
+var _CalendarMonthGrid = __webpack_require__(7938);
+
+var _CalendarMonthGrid2 = _interopRequireDefault(_CalendarMonthGrid);
+
+var _DayPickerNavigation = __webpack_require__(3895);
+
+var _DayPickerNavigation2 = _interopRequireDefault(_DayPickerNavigation);
+
+var _DayPickerKeyboardShortcuts = __webpack_require__(600);
+
+var _DayPickerKeyboardShortcuts2 = _interopRequireDefault(_DayPickerKeyboardShortcuts);
+
+var _getNumberOfCalendarMonthWeeks = __webpack_require__(4112);
+
+var _getNumberOfCalendarMonthWeeks2 = _interopRequireDefault(_getNumberOfCalendarMonthWeeks);
+
+var _getCalendarMonthWidth = __webpack_require__(8964);
+
+var _getCalendarMonthWidth2 = _interopRequireDefault(_getCalendarMonthWidth);
+
+var _calculateDimension = __webpack_require__(8607);
+
+var _calculateDimension2 = _interopRequireDefault(_calculateDimension);
+
+var _getActiveElement = __webpack_require__(5814);
+
+var _getActiveElement2 = _interopRequireDefault(_getActiveElement);
+
+var _isDayVisible = __webpack_require__(5713);
+
+var _isDayVisible2 = _interopRequireDefault(_isDayVisible);
+
+var _ModifiersShape = __webpack_require__(6747);
+
+var _ModifiersShape2 = _interopRequireDefault(_ModifiersShape);
+
+var _ScrollableOrientationShape = __webpack_require__(6553);
+
+var _ScrollableOrientationShape2 = _interopRequireDefault(_ScrollableOrientationShape);
+
+var _DayOfWeekShape = __webpack_require__(243);
+
+var _DayOfWeekShape2 = _interopRequireDefault(_DayOfWeekShape);
+
+var _CalendarInfoPositionShape = __webpack_require__(8182);
+
+var _CalendarInfoPositionShape2 = _interopRequireDefault(_CalendarInfoPositionShape);
+
+var _constants = __webpack_require__(257);
 
 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
 
-function toMomentObject(dateString, customFormat) {
-  var dateFormats = customFormat ? [customFormat, _constants.DISPLAY_FORMAT, _constants.ISO_FORMAT] : [_constants.DISPLAY_FORMAT, _constants.ISO_FORMAT];
-
-  var date = (0, _moment2['default'])(dateString, dateFormats, true);
-  return date.isValid() ? date.hour(12) : null;
-}
-
-/***/ }),
-
-/***/ "WnOg":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* unused harmony export warning */
-
-
-/**
- * Logs `messages` to the console using `console.warn` based on a `condition`.
- *
- * @example
- * import { warning } from "reakit-warning";
- *
- * warning(true, "a", "b"); // console.warn("a", "\n", "b")
- * warning(false, "a", "b"); // does nothing
- */
-
-function warning(condition) {
-  if (false) { var warns, _len, messages, _key, _console; }
-}
-
-
-
-
-/***/ }),
-
-/***/ "WvKp":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var GetIntrinsic = __webpack_require__("rZ7t");
-
-var $TypeError = GetIntrinsic('%TypeError%');
-
-var CreateDataProperty = __webpack_require__("DvWQ");
-var IsPropertyKey = __webpack_require__("i10q");
-var Type = __webpack_require__("V1cy");
-
-// // https://ecma-international.org/ecma-262/6.0/#sec-createdatapropertyorthrow
-
-module.exports = function CreateDataPropertyOrThrow(O, P, V) {
-	if (Type(O) !== 'Object') {
-		throw new $TypeError('Assertion failed: Type(O) is not Object');
-	}
-	if (!IsPropertyKey(P)) {
-		throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
-	}
-	var success = CreateDataProperty(O, P, V);
-	if (!success) {
-		throw new $TypeError('unable to create data property');
-	}
-	return success;
-};
-
-
-/***/ }),
-
-/***/ "XGBb":
-/***/ (function(module, exports, __webpack_require__) {
-
-var moment = __webpack_require__("wy2R");
-var momentValidationWrapper = __webpack_require__("c6aN");
-var core = __webpack_require__("iNdV");
-
-module.exports = {
-
-  momentObj : core.createMomentChecker(
-    'object',
-    function(obj) {
-      return typeof obj === 'object';
-    },
-    function isValid(value) {
-      return momentValidationWrapper.isValidMoment(value);
-    },
-    'Moment'
-  ),
-
-  momentString : core.createMomentChecker(
-    'string',
-    function(str) {
-      return typeof str === 'string';
-    },
-    function isValid(value) {
-      return momentValidationWrapper.isValidMoment(moment(value));
-    },
-    'Moment'
-  ),
-
-  momentDurationObj : core.createMomentChecker(
-    'object',
-    function(obj) {
-      return typeof obj === 'object';
-    },
-    function isValid(value) {
-      return moment.isDuration(value);
-    },
-    'Duration'
-  ),
-
-};
-
-
-/***/ }),
-
-/***/ "XgzB":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
-/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
-
-
-/**
- * WordPress dependencies
- */
-
-const chevronUp = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
-  viewBox: "0 0 24 24",
-  xmlns: "http://www.w3.org/2000/svg"
-}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
-  d: "M6.5 12.4L12 8l5.5 4.4-.9 1.2L12 10l-4.5 3.6-1-1.2z"
-}));
-/* harmony default export */ __webpack_exports__["a"] = (chevronUp);
-
-
-/***/ }),
-
-/***/ "Xtko":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
+function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
+
+function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var MONTH_PADDING = 23;
+var PREV_TRANSITION = 'prev';
+var NEXT_TRANSITION = 'next';
+var MONTH_SELECTION_TRANSITION = 'month_selection';
+var YEAR_SELECTION_TRANSITION = 'year_selection';
+
+var propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, {
+
+  // calendar presentation props
+  enableOutsideDays: _propTypes2['default'].bool,
+  numberOfMonths: _propTypes2['default'].number,
+  orientation: _ScrollableOrientationShape2['default'],
+  withPortal: _propTypes2['default'].bool,
+  onOutsideClick: _propTypes2['default'].func,
+  hidden: _propTypes2['default'].bool,
+  initialVisibleMonth: _propTypes2['default'].func,
+  firstDayOfWeek: _DayOfWeekShape2['default'],
+  renderCalendarInfo: _propTypes2['default'].func,
+  calendarInfoPosition: _CalendarInfoPositionShape2['default'],
+  hideKeyboardShortcutsPanel: _propTypes2['default'].bool,
+  daySize: _airbnbPropTypes.nonNegativeInteger,
+  isRTL: _propTypes2['default'].bool,
+  verticalHeight: _airbnbPropTypes.nonNegativeInteger,
+  noBorder: _propTypes2['default'].bool,
+  transitionDuration: _airbnbPropTypes.nonNegativeInteger,
+  verticalBorderSpacing: _airbnbPropTypes.nonNegativeInteger,
+  horizontalMonthPadding: _airbnbPropTypes.nonNegativeInteger,
+
+  // navigation props
+  navPrev: _propTypes2['default'].node,
+  navNext: _propTypes2['default'].node,
+  noNavButtons: _propTypes2['default'].bool,
+  onPrevMonthClick: _propTypes2['default'].func,
+  onNextMonthClick: _propTypes2['default'].func,
+  onMonthChange: _propTypes2['default'].func,
+  onYearChange: _propTypes2['default'].func,
+  onMultiplyScrollableMonths: _propTypes2['default'].func, // VERTICAL_SCROLLABLE daypickers only
+
+  // month props
+  renderMonthText: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),
+  renderMonthElement: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),
+
+  // day props
+  modifiers: _propTypes2['default'].objectOf(_propTypes2['default'].objectOf(_ModifiersShape2['default'])),
+  renderCalendarDay: _propTypes2['default'].func,
+  renderDayContents: _propTypes2['default'].func,
+  onDayClick: _propTypes2['default'].func,
+  onDayMouseEnter: _propTypes2['default'].func,
+  onDayMouseLeave: _propTypes2['default'].func,
+
+  // accessibility props
+  isFocused: _propTypes2['default'].bool,
+  getFirstFocusableDay: _propTypes2['default'].func,
+  onBlur: _propTypes2['default'].func,
+  showKeyboardShortcuts: _propTypes2['default'].bool,
+
+  // internationalization
+  monthFormat: _propTypes2['default'].string,
+  weekDayFormat: _propTypes2['default'].string,
+  phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.DayPickerPhrases)),
+  dayAriaLabelFormat: _propTypes2['default'].string
+}));
+
+var defaultProps = exports.defaultProps = {
+  // calendar presentation props
+  enableOutsideDays: false,
+  numberOfMonths: 2,
+  orientation: _constants.HORIZONTAL_ORIENTATION,
+  withPortal: false,
+  onOutsideClick: function () {
+    function onOutsideClick() {}
+
+    return onOutsideClick;
+  }(),
+
+  hidden: false,
+  initialVisibleMonth: function () {
+    function initialVisibleMonth() {
+      return (0, _moment2['default'])();
+    }
+
+    return initialVisibleMonth;
+  }(),
+  firstDayOfWeek: null,
+  renderCalendarInfo: null,
+  calendarInfoPosition: _constants.INFO_POSITION_BOTTOM,
+  hideKeyboardShortcutsPanel: false,
+  daySize: _constants.DAY_SIZE,
+  isRTL: false,
+  verticalHeight: null,
+  noBorder: false,
+  transitionDuration: undefined,
+  verticalBorderSpacing: undefined,
+  horizontalMonthPadding: 13,
+
+  // navigation props
+  navPrev: null,
+  navNext: null,
+  noNavButtons: false,
+  onPrevMonthClick: function () {
+    function onPrevMonthClick() {}
+
+    return onPrevMonthClick;
+  }(),
+  onNextMonthClick: function () {
+    function onNextMonthClick() {}
+
+    return onNextMonthClick;
+  }(),
+  onMonthChange: function () {
+    function onMonthChange() {}
+
+    return onMonthChange;
+  }(),
+  onYearChange: function () {
+    function onYearChange() {}
+
+    return onYearChange;
+  }(),
+  onMultiplyScrollableMonths: function () {
+    function onMultiplyScrollableMonths() {}
+
+    return onMultiplyScrollableMonths;
+  }(),
+
+
+  // month props
+  renderMonthText: null,
+  renderMonthElement: null,
+
+  // day props
+  modifiers: {},
+  renderCalendarDay: undefined,
+  renderDayContents: null,
+  onDayClick: function () {
+    function onDayClick() {}
+
+    return onDayClick;
+  }(),
+  onDayMouseEnter: function () {
+    function onDayMouseEnter() {}
+
+    return onDayMouseEnter;
+  }(),
+  onDayMouseLeave: function () {
+    function onDayMouseLeave() {}
+
+    return onDayMouseLeave;
+  }(),
+
+
+  // accessibility props
+  isFocused: false,
+  getFirstFocusableDay: null,
+  onBlur: function () {
+    function onBlur() {}
+
+    return onBlur;
+  }(),
+
+  showKeyboardShortcuts: false,
+
+  // internationalization
+  monthFormat: 'MMMM YYYY',
+  weekDayFormat: 'dd',
+  phrases: _defaultPhrases.DayPickerPhrases,
+  dayAriaLabelFormat: undefined
+};
+
+var DayPicker = function (_React$Component) {
+  _inherits(DayPicker, _React$Component);
+
+  function DayPicker(props) {
+    _classCallCheck(this, DayPicker);
+
+    var _this = _possibleConstructorReturn(this, (DayPicker.__proto__ || Object.getPrototypeOf(DayPicker)).call(this, props));
+
+    var currentMonth = props.hidden ? (0, _moment2['default'])() : props.initialVisibleMonth();
+
+    var focusedDate = currentMonth.clone().startOf('month');
+    if (props.getFirstFocusableDay) {
+      focusedDate = props.getFirstFocusableDay(currentMonth);
+    }
+
+    var horizontalMonthPadding = props.horizontalMonthPadding;
+
+
+    var translationValue = props.isRTL && _this.isHorizontal() ? -(0, _getCalendarMonthWidth2['default'])(props.daySize, horizontalMonthPadding) : 0;
+
+    _this.hasSetInitialVisibleMonth = !props.hidden;
+    _this.state = {
+      currentMonth: currentMonth,
+      monthTransition: null,
+      translationValue: translationValue,
+      scrollableMonthMultiple: 1,
+      calendarMonthWidth: (0, _getCalendarMonthWidth2['default'])(props.daySize, horizontalMonthPadding),
+      focusedDate: !props.hidden || props.isFocused ? focusedDate : null,
+      nextFocusedDate: null,
+      showKeyboardShortcuts: props.showKeyboardShortcuts,
+      onKeyboardShortcutsPanelClose: function () {
+        function onKeyboardShortcutsPanelClose() {}
+
+        return onKeyboardShortcutsPanelClose;
+      }(),
+
+      isTouchDevice: (0, _isTouchDevice2['default'])(),
+      withMouseInteractions: true,
+      calendarInfoWidth: 0,
+      monthTitleHeight: null,
+      hasSetHeight: false
+    };
+
+    _this.setCalendarMonthWeeks(currentMonth);
+
+    _this.calendarMonthGridHeight = 0;
+    _this.setCalendarInfoWidthTimeout = null;
+
+    _this.onKeyDown = _this.onKeyDown.bind(_this);
+    _this.throttledKeyDown = (0, _throttle2['default'])(_this.onFinalKeyDown, 200, { trailing: false });
+    _this.onPrevMonthClick = _this.onPrevMonthClick.bind(_this);
+    _this.onNextMonthClick = _this.onNextMonthClick.bind(_this);
+    _this.onMonthChange = _this.onMonthChange.bind(_this);
+    _this.onYearChange = _this.onYearChange.bind(_this);
+
+    _this.multiplyScrollableMonths = _this.multiplyScrollableMonths.bind(_this);
+    _this.updateStateAfterMonthTransition = _this.updateStateAfterMonthTransition.bind(_this);
+
+    _this.openKeyboardShortcutsPanel = _this.openKeyboardShortcutsPanel.bind(_this);
+    _this.closeKeyboardShortcutsPanel = _this.closeKeyboardShortcutsPanel.bind(_this);
+
+    _this.setCalendarInfoRef = _this.setCalendarInfoRef.bind(_this);
+    _this.setContainerRef = _this.setContainerRef.bind(_this);
+    _this.setTransitionContainerRef = _this.setTransitionContainerRef.bind(_this);
+    _this.setMonthTitleHeight = _this.setMonthTitleHeight.bind(_this);
+    return _this;
+  }
+
+  _createClass(DayPicker, [{
+    key: 'componentDidMount',
+    value: function () {
+      function componentDidMount() {
+        var currentMonth = this.state.currentMonth;
+
+        if (this.calendarInfo) {
+          this.setState({
+            isTouchDevice: (0, _isTouchDevice2['default'])(),
+            calendarInfoWidth: (0, _calculateDimension2['default'])(this.calendarInfo, 'width', true, true)
+          });
+        } else {
+          this.setState({ isTouchDevice: (0, _isTouchDevice2['default'])() });
+        }
+
+        this.setCalendarMonthWeeks(currentMonth);
+      }
+
+      return componentDidMount;
+    }()
+  }, {
+    key: 'componentWillReceiveProps',
+    value: function () {
+      function componentWillReceiveProps(nextProps) {
+        var hidden = nextProps.hidden,
+            isFocused = nextProps.isFocused,
+            showKeyboardShortcuts = nextProps.showKeyboardShortcuts,
+            onBlur = nextProps.onBlur,
+            renderMonthText = nextProps.renderMonthText,
+            horizontalMonthPadding = nextProps.horizontalMonthPadding;
+        var currentMonth = this.state.currentMonth;
+
+
+        if (!hidden) {
+          if (!this.hasSetInitialVisibleMonth) {
+            this.hasSetInitialVisibleMonth = true;
+            this.setState({
+              currentMonth: nextProps.initialVisibleMonth()
+            });
+          }
+        }
+
+        var _props = this.props,
+            daySize = _props.daySize,
+            prevIsFocused = _props.isFocused,
+            prevRenderMonthText = _props.renderMonthText;
+
+
+        if (nextProps.daySize !== daySize) {
+          this.setState({
+            calendarMonthWidth: (0, _getCalendarMonthWidth2['default'])(nextProps.daySize, horizontalMonthPadding)
+          });
+        }
+
+        if (isFocused !== prevIsFocused) {
+          if (isFocused) {
+            var focusedDate = this.getFocusedDay(currentMonth);
+
+            var onKeyboardShortcutsPanelClose = this.state.onKeyboardShortcutsPanelClose;
+
+            if (nextProps.showKeyboardShortcuts) {
+              // the ? shortcut came from the input and we should return input there once it is close
+              onKeyboardShortcutsPanelClose = onBlur;
+            }
+
+            this.setState({
+              showKeyboardShortcuts: showKeyboardShortcuts,
+              onKeyboardShortcutsPanelClose: onKeyboardShortcutsPanelClose,
+              focusedDate: focusedDate,
+              withMouseInteractions: false
+            });
+          } else {
+            this.setState({ focusedDate: null });
+          }
+        }
+
+        if (renderMonthText !== prevRenderMonthText) {
+          this.setState({
+            monthTitleHeight: null
+          });
+        }
+      }
+
+      return componentWillReceiveProps;
+    }()
+  }, {
+    key: 'shouldComponentUpdate',
+    value: function () {
+      function shouldComponentUpdate(nextProps, nextState) {
+        return (0, _reactAddonsShallowCompare2['default'])(this, nextProps, nextState);
+      }
+
+      return shouldComponentUpdate;
+    }()
+  }, {
+    key: 'componentWillUpdate',
+    value: function () {
+      function componentWillUpdate() {
+        var _this2 = this;
+
+        var transitionDuration = this.props.transitionDuration;
+
+        // Calculating the dimensions trigger a DOM repaint which
+        // breaks the CSS transition.
+        // The setTimeout will wait until the transition ends.
+
+        if (this.calendarInfo) {
+          this.setCalendarInfoWidthTimeout = setTimeout(function () {
+            var calendarInfoWidth = _this2.state.calendarInfoWidth;
+
+            var calendarInfoPanelWidth = (0, _calculateDimension2['default'])(_this2.calendarInfo, 'width', true, true);
+            if (calendarInfoWidth !== calendarInfoPanelWidth) {
+              _this2.setState({
+                calendarInfoWidth: calendarInfoPanelWidth
+              });
+            }
+          }, transitionDuration);
+        }
+      }
+
+      return componentWillUpdate;
+    }()
+  }, {
+    key: 'componentDidUpdate',
+    value: function () {
+      function componentDidUpdate(prevProps) {
+        var _props2 = this.props,
+            orientation = _props2.orientation,
+            daySize = _props2.daySize,
+            isFocused = _props2.isFocused,
+            numberOfMonths = _props2.numberOfMonths;
+        var _state = this.state,
+            focusedDate = _state.focusedDate,
+            monthTitleHeight = _state.monthTitleHeight;
+
+
+        if (this.isHorizontal() && (orientation !== prevProps.orientation || daySize !== prevProps.daySize)) {
+          var visibleCalendarWeeks = this.calendarMonthWeeks.slice(1, numberOfMonths + 1);
+          var calendarMonthWeeksHeight = Math.max.apply(Math, [0].concat(_toConsumableArray(visibleCalendarWeeks))) * (daySize - 1);
+          var newMonthHeight = monthTitleHeight + calendarMonthWeeksHeight + 1;
+          this.adjustDayPickerHeight(newMonthHeight);
+        }
+
+        if (!prevProps.isFocused && isFocused && !focusedDate) {
+          this.container.focus();
+        }
+      }
+
+      return componentDidUpdate;
+    }()
+  }, {
+    key: 'componentWillUnmount',
+    value: function () {
+      function componentWillUnmount() {
+        clearTimeout(this.setCalendarInfoWidthTimeout);
+      }
+
+      return componentWillUnmount;
+    }()
+  }, {
+    key: 'onKeyDown',
+    value: function () {
+      function onKeyDown(e) {
+        e.stopPropagation();
+        if (!_constants.MODIFIER_KEY_NAMES.has(e.key)) {
+          this.throttledKeyDown(e);
+        }
+      }
+
+      return onKeyDown;
+    }()
+  }, {
+    key: 'onFinalKeyDown',
+    value: function () {
+      function onFinalKeyDown(e) {
+        this.setState({ withMouseInteractions: false });
+
+        var _props3 = this.props,
+            onBlur = _props3.onBlur,
+            isRTL = _props3.isRTL;
+        var _state2 = this.state,
+            focusedDate = _state2.focusedDate,
+            showKeyboardShortcuts = _state2.showKeyboardShortcuts;
+
+        if (!focusedDate) return;
+
+        var newFocusedDate = focusedDate.clone();
+
+        var didTransitionMonth = false;
+
+        // focus might be anywhere when the keyboard shortcuts panel is opened so we want to
+        // return it to wherever it was before when the panel was opened
+        var activeElement = (0, _getActiveElement2['default'])();
+        var onKeyboardShortcutsPanelClose = function () {
+          function onKeyboardShortcutsPanelClose() {
+            if (activeElement) activeElement.focus();
+          }
+
+          return onKeyboardShortcutsPanelClose;
+        }();
+
+        switch (e.key) {
+          case 'ArrowUp':
+            e.preventDefault();
+            newFocusedDate.subtract(1, 'week');
+            didTransitionMonth = this.maybeTransitionPrevMonth(newFocusedDate);
+            break;
+          case 'ArrowLeft':
+            e.preventDefault();
+            if (isRTL) {
+              newFocusedDate.add(1, 'day');
+            } else {
+              newFocusedDate.subtract(1, 'day');
+            }
+            didTransitionMonth = this.maybeTransitionPrevMonth(newFocusedDate);
+            break;
+          case 'Home':
+            e.preventDefault();
+            newFocusedDate.startOf('week');
+            didTransitionMonth = this.maybeTransitionPrevMonth(newFocusedDate);
+            break;
+          case 'PageUp':
+            e.preventDefault();
+            newFocusedDate.subtract(1, 'month');
+            didTransitionMonth = this.maybeTransitionPrevMonth(newFocusedDate);
+            break;
+
+          case 'ArrowDown':
+            e.preventDefault();
+            newFocusedDate.add(1, 'week');
+            didTransitionMonth = this.maybeTransitionNextMonth(newFocusedDate);
+            break;
+          case 'ArrowRight':
+            e.preventDefault();
+            if (isRTL) {
+              newFocusedDate.subtract(1, 'day');
+            } else {
+              newFocusedDate.add(1, 'day');
+            }
+            didTransitionMonth = this.maybeTransitionNextMonth(newFocusedDate);
+            break;
+          case 'End':
+            e.preventDefault();
+            newFocusedDate.endOf('week');
+            didTransitionMonth = this.maybeTransitionNextMonth(newFocusedDate);
+            break;
+          case 'PageDown':
+            e.preventDefault();
+            newFocusedDate.add(1, 'month');
+            didTransitionMonth = this.maybeTransitionNextMonth(newFocusedDate);
+            break;
+
+          case '?':
+            this.openKeyboardShortcutsPanel(onKeyboardShortcutsPanelClose);
+            break;
+
+          case 'Escape':
+            if (showKeyboardShortcuts) {
+              this.closeKeyboardShortcutsPanel();
+            } else {
+              onBlur();
+            }
+            break;
+
+          default:
+            break;
+        }
+
+        // If there was a month transition, do not update the focused date until the transition has
+        // completed. Otherwise, attempting to focus on a DOM node may interrupt the CSS animation. If
+        // didTransitionMonth is true, the focusedDate gets updated in #updateStateAfterMonthTransition
+        if (!didTransitionMonth) {
+          this.setState({
+            focusedDate: newFocusedDate
+          });
+        }
+      }
+
+      return onFinalKeyDown;
+    }()
+  }, {
+    key: 'onPrevMonthClick',
+    value: function () {
+      function onPrevMonthClick(nextFocusedDate, e) {
+        var _props4 = this.props,
+            daySize = _props4.daySize,
+            isRTL = _props4.isRTL,
+            numberOfMonths = _props4.numberOfMonths;
+        var _state3 = this.state,
+            calendarMonthWidth = _state3.calendarMonthWidth,
+            monthTitleHeight = _state3.monthTitleHeight;
+
+
+        if (e) e.preventDefault();
+
+        var translationValue = void 0;
+        if (this.isVertical()) {
+          var calendarMonthWeeksHeight = this.calendarMonthWeeks[0] * (daySize - 1);
+          translationValue = monthTitleHeight + calendarMonthWeeksHeight + 1;
+        } else if (this.isHorizontal()) {
+          translationValue = calendarMonthWidth;
+          if (isRTL) {
+            translationValue = -2 * calendarMonthWidth;
+          }
+
+          var visibleCalendarWeeks = this.calendarMonthWeeks.slice(0, numberOfMonths);
+          var _calendarMonthWeeksHeight = Math.max.apply(Math, [0].concat(_toConsumableArray(visibleCalendarWeeks))) * (daySize - 1);
+          var newMonthHeight = monthTitleHeight + _calendarMonthWeeksHeight + 1;
+          this.adjustDayPickerHeight(newMonthHeight);
+        }
+
+        this.setState({
+          monthTransition: PREV_TRANSITION,
+          translationValue: translationValue,
+          focusedDate: null,
+          nextFocusedDate: nextFocusedDate
+        });
+      }
+
+      return onPrevMonthClick;
+    }()
+  }, {
+    key: 'onMonthChange',
+    value: function () {
+      function onMonthChange(currentMonth) {
+        this.setCalendarMonthWeeks(currentMonth);
+        this.calculateAndSetDayPickerHeight();
+
+        // Translation value is a hack to force an invisible transition that
+        // properly rerenders the CalendarMonthGrid
+        this.setState({
+          monthTransition: MONTH_SELECTION_TRANSITION,
+          translationValue: 0.00001,
+          focusedDate: null,
+          nextFocusedDate: currentMonth,
+          currentMonth: currentMonth
+        });
+      }
+
+      return onMonthChange;
+    }()
+  }, {
+    key: 'onYearChange',
+    value: function () {
+      function onYearChange(currentMonth) {
+        this.setCalendarMonthWeeks(currentMonth);
+        this.calculateAndSetDayPickerHeight();
+
+        // Translation value is a hack to force an invisible transition that
+        // properly rerenders the CalendarMonthGrid
+        this.setState({
+          monthTransition: YEAR_SELECTION_TRANSITION,
+          translationValue: 0.0001,
+          focusedDate: null,
+          nextFocusedDate: currentMonth,
+          currentMonth: currentMonth
+        });
+      }
+
+      return onYearChange;
+    }()
+  }, {
+    key: 'onNextMonthClick',
+    value: function () {
+      function onNextMonthClick(nextFocusedDate, e) {
+        var _props5 = this.props,
+            isRTL = _props5.isRTL,
+            numberOfMonths = _props5.numberOfMonths,
+            daySize = _props5.daySize;
+        var _state4 = this.state,
+            calendarMonthWidth = _state4.calendarMonthWidth,
+            monthTitleHeight = _state4.monthTitleHeight;
+
+
+        if (e) e.preventDefault();
+
+        var translationValue = void 0;
+
+        if (this.isVertical()) {
+          var firstVisibleMonthWeeks = this.calendarMonthWeeks[1];
+          var calendarMonthWeeksHeight = firstVisibleMonthWeeks * (daySize - 1);
+          translationValue = -(monthTitleHeight + calendarMonthWeeksHeight + 1);
+        }
+
+        if (this.isHorizontal()) {
+          translationValue = -calendarMonthWidth;
+          if (isRTL) {
+            translationValue = 0;
+          }
+
+          var visibleCalendarWeeks = this.calendarMonthWeeks.slice(2, numberOfMonths + 2);
+          var _calendarMonthWeeksHeight2 = Math.max.apply(Math, [0].concat(_toConsumableArray(visibleCalendarWeeks))) * (daySize - 1);
+          var newMonthHeight = monthTitleHeight + _calendarMonthWeeksHeight2 + 1;
+          this.adjustDayPickerHeight(newMonthHeight);
+        }
+
+        this.setState({
+          monthTransition: NEXT_TRANSITION,
+          translationValue: translationValue,
+          focusedDate: null,
+          nextFocusedDate: nextFocusedDate
+        });
+      }
+
+      return onNextMonthClick;
+    }()
+  }, {
+    key: 'getFirstDayOfWeek',
+    value: function () {
+      function getFirstDayOfWeek() {
+        var firstDayOfWeek = this.props.firstDayOfWeek;
+
+        if (firstDayOfWeek == null) {
+          return _moment2['default'].localeData().firstDayOfWeek();
+        }
+
+        return firstDayOfWeek;
+      }
+
+      return getFirstDayOfWeek;
+    }()
+  }, {
+    key: 'getFirstVisibleIndex',
+    value: function () {
+      function getFirstVisibleIndex() {
+        var orientation = this.props.orientation;
+        var monthTransition = this.state.monthTransition;
+
+
+        if (orientation === _constants.VERTICAL_SCROLLABLE) return 0;
+
+        var firstVisibleMonthIndex = 1;
+        if (monthTransition === PREV_TRANSITION) {
+          firstVisibleMonthIndex -= 1;
+        } else if (monthTransition === NEXT_TRANSITION) {
+          firstVisibleMonthIndex += 1;
+        }
+
+        return firstVisibleMonthIndex;
+      }
+
+      return getFirstVisibleIndex;
+    }()
+  }, {
+    key: 'getFocusedDay',
+    value: function () {
+      function getFocusedDay(newMonth) {
+        var _props6 = this.props,
+            getFirstFocusableDay = _props6.getFirstFocusableDay,
+            numberOfMonths = _props6.numberOfMonths;
+
+
+        var focusedDate = void 0;
+        if (getFirstFocusableDay) {
+          focusedDate = getFirstFocusableDay(newMonth);
+        }
+
+        if (newMonth && (!focusedDate || !(0, _isDayVisible2['default'])(focusedDate, newMonth, numberOfMonths))) {
+          focusedDate = newMonth.clone().startOf('month');
+        }
+
+        return focusedDate;
+      }
+
+      return getFocusedDay;
+    }()
+  }, {
+    key: 'setMonthTitleHeight',
+    value: function () {
+      function setMonthTitleHeight(monthTitleHeight) {
+        var _this3 = this;
+
+        this.setState({
+          monthTitleHeight: monthTitleHeight
+        }, function () {
+          _this3.calculateAndSetDayPickerHeight();
+        });
+      }
+
+      return setMonthTitleHeight;
+    }()
+  }, {
+    key: 'setCalendarMonthWeeks',
+    value: function () {
+      function setCalendarMonthWeeks(currentMonth) {
+        var numberOfMonths = this.props.numberOfMonths;
+
+
+        this.calendarMonthWeeks = [];
+        var month = currentMonth.clone().subtract(1, 'months');
+        var firstDayOfWeek = this.getFirstDayOfWeek();
+        for (var i = 0; i < numberOfMonths + 2; i += 1) {
+          var numberOfWeeks = (0, _getNumberOfCalendarMonthWeeks2['default'])(month, firstDayOfWeek);
+          this.calendarMonthWeeks.push(numberOfWeeks);
+          month = month.add(1, 'months');
+        }
+      }
+
+      return setCalendarMonthWeeks;
+    }()
+  }, {
+    key: 'setContainerRef',
+    value: function () {
+      function setContainerRef(ref) {
+        this.container = ref;
+      }
+
+      return setContainerRef;
+    }()
+  }, {
+    key: 'setCalendarInfoRef',
+    value: function () {
+      function setCalendarInfoRef(ref) {
+        this.calendarInfo = ref;
+      }
+
+      return setCalendarInfoRef;
+    }()
+  }, {
+    key: 'setTransitionContainerRef',
+    value: function () {
+      function setTransitionContainerRef(ref) {
+        this.transitionContainer = ref;
+      }
+
+      return setTransitionContainerRef;
+    }()
+  }, {
+    key: 'maybeTransitionNextMonth',
+    value: function () {
+      function maybeTransitionNextMonth(newFocusedDate) {
+        var numberOfMonths = this.props.numberOfMonths;
+        var _state5 = this.state,
+            currentMonth = _state5.currentMonth,
+            focusedDate = _state5.focusedDate;
+
+
+        var newFocusedDateMonth = newFocusedDate.month();
+        var focusedDateMonth = focusedDate.month();
+        var isNewFocusedDateVisible = (0, _isDayVisible2['default'])(newFocusedDate, currentMonth, numberOfMonths);
+        if (newFocusedDateMonth !== focusedDateMonth && !isNewFocusedDateVisible) {
+          this.onNextMonthClick(newFocusedDate);
+          return true;
+        }
+
+        return false;
+      }
+
+      return maybeTransitionNextMonth;
+    }()
+  }, {
+    key: 'maybeTransitionPrevMonth',
+    value: function () {
+      function maybeTransitionPrevMonth(newFocusedDate) {
+        var numberOfMonths = this.props.numberOfMonths;
+        var _state6 = this.state,
+            currentMonth = _state6.currentMonth,
+            focusedDate = _state6.focusedDate;
+
+
+        var newFocusedDateMonth = newFocusedDate.month();
+        var focusedDateMonth = focusedDate.month();
+        var isNewFocusedDateVisible = (0, _isDayVisible2['default'])(newFocusedDate, currentMonth, numberOfMonths);
+        if (newFocusedDateMonth !== focusedDateMonth && !isNewFocusedDateVisible) {
+          this.onPrevMonthClick(newFocusedDate);
+          return true;
+        }
+
+        return false;
+      }
+
+      return maybeTransitionPrevMonth;
+    }()
+  }, {
+    key: 'multiplyScrollableMonths',
+    value: function () {
+      function multiplyScrollableMonths(e) {
+        var onMultiplyScrollableMonths = this.props.onMultiplyScrollableMonths;
+
+        if (e) e.preventDefault();
+
+        if (onMultiplyScrollableMonths) onMultiplyScrollableMonths(e);
+
+        this.setState(function (_ref) {
+          var scrollableMonthMultiple = _ref.scrollableMonthMultiple;
+          return {
+            scrollableMonthMultiple: scrollableMonthMultiple + 1
+          };
+        });
+      }
+
+      return multiplyScrollableMonths;
+    }()
+  }, {
+    key: 'isHorizontal',
+    value: function () {
+      function isHorizontal() {
+        var orientation = this.props.orientation;
+
+        return orientation === _constants.HORIZONTAL_ORIENTATION;
+      }
+
+      return isHorizontal;
+    }()
+  }, {
+    key: 'isVertical',
+    value: function () {
+      function isVertical() {
+        var orientation = this.props.orientation;
+
+        return orientation === _constants.VERTICAL_ORIENTATION || orientation === _constants.VERTICAL_SCROLLABLE;
+      }
+
+      return isVertical;
+    }()
+  }, {
+    key: 'updateStateAfterMonthTransition',
+    value: function () {
+      function updateStateAfterMonthTransition() {
+        var _this4 = this;
+
+        var _props7 = this.props,
+            onPrevMonthClick = _props7.onPrevMonthClick,
+            onNextMonthClick = _props7.onNextMonthClick,
+            numberOfMonths = _props7.numberOfMonths,
+            onMonthChange = _props7.onMonthChange,
+            onYearChange = _props7.onYearChange,
+            isRTL = _props7.isRTL;
+        var _state7 = this.state,
+            currentMonth = _state7.currentMonth,
+            monthTransition = _state7.monthTransition,
+            focusedDate = _state7.focusedDate,
+            nextFocusedDate = _state7.nextFocusedDate,
+            withMouseInteractions = _state7.withMouseInteractions,
+            calendarMonthWidth = _state7.calendarMonthWidth;
+
+
+        if (!monthTransition) return;
+
+        var newMonth = currentMonth.clone();
+        var firstDayOfWeek = this.getFirstDayOfWeek();
+        if (monthTransition === PREV_TRANSITION) {
+          newMonth.subtract(1, 'month');
+          if (onPrevMonthClick) onPrevMonthClick(newMonth);
+          var newInvisibleMonth = newMonth.clone().subtract(1, 'month');
+          var numberOfWeeks = (0, _getNumberOfCalendarMonthWeeks2['default'])(newInvisibleMonth, firstDayOfWeek);
+          this.calendarMonthWeeks = [numberOfWeeks].concat(_toConsumableArray(this.calendarMonthWeeks.slice(0, -1)));
+        } else if (monthTransition === NEXT_TRANSITION) {
+          newMonth.add(1, 'month');
+          if (onNextMonthClick) onNextMonthClick(newMonth);
+          var _newInvisibleMonth = newMonth.clone().add(numberOfMonths, 'month');
+          var _numberOfWeeks = (0, _getNumberOfCalendarMonthWeeks2['default'])(_newInvisibleMonth, firstDayOfWeek);
+          this.calendarMonthWeeks = [].concat(_toConsumableArray(this.calendarMonthWeeks.slice(1)), [_numberOfWeeks]);
+        } else if (monthTransition === MONTH_SELECTION_TRANSITION) {
+          if (onMonthChange) onMonthChange(newMonth);
+        } else if (monthTransition === YEAR_SELECTION_TRANSITION) {
+          if (onYearChange) onYearChange(newMonth);
+        }
+
+        var newFocusedDate = null;
+        if (nextFocusedDate) {
+          newFocusedDate = nextFocusedDate;
+        } else if (!focusedDate && !withMouseInteractions) {
+          newFocusedDate = this.getFocusedDay(newMonth);
+        }
+
+        this.setState({
+          currentMonth: newMonth,
+          monthTransition: null,
+          translationValue: isRTL && this.isHorizontal() ? -calendarMonthWidth : 0,
+          nextFocusedDate: null,
+          focusedDate: newFocusedDate
+        }, function () {
+          // we don't want to focus on the relevant calendar day after a month transition
+          // if the user is navigating around using a mouse
+          if (withMouseInteractions) {
+            var activeElement = (0, _getActiveElement2['default'])();
+            if (activeElement && activeElement !== document.body && _this4.container.contains(activeElement)) {
+              activeElement.blur();
+            }
+          }
+        });
+      }
+
+      return updateStateAfterMonthTransition;
+    }()
+  }, {
+    key: 'adjustDayPickerHeight',
+    value: function () {
+      function adjustDayPickerHeight(newMonthHeight) {
+        var _this5 = this;
+
+        var monthHeight = newMonthHeight + MONTH_PADDING;
+        if (monthHeight !== this.calendarMonthGridHeight) {
+          this.transitionContainer.style.height = String(monthHeight) + 'px';
+          if (!this.calendarMonthGridHeight) {
+            setTimeout(function () {
+              _this5.setState({ hasSetHeight: true });
+            }, 0);
+          }
+          this.calendarMonthGridHeight = monthHeight;
+        }
+      }
+
+      return adjustDayPickerHeight;
+    }()
+  }, {
+    key: 'calculateAndSetDayPickerHeight',
+    value: function () {
+      function calculateAndSetDayPickerHeight() {
+        var _props8 = this.props,
+            daySize = _props8.daySize,
+            numberOfMonths = _props8.numberOfMonths;
+        var monthTitleHeight = this.state.monthTitleHeight;
+
+
+        var visibleCalendarWeeks = this.calendarMonthWeeks.slice(1, numberOfMonths + 1);
+        var calendarMonthWeeksHeight = Math.max.apply(Math, [0].concat(_toConsumableArray(visibleCalendarWeeks))) * (daySize - 1);
+        var newMonthHeight = monthTitleHeight + calendarMonthWeeksHeight + 1;
+
+        if (this.isHorizontal()) {
+          this.adjustDayPickerHeight(newMonthHeight);
+        }
+      }
+
+      return calculateAndSetDayPickerHeight;
+    }()
+  }, {
+    key: 'openKeyboardShortcutsPanel',
+    value: function () {
+      function openKeyboardShortcutsPanel(onCloseCallBack) {
+        this.setState({
+          showKeyboardShortcuts: true,
+          onKeyboardShortcutsPanelClose: onCloseCallBack
+        });
+      }
+
+      return openKeyboardShortcutsPanel;
+    }()
+  }, {
+    key: 'closeKeyboardShortcutsPanel',
+    value: function () {
+      function closeKeyboardShortcutsPanel() {
+        var onKeyboardShortcutsPanelClose = this.state.onKeyboardShortcutsPanelClose;
+
+
+        if (onKeyboardShortcutsPanelClose) {
+          onKeyboardShortcutsPanelClose();
+        }
+
+        this.setState({
+          onKeyboardShortcutsPanelClose: null,
+          showKeyboardShortcuts: false
+        });
+      }
+
+      return closeKeyboardShortcutsPanel;
+    }()
+  }, {
+    key: 'renderNavigation',
+    value: function () {
+      function renderNavigation() {
+        var _this6 = this;
+
+        var _props9 = this.props,
+            navPrev = _props9.navPrev,
+            navNext = _props9.navNext,
+            noNavButtons = _props9.noNavButtons,
+            orientation = _props9.orientation,
+            phrases = _props9.phrases,
+            isRTL = _props9.isRTL;
+
+
+        if (noNavButtons) {
+          return null;
+        }
+
+        var onNextMonthClick = void 0;
+        if (orientation === _constants.VERTICAL_SCROLLABLE) {
+          onNextMonthClick = this.multiplyScrollableMonths;
+        } else {
+          onNextMonthClick = function () {
+            function onNextMonthClick(e) {
+              _this6.onNextMonthClick(null, e);
+            }
+
+            return onNextMonthClick;
+          }();
+        }
+
+        return _react2['default'].createElement(_DayPickerNavigation2['default'], {
+          onPrevMonthClick: function () {
+            function onPrevMonthClick(e) {
+              _this6.onPrevMonthClick(null, e);
+            }
+
+            return onPrevMonthClick;
+          }(),
+          onNextMonthClick: onNextMonthClick,
+          navPrev: navPrev,
+          navNext: navNext,
+          orientation: orientation,
+          phrases: phrases,
+          isRTL: isRTL
+        });
+      }
+
+      return renderNavigation;
+    }()
+  }, {
+    key: 'renderWeekHeader',
+    value: function () {
+      function renderWeekHeader(index) {
+        var _props10 = this.props,
+            daySize = _props10.daySize,
+            horizontalMonthPadding = _props10.horizontalMonthPadding,
+            orientation = _props10.orientation,
+            weekDayFormat = _props10.weekDayFormat,
+            styles = _props10.styles;
+        var calendarMonthWidth = this.state.calendarMonthWidth;
+
+        var verticalScrollable = orientation === _constants.VERTICAL_SCROLLABLE;
+        var horizontalStyle = {
+          left: index * calendarMonthWidth
+        };
+        var verticalStyle = {
+          marginLeft: -calendarMonthWidth / 2
+        };
+
+        var weekHeaderStyle = {}; // no styles applied to the vertical-scrollable orientation
+        if (this.isHorizontal()) {
+          weekHeaderStyle = horizontalStyle;
+        } else if (this.isVertical() && !verticalScrollable) {
+          weekHeaderStyle = verticalStyle;
+        }
+
+        var firstDayOfWeek = this.getFirstDayOfWeek();
+
+        var header = [];
+        for (var i = 0; i < 7; i += 1) {
+          header.push(_react2['default'].createElement(
+            'li',
+            _extends({ key: i }, (0, _reactWithStyles.css)(styles.DayPicker_weekHeader_li, { width: daySize })),
+            _react2['default'].createElement(
+              'small',
+              null,
+              (0, _moment2['default'])().day((i + firstDayOfWeek) % 7).format(weekDayFormat)
+            )
+          ));
+        }
+
+        return _react2['default'].createElement(
+          'div',
+          _extends({}, (0, _reactWithStyles.css)(styles.DayPicker_weekHeader, this.isVertical() && styles.DayPicker_weekHeader__vertical, verticalScrollable && styles.DayPicker_weekHeader__verticalScrollable, weekHeaderStyle, { padding: '0 ' + String(horizontalMonthPadding) + 'px' }), {
+            key: 'week-' + String(index)
+          }),
+          _react2['default'].createElement(
+            'ul',
+            (0, _reactWithStyles.css)(styles.DayPicker_weekHeader_ul),
+            header
+          )
+        );
+      }
+
+      return renderWeekHeader;
+    }()
+  }, {
+    key: 'render',
+    value: function () {
+      function render() {
+        var _this7 = this;
+
+        var _state8 = this.state,
+            calendarMonthWidth = _state8.calendarMonthWidth,
+            currentMonth = _state8.currentMonth,
+            monthTransition = _state8.monthTransition,
+            translationValue = _state8.translationValue,
+            scrollableMonthMultiple = _state8.scrollableMonthMultiple,
+            focusedDate = _state8.focusedDate,
+            showKeyboardShortcuts = _state8.showKeyboardShortcuts,
+            isTouch = _state8.isTouchDevice,
+            hasSetHeight = _state8.hasSetHeight,
+            calendarInfoWidth = _state8.calendarInfoWidth,
+            monthTitleHeight = _state8.monthTitleHeight;
+        var _props11 = this.props,
+            enableOutsideDays = _props11.enableOutsideDays,
+            numberOfMonths = _props11.numberOfMonths,
+            orientation = _props11.orientation,
+            modifiers = _props11.modifiers,
+            withPortal = _props11.withPortal,
+            onDayClick = _props11.onDayClick,
+            onDayMouseEnter = _props11.onDayMouseEnter,
+            onDayMouseLeave = _props11.onDayMouseLeave,
+            firstDayOfWeek = _props11.firstDayOfWeek,
+            renderMonthText = _props11.renderMonthText,
+            renderCalendarDay = _props11.renderCalendarDay,
+            renderDayContents = _props11.renderDayContents,
+            renderCalendarInfo = _props11.renderCalendarInfo,
+            renderMonthElement = _props11.renderMonthElement,
+            calendarInfoPosition = _props11.calendarInfoPosition,
+            hideKeyboardShortcutsPanel = _props11.hideKeyboardShortcutsPanel,
+            onOutsideClick = _props11.onOutsideClick,
+            monthFormat = _props11.monthFormat,
+            daySize = _props11.daySize,
+            isFocused = _props11.isFocused,
+            isRTL = _props11.isRTL,
+            styles = _props11.styles,
+            theme = _props11.theme,
+            phrases = _props11.phrases,
+            verticalHeight = _props11.verticalHeight,
+            dayAriaLabelFormat = _props11.dayAriaLabelFormat,
+            noBorder = _props11.noBorder,
+            transitionDuration = _props11.transitionDuration,
+            verticalBorderSpacing = _props11.verticalBorderSpacing,
+            horizontalMonthPadding = _props11.horizontalMonthPadding;
+        var dayPickerHorizontalPadding = theme.reactDates.spacing.dayPickerHorizontalPadding;
+
+
+        var isHorizontal = this.isHorizontal();
+
+        var numOfWeekHeaders = this.isVertical() ? 1 : numberOfMonths;
+        var weekHeaders = [];
+        for (var i = 0; i < numOfWeekHeaders; i += 1) {
+          weekHeaders.push(this.renderWeekHeader(i));
+        }
+
+        var verticalScrollable = orientation === _constants.VERTICAL_SCROLLABLE;
+        var height = void 0;
+        if (isHorizontal) {
+          height = this.calendarMonthGridHeight;
+        } else if (this.isVertical() && !verticalScrollable && !withPortal) {
+          // If the user doesn't set a desired height,
+          // we default back to this kind of made-up value that generally looks good
+          height = verticalHeight || 1.75 * calendarMonthWidth;
+        }
+
+        var isCalendarMonthGridAnimating = monthTransition !== null;
+
+        var shouldFocusDate = !isCalendarMonthGridAnimating && isFocused;
+
+        var keyboardShortcutButtonLocation = _DayPickerKeyboardShortcuts.BOTTOM_RIGHT;
+        if (this.isVertical()) {
+          keyboardShortcutButtonLocation = withPortal ? _DayPickerKeyboardShortcuts.TOP_LEFT : _DayPickerKeyboardShortcuts.TOP_RIGHT;
+        }
+
+        var shouldAnimateHeight = isHorizontal && hasSetHeight;
+
+        var calendarInfoPositionTop = calendarInfoPosition === _constants.INFO_POSITION_TOP;
+        var calendarInfoPositionBottom = calendarInfoPosition === _constants.INFO_POSITION_BOTTOM;
+        var calendarInfoPositionBefore = calendarInfoPosition === _constants.INFO_POSITION_BEFORE;
+        var calendarInfoPositionAfter = calendarInfoPosition === _constants.INFO_POSITION_AFTER;
+        var calendarInfoIsInline = calendarInfoPositionBefore || calendarInfoPositionAfter;
+
+        var calendarInfo = renderCalendarInfo && _react2['default'].createElement(
+          'div',
+          _extends({
+            ref: this.setCalendarInfoRef
+          }, (0, _reactWithStyles.css)(calendarInfoIsInline && styles.DayPicker_calendarInfo__horizontal)),
+          renderCalendarInfo()
+        );
+
+        var calendarInfoPanelWidth = renderCalendarInfo && calendarInfoIsInline ? calendarInfoWidth : 0;
+
+        var firstVisibleMonthIndex = this.getFirstVisibleIndex();
+        var wrapperHorizontalWidth = calendarMonthWidth * numberOfMonths + 2 * dayPickerHorizontalPadding;
+        // Adding `1px` because of whitespace between 2 inline-block
+        var fullHorizontalWidth = wrapperHorizontalWidth + calendarInfoPanelWidth + 1;
+
+        var transitionContainerStyle = {
+          width: isHorizontal && wrapperHorizontalWidth,
+          height: height
+        };
+
+        var dayPickerWrapperStyle = {
+          width: isHorizontal && wrapperHorizontalWidth
+        };
+
+        var dayPickerStyle = {
+          width: isHorizontal && fullHorizontalWidth,
+
+          // These values are to center the datepicker (approximately) on the page
+          marginLeft: isHorizontal && withPortal ? -fullHorizontalWidth / 2 : null,
+          marginTop: isHorizontal && withPortal ? -calendarMonthWidth / 2 : null
+        };
+
+        return _react2['default'].createElement(
+          'div',
+          _extends({
+            role: 'application',
+            'aria-label': phrases.calendarLabel
+          }, (0, _reactWithStyles.css)(styles.DayPicker, isHorizontal && styles.DayPicker__horizontal, verticalScrollable && styles.DayPicker__verticalScrollable, isHorizontal && withPortal && styles.DayPicker_portal__horizontal, this.isVertical() && withPortal && styles.DayPicker_portal__vertical, dayPickerStyle, !monthTitleHeight && styles.DayPicker__hidden, !noBorder && styles.DayPicker__withBorder)),
+          _react2['default'].createElement(
+            _reactOutsideClickHandler2['default'],
+            { onOutsideClick: onOutsideClick },
+            (calendarInfoPositionTop || calendarInfoPositionBefore) && calendarInfo,
+            _react2['default'].createElement(
+              'div',
+              (0, _reactWithStyles.css)(dayPickerWrapperStyle, calendarInfoIsInline && isHorizontal && styles.DayPicker_wrapper__horizontal),
+              _react2['default'].createElement(
+                'div',
+                _extends({}, (0, _reactWithStyles.css)(styles.DayPicker_weekHeaders, isHorizontal && styles.DayPicker_weekHeaders__horizontal), {
+                  'aria-hidden': 'true',
+                  role: 'presentation'
+                }),
+                weekHeaders
+              ),
+              _react2['default'].createElement(
+                'div',
+                _extends({}, (0, _reactWithStyles.css)(styles.DayPicker_focusRegion), {
+                  ref: this.setContainerRef,
+                  onClick: function () {
+                    function onClick(e) {
+                      e.stopPropagation();
+                    }
+
+                    return onClick;
+                  }(),
+                  onKeyDown: this.onKeyDown,
+                  onMouseUp: function () {
+                    function onMouseUp() {
+                      _this7.setState({ withMouseInteractions: true });
+                    }
+
+                    return onMouseUp;
+                  }(),
+                  role: 'region',
+                  tabIndex: -1
+                }),
+                !verticalScrollable && this.renderNavigation(),
+                _react2['default'].createElement(
+                  'div',
+                  _extends({}, (0, _reactWithStyles.css)(styles.DayPicker_transitionContainer, shouldAnimateHeight && styles.DayPicker_transitionContainer__horizontal, this.isVertical() && styles.DayPicker_transitionContainer__vertical, verticalScrollable && styles.DayPicker_transitionContainer__verticalScrollable, transitionContainerStyle), {
+                    ref: this.setTransitionContainerRef
+                  }),
+                  _react2['default'].createElement(_CalendarMonthGrid2['default'], {
+                    setMonthTitleHeight: !monthTitleHeight ? this.setMonthTitleHeight : undefined,
+                    translationValue: translationValue,
+                    enableOutsideDays: enableOutsideDays,
+                    firstVisibleMonthIndex: firstVisibleMonthIndex,
+                    initialMonth: currentMonth,
+                    isAnimating: isCalendarMonthGridAnimating,
+                    modifiers: modifiers,
+                    orientation: orientation,
+                    numberOfMonths: numberOfMonths * scrollableMonthMultiple,
+                    onDayClick: onDayClick,
+                    onDayMouseEnter: onDayMouseEnter,
+                    onDayMouseLeave: onDayMouseLeave,
+                    onMonthChange: this.onMonthChange,
+                    onYearChange: this.onYearChange,
+                    renderMonthText: renderMonthText,
+                    renderCalendarDay: renderCalendarDay,
+                    renderDayContents: renderDayContents,
+                    renderMonthElement: renderMonthElement,
+                    onMonthTransitionEnd: this.updateStateAfterMonthTransition,
+                    monthFormat: monthFormat,
+                    daySize: daySize,
+                    firstDayOfWeek: firstDayOfWeek,
+                    isFocused: shouldFocusDate,
+                    focusedDate: focusedDate,
+                    phrases: phrases,
+                    isRTL: isRTL,
+                    dayAriaLabelFormat: dayAriaLabelFormat,
+                    transitionDuration: transitionDuration,
+                    verticalBorderSpacing: verticalBorderSpacing,
+                    horizontalMonthPadding: horizontalMonthPadding
+                  }),
+                  verticalScrollable && this.renderNavigation()
+                ),
+                !isTouch && !hideKeyboardShortcutsPanel && _react2['default'].createElement(_DayPickerKeyboardShortcuts2['default'], {
+                  block: this.isVertical() && !withPortal,
+                  buttonLocation: keyboardShortcutButtonLocation,
+                  showKeyboardShortcutsPanel: showKeyboardShortcuts,
+                  openKeyboardShortcutsPanel: this.openKeyboardShortcutsPanel,
+                  closeKeyboardShortcutsPanel: this.closeKeyboardShortcutsPanel,
+                  phrases: phrases
+                })
+              )
+            ),
+            (calendarInfoPositionBottom || calendarInfoPositionAfter) && calendarInfo
+          )
+        );
+      }
+
+      return render;
+    }()
+  }]);
+
+  return DayPicker;
+}(_react2['default'].Component);
+
+DayPicker.propTypes = propTypes;
+DayPicker.defaultProps = defaultProps;
+
+exports.PureDayPicker = DayPicker;
+exports["default"] = (0, _reactWithStyles.withStyles)(function (_ref2) {
+  var _ref2$reactDates = _ref2.reactDates,
+      color = _ref2$reactDates.color,
+      font = _ref2$reactDates.font,
+      noScrollBarOnVerticalScrollable = _ref2$reactDates.noScrollBarOnVerticalScrollable,
+      spacing = _ref2$reactDates.spacing,
+      zIndex = _ref2$reactDates.zIndex;
+  return {
+    DayPicker: {
+      background: color.background,
+      position: 'relative',
+      textAlign: 'left'
+    },
+
+    DayPicker__horizontal: {
+      background: color.background
+    },
+
+    DayPicker__verticalScrollable: {
+      height: '100%'
+    },
+
+    DayPicker__hidden: {
+      visibility: 'hidden'
+    },
+
+    DayPicker__withBorder: {
+      boxShadow: '0 2px 6px rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.07)',
+      borderRadius: 3
+    },
+
+    DayPicker_portal__horizontal: {
+      boxShadow: 'none',
+      position: 'absolute',
+      left: '50%',
+      top: '50%'
+    },
+
+    DayPicker_portal__vertical: {
+      position: 'initial'
+    },
+
+    DayPicker_focusRegion: {
+      outline: 'none'
+    },
+
+    DayPicker_calendarInfo__horizontal: {
+      display: 'inline-block',
+      verticalAlign: 'top'
+    },
+
+    DayPicker_wrapper__horizontal: {
+      display: 'inline-block',
+      verticalAlign: 'top'
+    },
+
+    DayPicker_weekHeaders: {
+      position: 'relative'
+    },
+
+    DayPicker_weekHeaders__horizontal: {
+      marginLeft: spacing.dayPickerHorizontalPadding
+    },
+
+    DayPicker_weekHeader: {
+      color: color.placeholderText,
+      position: 'absolute',
+      top: 62,
+      zIndex: zIndex + 2,
+      textAlign: 'left'
+    },
+
+    DayPicker_weekHeader__vertical: {
+      left: '50%'
+    },
+
+    DayPicker_weekHeader__verticalScrollable: {
+      top: 0,
+      display: 'table-row',
+      borderBottom: '1px solid ' + String(color.core.border),
+      background: color.background,
+      marginLeft: 0,
+      left: 0,
+      width: '100%',
+      textAlign: 'center'
+    },
+
+    DayPicker_weekHeader_ul: {
+      listStyle: 'none',
+      margin: '1px 0',
+      paddingLeft: 0,
+      paddingRight: 0,
+      fontSize: font.size
+    },
+
+    DayPicker_weekHeader_li: {
+      display: 'inline-block',
+      textAlign: 'center'
+    },
+
+    DayPicker_transitionContainer: {
+      position: 'relative',
+      overflow: 'hidden',
+      borderRadius: 3
+    },
+
+    DayPicker_transitionContainer__horizontal: {
+      transition: 'height 0.2s ease-in-out'
+    },
+
+    DayPicker_transitionContainer__vertical: {
+      width: '100%'
+    },
+
+    DayPicker_transitionContainer__verticalScrollable: (0, _object2['default'])({
+      paddingTop: 20,
+      height: '100%',
+      position: 'absolute',
+      top: 0,
+      bottom: 0,
+      right: 0,
+      left: 0,
+      overflowY: 'scroll'
+    }, noScrollBarOnVerticalScrollable && {
+      '-webkitOverflowScrolling': 'touch',
+      '::-webkit-scrollbar': {
+        '-webkit-appearance': 'none',
+        display: 'none'
+      }
+    })
+  };
+})(DayPicker);
+
+/***/ }),
+
+/***/ 600:
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports.BOTTOM_RIGHT = exports.TOP_RIGHT = exports.TOP_LEFT = undefined;
+
+var _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; };
+
+var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
+
+var _object = __webpack_require__(4011);
+
+var _object2 = _interopRequireDefault(_object);
+
+var _react = __webpack_require__(9196);
+
+var _react2 = _interopRequireDefault(_react);
+
+var _propTypes = __webpack_require__(2652);
+
+var _propTypes2 = _interopRequireDefault(_propTypes);
+
+var _airbnbPropTypes = __webpack_require__(4882);
+
+var _reactWithStyles = __webpack_require__(3576);
+
+var _defaultPhrases = __webpack_require__(6030);
+
+var _getPhrasePropTypes = __webpack_require__(2893);
+
+var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);
+
+var _KeyboardShortcutRow = __webpack_require__(5820);
+
+var _KeyboardShortcutRow2 = _interopRequireDefault(_KeyboardShortcutRow);
+
+var _CloseButton = __webpack_require__(6973);
+
+var _CloseButton2 = _interopRequireDefault(_CloseButton);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
+
+function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var TOP_LEFT = exports.TOP_LEFT = 'top-left';
+var TOP_RIGHT = exports.TOP_RIGHT = 'top-right';
+var BOTTOM_RIGHT = exports.BOTTOM_RIGHT = 'bottom-right';
+
+var propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, {
+  block: _propTypes2['default'].bool,
+  buttonLocation: _propTypes2['default'].oneOf([TOP_LEFT, TOP_RIGHT, BOTTOM_RIGHT]),
+  showKeyboardShortcutsPanel: _propTypes2['default'].bool,
+  openKeyboardShortcutsPanel: _propTypes2['default'].func,
+  closeKeyboardShortcutsPanel: _propTypes2['default'].func,
+  phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.DayPickerKeyboardShortcutsPhrases))
+}));
+
+var defaultProps = {
+  block: false,
+  buttonLocation: BOTTOM_RIGHT,
+  showKeyboardShortcutsPanel: false,
+  openKeyboardShortcutsPanel: function () {
+    function openKeyboardShortcutsPanel() {}
+
+    return openKeyboardShortcutsPanel;
+  }(),
+  closeKeyboardShortcutsPanel: function () {
+    function closeKeyboardShortcutsPanel() {}
+
+    return closeKeyboardShortcutsPanel;
+  }(),
+
+  phrases: _defaultPhrases.DayPickerKeyboardShortcutsPhrases
+};
+
+function getKeyboardShortcuts(phrases) {
+  return [{
+    unicode: '↵',
+    label: phrases.enterKey,
+    action: phrases.selectFocusedDate
+  }, {
+    unicode: '←/→',
+    label: phrases.leftArrowRightArrow,
+    action: phrases.moveFocusByOneDay
+  }, {
+    unicode: '↑/↓',
+    label: phrases.upArrowDownArrow,
+    action: phrases.moveFocusByOneWeek
+  }, {
+    unicode: 'PgUp/PgDn',
+    label: phrases.pageUpPageDown,
+    action: phrases.moveFocusByOneMonth
+  }, {
+    unicode: 'Home/End',
+    label: phrases.homeEnd,
+    action: phrases.moveFocustoStartAndEndOfWeek
+  }, {
+    unicode: 'Esc',
+    label: phrases.escape,
+    action: phrases.returnFocusToInput
+  }, {
+    unicode: '?',
+    label: phrases.questionMark,
+    action: phrases.openThisPanel
+  }];
+}
+
+var DayPickerKeyboardShortcuts = function (_React$Component) {
+  _inherits(DayPickerKeyboardShortcuts, _React$Component);
+
+  function DayPickerKeyboardShortcuts() {
+    var _ref;
+
+    _classCallCheck(this, DayPickerKeyboardShortcuts);
+
+    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
+      args[_key] = arguments[_key];
+    }
+
+    var _this = _possibleConstructorReturn(this, (_ref = DayPickerKeyboardShortcuts.__proto__ || Object.getPrototypeOf(DayPickerKeyboardShortcuts)).call.apply(_ref, [this].concat(args)));
+
+    var phrases = _this.props.phrases;
+
+    _this.keyboardShortcuts = getKeyboardShortcuts(phrases);
+
+    _this.onShowKeyboardShortcutsButtonClick = _this.onShowKeyboardShortcutsButtonClick.bind(_this);
+    _this.setShowKeyboardShortcutsButtonRef = _this.setShowKeyboardShortcutsButtonRef.bind(_this);
+    _this.setHideKeyboardShortcutsButtonRef = _this.setHideKeyboardShortcutsButtonRef.bind(_this);
+    _this.handleFocus = _this.handleFocus.bind(_this);
+    _this.onKeyDown = _this.onKeyDown.bind(_this);
+    return _this;
+  }
+
+  _createClass(DayPickerKeyboardShortcuts, [{
+    key: 'componentWillReceiveProps',
+    value: function () {
+      function componentWillReceiveProps(nextProps) {
+        var phrases = this.props.phrases;
+
+        if (nextProps.phrases !== phrases) {
+          this.keyboardShortcuts = getKeyboardShortcuts(nextProps.phrases);
+        }
+      }
+
+      return componentWillReceiveProps;
+    }()
+  }, {
+    key: 'componentDidUpdate',
+    value: function () {
+      function componentDidUpdate() {
+        this.handleFocus();
+      }
+
+      return componentDidUpdate;
+    }()
+  }, {
+    key: 'onKeyDown',
+    value: function () {
+      function onKeyDown(e) {
+        e.stopPropagation();
+
+        var closeKeyboardShortcutsPanel = this.props.closeKeyboardShortcutsPanel;
+        // Because the close button is the only focusable element inside of the panel, this
+        // amounts to a very basic focus trap. The user can exit the panel by "pressing" the
+        // close button or hitting escape
+
+        switch (e.key) {
+          case 'Enter':
+          case ' ':
+          case 'Spacebar': // for older browsers
+          case 'Escape':
+            closeKeyboardShortcutsPanel();
+            break;
+
+          // do nothing - this allows the up and down arrows continue their
+          // default behavior of scrolling the content of the Keyboard Shortcuts Panel
+          // which is needed when only a single month is shown for instance.
+          case 'ArrowUp':
+          case 'ArrowDown':
+            break;
+
+          // completely block the rest of the keys that have functionality outside of this panel
+          case 'Tab':
+          case 'Home':
+          case 'End':
+          case 'PageUp':
+          case 'PageDown':
+          case 'ArrowLeft':
+          case 'ArrowRight':
+            e.preventDefault();
+            break;
+
+          default:
+            break;
+        }
+      }
+
+      return onKeyDown;
+    }()
+  }, {
+    key: 'onShowKeyboardShortcutsButtonClick',
+    value: function () {
+      function onShowKeyboardShortcutsButtonClick() {
+        var _this2 = this;
+
+        var openKeyboardShortcutsPanel = this.props.openKeyboardShortcutsPanel;
+
+        // we want to return focus to this button after closing the keyboard shortcuts panel
+
+        openKeyboardShortcutsPanel(function () {
+          _this2.showKeyboardShortcutsButton.focus();
+        });
+      }
+
+      return onShowKeyboardShortcutsButtonClick;
+    }()
+  }, {
+    key: 'setShowKeyboardShortcutsButtonRef',
+    value: function () {
+      function setShowKeyboardShortcutsButtonRef(ref) {
+        this.showKeyboardShortcutsButton = ref;
+      }
+
+      return setShowKeyboardShortcutsButtonRef;
+    }()
+  }, {
+    key: 'setHideKeyboardShortcutsButtonRef',
+    value: function () {
+      function setHideKeyboardShortcutsButtonRef(ref) {
+        this.hideKeyboardShortcutsButton = ref;
+      }
+
+      return setHideKeyboardShortcutsButtonRef;
+    }()
+  }, {
+    key: 'handleFocus',
+    value: function () {
+      function handleFocus() {
+        if (this.hideKeyboardShortcutsButton) {
+          // automatically move focus into the dialog by moving
+          // to the only interactive element, the hide button
+          this.hideKeyboardShortcutsButton.focus();
+        }
+      }
+
+      return handleFocus;
+    }()
+  }, {
+    key: 'render',
+    value: function () {
+      function render() {
+        var _this3 = this;
+
+        var _props = this.props,
+            block = _props.block,
+            buttonLocation = _props.buttonLocation,
+            showKeyboardShortcutsPanel = _props.showKeyboardShortcutsPanel,
+            closeKeyboardShortcutsPanel = _props.closeKeyboardShortcutsPanel,
+            styles = _props.styles,
+            phrases = _props.phrases;
+
+
+        var toggleButtonText = showKeyboardShortcutsPanel ? phrases.hideKeyboardShortcutsPanel : phrases.showKeyboardShortcutsPanel;
+
+        var bottomRight = buttonLocation === BOTTOM_RIGHT;
+        var topRight = buttonLocation === TOP_RIGHT;
+        var topLeft = buttonLocation === TOP_LEFT;
+
+        return _react2['default'].createElement(
+          'div',
+          null,
+          _react2['default'].createElement(
+            'button',
+            _extends({
+              ref: this.setShowKeyboardShortcutsButtonRef
+            }, (0, _reactWithStyles.css)(styles.DayPickerKeyboardShortcuts_buttonReset, styles.DayPickerKeyboardShortcuts_show, bottomRight && styles.DayPickerKeyboardShortcuts_show__bottomRight, topRight && styles.DayPickerKeyboardShortcuts_show__topRight, topLeft && styles.DayPickerKeyboardShortcuts_show__topLeft), {
+              type: 'button',
+              'aria-label': toggleButtonText,
+              onClick: this.onShowKeyboardShortcutsButtonClick,
+              onKeyDown: function () {
+                function onKeyDown(e) {
+                  if (e.key === 'Enter') {
+                    e.preventDefault();
+                  } else if (e.key === 'Space') {
+                    _this3.onShowKeyboardShortcutsButtonClick(e);
+                  }
+                }
+
+                return onKeyDown;
+              }(),
+              onMouseUp: function () {
+                function onMouseUp(e) {
+                  e.currentTarget.blur();
+                }
+
+                return onMouseUp;
+              }()
+            }),
+            _react2['default'].createElement(
+              'span',
+              (0, _reactWithStyles.css)(styles.DayPickerKeyboardShortcuts_showSpan, bottomRight && styles.DayPickerKeyboardShortcuts_showSpan__bottomRight, topRight && styles.DayPickerKeyboardShortcuts_showSpan__topRight, topLeft && styles.DayPickerKeyboardShortcuts_showSpan__topLeft),
+              '?'
+            )
+          ),
+          showKeyboardShortcutsPanel && _react2['default'].createElement(
+            'div',
+            _extends({}, (0, _reactWithStyles.css)(styles.DayPickerKeyboardShortcuts_panel), {
+              role: 'dialog',
+              'aria-labelledby': 'DayPickerKeyboardShortcuts_title',
+              'aria-describedby': 'DayPickerKeyboardShortcuts_description'
+            }),
+            _react2['default'].createElement(
+              'div',
+              _extends({}, (0, _reactWithStyles.css)(styles.DayPickerKeyboardShortcuts_title), {
+                id: 'DayPickerKeyboardShortcuts_title'
+              }),
+              phrases.keyboardShortcuts
+            ),
+            _react2['default'].createElement(
+              'button',
+              _extends({
+                ref: this.setHideKeyboardShortcutsButtonRef
+              }, (0, _reactWithStyles.css)(styles.DayPickerKeyboardShortcuts_buttonReset, styles.DayPickerKeyboardShortcuts_close), {
+                type: 'button',
+                tabIndex: '0',
+                'aria-label': phrases.hideKeyboardShortcutsPanel,
+                onClick: closeKeyboardShortcutsPanel,
+                onKeyDown: this.onKeyDown
+              }),
+              _react2['default'].createElement(_CloseButton2['default'], (0, _reactWithStyles.css)(styles.DayPickerKeyboardShortcuts_closeSvg))
+            ),
+            _react2['default'].createElement(
+              'ul',
+              _extends({}, (0, _reactWithStyles.css)(styles.DayPickerKeyboardShortcuts_list), {
+                id: 'DayPickerKeyboardShortcuts_description'
+              }),
+              this.keyboardShortcuts.map(function (_ref2) {
+                var unicode = _ref2.unicode,
+                    label = _ref2.label,
+                    action = _ref2.action;
+                return _react2['default'].createElement(_KeyboardShortcutRow2['default'], {
+                  key: label,
+                  unicode: unicode,
+                  label: label,
+                  action: action,
+                  block: block
+                });
+              })
+            )
+          )
+        );
+      }
+
+      return render;
+    }()
+  }]);
+
+  return DayPickerKeyboardShortcuts;
+}(_react2['default'].Component);
+
+DayPickerKeyboardShortcuts.propTypes = propTypes;
+DayPickerKeyboardShortcuts.defaultProps = defaultProps;
+
+exports["default"] = (0, _reactWithStyles.withStyles)(function (_ref3) {
+  var _ref3$reactDates = _ref3.reactDates,
+      color = _ref3$reactDates.color,
+      font = _ref3$reactDates.font,
+      zIndex = _ref3$reactDates.zIndex;
+  return {
+    DayPickerKeyboardShortcuts_buttonReset: {
+      background: 'none',
+      border: 0,
+      borderRadius: 0,
+      color: 'inherit',
+      font: 'inherit',
+      lineHeight: 'normal',
+      overflow: 'visible',
+      padding: 0,
+      cursor: 'pointer',
+      fontSize: font.size,
+
+      ':active': {
+        outline: 'none'
+      }
+    },
+
+    DayPickerKeyboardShortcuts_show: {
+      width: 22,
+      position: 'absolute',
+      zIndex: zIndex + 2
+    },
+
+    DayPickerKeyboardShortcuts_show__bottomRight: {
+      borderTop: '26px solid transparent',
+      borderRight: '33px solid ' + String(color.core.primary),
+      bottom: 0,
+      right: 0,
+
+      ':hover': {
+        borderRight: '33px solid ' + String(color.core.primary_dark)
+      }
+    },
+
+    DayPickerKeyboardShortcuts_show__topRight: {
+      borderBottom: '26px solid transparent',
+      borderRight: '33px solid ' + String(color.core.primary),
+      top: 0,
+      right: 0,
+
+      ':hover': {
+        borderRight: '33px solid ' + String(color.core.primary_dark)
+      }
+    },
+
+    DayPickerKeyboardShortcuts_show__topLeft: {
+      borderBottom: '26px solid transparent',
+      borderLeft: '33px solid ' + String(color.core.primary),
+      top: 0,
+      left: 0,
+
+      ':hover': {
+        borderLeft: '33px solid ' + String(color.core.primary_dark)
+      }
+    },
+
+    DayPickerKeyboardShortcuts_showSpan: {
+      color: color.core.white,
+      position: 'absolute'
+    },
+
+    DayPickerKeyboardShortcuts_showSpan__bottomRight: {
+      bottom: 0,
+      right: -28
+    },
+
+    DayPickerKeyboardShortcuts_showSpan__topRight: {
+      top: 1,
+      right: -28
+    },
+
+    DayPickerKeyboardShortcuts_showSpan__topLeft: {
+      top: 1,
+      left: -28
+    },
+
+    DayPickerKeyboardShortcuts_panel: {
+      overflow: 'auto',
+      background: color.background,
+      border: '1px solid ' + String(color.core.border),
+      borderRadius: 2,
+      position: 'absolute',
+      top: 0,
+      bottom: 0,
+      right: 0,
+      left: 0,
+      zIndex: zIndex + 2,
+      padding: 22,
+      margin: 33
+    },
+
+    DayPickerKeyboardShortcuts_title: {
+      fontSize: 16,
+      fontWeight: 'bold',
+      margin: 0
+    },
+
+    DayPickerKeyboardShortcuts_list: {
+      listStyle: 'none',
+      padding: 0,
+      fontSize: font.size
+    },
+
+    DayPickerKeyboardShortcuts_close: {
+      position: 'absolute',
+      right: 22,
+      top: 22,
+      zIndex: zIndex + 2,
+
+      ':active': {
+        outline: 'none'
+      }
+    },
+
+    DayPickerKeyboardShortcuts_closeSvg: {
+      height: 15,
+      width: 15,
+      fill: color.core.grayLighter,
+
+      ':hover': {
+        fill: color.core.grayLight
+      },
+
+      ':focus': {
+        fill: color.core.grayLight
+      }
+    }
+  };
+})(DayPickerKeyboardShortcuts);
+
+/***/ }),
+
+/***/ 3895:
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+
+var _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; };
+
+var _object = __webpack_require__(4011);
+
+var _object2 = _interopRequireDefault(_object);
+
+var _react = __webpack_require__(9196);
+
+var _react2 = _interopRequireDefault(_react);
+
+var _propTypes = __webpack_require__(2652);
+
+var _propTypes2 = _interopRequireDefault(_propTypes);
+
+var _airbnbPropTypes = __webpack_require__(4882);
+
+var _reactWithStyles = __webpack_require__(3576);
+
+var _defaultPhrases = __webpack_require__(6030);
+
+var _getPhrasePropTypes = __webpack_require__(2893);
+
+var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);
+
+var _LeftArrow = __webpack_require__(8);
+
+var _LeftArrow2 = _interopRequireDefault(_LeftArrow);
+
+var _RightArrow = __webpack_require__(4921);
+
+var _RightArrow2 = _interopRequireDefault(_RightArrow);
+
+var _ChevronUp = __webpack_require__(1809);
+
+var _ChevronUp2 = _interopRequireDefault(_ChevronUp);
+
+var _ChevronDown = __webpack_require__(9588);
+
+var _ChevronDown2 = _interopRequireDefault(_ChevronDown);
+
+var _ScrollableOrientationShape = __webpack_require__(6553);
+
+var _ScrollableOrientationShape2 = _interopRequireDefault(_ScrollableOrientationShape);
+
+var _constants = __webpack_require__(257);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
+
+var propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, {
+  navPrev: _propTypes2['default'].node,
+  navNext: _propTypes2['default'].node,
+  orientation: _ScrollableOrientationShape2['default'],
+
+  onPrevMonthClick: _propTypes2['default'].func,
+  onNextMonthClick: _propTypes2['default'].func,
+
+  // internationalization
+  phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.DayPickerNavigationPhrases)),
+
+  isRTL: _propTypes2['default'].bool
+}));
+
+var defaultProps = {
+  navPrev: null,
+  navNext: null,
+  orientation: _constants.HORIZONTAL_ORIENTATION,
+
+  onPrevMonthClick: function () {
+    function onPrevMonthClick() {}
+
+    return onPrevMonthClick;
+  }(),
+  onNextMonthClick: function () {
+    function onNextMonthClick() {}
+
+    return onNextMonthClick;
+  }(),
+
+
+  // internationalization
+  phrases: _defaultPhrases.DayPickerNavigationPhrases,
+  isRTL: false
+};
+
+function DayPickerNavigation(_ref) {
+  var navPrev = _ref.navPrev,
+      navNext = _ref.navNext,
+      onPrevMonthClick = _ref.onPrevMonthClick,
+      onNextMonthClick = _ref.onNextMonthClick,
+      orientation = _ref.orientation,
+      phrases = _ref.phrases,
+      isRTL = _ref.isRTL,
+      styles = _ref.styles;
+
+  var isHorizontal = orientation === _constants.HORIZONTAL_ORIENTATION;
+  var isVertical = orientation !== _constants.HORIZONTAL_ORIENTATION;
+  var isVerticalScrollable = orientation === _constants.VERTICAL_SCROLLABLE;
+
+  var navPrevIcon = navPrev;
+  var navNextIcon = navNext;
+  var isDefaultNavPrev = false;
+  var isDefaultNavNext = false;
+  if (!navPrevIcon) {
+    isDefaultNavPrev = true;
+    var Icon = isVertical ? _ChevronUp2['default'] : _LeftArrow2['default'];
+    if (isRTL && !isVertical) {
+      Icon = _RightArrow2['default'];
+    }
+    navPrevIcon = _react2['default'].createElement(Icon, (0, _reactWithStyles.css)(isHorizontal && styles.DayPickerNavigation_svg__horizontal, isVertical && styles.DayPickerNavigation_svg__vertical));
+  }
+
+  if (!navNextIcon) {
+    isDefaultNavNext = true;
+    var _Icon = isVertical ? _ChevronDown2['default'] : _RightArrow2['default'];
+    if (isRTL && !isVertical) {
+      _Icon = _LeftArrow2['default'];
+    }
+    navNextIcon = _react2['default'].createElement(_Icon, (0, _reactWithStyles.css)(isHorizontal && styles.DayPickerNavigation_svg__horizontal, isVertical && styles.DayPickerNavigation_svg__vertical));
+  }
+
+  var isDefaultNav = isVerticalScrollable ? isDefaultNavNext : isDefaultNavNext || isDefaultNavPrev;
+
+  return _react2['default'].createElement(
+    'div',
+    _reactWithStyles.css.apply(undefined, [styles.DayPickerNavigation, isHorizontal && styles.DayPickerNavigation__horizontal].concat(_toConsumableArray(isVertical && [styles.DayPickerNavigation__vertical, isDefaultNav && styles.DayPickerNavigation__verticalDefault]), _toConsumableArray(isVerticalScrollable && [styles.DayPickerNavigation__verticalScrollable, isDefaultNav && styles.DayPickerNavigation__verticalScrollableDefault]))),
+    !isVerticalScrollable && _react2['default'].createElement(
+      'div',
+      _extends({
+        role: 'button',
+        tabIndex: '0'
+      }, _reactWithStyles.css.apply(undefined, [styles.DayPickerNavigation_button, isDefaultNavPrev && styles.DayPickerNavigation_button__default].concat(_toConsumableArray(isHorizontal && [styles.DayPickerNavigation_button__horizontal].concat(_toConsumableArray(isDefaultNavPrev && [styles.DayPickerNavigation_button__horizontalDefault, !isRTL && styles.DayPickerNavigation_leftButton__horizontalDefault, isRTL && styles.DayPickerNavigation_rightButton__horizontalDefault]))), _toConsumableArray(isVertical && [styles.DayPickerNavigation_button__vertical].concat(_toConsumableArray(isDefaultNavPrev && [styles.DayPickerNavigation_button__verticalDefault, styles.DayPickerNavigation_prevButton__verticalDefault]))))), {
+        'aria-label': phrases.jumpToPrevMonth,
+        onClick: onPrevMonthClick,
+        onKeyUp: function () {
+          function onKeyUp(e) {
+            var key = e.key;
+
+            if (key === 'Enter' || key === ' ') onPrevMonthClick(e);
+          }
+
+          return onKeyUp;
+        }(),
+        onMouseUp: function () {
+          function onMouseUp(e) {
+            e.currentTarget.blur();
+          }
+
+          return onMouseUp;
+        }()
+      }),
+      navPrevIcon
+    ),
+    _react2['default'].createElement(
+      'div',
+      _extends({
+        role: 'button',
+        tabIndex: '0'
+      }, _reactWithStyles.css.apply(undefined, [styles.DayPickerNavigation_button, isDefaultNavNext && styles.DayPickerNavigation_button__default].concat(_toConsumableArray(isHorizontal && [styles.DayPickerNavigation_button__horizontal].concat(_toConsumableArray(isDefaultNavNext && [styles.DayPickerNavigation_button__horizontalDefault, isRTL && styles.DayPickerNavigation_leftButton__horizontalDefault, !isRTL && styles.DayPickerNavigation_rightButton__horizontalDefault]))), _toConsumableArray(isVertical && [styles.DayPickerNavigation_button__vertical, styles.DayPickerNavigation_nextButton__vertical].concat(_toConsumableArray(isDefaultNavNext && [styles.DayPickerNavigation_button__verticalDefault, styles.DayPickerNavigation_nextButton__verticalDefault, isVerticalScrollable && styles.DayPickerNavigation_nextButton__verticalScrollableDefault]))))), {
+        'aria-label': phrases.jumpToNextMonth,
+        onClick: onNextMonthClick,
+        onKeyUp: function () {
+          function onKeyUp(e) {
+            var key = e.key;
+
+            if (key === 'Enter' || key === ' ') onNextMonthClick(e);
+          }
+
+          return onKeyUp;
+        }(),
+        onMouseUp: function () {
+          function onMouseUp(e) {
+            e.currentTarget.blur();
+          }
+
+          return onMouseUp;
+        }()
+      }),
+      navNextIcon
+    )
+  );
+}
+
+DayPickerNavigation.propTypes = propTypes;
+DayPickerNavigation.defaultProps = defaultProps;
+
+exports["default"] = (0, _reactWithStyles.withStyles)(function (_ref2) {
+  var _ref2$reactDates = _ref2.reactDates,
+      color = _ref2$reactDates.color,
+      zIndex = _ref2$reactDates.zIndex;
+  return {
+    DayPickerNavigation: {
+      position: 'relative',
+      zIndex: zIndex + 2
+    },
+
+    DayPickerNavigation__horizontal: {
+      height: 0
+    },
+
+    DayPickerNavigation__vertical: {},
+    DayPickerNavigation__verticalScrollable: {},
+
+    DayPickerNavigation__verticalDefault: {
+      position: 'absolute',
+      width: '100%',
+      height: 52,
+      bottom: 0,
+      left: 0
+    },
+
+    DayPickerNavigation__verticalScrollableDefault: {
+      position: 'relative'
+    },
+
+    DayPickerNavigation_button: {
+      cursor: 'pointer',
+      userSelect: 'none',
+      border: 0,
+      padding: 0,
+      margin: 0
+    },
+
+    DayPickerNavigation_button__default: {
+      border: '1px solid ' + String(color.core.borderLight),
+      backgroundColor: color.background,
+      color: color.placeholderText,
+
+      ':focus': {
+        border: '1px solid ' + String(color.core.borderMedium)
+      },
+
+      ':hover': {
+        border: '1px solid ' + String(color.core.borderMedium)
+      },
+
+      ':active': {
+        background: color.backgroundDark
+      }
+    },
+
+    DayPickerNavigation_button__horizontal: {},
+
+    DayPickerNavigation_button__horizontalDefault: {
+      position: 'absolute',
+      top: 18,
+      lineHeight: 0.78,
+      borderRadius: 3,
+      padding: '6px 9px'
+    },
+
+    DayPickerNavigation_leftButton__horizontalDefault: {
+      left: 22
+    },
+
+    DayPickerNavigation_rightButton__horizontalDefault: {
+      right: 22
+    },
+
+    DayPickerNavigation_button__vertical: {},
+
+    DayPickerNavigation_button__verticalDefault: {
+      padding: 5,
+      background: color.background,
+      boxShadow: '0 0 5px 2px rgba(0, 0, 0, 0.1)',
+      position: 'relative',
+      display: 'inline-block',
+      height: '100%',
+      width: '50%'
+    },
+
+    DayPickerNavigation_prevButton__verticalDefault: {},
+
+    DayPickerNavigation_nextButton__verticalDefault: {
+      borderLeft: 0
+    },
+
+    DayPickerNavigation_nextButton__verticalScrollableDefault: {
+      width: '100%'
+    },
+
+    DayPickerNavigation_svg__horizontal: {
+      height: 19,
+      width: 19,
+      fill: color.core.grayLight,
+      display: 'block'
+    },
+
+    DayPickerNavigation_svg__vertical: {
+      height: 42,
+      width: 42,
+      fill: color.text,
+      display: 'block'
+    }
+  };
+})(DayPickerNavigation);
+
+/***/ }),
+
+/***/ 6302:
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+var __webpack_unused_export__;
+
+
+__webpack_unused_export__ = ({
   value: true
 });
 
@@ -46236,81 +10973,81 @@
 
 var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
 
-var _object = __webpack_require__("Koq/");
+var _object = __webpack_require__(4011);
 
 var _object2 = _interopRequireDefault(_object);
 
-var _react = __webpack_require__("cDcd");
+var _react = __webpack_require__(9196);
 
 var _react2 = _interopRequireDefault(_react);
 
-var _propTypes = __webpack_require__("17x9");
+var _propTypes = __webpack_require__(2652);
 
 var _propTypes2 = _interopRequireDefault(_propTypes);
 
-var _reactMomentProptypes = __webpack_require__("XGBb");
+var _reactMomentProptypes = __webpack_require__(6150);
 
 var _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes);
 
-var _airbnbPropTypes = __webpack_require__("Hsqg");
-
-var _moment = __webpack_require__("wy2R");
+var _airbnbPropTypes = __webpack_require__(4882);
+
+var _moment = __webpack_require__(6292);
 
 var _moment2 = _interopRequireDefault(_moment);
 
-var _object3 = __webpack_require__("4cSd");
+var _object3 = __webpack_require__(5861);
 
 var _object4 = _interopRequireDefault(_object3);
 
-var _isTouchDevice = __webpack_require__("LTAC");
+var _isTouchDevice = __webpack_require__(5834);
 
 var _isTouchDevice2 = _interopRequireDefault(_isTouchDevice);
 
-var _defaultPhrases = __webpack_require__("vV+G");
-
-var _getPhrasePropTypes = __webpack_require__("yc2e");
+var _defaultPhrases = __webpack_require__(6030);
+
+var _getPhrasePropTypes = __webpack_require__(2893);
 
 var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);
 
-var _isSameDay = __webpack_require__("pRvc");
+var _isSameDay = __webpack_require__(3923);
 
 var _isSameDay2 = _interopRequireDefault(_isSameDay);
 
-var _isAfterDay = __webpack_require__("Nho6");
+var _isAfterDay = __webpack_require__(7365);
 
 var _isAfterDay2 = _interopRequireDefault(_isAfterDay);
 
-var _getVisibleDays = __webpack_require__("u5Fq");
+var _getVisibleDays = __webpack_require__(3268);
 
 var _getVisibleDays2 = _interopRequireDefault(_getVisibleDays);
 
-var _isDayVisible = __webpack_require__("IgE5");
+var _isDayVisible = __webpack_require__(5713);
 
 var _isDayVisible2 = _interopRequireDefault(_isDayVisible);
 
-var _toISODateString = __webpack_require__("pYxT");
+var _toISODateString = __webpack_require__(7310);
 
 var _toISODateString2 = _interopRequireDefault(_toISODateString);
 
-var _toISOMonthString = __webpack_require__("jenk");
+var _toISOMonthString = __webpack_require__(2705);
 
 var _toISOMonthString2 = _interopRequireDefault(_toISOMonthString);
 
-var _ScrollableOrientationShape = __webpack_require__("aE6U");
+var _ScrollableOrientationShape = __webpack_require__(6553);
 
 var _ScrollableOrientationShape2 = _interopRequireDefault(_ScrollableOrientationShape);
 
-var _DayOfWeekShape = __webpack_require__("2S2E");
+var _DayOfWeekShape = __webpack_require__(243);
 
 var _DayOfWeekShape2 = _interopRequireDefault(_DayOfWeekShape);
 
-var _CalendarInfoPositionShape = __webpack_require__("oR9Z");
+var _CalendarInfoPositionShape = __webpack_require__(8182);
 
 var _CalendarInfoPositionShape2 = _interopRequireDefault(_CalendarInfoPositionShape);
 
-var _constants = __webpack_require__("Fv1B");
-
-var _DayPicker = __webpack_require__("Nloh");
+var _constants = __webpack_require__(257);
+
+var _DayPicker = __webpack_require__(8665);
 
 var _DayPicker2 = _interopRequireDefault(_DayPicker);
 
@@ -47263,7 +12000,7 @@
   return DayPickerSingleDateController;
 }(_react2['default'].Component);
 
-exports['default'] = DayPickerSingleDateController;
+exports.Z = DayPickerSingleDateController;
 
 
 DayPickerSingleDateController.propTypes = propTypes;
@@ -47271,4987 +12008,170 @@
 
 /***/ }),
 
-/***/ "YLtl":
-/***/ (function(module, exports) {
-
-(function() { module.exports = window["lodash"]; }());
-
-/***/ }),
-
-/***/ "YZDV":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-/**
- * Copyright (c) 2013-present, Facebook, Inc.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- *
- * @providesModule shallowCompare
- */
-
-
-
-var hasOwnProperty = Object.prototype.hasOwnProperty;
-
-/**
- * inlined Object.is polyfill to avoid requiring consumers ship their own
- * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
- */
-function is(x, y) {
-  // SameValue algorithm
-  if (x === y) {
-    // Steps 1-5, 7-10
-    // Steps 6.b-6.e: +0 != -0
-    // Added the nonzero y check to make Flow happy, but it is redundant
-    return x !== 0 || y !== 0 || 1 / x === 1 / y;
-  } else {
-    // Step 6.a: NaN == NaN
-    return x !== x && y !== y;
-  }
-}
-
-/**
- * Performs equality by iterating through keys on an object and returning false
- * when any key has values which are not strictly equal between the arguments.
- * Returns true when the values of all keys are strictly equal.
- */
-function shallowEqual(objA, objB) {
-  if (is(objA, objB)) {
-    return true;
-  }
-
-  if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {
-    return false;
-  }
-
-  var keysA = Object.keys(objA);
-  var keysB = Object.keys(objB);
-
-  if (keysA.length !== keysB.length) {
-    return false;
-  }
-
-  // Test for A's keys different from B.
-  for (var i = 0; i < keysA.length; i++) {
-    if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {
-      return false;
-    }
-  }
-
-  return true;
-}
-
-/**
- * Does a shallow comparison for props and state.
- * See ReactComponentWithPureRenderMixin
- * See also https://facebook.github.io/react/docs/shallow-compare.html
- */
-function shallowCompare(instance, nextProps, nextState) {
-  return (
-    !shallowEqual(instance.props, nextProps) ||
-    !shallowEqual(instance.state, nextState)
-  );
-}
-
-module.exports = shallowCompare;
-
-
-/***/ }),
-
-/***/ "Z23Y":
-/***/ (function(module, exports) {
-
-(function() { module.exports = window["wp"]["warning"]; }());
-
-/***/ }),
-
-/***/ "ZO3Q":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, '__esModule', { value: true });
-
-function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
-
-var _extends = _interopDefault(__webpack_require__("pVnL"));
-var _objectWithoutPropertiesLoose = _interopDefault(__webpack_require__("8OQS"));
-var React = __webpack_require__("cDcd");
-var React__default = _interopDefault(React);
-var _inheritsLoose = _interopDefault(__webpack_require__("VbXa"));
-var _assertThisInitialized = _interopDefault(__webpack_require__("PJYZ"));
-
-var is = {
-  arr: Array.isArray,
-  obj: function obj(a) {
-    return Object.prototype.toString.call(a) === '[object Object]';
-  },
-  fun: function fun(a) {
-    return typeof a === 'function';
-  },
-  str: function str(a) {
-    return typeof a === 'string';
-  },
-  num: function num(a) {
-    return typeof a === 'number';
-  },
-  und: function und(a) {
-    return a === void 0;
-  },
-  nul: function nul(a) {
-    return a === null;
-  },
-  set: function set(a) {
-    return a instanceof Set;
-  },
-  map: function map(a) {
-    return a instanceof Map;
-  },
-  equ: function equ(a, b) {
-    if (typeof a !== typeof b) return false;
-    if (is.str(a) || is.num(a)) return a === b;
-    if (is.obj(a) && is.obj(b) && Object.keys(a).length + Object.keys(b).length === 0) return true;
-    var i;
-
-    for (i in a) {
-      if (!(i in b)) return false;
-    }
-
-    for (i in b) {
-      if (a[i] !== b[i]) return false;
-    }
-
-    return is.und(i) ? a === b : true;
-  }
-};
-function merge(target, lowercase) {
-  if (lowercase === void 0) {
-    lowercase = true;
-  }
-
-  return function (object) {
-    return (is.arr(object) ? object : Object.keys(object)).reduce(function (acc, element) {
-      var key = lowercase ? element[0].toLowerCase() + element.substring(1) : element;
-      acc[key] = target(key);
-      return acc;
-    }, target);
-  };
-}
-function useForceUpdate() {
-  var _useState = React.useState(false),
-      f = _useState[1];
-
-  var forceUpdate = React.useCallback(function () {
-    return f(function (v) {
-      return !v;
-    });
-  }, []);
-  return forceUpdate;
-}
-function withDefault(value, defaultValue) {
-  return is.und(value) || is.nul(value) ? defaultValue : value;
-}
-function toArray(a) {
-  return !is.und(a) ? is.arr(a) ? a : [a] : [];
-}
-function callProp(obj) {
-  for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
-    args[_key - 1] = arguments[_key];
-  }
-
-  return is.fun(obj) ? obj.apply(void 0, args) : obj;
-}
-
-function getForwardProps(props) {
-  var to = props.to,
-      from = props.from,
-      config = props.config,
-      onStart = props.onStart,
-      onRest = props.onRest,
-      onFrame = props.onFrame,
-      children = props.children,
-      reset = props.reset,
-      reverse = props.reverse,
-      force = props.force,
-      immediate = props.immediate,
-      delay = props.delay,
-      attach = props.attach,
-      destroyed = props.destroyed,
-      interpolateTo = props.interpolateTo,
-      ref = props.ref,
-      lazy = props.lazy,
-      forward = _objectWithoutPropertiesLoose(props, ["to", "from", "config", "onStart", "onRest", "onFrame", "children", "reset", "reverse", "force", "immediate", "delay", "attach", "destroyed", "interpolateTo", "ref", "lazy"]);
-
-  return forward;
-}
-
-function interpolateTo(props) {
-  var forward = getForwardProps(props);
-  if (is.und(forward)) return _extends({
-    to: forward
-  }, props);
-  var rest = Object.keys(props).reduce(function (a, k) {
-    var _extends2;
-
-    return !is.und(forward[k]) ? a : _extends({}, a, (_extends2 = {}, _extends2[k] = props[k], _extends2));
-  }, {});
-  return _extends({
-    to: forward
-  }, rest);
-}
-function handleRef(ref, forward) {
-  if (forward) {
-    // If it's a function, assume it's a ref callback
-    if (is.fun(forward)) forward(ref);else if (is.obj(forward)) {
-      forward.current = ref;
-    }
-  }
-
-  return ref;
-}
-
-var Animated =
-/*#__PURE__*/
-function () {
-  function Animated() {
-    this.payload = void 0;
-    this.children = [];
-  }
-
-  var _proto = Animated.prototype;
-
-  _proto.getAnimatedValue = function getAnimatedValue() {
-    return this.getValue();
-  };
-
-  _proto.getPayload = function getPayload() {
-    return this.payload || this;
-  };
-
-  _proto.attach = function attach() {};
-
-  _proto.detach = function detach() {};
-
-  _proto.getChildren = function getChildren() {
-    return this.children;
-  };
-
-  _proto.addChild = function addChild(child) {
-    if (this.children.length === 0) this.attach();
-    this.children.push(child);
-  };
-
-  _proto.removeChild = function removeChild(child) {
-    var index = this.children.indexOf(child);
-    this.children.splice(index, 1);
-    if (this.children.length === 0) this.detach();
-  };
-
-  return Animated;
-}();
-var AnimatedArray =
-/*#__PURE__*/
-function (_Animated) {
-  _inheritsLoose(AnimatedArray, _Animated);
-
-  function AnimatedArray() {
-    var _this;
-
-    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
-      args[_key] = arguments[_key];
-    }
-
-    _this = _Animated.call.apply(_Animated, [this].concat(args)) || this;
-    _this.payload = [];
-
-    _this.attach = function () {
-      return _this.payload.forEach(function (p) {
-        return p instanceof Animated && p.addChild(_assertThisInitialized(_this));
-      });
-    };
-
-    _this.detach = function () {
-      return _this.payload.forEach(function (p) {
-        return p instanceof Animated && p.removeChild(_assertThisInitialized(_this));
-      });
-    };
-
-    return _this;
-  }
-
-  return AnimatedArray;
-}(Animated);
-var AnimatedObject =
-/*#__PURE__*/
-function (_Animated2) {
-  _inheritsLoose(AnimatedObject, _Animated2);
-
-  function AnimatedObject() {
-    var _this2;
-
-    for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
-      args[_key3] = arguments[_key3];
-    }
-
-    _this2 = _Animated2.call.apply(_Animated2, [this].concat(args)) || this;
-    _this2.payload = {};
-
-    _this2.attach = function () {
-      return Object.values(_this2.payload).forEach(function (s) {
-        return s instanceof Animated && s.addChild(_assertThisInitialized(_this2));
-      });
-    };
-
-    _this2.detach = function () {
-      return Object.values(_this2.payload).forEach(function (s) {
-        return s instanceof Animated && s.removeChild(_assertThisInitialized(_this2));
-      });
-    };
-
-    return _this2;
-  }
-
-  var _proto2 = AnimatedObject.prototype;
-
-  _proto2.getValue = function getValue(animated) {
-    if (animated === void 0) {
-      animated = false;
-    }
-
-    var payload = {};
-
-    for (var _key4 in this.payload) {
-      var value = this.payload[_key4];
-      if (animated && !(value instanceof Animated)) continue;
-      payload[_key4] = value instanceof Animated ? value[animated ? 'getAnimatedValue' : 'getValue']() : value;
-    }
-
-    return payload;
-  };
-
-  _proto2.getAnimatedValue = function getAnimatedValue() {
-    return this.getValue(true);
-  };
-
-  return AnimatedObject;
-}(Animated);
-
-var applyAnimatedValues;
-function injectApplyAnimatedValues(fn, transform) {
-  applyAnimatedValues = {
-    fn: fn,
-    transform: transform
-  };
-}
-var colorNames;
-function injectColorNames(names) {
-  colorNames = names;
-}
-var requestFrame = function requestFrame(cb) {
-  return typeof window !== 'undefined' ? window.requestAnimationFrame(cb) : -1;
-};
-var cancelFrame = function cancelFrame(id) {
-  typeof window !== 'undefined' && window.cancelAnimationFrame(id);
-};
-function injectFrame(raf, caf) {
-  requestFrame = raf;
-  cancelFrame = caf;
-}
-var interpolation;
-function injectStringInterpolator(fn) {
-  interpolation = fn;
-}
-var now = function now() {
-  return Date.now();
-};
-function injectNow(nowFn) {
-  now = nowFn;
-}
-var defaultElement;
-function injectDefaultElement(el) {
-  defaultElement = el;
-}
-var animatedApi = function animatedApi(node) {
-  return node.current;
-};
-function injectAnimatedApi(fn) {
-  animatedApi = fn;
-}
-var createAnimatedStyle;
-function injectCreateAnimatedStyle(factory) {
-  createAnimatedStyle = factory;
-}
-var manualFrameloop;
-function injectManualFrameloop(callback) {
-  manualFrameloop = callback;
-}
-
-var Globals = /*#__PURE__*/Object.freeze({
-  get applyAnimatedValues () { return applyAnimatedValues; },
-  injectApplyAnimatedValues: injectApplyAnimatedValues,
-  get colorNames () { return colorNames; },
-  injectColorNames: injectColorNames,
-  get requestFrame () { return requestFrame; },
-  get cancelFrame () { return cancelFrame; },
-  injectFrame: injectFrame,
-  get interpolation () { return interpolation; },
-  injectStringInterpolator: injectStringInterpolator,
-  get now () { return now; },
-  injectNow: injectNow,
-  get defaultElement () { return defaultElement; },
-  injectDefaultElement: injectDefaultElement,
-  get animatedApi () { return animatedApi; },
-  injectAnimatedApi: injectAnimatedApi,
-  get createAnimatedStyle () { return createAnimatedStyle; },
-  injectCreateAnimatedStyle: injectCreateAnimatedStyle,
-  get manualFrameloop () { return manualFrameloop; },
-  injectManualFrameloop: injectManualFrameloop
-});
-
-/**
- * Wraps the `style` property with `AnimatedStyle`.
- */
-
-var AnimatedProps =
-/*#__PURE__*/
-function (_AnimatedObject) {
-  _inheritsLoose(AnimatedProps, _AnimatedObject);
-
-  function AnimatedProps(props, callback) {
-    var _this;
-
-    _this = _AnimatedObject.call(this) || this;
-    _this.update = void 0;
-    _this.payload = !props.style ? props : _extends({}, props, {
-      style: createAnimatedStyle(props.style)
-    });
-    _this.update = callback;
-
-    _this.attach();
-
-    return _this;
-  }
-
-  return AnimatedProps;
-}(AnimatedObject);
-
-var isFunctionComponent = function isFunctionComponent(val) {
-  return is.fun(val) && !(val.prototype instanceof React__default.Component);
-};
-
-var createAnimatedComponent = function createAnimatedComponent(Component) {
-  var AnimatedComponent = React.forwardRef(function (props, ref) {
-    var forceUpdate = useForceUpdate();
-    var mounted = React.useRef(true);
-    var propsAnimated = React.useRef(null);
-    var node = React.useRef(null);
-    var attachProps = React.useCallback(function (props) {
-      var oldPropsAnimated = propsAnimated.current;
-
-      var callback = function callback() {
-        var didUpdate = false;
-
-        if (node.current) {
-          didUpdate = applyAnimatedValues.fn(node.current, propsAnimated.current.getAnimatedValue());
-        }
-
-        if (!node.current || didUpdate === false) {
-          // If no referenced node has been found, or the update target didn't have a
-          // native-responder, then forceUpdate the animation ...
-          forceUpdate();
-        }
-      };
-
-      propsAnimated.current = new AnimatedProps(props, callback);
-      oldPropsAnimated && oldPropsAnimated.detach();
-    }, []);
-    React.useEffect(function () {
-      return function () {
-        mounted.current = false;
-        propsAnimated.current && propsAnimated.current.detach();
-      };
-    }, []);
-    React.useImperativeHandle(ref, function () {
-      return animatedApi(node, mounted, forceUpdate);
-    });
-    attachProps(props);
-
-    var _getValue = propsAnimated.current.getValue(),
-        scrollTop = _getValue.scrollTop,
-        scrollLeft = _getValue.scrollLeft,
-        animatedProps = _objectWithoutPropertiesLoose(_getValue, ["scrollTop", "scrollLeft"]); // Functions cannot have refs, see:
-    // See: https://github.com/react-spring/react-spring/issues/569
-
-
-    var refFn = isFunctionComponent(Component) ? undefined : function (childRef) {
-      return node.current = handleRef(childRef, ref);
-    };
-    return React__default.createElement(Component, _extends({}, animatedProps, {
-      ref: refFn
-    }));
-  });
-  return AnimatedComponent;
-};
-
-var active = false;
-var controllers = new Set();
-
-var update = function update() {
-  if (!active) return false;
-  var time = now();
-
-  for (var _iterator = controllers, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
-    var _ref;
-
-    if (_isArray) {
-      if (_i >= _iterator.length) break;
-      _ref = _iterator[_i++];
-    } else {
-      _i = _iterator.next();
-      if (_i.done) break;
-      _ref = _i.value;
-    }
-
-    var controller = _ref;
-    var isActive = false;
-
-    for (var configIdx = 0; configIdx < controller.configs.length; configIdx++) {
-      var config = controller.configs[configIdx];
-      var endOfAnimation = void 0,
-          lastTime = void 0;
-
-      for (var valIdx = 0; valIdx < config.animatedValues.length; valIdx++) {
-        var animation = config.animatedValues[valIdx]; // If an animation is done, skip, until all of them conclude
-
-        if (animation.done) continue;
-        var from = config.fromValues[valIdx];
-        var to = config.toValues[valIdx];
-        var position = animation.lastPosition;
-        var isAnimated = to instanceof Animated;
-        var velocity = Array.isArray(config.initialVelocity) ? config.initialVelocity[valIdx] : config.initialVelocity;
-        if (isAnimated) to = to.getValue(); // Conclude animation if it's either immediate, or from-values match end-state
-
-        if (config.immediate) {
-          animation.setValue(to);
-          animation.done = true;
-          continue;
-        } // Break animation when string values are involved
-
-
-        if (typeof from === 'string' || typeof to === 'string') {
-          animation.setValue(to);
-          animation.done = true;
-          continue;
-        }
-
-        if (config.duration !== void 0) {
-          /** Duration easing */
-          position = from + config.easing((time - animation.startTime) / config.duration) * (to - from);
-          endOfAnimation = time >= animation.startTime + config.duration;
-        } else if (config.decay) {
-          /** Decay easing */
-          position = from + velocity / (1 - 0.998) * (1 - Math.exp(-(1 - 0.998) * (time - animation.startTime)));
-          endOfAnimation = Math.abs(animation.lastPosition - position) < 0.1;
-          if (endOfAnimation) to = position;
-        } else {
-          /** Spring easing */
-          lastTime = animation.lastTime !== void 0 ? animation.lastTime : time;
-          velocity = animation.lastVelocity !== void 0 ? animation.lastVelocity : config.initialVelocity; // If we lost a lot of frames just jump to the end.
-
-          if (time > lastTime + 64) lastTime = time; // http://gafferongames.com/game-physics/fix-your-timestep/
-
-          var numSteps = Math.floor(time - lastTime);
-
-          for (var i = 0; i < numSteps; ++i) {
-            var force = -config.tension * (position - to);
-            var damping = -config.friction * velocity;
-            var acceleration = (force + damping) / config.mass;
-            velocity = velocity + acceleration * 1 / 1000;
-            position = position + velocity * 1 / 1000;
-          } // Conditions for stopping the spring animation
-
-
-          var isOvershooting = config.clamp && config.tension !== 0 ? from < to ? position > to : position < to : false;
-          var isVelocity = Math.abs(velocity) <= config.precision;
-          var isDisplacement = config.tension !== 0 ? Math.abs(to - position) <= config.precision : true;
-          endOfAnimation = isOvershooting || isVelocity && isDisplacement;
-          animation.lastVelocity = velocity;
-          animation.lastTime = time;
-        } // Trails aren't done until their parents conclude
-
-
-        if (isAnimated && !config.toValues[valIdx].done) endOfAnimation = false;
-
-        if (endOfAnimation) {
-          // Ensure that we end up with a round value
-          if (animation.value !== to) position = to;
-          animation.done = true;
-        } else isActive = true;
-
-        animation.setValue(position);
-        animation.lastPosition = position;
-      } // Keep track of updated values only when necessary
-
-
-      if (controller.props.onFrame) controller.values[config.name] = config.interpolation.getValue();
-    } // Update callbacks in the end of the frame
-
-
-    if (controller.props.onFrame) controller.props.onFrame(controller.values); // Either call onEnd or next frame
-
-    if (!isActive) {
-      controllers.delete(controller);
-      controller.stop(true);
-    }
-  } // Loop over as long as there are controllers ...
-
-
-  if (controllers.size) {
-    if (manualFrameloop) manualFrameloop();else requestFrame(update);
-  } else {
-    active = false;
-  }
-
-  return active;
-};
-
-var start = function start(controller) {
-  if (!controllers.has(controller)) controllers.add(controller);
-
-  if (!active) {
-    active = true;
-    if (manualFrameloop) requestFrame(manualFrameloop);else requestFrame(update);
-  }
-};
-
-var stop = function stop(controller) {
-  if (controllers.has(controller)) controllers.delete(controller);
-};
-
-function createInterpolator(range, output, extrapolate) {
-  if (typeof range === 'function') {
-    return range;
-  }
-
-  if (Array.isArray(range)) {
-    return createInterpolator({
-      range: range,
-      output: output,
-      extrapolate: extrapolate
-    });
-  }
-
-  if (interpolation && typeof range.output[0] === 'string') {
-    return interpolation(range);
-  }
-
-  var config = range;
-  var outputRange = config.output;
-  var inputRange = config.range || [0, 1];
-  var extrapolateLeft = config.extrapolateLeft || config.extrapolate || 'extend';
-  var extrapolateRight = config.extrapolateRight || config.extrapolate || 'extend';
-
-  var easing = config.easing || function (t) {
-    return t;
-  };
-
-  return function (input) {
-    var range = findRange(input, inputRange);
-    return interpolate(input, inputRange[range], inputRange[range + 1], outputRange[range], outputRange[range + 1], easing, extrapolateLeft, extrapolateRight, config.map);
-  };
-}
-
-function interpolate(input, inputMin, inputMax, outputMin, outputMax, easing, extrapolateLeft, extrapolateRight, map) {
-  var result = map ? map(input) : input; // Extrapolate
-
-  if (result < inputMin) {
-    if (extrapolateLeft === 'identity') return result;else if (extrapolateLeft === 'clamp') result = inputMin;
-  }
-
-  if (result > inputMax) {
-    if (extrapolateRight === 'identity') return result;else if (extrapolateRight === 'clamp') result = inputMax;
-  }
-
-  if (outputMin === outputMax) return outputMin;
-  if (inputMin === inputMax) return input <= inputMin ? outputMin : outputMax; // Input Range
-
-  if (inputMin === -Infinity) result = -result;else if (inputMax === Infinity) result = result - inputMin;else result = (result - inputMin) / (inputMax - inputMin); // Easing
-
-  result = easing(result); // Output Range
-
-  if (outputMin === -Infinity) result = -result;else if (outputMax === Infinity) result = result + outputMin;else result = result * (outputMax - outputMin) + outputMin;
-  return result;
-}
-
-function findRange(input, inputRange) {
-  for (var i = 1; i < inputRange.length - 1; ++i) {
-    if (inputRange[i] >= input) break;
-  }
-
-  return i - 1;
-}
-
-var AnimatedInterpolation =
-/*#__PURE__*/
-function (_AnimatedArray) {
-  _inheritsLoose(AnimatedInterpolation, _AnimatedArray);
-
-  function AnimatedInterpolation(parents, range, output, extrapolate) {
-    var _this;
-
-    _this = _AnimatedArray.call(this) || this;
-    _this.calc = void 0;
-    _this.payload = parents instanceof AnimatedArray && !(parents instanceof AnimatedInterpolation) ? parents.getPayload() : Array.isArray(parents) ? parents : [parents];
-    _this.calc = createInterpolator(range, output, extrapolate);
-    return _this;
-  }
-
-  var _proto = AnimatedInterpolation.prototype;
-
-  _proto.getValue = function getValue() {
-    return this.calc.apply(this, this.payload.map(function (value) {
-      return value.getValue();
-    }));
-  };
-
-  _proto.updateConfig = function updateConfig(range, output, extrapolate) {
-    this.calc = createInterpolator(range, output, extrapolate);
-  };
-
-  _proto.interpolate = function interpolate(range, output, extrapolate) {
-    return new AnimatedInterpolation(this, range, output, extrapolate);
-  };
-
-  return AnimatedInterpolation;
-}(AnimatedArray);
-
-var interpolate$1 = function interpolate(parents, range, output) {
-  return parents && new AnimatedInterpolation(parents, range, output);
-};
-
-var config = {
-  default: {
-    tension: 170,
-    friction: 26
-  },
-  gentle: {
-    tension: 120,
-    friction: 14
-  },
-  wobbly: {
-    tension: 180,
-    friction: 12
-  },
-  stiff: {
-    tension: 210,
-    friction: 20
-  },
-  slow: {
-    tension: 280,
-    friction: 60
-  },
-  molasses: {
-    tension: 280,
-    friction: 120
-  }
-};
-
-/** API
- *  useChain(references, timeSteps, timeFrame)
- */
-
-function useChain(refs, timeSteps, timeFrame) {
-  if (timeFrame === void 0) {
-    timeFrame = 1000;
-  }
-
-  var previous = React.useRef();
-  React.useEffect(function () {
-    if (is.equ(refs, previous.current)) refs.forEach(function (_ref) {
-      var current = _ref.current;
-      return current && current.start();
-    });else if (timeSteps) {
-      refs.forEach(function (_ref2, index) {
-        var current = _ref2.current;
-
-        if (current) {
-          var ctrls = current.controllers;
-
-          if (ctrls.length) {
-            var t = timeFrame * timeSteps[index];
-            ctrls.forEach(function (ctrl) {
-              ctrl.queue = ctrl.queue.map(function (e) {
-                return _extends({}, e, {
-                  delay: e.delay + t
-                });
-              });
-              ctrl.start();
-            });
-          }
-        }
-      });
-    } else refs.reduce(function (q, _ref3, rI) {
-      var current = _ref3.current;
-      return q = q.then(function () {
-        return current.start();
-      });
-    }, Promise.resolve());
-    previous.current = refs;
-  });
-}
-
-/**
- * Animated works by building a directed acyclic graph of dependencies
- * transparently when you render your Animated components.
- *
- *               new Animated.Value(0)
- *     .interpolate()        .interpolate()    new Animated.Value(1)
- *         opacity               translateY      scale
- *          style                         transform
- *         View#234                         style
- *                                         View#123
- *
- * A) Top Down phase
- * When an AnimatedValue is updated, we recursively go down through this
- * graph in order to find leaf nodes: the views that we flag as needing
- * an update.
- *
- * B) Bottom Up phase
- * When a view is flagged as needing an update, we recursively go back up
- * in order to build the new value that it needs. The reason why we need
- * this two-phases process is to deal with composite props such as
- * transform which can receive values from multiple parents.
- */
-function addAnimatedStyles(node, styles) {
-  if ('update' in node) {
-    styles.add(node);
-  } else {
-    node.getChildren().forEach(function (child) {
-      return addAnimatedStyles(child, styles);
-    });
-  }
-}
-
-var AnimatedValue =
-/*#__PURE__*/
-function (_Animated) {
-  _inheritsLoose(AnimatedValue, _Animated);
-
-  function AnimatedValue(_value) {
-    var _this;
-
-    _this = _Animated.call(this) || this;
-    _this.animatedStyles = new Set();
-    _this.value = void 0;
-    _this.startPosition = void 0;
-    _this.lastPosition = void 0;
-    _this.lastVelocity = void 0;
-    _this.startTime = void 0;
-    _this.lastTime = void 0;
-    _this.done = false;
-
-    _this.setValue = function (value, flush) {
-      if (flush === void 0) {
-        flush = true;
-      }
-
-      _this.value = value;
-      if (flush) _this.flush();
-    };
-
-    _this.value = _value;
-    _this.startPosition = _value;
-    _this.lastPosition = _value;
-    return _this;
-  }
-
-  var _proto = AnimatedValue.prototype;
-
-  _proto.flush = function flush() {
-    if (this.animatedStyles.size === 0) {
-      addAnimatedStyles(this, this.animatedStyles);
-    }
-
-    this.animatedStyles.forEach(function (animatedStyle) {
-      return animatedStyle.update();
-    });
-  };
-
-  _proto.clearStyles = function clearStyles() {
-    this.animatedStyles.clear();
-  };
-
-  _proto.getValue = function getValue() {
-    return this.value;
-  };
-
-  _proto.interpolate = function interpolate(range, output, extrapolate) {
-    return new AnimatedInterpolation(this, range, output, extrapolate);
-  };
-
-  return AnimatedValue;
-}(Animated);
-
-var AnimatedValueArray =
-/*#__PURE__*/
-function (_AnimatedArray) {
-  _inheritsLoose(AnimatedValueArray, _AnimatedArray);
-
-  function AnimatedValueArray(values) {
-    var _this;
-
-    _this = _AnimatedArray.call(this) || this;
-    _this.payload = values.map(function (n) {
-      return new AnimatedValue(n);
-    });
-    return _this;
-  }
-
-  var _proto = AnimatedValueArray.prototype;
-
-  _proto.setValue = function setValue(value, flush) {
-    var _this2 = this;
-
-    if (flush === void 0) {
-      flush = true;
-    }
-
-    if (Array.isArray(value)) {
-      if (value.length === this.payload.length) {
-        value.forEach(function (v, i) {
-          return _this2.payload[i].setValue(v, flush);
-        });
-      }
-    } else {
-      this.payload.forEach(function (p) {
-        return p.setValue(value, flush);
-      });
-    }
-  };
-
-  _proto.getValue = function getValue() {
-    return this.payload.map(function (v) {
-      return v.getValue();
-    });
-  };
-
-  _proto.interpolate = function interpolate(range, output) {
-    return new AnimatedInterpolation(this, range, output);
-  };
-
-  return AnimatedValueArray;
-}(AnimatedArray);
-
-var G = 0;
-
-var Controller =
-/*#__PURE__*/
-function () {
-  function Controller() {
-    var _this = this;
-
-    this.id = void 0;
-    this.idle = true;
-    this.hasChanged = false;
-    this.guid = 0;
-    this.local = 0;
-    this.props = {};
-    this.merged = {};
-    this.animations = {};
-    this.interpolations = {};
-    this.values = {};
-    this.configs = [];
-    this.listeners = [];
-    this.queue = [];
-    this.localQueue = void 0;
-
-    this.getValues = function () {
-      return _this.interpolations;
-    };
-
-    this.id = G++;
-  }
-  /** update(props)
-   *  This function filters input props and creates an array of tasks which are executed in .start()
-   *  Each task is allowed to carry a delay, which means it can execute asnychroneously */
-
-
-  var _proto = Controller.prototype;
-
-  _proto.update = function update$$1(args) {
-    //this._id = n + this.id
-    if (!args) return this; // Extract delay and the to-prop from props
-
-    var _ref = interpolateTo(args),
-        _ref$delay = _ref.delay,
-        delay = _ref$delay === void 0 ? 0 : _ref$delay,
-        to = _ref.to,
-        props = _objectWithoutPropertiesLoose(_ref, ["delay", "to"]);
-
-    if (is.arr(to) || is.fun(to)) {
-      // If config is either a function or an array queue it up as is
-      this.queue.push(_extends({}, props, {
-        delay: delay,
-        to: to
-      }));
-    } else if (to) {
-      // Otherwise go through each key since it could be delayed individually
-      var ops = {};
-      Object.entries(to).forEach(function (_ref2) {
-        var _to;
-
-        var k = _ref2[0],
-            v = _ref2[1];
-
-        // Fetch delay and create an entry, consisting of the to-props, the delay, and basic props
-        var entry = _extends({
-          to: (_to = {}, _to[k] = v, _to),
-          delay: callProp(delay, k)
-        }, props);
-
-        var previous = ops[entry.delay] && ops[entry.delay].to;
-        ops[entry.delay] = _extends({}, ops[entry.delay], entry, {
-          to: _extends({}, previous, entry.to)
-        });
-      });
-      this.queue = Object.values(ops);
-    } // Sort queue, so that async calls go last
-
-
-    this.queue = this.queue.sort(function (a, b) {
-      return a.delay - b.delay;
-    }); // Diff the reduced props immediately (they'll contain the from-prop and some config)
-
-    this.diff(props);
-    return this;
-  }
-  /** start(onEnd)
-   *  This function either executes a queue, if present, or starts the frameloop, which animates */
-  ;
-
-  _proto.start = function start$$1(onEnd) {
-    var _this2 = this;
-
-    // If a queue is present we must excecute it
-    if (this.queue.length) {
-      this.idle = false; // Updates can interrupt trailing queues, in that case we just merge values
-
-      if (this.localQueue) {
-        this.localQueue.forEach(function (_ref3) {
-          var _ref3$from = _ref3.from,
-              from = _ref3$from === void 0 ? {} : _ref3$from,
-              _ref3$to = _ref3.to,
-              to = _ref3$to === void 0 ? {} : _ref3$to;
-          if (is.obj(from)) _this2.merged = _extends({}, from, _this2.merged);
-          if (is.obj(to)) _this2.merged = _extends({}, _this2.merged, to);
-        });
-      } // The guid helps us tracking frames, a new queue over an old one means an override
-      // We discard async calls in that caseÍ
-
-
-      var local = this.local = ++this.guid;
-      var queue = this.localQueue = this.queue;
-      this.queue = []; // Go through each entry and execute it
-
-      queue.forEach(function (_ref4, index) {
-        var delay = _ref4.delay,
-            props = _objectWithoutPropertiesLoose(_ref4, ["delay"]);
-
-        var cb = function cb(finished) {
-          if (index === queue.length - 1 && local === _this2.guid && finished) {
-            _this2.idle = true;
-            if (_this2.props.onRest) _this2.props.onRest(_this2.merged);
-          }
-
-          if (onEnd) onEnd();
-        }; // Entries can be delayed, ansyc or immediate
-
-
-        var async = is.arr(props.to) || is.fun(props.to);
-
-        if (delay) {
-          setTimeout(function () {
-            if (local === _this2.guid) {
-              if (async) _this2.runAsync(props, cb);else _this2.diff(props).start(cb);
-            }
-          }, delay);
-        } else if (async) _this2.runAsync(props, cb);else _this2.diff(props).start(cb);
-      });
-    } // Otherwise we kick of the frameloop
-    else {
-        if (is.fun(onEnd)) this.listeners.push(onEnd);
-        if (this.props.onStart) this.props.onStart();
-
-        start(this);
-      }
-
-    return this;
-  };
-
-  _proto.stop = function stop$$1(finished) {
-    this.listeners.forEach(function (onEnd) {
-      return onEnd(finished);
-    });
-    this.listeners = [];
-    return this;
-  }
-  /** Pause sets onEnd listeners free, but also removes the controller from the frameloop */
-  ;
-
-  _proto.pause = function pause(finished) {
-    this.stop(true);
-    if (finished) stop(this);
-    return this;
-  };
-
-  _proto.runAsync = function runAsync(_ref5, onEnd) {
-    var _this3 = this;
-
-    var delay = _ref5.delay,
-        props = _objectWithoutPropertiesLoose(_ref5, ["delay"]);
-
-    var local = this.local; // If "to" is either a function or an array it will be processed async, therefor "to" should be empty right now
-    // If the view relies on certain values "from" has to be present
-
-    var queue = Promise.resolve(undefined);
-
-    if (is.arr(props.to)) {
-      var _loop = function _loop(i) {
-        var index = i;
-
-        var fresh = _extends({}, props, interpolateTo(props.to[index]));
-
-        if (is.arr(fresh.config)) fresh.config = fresh.config[index];
-        queue = queue.then(function () {
-          //this.stop()
-          if (local === _this3.guid) return new Promise(function (r) {
-            return _this3.diff(fresh).start(r);
-          });
-        });
-      };
-
-      for (var i = 0; i < props.to.length; i++) {
-        _loop(i);
-      }
-    } else if (is.fun(props.to)) {
-      var index = 0;
-      var last;
-      queue = queue.then(function () {
-        return props.to( // next(props)
-        function (p) {
-          var fresh = _extends({}, props, interpolateTo(p));
-
-          if (is.arr(fresh.config)) fresh.config = fresh.config[index];
-          index++; //this.stop()
-
-          if (local === _this3.guid) return last = new Promise(function (r) {
-            return _this3.diff(fresh).start(r);
-          });
-          return;
-        }, // cancel()
-        function (finished) {
-          if (finished === void 0) {
-            finished = true;
-          }
-
-          return _this3.stop(finished);
-        }).then(function () {
-          return last;
-        });
-      });
-    }
-
-    queue.then(onEnd);
-  };
-
-  _proto.diff = function diff(props) {
-    var _this4 = this;
-
-    this.props = _extends({}, this.props, props);
-    var _this$props = this.props,
-        _this$props$from = _this$props.from,
-        from = _this$props$from === void 0 ? {} : _this$props$from,
-        _this$props$to = _this$props.to,
-        to = _this$props$to === void 0 ? {} : _this$props$to,
-        _this$props$config = _this$props.config,
-        config = _this$props$config === void 0 ? {} : _this$props$config,
-        reverse = _this$props.reverse,
-        attach = _this$props.attach,
-        reset = _this$props.reset,
-        immediate = _this$props.immediate; // Reverse values when requested
-
-    if (reverse) {
-      var _ref6 = [to, from];
-      from = _ref6[0];
-      to = _ref6[1];
-    } // This will collect all props that were ever set, reset merged props when necessary
-
-
-    this.merged = _extends({}, from, this.merged, to);
-    this.hasChanged = false; // Attachment handling, trailed springs can "attach" themselves to a previous spring
-
-    var target = attach && attach(this); // Reduces input { name: value } pairs into animated values
-
-    this.animations = Object.entries(this.merged).reduce(function (acc, _ref7) {
-      var name = _ref7[0],
-          value = _ref7[1];
-      // Issue cached entries, except on reset
-      var entry = acc[name] || {}; // Figure out what the value is supposed to be
-
-      var isNumber = is.num(value);
-      var isString = is.str(value) && !value.startsWith('#') && !/\d/.test(value) && !colorNames[value];
-      var isArray = is.arr(value);
-      var isInterpolation = !isNumber && !isArray && !isString;
-      var fromValue = !is.und(from[name]) ? from[name] : value;
-      var toValue = isNumber || isArray ? value : isString ? value : 1;
-      var toConfig = callProp(config, name);
-      if (target) toValue = target.animations[name].parent;
-      var parent = entry.parent,
-          interpolation$$1 = entry.interpolation,
-          toValues = toArray(target ? toValue.getPayload() : toValue),
-          animatedValues;
-      var newValue = value;
-      if (isInterpolation) newValue = interpolation({
-        range: [0, 1],
-        output: [value, value]
-      })(1);
-      var currentValue = interpolation$$1 && interpolation$$1.getValue(); // Change detection flags
-
-      var isFirst = is.und(parent);
-      var isActive = !isFirst && entry.animatedValues.some(function (v) {
-        return !v.done;
-      });
-      var currentValueDiffersFromGoal = !is.equ(newValue, currentValue);
-      var hasNewGoal = !is.equ(newValue, entry.previous);
-      var hasNewConfig = !is.equ(toConfig, entry.config); // Change animation props when props indicate a new goal (new value differs from previous one)
-      // and current values differ from it. Config changes trigger a new update as well (though probably shouldn't?)
-
-      if (reset || hasNewGoal && currentValueDiffersFromGoal || hasNewConfig) {
-        var _extends2;
-
-        // Convert regular values into animated values, ALWAYS re-use if possible
-        if (isNumber || isString) parent = interpolation$$1 = entry.parent || new AnimatedValue(fromValue);else if (isArray) parent = interpolation$$1 = entry.parent || new AnimatedValueArray(fromValue);else if (isInterpolation) {
-          var prev = entry.interpolation && entry.interpolation.calc(entry.parent.value);
-          prev = prev !== void 0 && !reset ? prev : fromValue;
-
-          if (entry.parent) {
-            parent = entry.parent;
-            parent.setValue(0, false);
-          } else parent = new AnimatedValue(0);
-
-          var range = {
-            output: [prev, value]
-          };
-
-          if (entry.interpolation) {
-            interpolation$$1 = entry.interpolation;
-            entry.interpolation.updateConfig(range);
-          } else interpolation$$1 = parent.interpolate(range);
-        }
-        toValues = toArray(target ? toValue.getPayload() : toValue);
-        animatedValues = toArray(parent.getPayload());
-        if (reset && !isInterpolation) parent.setValue(fromValue, false);
-        _this4.hasChanged = true; // Reset animated values
-
-        animatedValues.forEach(function (value) {
-          value.startPosition = value.value;
-          value.lastPosition = value.value;
-          value.lastVelocity = isActive ? value.lastVelocity : undefined;
-          value.lastTime = isActive ? value.lastTime : undefined;
-          value.startTime = now();
-          value.done = false;
-          value.animatedStyles.clear();
-        }); // Set immediate values
-
-        if (callProp(immediate, name)) {
-          parent.setValue(isInterpolation ? toValue : value, false);
-        }
-
-        return _extends({}, acc, (_extends2 = {}, _extends2[name] = _extends({}, entry, {
-          name: name,
-          parent: parent,
-          interpolation: interpolation$$1,
-          animatedValues: animatedValues,
-          toValues: toValues,
-          previous: newValue,
-          config: toConfig,
-          fromValues: toArray(parent.getValue()),
-          immediate: callProp(immediate, name),
-          initialVelocity: withDefault(toConfig.velocity, 0),
-          clamp: withDefault(toConfig.clamp, false),
-          precision: withDefault(toConfig.precision, 0.01),
-          tension: withDefault(toConfig.tension, 170),
-          friction: withDefault(toConfig.friction, 26),
-          mass: withDefault(toConfig.mass, 1),
-          duration: toConfig.duration,
-          easing: withDefault(toConfig.easing, function (t) {
-            return t;
-          }),
-          decay: toConfig.decay
-        }), _extends2));
-      } else {
-        if (!currentValueDiffersFromGoal) {
-          var _extends3;
-
-          // So ... the current target value (newValue) appears to be different from the previous value,
-          // which normally constitutes an update, but the actual value (currentValue) matches the target!
-          // In order to resolve this without causing an animation update we silently flag the animation as done,
-          // which it technically is. Interpolations also needs a config update with their target set to 1.
-          if (isInterpolation) {
-            parent.setValue(1, false);
-            interpolation$$1.updateConfig({
-              output: [newValue, newValue]
-            });
-          }
-
-          parent.done = true;
-          _this4.hasChanged = true;
-          return _extends({}, acc, (_extends3 = {}, _extends3[name] = _extends({}, acc[name], {
-            previous: newValue
-          }), _extends3));
-        }
-
-        return acc;
-      }
-    }, this.animations);
-
-    if (this.hasChanged) {
-      // Make animations available to frameloop
-      this.configs = Object.values(this.animations);
-      this.values = {};
-      this.interpolations = {};
-
-      for (var key in this.animations) {
-        this.interpolations[key] = this.animations[key].interpolation;
-        this.values[key] = this.animations[key].interpolation.getValue();
-      }
-    }
-
-    return this;
-  };
-
-  _proto.destroy = function destroy() {
-    this.stop();
-    this.props = {};
-    this.merged = {};
-    this.animations = {};
-    this.interpolations = {};
-    this.values = {};
-    this.configs = [];
-    this.local = 0;
-  };
-
-  return Controller;
-}();
-
-/** API
- * const props = useSprings(number, [{ ... }, { ... }, ...])
- * const [props, set] = useSprings(number, (i, controller) => ({ ... }))
- */
-
-var useSprings = function useSprings(length, props) {
-  var mounted = React.useRef(false);
-  var ctrl = React.useRef();
-  var isFn = is.fun(props); // The controller maintains the animation values, starts and stops animations
-
-  var _useMemo = React.useMemo(function () {
-    // Remove old controllers
-    if (ctrl.current) {
-      ctrl.current.map(function (c) {
-        return c.destroy();
-      });
-      ctrl.current = undefined;
-    }
-
-    var ref;
-    return [new Array(length).fill().map(function (_, i) {
-      var ctrl = new Controller();
-      var newProps = isFn ? callProp(props, i, ctrl) : props[i];
-      if (i === 0) ref = newProps.ref;
-      ctrl.update(newProps);
-      if (!ref) ctrl.start();
-      return ctrl;
-    }), ref];
-  }, [length]),
-      controllers = _useMemo[0],
-      ref = _useMemo[1];
-
-  ctrl.current = controllers; // The hooks reference api gets defined here ...
-
-  var api = React.useImperativeHandle(ref, function () {
-    return {
-      start: function start() {
-        return Promise.all(ctrl.current.map(function (c) {
-          return new Promise(function (r) {
-            return c.start(r);
-          });
-        }));
-      },
-      stop: function stop(finished) {
-        return ctrl.current.forEach(function (c) {
-          return c.stop(finished);
-        });
-      },
-
-      get controllers() {
-        return ctrl.current;
-      }
-
-    };
-  }); // This function updates the controllers
-
-  var updateCtrl = React.useMemo(function () {
-    return function (updateProps) {
-      return ctrl.current.map(function (c, i) {
-        c.update(isFn ? callProp(updateProps, i, c) : updateProps[i]);
-        if (!ref) c.start();
-      });
-    };
-  }, [length]); // Update controller if props aren't functional
-
-  React.useEffect(function () {
-    if (mounted.current) {
-      if (!isFn) updateCtrl(props);
-    } else if (!ref) ctrl.current.forEach(function (c) {
-      return c.start();
-    });
-  }); // Update mounted flag and destroy controller on unmount
-
-  React.useEffect(function () {
-    return mounted.current = true, function () {
-      return ctrl.current.forEach(function (c) {
-        return c.destroy();
-      });
-    };
-  }, []); // Return animated props, or, anim-props + the update-setter above
-
-  var propValues = ctrl.current.map(function (c) {
-    return c.getValues();
-  });
-  return isFn ? [propValues, updateCtrl, function (finished) {
-    return ctrl.current.forEach(function (c) {
-      return c.pause(finished);
-    });
-  }] : propValues;
-};
-
-/** API
- * const props = useSpring({ ... })
- * const [props, set] = useSpring(() => ({ ... }))
- */
-
-var useSpring = function useSpring(props) {
-  var isFn = is.fun(props);
-
-  var _useSprings = useSprings(1, isFn ? props : [props]),
-      result = _useSprings[0],
-      set = _useSprings[1],
-      pause = _useSprings[2];
-
-  return isFn ? [result[0], set, pause] : result;
-};
-
-/** API
- * const trails = useTrail(number, { ... })
- * const [trails, set] = useTrail(number, () => ({ ... }))
- */
-
-var useTrail = function useTrail(length, props) {
-  var mounted = React.useRef(false);
-  var isFn = is.fun(props);
-  var updateProps = callProp(props);
-  var instances = React.useRef();
-
-  var _useSprings = useSprings(length, function (i, ctrl) {
-    if (i === 0) instances.current = [];
-    instances.current.push(ctrl);
-    return _extends({}, updateProps, {
-      config: callProp(updateProps.config, i),
-      attach: i > 0 && function () {
-        return instances.current[i - 1];
-      }
-    });
-  }),
-      result = _useSprings[0],
-      set = _useSprings[1],
-      pause = _useSprings[2]; // Set up function to update controller
-
-
-  var updateCtrl = React.useMemo(function () {
-    return function (props) {
-      return set(function (i, ctrl) {
-        var last = props.reverse ? i === 0 : length - 1 === i;
-        var attachIdx = props.reverse ? i + 1 : i - 1;
-        var attachController = instances.current[attachIdx];
-        return _extends({}, props, {
-          config: callProp(props.config || updateProps.config, i),
-          attach: attachController && function () {
-            return attachController;
-          }
-        });
-      });
-    };
-  }, [length, updateProps.reverse]); // Update controller if props aren't functional
-
-  React.useEffect(function () {
-    return void (mounted.current && !isFn && updateCtrl(props));
-  }); // Update mounted flag and destroy controller on unmount
-
-  React.useEffect(function () {
-    return void (mounted.current = true);
-  }, []);
-  return isFn ? [result, updateCtrl, pause] : result;
-};
-
-/** API
- * const transitions = useTransition(items, itemKeys, { ... })
- * const [transitions, update] = useTransition(items, itemKeys, () => ({ ... }))
- */
-
-var guid = 0;
-var ENTER = 'enter';
-var LEAVE = 'leave';
-var UPDATE = 'update';
-
-var mapKeys = function mapKeys(items, keys) {
-  return (typeof keys === 'function' ? items.map(keys) : toArray(keys)).map(String);
-};
-
-var get = function get(props) {
-  var items = props.items,
-      _props$keys = props.keys,
-      keys = _props$keys === void 0 ? function (item) {
-    return item;
-  } : _props$keys,
-      rest = _objectWithoutPropertiesLoose(props, ["items", "keys"]);
-
-  items = toArray(items !== void 0 ? items : null);
-  return _extends({
-    items: items,
-    keys: mapKeys(items, keys)
-  }, rest);
-};
-
-function useTransition(input, keyTransform, config) {
-  var props = _extends({
-    items: input,
-    keys: keyTransform || function (i) {
-      return i;
-    }
-  }, config);
-
-  var _get = get(props),
-      _get$lazy = _get.lazy,
-      lazy = _get$lazy === void 0 ? false : _get$lazy,
-      _get$unique = _get.unique,
-      _get$reset = _get.reset,
-      reset = _get$reset === void 0 ? false : _get$reset,
-      enter = _get.enter,
-      leave = _get.leave,
-      update = _get.update,
-      onDestroyed = _get.onDestroyed,
-      keys = _get.keys,
-      items = _get.items,
-      onFrame = _get.onFrame,
-      _onRest = _get.onRest,
-      onStart = _get.onStart,
-      ref = _get.ref,
-      extra = _objectWithoutPropertiesLoose(_get, ["lazy", "unique", "reset", "enter", "leave", "update", "onDestroyed", "keys", "items", "onFrame", "onRest", "onStart", "ref"]);
-
-  var forceUpdate = useForceUpdate();
-  var mounted = React.useRef(false);
-  var state = React.useRef({
-    mounted: false,
-    first: true,
-    deleted: [],
-    current: {},
-    transitions: [],
-    prevProps: {},
-    paused: !!props.ref,
-    instances: !mounted.current && new Map(),
-    forceUpdate: forceUpdate
-  });
-  React.useImperativeHandle(props.ref, function () {
-    return {
-      start: function start() {
-        return Promise.all(Array.from(state.current.instances).map(function (_ref) {
-          var c = _ref[1];
-          return new Promise(function (r) {
-            return c.start(r);
-          });
-        }));
-      },
-      stop: function stop(finished) {
-        return Array.from(state.current.instances).forEach(function (_ref2) {
-          var c = _ref2[1];
-          return c.stop(finished);
-        });
-      },
-
-      get controllers() {
-        return Array.from(state.current.instances).map(function (_ref3) {
-          var c = _ref3[1];
-          return c;
-        });
-      }
-
-    };
-  }); // Update state
-
-  state.current = diffItems(state.current, props);
-
-  if (state.current.changed) {
-    // Update state
-    state.current.transitions.forEach(function (transition) {
-      var slot = transition.slot,
-          from = transition.from,
-          to = transition.to,
-          config = transition.config,
-          trail = transition.trail,
-          key = transition.key,
-          item = transition.item;
-      if (!state.current.instances.has(key)) state.current.instances.set(key, new Controller()); // update the map object
-
-      var ctrl = state.current.instances.get(key);
-
-      var newProps = _extends({}, extra, {
-        to: to,
-        from: from,
-        config: config,
-        ref: ref,
-        onRest: function onRest(values) {
-          if (state.current.mounted) {
-            if (transition.destroyed) {
-              // If no ref is given delete destroyed items immediately
-              if (!ref && !lazy) cleanUp(state, key);
-              if (onDestroyed) onDestroyed(item);
-            } // A transition comes to rest once all its springs conclude
-
-
-            var curInstances = Array.from(state.current.instances);
-            var active = curInstances.some(function (_ref4) {
-              var c = _ref4[1];
-              return !c.idle;
-            });
-            if (!active && (ref || lazy) && state.current.deleted.length > 0) cleanUp(state);
-            if (_onRest) _onRest(item, slot, values);
-          }
-        },
-        onStart: onStart && function () {
-          return onStart(item, slot);
-        },
-        onFrame: onFrame && function (values) {
-          return onFrame(item, slot, values);
-        },
-        delay: trail,
-        reset: reset && slot === ENTER // Update controller
-
-      });
-
-      ctrl.update(newProps);
-      if (!state.current.paused) ctrl.start();
-    });
-  }
-
-  React.useEffect(function () {
-    state.current.mounted = mounted.current = true;
-    return function () {
-      state.current.mounted = mounted.current = false;
-      Array.from(state.current.instances).map(function (_ref5) {
-        var c = _ref5[1];
-        return c.destroy();
-      });
-      state.current.instances.clear();
-    };
-  }, []);
-  return state.current.transitions.map(function (_ref6) {
-    var item = _ref6.item,
-        slot = _ref6.slot,
-        key = _ref6.key;
-    return {
-      item: item,
-      key: key,
-      state: slot,
-      props: state.current.instances.get(key).getValues()
-    };
-  });
-}
-
-function cleanUp(state, filterKey) {
-  var deleted = state.current.deleted;
-
-  var _loop = function _loop() {
-    if (_isArray) {
-      if (_i >= _iterator.length) return "break";
-      _ref8 = _iterator[_i++];
-    } else {
-      _i = _iterator.next();
-      if (_i.done) return "break";
-      _ref8 = _i.value;
-    }
-
-    var _ref7 = _ref8;
-    var key = _ref7.key;
-
-    var filter = function filter(t) {
-      return t.key !== key;
-    };
-
-    if (is.und(filterKey) || filterKey === key) {
-      state.current.instances.delete(key);
-      state.current.transitions = state.current.transitions.filter(filter);
-      state.current.deleted = state.current.deleted.filter(filter);
-    }
-  };
-
-  for (var _iterator = deleted, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
-    var _ref8;
-
-    var _ret = _loop();
-
-    if (_ret === "break") break;
-  }
-
-  state.current.forceUpdate();
-}
-
-function diffItems(_ref9, props) {
-  var first = _ref9.first,
-      prevProps = _ref9.prevProps,
-      state = _objectWithoutPropertiesLoose(_ref9, ["first", "prevProps"]);
-
-  var _get2 = get(props),
-      items = _get2.items,
-      keys = _get2.keys,
-      initial = _get2.initial,
-      from = _get2.from,
-      enter = _get2.enter,
-      leave = _get2.leave,
-      update = _get2.update,
-      _get2$trail = _get2.trail,
-      trail = _get2$trail === void 0 ? 0 : _get2$trail,
-      unique = _get2.unique,
-      config = _get2.config,
-      _get2$order = _get2.order,
-      order = _get2$order === void 0 ? [ENTER, LEAVE, UPDATE] : _get2$order;
-
-  var _get3 = get(prevProps),
-      _keys = _get3.keys,
-      _items = _get3.items;
-
-  var current = _extends({}, state.current);
-
-  var deleted = [].concat(state.deleted); // Compare next keys with current keys
-
-  var currentKeys = Object.keys(current);
-  var currentSet = new Set(currentKeys);
-  var nextSet = new Set(keys);
-  var added = keys.filter(function (item) {
-    return !currentSet.has(item);
-  });
-  var removed = state.transitions.filter(function (item) {
-    return !item.destroyed && !nextSet.has(item.originalKey);
-  }).map(function (i) {
-    return i.originalKey;
-  });
-  var updated = keys.filter(function (item) {
-    return currentSet.has(item);
-  });
-  var delay = -trail;
-
-  while (order.length) {
-    var changeType = order.shift();
-
-    switch (changeType) {
-      case ENTER:
-        {
-          added.forEach(function (key, index) {
-            // In unique mode, remove fading out transitions if their key comes in again
-            if (unique && deleted.find(function (d) {
-              return d.originalKey === key;
-            })) deleted = deleted.filter(function (t) {
-              return t.originalKey !== key;
-            });
-            var keyIndex = keys.indexOf(key);
-            var item = items[keyIndex];
-            var slot = first && initial !== void 0 ? 'initial' : ENTER;
-            current[key] = {
-              slot: slot,
-              originalKey: key,
-              key: unique ? String(key) : guid++,
-              item: item,
-              trail: delay = delay + trail,
-              config: callProp(config, item, slot),
-              from: callProp(first ? initial !== void 0 ? initial || {} : from : from, item),
-              to: callProp(enter, item)
-            };
-          });
-          break;
-        }
-
-      case LEAVE:
-        {
-          removed.forEach(function (key) {
-            var keyIndex = _keys.indexOf(key);
-
-            var item = _items[keyIndex];
-            var slot = LEAVE;
-            deleted.unshift(_extends({}, current[key], {
-              slot: slot,
-              destroyed: true,
-              left: _keys[Math.max(0, keyIndex - 1)],
-              right: _keys[Math.min(_keys.length, keyIndex + 1)],
-              trail: delay = delay + trail,
-              config: callProp(config, item, slot),
-              to: callProp(leave, item)
-            }));
-            delete current[key];
-          });
-          break;
-        }
-
-      case UPDATE:
-        {
-          updated.forEach(function (key) {
-            var keyIndex = keys.indexOf(key);
-            var item = items[keyIndex];
-            var slot = UPDATE;
-            current[key] = _extends({}, current[key], {
-              item: item,
-              slot: slot,
-              trail: delay = delay + trail,
-              config: callProp(config, item, slot),
-              to: callProp(update, item)
-            });
-          });
-          break;
-        }
-    }
-  }
-
-  var out = keys.map(function (key) {
-    return current[key];
-  }); // This tries to restore order for deleted items by finding their last known siblings
-  // only using the left sibling to keep order placement consistent for all deleted items
-
-  deleted.forEach(function (_ref10) {
-    var left = _ref10.left,
-        right = _ref10.right,
-        item = _objectWithoutPropertiesLoose(_ref10, ["left", "right"]);
-
-    var pos; // Was it the element on the left, if yes, move there ...
-
-    if ((pos = out.findIndex(function (t) {
-      return t.originalKey === left;
-    })) !== -1) pos += 1; // And if nothing else helps, move it to the start ¯\_(ツ)_/¯
-
-    pos = Math.max(0, pos);
-    out = [].concat(out.slice(0, pos), [item], out.slice(pos));
-  });
-  return _extends({}, state, {
-    changed: added.length || removed.length || updated.length,
-    first: first && added.length === 0,
-    transitions: out,
-    current: current,
-    deleted: deleted,
-    prevProps: props
-  });
-}
-
-var AnimatedStyle =
-/*#__PURE__*/
-function (_AnimatedObject) {
-  _inheritsLoose(AnimatedStyle, _AnimatedObject);
-
-  function AnimatedStyle(style) {
-    var _this;
-
-    if (style === void 0) {
-      style = {};
-    }
-
-    _this = _AnimatedObject.call(this) || this;
-
-    if (style.transform && !(style.transform instanceof Animated)) {
-      style = applyAnimatedValues.transform(style);
-    }
-
-    _this.payload = style;
-    return _this;
-  }
-
-  return AnimatedStyle;
-}(AnimatedObject);
-
-// http://www.w3.org/TR/css3-color/#svg-color
-var colors = {
-  transparent: 0x00000000,
-  aliceblue: 0xf0f8ffff,
-  antiquewhite: 0xfaebd7ff,
-  aqua: 0x00ffffff,
-  aquamarine: 0x7fffd4ff,
-  azure: 0xf0ffffff,
-  beige: 0xf5f5dcff,
-  bisque: 0xffe4c4ff,
-  black: 0x000000ff,
-  blanchedalmond: 0xffebcdff,
-  blue: 0x0000ffff,
-  blueviolet: 0x8a2be2ff,
-  brown: 0xa52a2aff,
-  burlywood: 0xdeb887ff,
-  burntsienna: 0xea7e5dff,
-  cadetblue: 0x5f9ea0ff,
-  chartreuse: 0x7fff00ff,
-  chocolate: 0xd2691eff,
-  coral: 0xff7f50ff,
-  cornflowerblue: 0x6495edff,
-  cornsilk: 0xfff8dcff,
-  crimson: 0xdc143cff,
-  cyan: 0x00ffffff,
-  darkblue: 0x00008bff,
-  darkcyan: 0x008b8bff,
-  darkgoldenrod: 0xb8860bff,
-  darkgray: 0xa9a9a9ff,
-  darkgreen: 0x006400ff,
-  darkgrey: 0xa9a9a9ff,
-  darkkhaki: 0xbdb76bff,
-  darkmagenta: 0x8b008bff,
-  darkolivegreen: 0x556b2fff,
-  darkorange: 0xff8c00ff,
-  darkorchid: 0x9932ccff,
-  darkred: 0x8b0000ff,
-  darksalmon: 0xe9967aff,
-  darkseagreen: 0x8fbc8fff,
-  darkslateblue: 0x483d8bff,
-  darkslategray: 0x2f4f4fff,
-  darkslategrey: 0x2f4f4fff,
-  darkturquoise: 0x00ced1ff,
-  darkviolet: 0x9400d3ff,
-  deeppink: 0xff1493ff,
-  deepskyblue: 0x00bfffff,
-  dimgray: 0x696969ff,
-  dimgrey: 0x696969ff,
-  dodgerblue: 0x1e90ffff,
-  firebrick: 0xb22222ff,
-  floralwhite: 0xfffaf0ff,
-  forestgreen: 0x228b22ff,
-  fuchsia: 0xff00ffff,
-  gainsboro: 0xdcdcdcff,
-  ghostwhite: 0xf8f8ffff,
-  gold: 0xffd700ff,
-  goldenrod: 0xdaa520ff,
-  gray: 0x808080ff,
-  green: 0x008000ff,
-  greenyellow: 0xadff2fff,
-  grey: 0x808080ff,
-  honeydew: 0xf0fff0ff,
-  hotpink: 0xff69b4ff,
-  indianred: 0xcd5c5cff,
-  indigo: 0x4b0082ff,
-  ivory: 0xfffff0ff,
-  khaki: 0xf0e68cff,
-  lavender: 0xe6e6faff,
-  lavenderblush: 0xfff0f5ff,
-  lawngreen: 0x7cfc00ff,
-  lemonchiffon: 0xfffacdff,
-  lightblue: 0xadd8e6ff,
-  lightcoral: 0xf08080ff,
-  lightcyan: 0xe0ffffff,
-  lightgoldenrodyellow: 0xfafad2ff,
-  lightgray: 0xd3d3d3ff,
-  lightgreen: 0x90ee90ff,
-  lightgrey: 0xd3d3d3ff,
-  lightpink: 0xffb6c1ff,
-  lightsalmon: 0xffa07aff,
-  lightseagreen: 0x20b2aaff,
-  lightskyblue: 0x87cefaff,
-  lightslategray: 0x778899ff,
-  lightslategrey: 0x778899ff,
-  lightsteelblue: 0xb0c4deff,
-  lightyellow: 0xffffe0ff,
-  lime: 0x00ff00ff,
-  limegreen: 0x32cd32ff,
-  linen: 0xfaf0e6ff,
-  magenta: 0xff00ffff,
-  maroon: 0x800000ff,
-  mediumaquamarine: 0x66cdaaff,
-  mediumblue: 0x0000cdff,
-  mediumorchid: 0xba55d3ff,
-  mediumpurple: 0x9370dbff,
-  mediumseagreen: 0x3cb371ff,
-  mediumslateblue: 0x7b68eeff,
-  mediumspringgreen: 0x00fa9aff,
-  mediumturquoise: 0x48d1ccff,
-  mediumvioletred: 0xc71585ff,
-  midnightblue: 0x191970ff,
-  mintcream: 0xf5fffaff,
-  mistyrose: 0xffe4e1ff,
-  moccasin: 0xffe4b5ff,
-  navajowhite: 0xffdeadff,
-  navy: 0x000080ff,
-  oldlace: 0xfdf5e6ff,
-  olive: 0x808000ff,
-  olivedrab: 0x6b8e23ff,
-  orange: 0xffa500ff,
-  orangered: 0xff4500ff,
-  orchid: 0xda70d6ff,
-  palegoldenrod: 0xeee8aaff,
-  palegreen: 0x98fb98ff,
-  paleturquoise: 0xafeeeeff,
-  palevioletred: 0xdb7093ff,
-  papayawhip: 0xffefd5ff,
-  peachpuff: 0xffdab9ff,
-  peru: 0xcd853fff,
-  pink: 0xffc0cbff,
-  plum: 0xdda0ddff,
-  powderblue: 0xb0e0e6ff,
-  purple: 0x800080ff,
-  rebeccapurple: 0x663399ff,
-  red: 0xff0000ff,
-  rosybrown: 0xbc8f8fff,
-  royalblue: 0x4169e1ff,
-  saddlebrown: 0x8b4513ff,
-  salmon: 0xfa8072ff,
-  sandybrown: 0xf4a460ff,
-  seagreen: 0x2e8b57ff,
-  seashell: 0xfff5eeff,
-  sienna: 0xa0522dff,
-  silver: 0xc0c0c0ff,
-  skyblue: 0x87ceebff,
-  slateblue: 0x6a5acdff,
-  slategray: 0x708090ff,
-  slategrey: 0x708090ff,
-  snow: 0xfffafaff,
-  springgreen: 0x00ff7fff,
-  steelblue: 0x4682b4ff,
-  tan: 0xd2b48cff,
-  teal: 0x008080ff,
-  thistle: 0xd8bfd8ff,
-  tomato: 0xff6347ff,
-  turquoise: 0x40e0d0ff,
-  violet: 0xee82eeff,
-  wheat: 0xf5deb3ff,
-  white: 0xffffffff,
-  whitesmoke: 0xf5f5f5ff,
-  yellow: 0xffff00ff,
-  yellowgreen: 0x9acd32ff
-};
-
-// const INTEGER = '[-+]?\\d+';
-var NUMBER = '[-+]?\\d*\\.?\\d+';
-var PERCENTAGE = NUMBER + '%';
-
-function call() {
-  for (var _len = arguments.length, parts = new Array(_len), _key = 0; _key < _len; _key++) {
-    parts[_key] = arguments[_key];
-  }
-
-  return '\\(\\s*(' + parts.join(')\\s*,\\s*(') + ')\\s*\\)';
-}
-
-var rgb = new RegExp('rgb' + call(NUMBER, NUMBER, NUMBER));
-var rgba = new RegExp('rgba' + call(NUMBER, NUMBER, NUMBER, NUMBER));
-var hsl = new RegExp('hsl' + call(NUMBER, PERCENTAGE, PERCENTAGE));
-var hsla = new RegExp('hsla' + call(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER));
-var hex3 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;
-var hex4 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;
-var hex6 = /^#([0-9a-fA-F]{6})$/;
-var hex8 = /^#([0-9a-fA-F]{8})$/;
-
-/*
-https://github.com/react-community/normalize-css-color
-
-BSD 3-Clause License
-
-Copyright (c) 2016, React Community
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-* Neither the name of the copyright holder nor the names of its
-  contributors may be used to endorse or promote products derived from
-  this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-function normalizeColor(color) {
-  var match;
-
-  if (typeof color === 'number') {
-    return color >>> 0 === color && color >= 0 && color <= 0xffffffff ? color : null;
-  } // Ordered based on occurrences on Facebook codebase
-
-
-  if (match = hex6.exec(color)) return parseInt(match[1] + 'ff', 16) >>> 0;
-  if (colors.hasOwnProperty(color)) return colors[color];
-
-  if (match = rgb.exec(color)) {
-    return (parse255(match[1]) << 24 | // r
-    parse255(match[2]) << 16 | // g
-    parse255(match[3]) << 8 | // b
-    0x000000ff) >>> // a
-    0;
-  }
-
-  if (match = rgba.exec(color)) {
-    return (parse255(match[1]) << 24 | // r
-    parse255(match[2]) << 16 | // g
-    parse255(match[3]) << 8 | // b
-    parse1(match[4])) >>> // a
-    0;
-  }
-
-  if (match = hex3.exec(color)) {
-    return parseInt(match[1] + match[1] + // r
-    match[2] + match[2] + // g
-    match[3] + match[3] + // b
-    'ff', // a
-    16) >>> 0;
-  } // https://drafts.csswg.org/css-color-4/#hex-notation
-
-
-  if (match = hex8.exec(color)) return parseInt(match[1], 16) >>> 0;
-
-  if (match = hex4.exec(color)) {
-    return parseInt(match[1] + match[1] + // r
-    match[2] + match[2] + // g
-    match[3] + match[3] + // b
-    match[4] + match[4], // a
-    16) >>> 0;
-  }
-
-  if (match = hsl.exec(color)) {
-    return (hslToRgb(parse360(match[1]), // h
-    parsePercentage(match[2]), // s
-    parsePercentage(match[3]) // l
-    ) | 0x000000ff) >>> // a
-    0;
-  }
-
-  if (match = hsla.exec(color)) {
-    return (hslToRgb(parse360(match[1]), // h
-    parsePercentage(match[2]), // s
-    parsePercentage(match[3]) // l
-    ) | parse1(match[4])) >>> // a
-    0;
-  }
-
-  return null;
-}
-
-function hue2rgb(p, q, t) {
-  if (t < 0) t += 1;
-  if (t > 1) t -= 1;
-  if (t < 1 / 6) return p + (q - p) * 6 * t;
-  if (t < 1 / 2) return q;
-  if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;
-  return p;
-}
-
-function hslToRgb(h, s, l) {
-  var q = l < 0.5 ? l * (1 + s) : l + s - l * s;
-  var p = 2 * l - q;
-  var r = hue2rgb(p, q, h + 1 / 3);
-  var g = hue2rgb(p, q, h);
-  var b = hue2rgb(p, q, h - 1 / 3);
-  return Math.round(r * 255) << 24 | Math.round(g * 255) << 16 | Math.round(b * 255) << 8;
-}
-
-function parse255(str) {
-  var int = parseInt(str, 10);
-  if (int < 0) return 0;
-  if (int > 255) return 255;
-  return int;
-}
-
-function parse360(str) {
-  var int = parseFloat(str);
-  return (int % 360 + 360) % 360 / 360;
-}
-
-function parse1(str) {
-  var num = parseFloat(str);
-  if (num < 0) return 0;
-  if (num > 1) return 255;
-  return Math.round(num * 255);
-}
-
-function parsePercentage(str) {
-  // parseFloat conveniently ignores the final %
-  var int = parseFloat(str);
-  if (int < 0) return 0;
-  if (int > 100) return 1;
-  return int / 100;
-}
-
-function colorToRgba(input) {
-  var int32Color = normalizeColor(input);
-  if (int32Color === null) return input;
-  int32Color = int32Color || 0;
-  var r = (int32Color & 0xff000000) >>> 24;
-  var g = (int32Color & 0x00ff0000) >>> 16;
-  var b = (int32Color & 0x0000ff00) >>> 8;
-  var a = (int32Color & 0x000000ff) / 255;
-  return "rgba(" + r + ", " + g + ", " + b + ", " + a + ")";
-} // Problem: https://github.com/animatedjs/animated/pull/102
-// Solution: https://stackoverflow.com/questions/638565/parsing-scientific-notation-sensibly/658662
-
-
-var stringShapeRegex = /[+\-]?(?:0|[1-9]\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)?/g; // Covers rgb, rgba, hsl, hsla
-// Taken from https://gist.github.com/olmokramer/82ccce673f86db7cda5e
-
-var colorRegex = /(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\((-?\d+%?[,\s]+){2,3}\s*[\d\.]+%?\))/gi; // Covers color names (transparent, blue, etc.)
-
-var colorNamesRegex = new RegExp("(" + Object.keys(colors).join('|') + ")", 'g');
-/**
- * Supports string shapes by extracting numbers so new values can be computed,
- * and recombines those values into new strings of the same shape.  Supports
- * things like:
- *
- *   rgba(123, 42, 99, 0.36)           // colors
- *   -45deg                            // values with units
- *   0 2px 2px 0px rgba(0, 0, 0, 0.12) // box shadows
- */
-
-var createStringInterpolator = function createStringInterpolator(config) {
-  // Replace colors with rgba
-  var outputRange = config.output.map(function (rangeValue) {
-    return rangeValue.replace(colorRegex, colorToRgba);
-  }).map(function (rangeValue) {
-    return rangeValue.replace(colorNamesRegex, colorToRgba);
-  });
-  var outputRanges = outputRange[0].match(stringShapeRegex).map(function () {
-    return [];
-  });
-  outputRange.forEach(function (value) {
-    value.match(stringShapeRegex).forEach(function (number, i) {
-      return outputRanges[i].push(+number);
-    });
-  });
-  var interpolations = outputRange[0].match(stringShapeRegex).map(function (_value, i) {
-    return createInterpolator(_extends({}, config, {
-      output: outputRanges[i]
-    }));
-  });
-  return function (input) {
-    var i = 0;
-    return outputRange[0] // 'rgba(0, 100, 200, 0)'
-    // ->
-    // 'rgba(${interpolations[0](input)}, ${interpolations[1](input)}, ...'
-    .replace(stringShapeRegex, function () {
-      return interpolations[i++](input);
-    }) // rgba requires that the r,g,b are integers.... so we want to round them, but we *dont* want to
-    // round the opacity (4th column).
-    .replace(/rgba\(([0-9\.-]+), ([0-9\.-]+), ([0-9\.-]+), ([0-9\.-]+)\)/gi, function (_, p1, p2, p3, p4) {
-      return "rgba(" + Math.round(p1) + ", " + Math.round(p2) + ", " + Math.round(p3) + ", " + p4 + ")";
-    });
-  };
-};
-
-var isUnitlessNumber = {
-  animationIterationCount: true,
-  borderImageOutset: true,
-  borderImageSlice: true,
-  borderImageWidth: true,
-  boxFlex: true,
-  boxFlexGroup: true,
-  boxOrdinalGroup: true,
-  columnCount: true,
-  columns: true,
-  flex: true,
-  flexGrow: true,
-  flexPositive: true,
-  flexShrink: true,
-  flexNegative: true,
-  flexOrder: true,
-  gridRow: true,
-  gridRowEnd: true,
-  gridRowSpan: true,
-  gridRowStart: true,
-  gridColumn: true,
-  gridColumnEnd: true,
-  gridColumnSpan: true,
-  gridColumnStart: true,
-  fontWeight: true,
-  lineClamp: true,
-  lineHeight: true,
-  opacity: true,
-  order: true,
-  orphans: true,
-  tabSize: true,
-  widows: true,
-  zIndex: true,
-  zoom: true,
-  // SVG-related properties
-  fillOpacity: true,
-  floodOpacity: true,
-  stopOpacity: true,
-  strokeDasharray: true,
-  strokeDashoffset: true,
-  strokeMiterlimit: true,
-  strokeOpacity: true,
-  strokeWidth: true
-};
-
-var prefixKey = function prefixKey(prefix, key) {
-  return prefix + key.charAt(0).toUpperCase() + key.substring(1);
-};
-
-var prefixes = ['Webkit', 'Ms', 'Moz', 'O'];
-isUnitlessNumber = Object.keys(isUnitlessNumber).reduce(function (acc, prop) {
-  prefixes.forEach(function (prefix) {
-    return acc[prefixKey(prefix, prop)] = acc[prop];
-  });
-  return acc;
-}, isUnitlessNumber);
-
-function dangerousStyleValue(name, value, isCustomProperty) {
-  if (value == null || typeof value === 'boolean' || value === '') return '';
-  if (!isCustomProperty && typeof value === 'number' && value !== 0 && !(isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name])) return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers
-
-  return ('' + value).trim();
-}
-
-var attributeCache = {};
-injectCreateAnimatedStyle(function (style) {
-  return new AnimatedStyle(style);
-});
-injectDefaultElement('div');
-injectStringInterpolator(createStringInterpolator);
-injectColorNames(colors);
-injectApplyAnimatedValues(function (instance, props) {
-  if (instance.nodeType && instance.setAttribute !== undefined) {
-    var style = props.style,
-        children = props.children,
-        scrollTop = props.scrollTop,
-        scrollLeft = props.scrollLeft,
-        attributes = _objectWithoutPropertiesLoose(props, ["style", "children", "scrollTop", "scrollLeft"]);
-
-    var filter = instance.nodeName === 'filter' || instance.parentNode && instance.parentNode.nodeName === 'filter';
-    if (scrollTop !== void 0) instance.scrollTop = scrollTop;
-    if (scrollLeft !== void 0) instance.scrollLeft = scrollLeft; // Set textContent, if children is an animatable value
-
-    if (children !== void 0) instance.textContent = children; // Set styles ...
-
-    for (var styleName in style) {
-      if (!style.hasOwnProperty(styleName)) continue;
-      var isCustomProperty = styleName.indexOf('--') === 0;
-      var styleValue = dangerousStyleValue(styleName, style[styleName], isCustomProperty);
-      if (styleName === 'float') styleName = 'cssFloat';
-      if (isCustomProperty) instance.style.setProperty(styleName, styleValue);else instance.style[styleName] = styleValue;
-    } // Set attributes ...
-
-
-    for (var name in attributes) {
-      // Attributes are written in dash case
-      var dashCase = filter ? name : attributeCache[name] || (attributeCache[name] = name.replace(/([A-Z])/g, function (n) {
-        return '-' + n.toLowerCase();
-      }));
-      if (typeof instance.getAttribute(dashCase) !== 'undefined') instance.setAttribute(dashCase, attributes[name]);
-    }
-
-    return;
-  } else return false;
-}, function (style) {
-  return style;
-});
-
-var domElements = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', // SVG
-'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];
-// Extend animated with all the available THREE elements
-var apply = merge(createAnimatedComponent, false);
-var extendedAnimated = apply(domElements);
-
-exports.apply = apply;
-exports.config = config;
-exports.update = update;
-exports.animated = extendedAnimated;
-exports.a = extendedAnimated;
-exports.interpolate = interpolate$1;
-exports.Globals = Globals;
-exports.useSpring = useSpring;
-exports.useTrail = useTrail;
-exports.useTransition = useTransition;
-exports.useChain = useChain;
-exports.useSprings = useSprings;
-
-
-/***/ }),
-
-/***/ "ZbWB":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var GetIntrinsic = __webpack_require__("rZ7t");
-
-var $test = GetIntrinsic('RegExp.prototype.test');
-
-var callBind = __webpack_require__("hZ2/");
-
-module.exports = function regexTester(regex) {
-	return callBind($test, regex);
-};
-
-
-/***/ }),
-
-/***/ "Zss7":
-/***/ (function(module, exports, __webpack_require__) {
-
-var __WEBPACK_AMD_DEFINE_RESULT__;// TinyColor v1.4.2
-// https://github.com/bgrins/TinyColor
-// Brian Grinstead, MIT License
-
-(function(Math) {
-
-var trimLeft = /^\s+/,
-    trimRight = /\s+$/,
-    tinyCounter = 0,
-    mathRound = Math.round,
-    mathMin = Math.min,
-    mathMax = Math.max,
-    mathRandom = Math.random;
-
-function tinycolor (color, opts) {
-
-    color = (color) ? color : '';
-    opts = opts || { };
-
-    // If input is already a tinycolor, return itself
-    if (color instanceof tinycolor) {
-       return color;
-    }
-    // If we are called as a function, call using new instead
-    if (!(this instanceof tinycolor)) {
-        return new tinycolor(color, opts);
-    }
-
-    var rgb = inputToRGB(color);
-    this._originalInput = color,
-    this._r = rgb.r,
-    this._g = rgb.g,
-    this._b = rgb.b,
-    this._a = rgb.a,
-    this._roundA = mathRound(100*this._a) / 100,
-    this._format = opts.format || rgb.format;
-    this._gradientType = opts.gradientType;
-
-    // Don't let the range of [0,255] come back in [0,1].
-    // Potentially lose a little bit of precision here, but will fix issues where
-    // .5 gets interpreted as half of the total, instead of half of 1
-    // If it was supposed to be 128, this was already taken care of by `inputToRgb`
-    if (this._r < 1) { this._r = mathRound(this._r); }
-    if (this._g < 1) { this._g = mathRound(this._g); }
-    if (this._b < 1) { this._b = mathRound(this._b); }
-
-    this._ok = rgb.ok;
-    this._tc_id = tinyCounter++;
-}
-
-tinycolor.prototype = {
-    isDark: function() {
-        return this.getBrightness() < 128;
-    },
-    isLight: function() {
-        return !this.isDark();
-    },
-    isValid: function() {
-        return this._ok;
-    },
-    getOriginalInput: function() {
-      return this._originalInput;
-    },
-    getFormat: function() {
-        return this._format;
-    },
-    getAlpha: function() {
-        return this._a;
-    },
-    getBrightness: function() {
-        //http://www.w3.org/TR/AERT#color-contrast
-        var rgb = this.toRgb();
-        return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;
-    },
-    getLuminance: function() {
-        //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef
-        var rgb = this.toRgb();
-        var RsRGB, GsRGB, BsRGB, R, G, B;
-        RsRGB = rgb.r/255;
-        GsRGB = rgb.g/255;
-        BsRGB = rgb.b/255;
-
-        if (RsRGB <= 0.03928) {R = RsRGB / 12.92;} else {R = Math.pow(((RsRGB + 0.055) / 1.055), 2.4);}
-        if (GsRGB <= 0.03928) {G = GsRGB / 12.92;} else {G = Math.pow(((GsRGB + 0.055) / 1.055), 2.4);}
-        if (BsRGB <= 0.03928) {B = BsRGB / 12.92;} else {B = Math.pow(((BsRGB + 0.055) / 1.055), 2.4);}
-        return (0.2126 * R) + (0.7152 * G) + (0.0722 * B);
-    },
-    setAlpha: function(value) {
-        this._a = boundAlpha(value);
-        this._roundA = mathRound(100*this._a) / 100;
-        return this;
-    },
-    toHsv: function() {
-        var hsv = rgbToHsv(this._r, this._g, this._b);
-        return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };
-    },
-    toHsvString: function() {
-        var hsv = rgbToHsv(this._r, this._g, this._b);
-        var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);
-        return (this._a == 1) ?
-          "hsv("  + h + ", " + s + "%, " + v + "%)" :
-          "hsva(" + h + ", " + s + "%, " + v + "%, "+ this._roundA + ")";
-    },
-    toHsl: function() {
-        var hsl = rgbToHsl(this._r, this._g, this._b);
-        return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };
-    },
-    toHslString: function() {
-        var hsl = rgbToHsl(this._r, this._g, this._b);
-        var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100);
-        return (this._a == 1) ?
-          "hsl("  + h + ", " + s + "%, " + l + "%)" :
-          "hsla(" + h + ", " + s + "%, " + l + "%, "+ this._roundA + ")";
-    },
-    toHex: function(allow3Char) {
-        return rgbToHex(this._r, this._g, this._b, allow3Char);
-    },
-    toHexString: function(allow3Char) {
-        return '#' + this.toHex(allow3Char);
-    },
-    toHex8: function(allow4Char) {
-        return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);
-    },
-    toHex8String: function(allow4Char) {
-        return '#' + this.toHex8(allow4Char);
-    },
-    toRgb: function() {
-        return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a };
-    },
-    toRgbString: function() {
-        return (this._a == 1) ?
-          "rgb("  + mathRound(this._r) + ", " + mathRound(this._g) + ", " + mathRound(this._b) + ")" :
-          "rgba(" + mathRound(this._r) + ", " + mathRound(this._g) + ", " + mathRound(this._b) + ", " + this._roundA + ")";
-    },
-    toPercentageRgb: function() {
-        return { r: mathRound(bound01(this._r, 255) * 100) + "%", g: mathRound(bound01(this._g, 255) * 100) + "%", b: mathRound(bound01(this._b, 255) * 100) + "%", a: this._a };
-    },
-    toPercentageRgbString: function() {
-        return (this._a == 1) ?
-          "rgb("  + mathRound(bound01(this._r, 255) * 100) + "%, " + mathRound(bound01(this._g, 255) * 100) + "%, " + mathRound(bound01(this._b, 255) * 100) + "%)" :
-          "rgba(" + mathRound(bound01(this._r, 255) * 100) + "%, " + mathRound(bound01(this._g, 255) * 100) + "%, " + mathRound(bound01(this._b, 255) * 100) + "%, " + this._roundA + ")";
-    },
-    toName: function() {
-        if (this._a === 0) {
-            return "transparent";
-        }
-
-        if (this._a < 1) {
-            return false;
-        }
-
-        return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;
-    },
-    toFilter: function(secondColor) {
-        var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a);
-        var secondHex8String = hex8String;
-        var gradientType = this._gradientType ? "GradientType = 1, " : "";
-
-        if (secondColor) {
-            var s = tinycolor(secondColor);
-            secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a);
-        }
-
-        return "progid:DXImageTransform.Microsoft.gradient("+gradientType+"startColorstr="+hex8String+",endColorstr="+secondHex8String+")";
-    },
-    toString: function(format) {
-        var formatSet = !!format;
-        format = format || this._format;
-
-        var formattedString = false;
-        var hasAlpha = this._a < 1 && this._a >= 0;
-        var needsAlphaFormat = !formatSet && hasAlpha && (format === "hex" || format === "hex6" || format === "hex3" || format === "hex4" || format === "hex8" || format === "name");
-
-        if (needsAlphaFormat) {
-            // Special case for "transparent", all other non-alpha formats
-            // will return rgba when there is transparency.
-            if (format === "name" && this._a === 0) {
-                return this.toName();
-            }
-            return this.toRgbString();
-        }
-        if (format === "rgb") {
-            formattedString = this.toRgbString();
-        }
-        if (format === "prgb") {
-            formattedString = this.toPercentageRgbString();
-        }
-        if (format === "hex" || format === "hex6") {
-            formattedString = this.toHexString();
-        }
-        if (format === "hex3") {
-            formattedString = this.toHexString(true);
-        }
-        if (format === "hex4") {
-            formattedString = this.toHex8String(true);
-        }
-        if (format === "hex8") {
-            formattedString = this.toHex8String();
-        }
-        if (format === "name") {
-            formattedString = this.toName();
-        }
-        if (format === "hsl") {
-            formattedString = this.toHslString();
-        }
-        if (format === "hsv") {
-            formattedString = this.toHsvString();
-        }
-
-        return formattedString || this.toHexString();
-    },
-    clone: function() {
-        return tinycolor(this.toString());
-    },
-
-    _applyModification: function(fn, args) {
-        var color = fn.apply(null, [this].concat([].slice.call(args)));
-        this._r = color._r;
-        this._g = color._g;
-        this._b = color._b;
-        this.setAlpha(color._a);
-        return this;
-    },
-    lighten: function() {
-        return this._applyModification(lighten, arguments);
-    },
-    brighten: function() {
-        return this._applyModification(brighten, arguments);
-    },
-    darken: function() {
-        return this._applyModification(darken, arguments);
-    },
-    desaturate: function() {
-        return this._applyModification(desaturate, arguments);
-    },
-    saturate: function() {
-        return this._applyModification(saturate, arguments);
-    },
-    greyscale: function() {
-        return this._applyModification(greyscale, arguments);
-    },
-    spin: function() {
-        return this._applyModification(spin, arguments);
-    },
-
-    _applyCombination: function(fn, args) {
-        return fn.apply(null, [this].concat([].slice.call(args)));
-    },
-    analogous: function() {
-        return this._applyCombination(analogous, arguments);
-    },
-    complement: function() {
-        return this._applyCombination(complement, arguments);
-    },
-    monochromatic: function() {
-        return this._applyCombination(monochromatic, arguments);
-    },
-    splitcomplement: function() {
-        return this._applyCombination(splitcomplement, arguments);
-    },
-    triad: function() {
-        return this._applyCombination(triad, arguments);
-    },
-    tetrad: function() {
-        return this._applyCombination(tetrad, arguments);
-    }
-};
-
-// If input is an object, force 1 into "1.0" to handle ratios properly
-// String input requires "1.0" as input, so 1 will be treated as 1
-tinycolor.fromRatio = function(color, opts) {
-    if (typeof color == "object") {
-        var newColor = {};
-        for (var i in color) {
-            if (color.hasOwnProperty(i)) {
-                if (i === "a") {
-                    newColor[i] = color[i];
-                }
-                else {
-                    newColor[i] = convertToPercentage(color[i]);
-                }
-            }
-        }
-        color = newColor;
-    }
-
-    return tinycolor(color, opts);
-};
-
-// Given a string or object, convert that input to RGB
-// Possible string inputs:
-//
-//     "red"
-//     "#f00" or "f00"
-//     "#ff0000" or "ff0000"
-//     "#ff000000" or "ff000000"
-//     "rgb 255 0 0" or "rgb (255, 0, 0)"
-//     "rgb 1.0 0 0" or "rgb (1, 0, 0)"
-//     "rgba (255, 0, 0, 1)" or "rgba 255, 0, 0, 1"
-//     "rgba (1.0, 0, 0, 1)" or "rgba 1.0, 0, 0, 1"
-//     "hsl(0, 100%, 50%)" or "hsl 0 100% 50%"
-//     "hsla(0, 100%, 50%, 1)" or "hsla 0 100% 50%, 1"
-//     "hsv(0, 100%, 100%)" or "hsv 0 100% 100%"
-//
-function inputToRGB(color) {
-
-    var rgb = { r: 0, g: 0, b: 0 };
-    var a = 1;
-    var s = null;
-    var v = null;
-    var l = null;
-    var ok = false;
-    var format = false;
-
-    if (typeof color == "string") {
-        color = stringInputToObject(color);
-    }
-
-    if (typeof color == "object") {
-        if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {
-            rgb = rgbToRgb(color.r, color.g, color.b);
-            ok = true;
-            format = String(color.r).substr(-1) === "%" ? "prgb" : "rgb";
-        }
-        else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {
-            s = convertToPercentage(color.s);
-            v = convertToPercentage(color.v);
-            rgb = hsvToRgb(color.h, s, v);
-            ok = true;
-            format = "hsv";
-        }
-        else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {
-            s = convertToPercentage(color.s);
-            l = convertToPercentage(color.l);
-            rgb = hslToRgb(color.h, s, l);
-            ok = true;
-            format = "hsl";
-        }
-
-        if (color.hasOwnProperty("a")) {
-            a = color.a;
-        }
-    }
-
-    a = boundAlpha(a);
-
-    return {
-        ok: ok,
-        format: color.format || format,
-        r: mathMin(255, mathMax(rgb.r, 0)),
-        g: mathMin(255, mathMax(rgb.g, 0)),
-        b: mathMin(255, mathMax(rgb.b, 0)),
-        a: a
-    };
-}
-
-
-// Conversion Functions
-// --------------------
-
-// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:
-// <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>
-
-// `rgbToRgb`
-// Handle bounds / percentage checking to conform to CSS color spec
-// <http://www.w3.org/TR/css3-color/>
-// *Assumes:* r, g, b in [0, 255] or [0, 1]
-// *Returns:* { r, g, b } in [0, 255]
-function rgbToRgb(r, g, b){
-    return {
-        r: bound01(r, 255) * 255,
-        g: bound01(g, 255) * 255,
-        b: bound01(b, 255) * 255
-    };
-}
-
-// `rgbToHsl`
-// Converts an RGB color value to HSL.
-// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]
-// *Returns:* { h, s, l } in [0,1]
-function rgbToHsl(r, g, b) {
-
-    r = bound01(r, 255);
-    g = bound01(g, 255);
-    b = bound01(b, 255);
-
-    var max = mathMax(r, g, b), min = mathMin(r, g, b);
-    var h, s, l = (max + min) / 2;
-
-    if(max == min) {
-        h = s = 0; // achromatic
-    }
-    else {
-        var d = max - min;
-        s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
-        switch(max) {
-            case r: h = (g - b) / d + (g < b ? 6 : 0); break;
-            case g: h = (b - r) / d + 2; break;
-            case b: h = (r - g) / d + 4; break;
-        }
-
-        h /= 6;
-    }
-
-    return { h: h, s: s, l: l };
-}
-
-// `hslToRgb`
-// Converts an HSL color value to RGB.
-// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]
-// *Returns:* { r, g, b } in the set [0, 255]
-function hslToRgb(h, s, l) {
-    var r, g, b;
-
-    h = bound01(h, 360);
-    s = bound01(s, 100);
-    l = bound01(l, 100);
-
-    function hue2rgb(p, q, t) {
-        if(t < 0) t += 1;
-        if(t > 1) t -= 1;
-        if(t < 1/6) return p + (q - p) * 6 * t;
-        if(t < 1/2) return q;
-        if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;
-        return p;
-    }
-
-    if(s === 0) {
-        r = g = b = l; // achromatic
-    }
-    else {
-        var q = l < 0.5 ? l * (1 + s) : l + s - l * s;
-        var p = 2 * l - q;
-        r = hue2rgb(p, q, h + 1/3);
-        g = hue2rgb(p, q, h);
-        b = hue2rgb(p, q, h - 1/3);
-    }
-
-    return { r: r * 255, g: g * 255, b: b * 255 };
-}
-
-// `rgbToHsv`
-// Converts an RGB color value to HSV
-// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]
-// *Returns:* { h, s, v } in [0,1]
-function rgbToHsv(r, g, b) {
-
-    r = bound01(r, 255);
-    g = bound01(g, 255);
-    b = bound01(b, 255);
-
-    var max = mathMax(r, g, b), min = mathMin(r, g, b);
-    var h, s, v = max;
-
-    var d = max - min;
-    s = max === 0 ? 0 : d / max;
-
-    if(max == min) {
-        h = 0; // achromatic
-    }
-    else {
-        switch(max) {
-            case r: h = (g - b) / d + (g < b ? 6 : 0); break;
-            case g: h = (b - r) / d + 2; break;
-            case b: h = (r - g) / d + 4; break;
-        }
-        h /= 6;
-    }
-    return { h: h, s: s, v: v };
-}
-
-// `hsvToRgb`
-// Converts an HSV color value to RGB.
-// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]
-// *Returns:* { r, g, b } in the set [0, 255]
- function hsvToRgb(h, s, v) {
-
-    h = bound01(h, 360) * 6;
-    s = bound01(s, 100);
-    v = bound01(v, 100);
-
-    var i = Math.floor(h),
-        f = h - i,
-        p = v * (1 - s),
-        q = v * (1 - f * s),
-        t = v * (1 - (1 - f) * s),
-        mod = i % 6,
-        r = [v, q, p, p, t, v][mod],
-        g = [t, v, v, q, p, p][mod],
-        b = [p, p, t, v, v, q][mod];
-
-    return { r: r * 255, g: g * 255, b: b * 255 };
-}
-
-// `rgbToHex`
-// Converts an RGB color to hex
-// Assumes r, g, and b are contained in the set [0, 255]
-// Returns a 3 or 6 character hex
-function rgbToHex(r, g, b, allow3Char) {
-
-    var hex = [
-        pad2(mathRound(r).toString(16)),
-        pad2(mathRound(g).toString(16)),
-        pad2(mathRound(b).toString(16))
-    ];
-
-    // Return a 3 character hex if possible
-    if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {
-        return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);
-    }
-
-    return hex.join("");
-}
-
-// `rgbaToHex`
-// Converts an RGBA color plus alpha transparency to hex
-// Assumes r, g, b are contained in the set [0, 255] and
-// a in [0, 1]. Returns a 4 or 8 character rgba hex
-function rgbaToHex(r, g, b, a, allow4Char) {
-
-    var hex = [
-        pad2(mathRound(r).toString(16)),
-        pad2(mathRound(g).toString(16)),
-        pad2(mathRound(b).toString(16)),
-        pad2(convertDecimalToHex(a))
-    ];
-
-    // Return a 4 character hex if possible
-    if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {
-        return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);
-    }
-
-    return hex.join("");
-}
-
-// `rgbaToArgbHex`
-// Converts an RGBA color to an ARGB Hex8 string
-// Rarely used, but required for "toFilter()"
-function rgbaToArgbHex(r, g, b, a) {
-
-    var hex = [
-        pad2(convertDecimalToHex(a)),
-        pad2(mathRound(r).toString(16)),
-        pad2(mathRound(g).toString(16)),
-        pad2(mathRound(b).toString(16))
-    ];
-
-    return hex.join("");
-}
-
-// `equals`
-// Can be called with any tinycolor input
-tinycolor.equals = function (color1, color2) {
-    if (!color1 || !color2) { return false; }
-    return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();
-};
-
-tinycolor.random = function() {
-    return tinycolor.fromRatio({
-        r: mathRandom(),
-        g: mathRandom(),
-        b: mathRandom()
-    });
-};
-
-
-// Modification Functions
-// ----------------------
-// Thanks to less.js for some of the basics here
-// <https://github.com/cloudhead/less.js/blob/master/lib/less/functions.js>
-
-function desaturate(color, amount) {
-    amount = (amount === 0) ? 0 : (amount || 10);
-    var hsl = tinycolor(color).toHsl();
-    hsl.s -= amount / 100;
-    hsl.s = clamp01(hsl.s);
-    return tinycolor(hsl);
-}
-
-function saturate(color, amount) {
-    amount = (amount === 0) ? 0 : (amount || 10);
-    var hsl = tinycolor(color).toHsl();
-    hsl.s += amount / 100;
-    hsl.s = clamp01(hsl.s);
-    return tinycolor(hsl);
-}
-
-function greyscale(color) {
-    return tinycolor(color).desaturate(100);
-}
-
-function lighten (color, amount) {
-    amount = (amount === 0) ? 0 : (amount || 10);
-    var hsl = tinycolor(color).toHsl();
-    hsl.l += amount / 100;
-    hsl.l = clamp01(hsl.l);
-    return tinycolor(hsl);
-}
-
-function brighten(color, amount) {
-    amount = (amount === 0) ? 0 : (amount || 10);
-    var rgb = tinycolor(color).toRgb();
-    rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100))));
-    rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100))));
-    rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100))));
-    return tinycolor(rgb);
-}
-
-function darken (color, amount) {
-    amount = (amount === 0) ? 0 : (amount || 10);
-    var hsl = tinycolor(color).toHsl();
-    hsl.l -= amount / 100;
-    hsl.l = clamp01(hsl.l);
-    return tinycolor(hsl);
-}
-
-// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.
-// Values outside of this range will be wrapped into this range.
-function spin(color, amount) {
-    var hsl = tinycolor(color).toHsl();
-    var hue = (hsl.h + amount) % 360;
-    hsl.h = hue < 0 ? 360 + hue : hue;
-    return tinycolor(hsl);
-}
-
-// Combination Functions
-// ---------------------
-// Thanks to jQuery xColor for some of the ideas behind these
-// <https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js>
-
-function complement(color) {
-    var hsl = tinycolor(color).toHsl();
-    hsl.h = (hsl.h + 180) % 360;
-    return tinycolor(hsl);
-}
-
-function triad(color) {
-    var hsl = tinycolor(color).toHsl();
-    var h = hsl.h;
-    return [
-        tinycolor(color),
-        tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),
-        tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })
-    ];
-}
-
-function tetrad(color) {
-    var hsl = tinycolor(color).toHsl();
-    var h = hsl.h;
-    return [
-        tinycolor(color),
-        tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),
-        tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),
-        tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })
-    ];
-}
-
-function splitcomplement(color) {
-    var hsl = tinycolor(color).toHsl();
-    var h = hsl.h;
-    return [
-        tinycolor(color),
-        tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),
-        tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})
-    ];
-}
-
-function analogous(color, results, slices) {
-    results = results || 6;
-    slices = slices || 30;
-
-    var hsl = tinycolor(color).toHsl();
-    var part = 360 / slices;
-    var ret = [tinycolor(color)];
-
-    for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {
-        hsl.h = (hsl.h + part) % 360;
-        ret.push(tinycolor(hsl));
-    }
-    return ret;
-}
-
-function monochromatic(color, results) {
-    results = results || 6;
-    var hsv = tinycolor(color).toHsv();
-    var h = hsv.h, s = hsv.s, v = hsv.v;
-    var ret = [];
-    var modification = 1 / results;
-
-    while (results--) {
-        ret.push(tinycolor({ h: h, s: s, v: v}));
-        v = (v + modification) % 1;
-    }
-
-    return ret;
-}
-
-// Utility Functions
-// ---------------------
-
-tinycolor.mix = function(color1, color2, amount) {
-    amount = (amount === 0) ? 0 : (amount || 50);
-
-    var rgb1 = tinycolor(color1).toRgb();
-    var rgb2 = tinycolor(color2).toRgb();
-
-    var p = amount / 100;
-
-    var rgba = {
-        r: ((rgb2.r - rgb1.r) * p) + rgb1.r,
-        g: ((rgb2.g - rgb1.g) * p) + rgb1.g,
-        b: ((rgb2.b - rgb1.b) * p) + rgb1.b,
-        a: ((rgb2.a - rgb1.a) * p) + rgb1.a
-    };
-
-    return tinycolor(rgba);
-};
-
-
-// Readability Functions
-// ---------------------
-// <http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef (WCAG Version 2)
-
-// `contrast`
-// Analyze the 2 colors and returns the color contrast defined by (WCAG Version 2)
-tinycolor.readability = function(color1, color2) {
-    var c1 = tinycolor(color1);
-    var c2 = tinycolor(color2);
-    return (Math.max(c1.getLuminance(),c2.getLuminance())+0.05) / (Math.min(c1.getLuminance(),c2.getLuminance())+0.05);
-};
-
-// `isReadable`
-// Ensure that foreground and background color combinations meet WCAG2 guidelines.
-// The third argument is an optional Object.
-//      the 'level' property states 'AA' or 'AAA' - if missing or invalid, it defaults to 'AA';
-//      the 'size' property states 'large' or 'small' - if missing or invalid, it defaults to 'small'.
-// If the entire object is absent, isReadable defaults to {level:"AA",size:"small"}.
-
-// *Example*
-//    tinycolor.isReadable("#000", "#111") => false
-//    tinycolor.isReadable("#000", "#111",{level:"AA",size:"large"}) => false
-tinycolor.isReadable = function(color1, color2, wcag2) {
-    var readability = tinycolor.readability(color1, color2);
-    var wcag2Parms, out;
-
-    out = false;
-
-    wcag2Parms = validateWCAG2Parms(wcag2);
-    switch (wcag2Parms.level + wcag2Parms.size) {
-        case "AAsmall":
-        case "AAAlarge":
-            out = readability >= 4.5;
-            break;
-        case "AAlarge":
-            out = readability >= 3;
-            break;
-        case "AAAsmall":
-            out = readability >= 7;
-            break;
-    }
-    return out;
-
-};
-
-// `mostReadable`
-// Given a base color and a list of possible foreground or background
-// colors for that base, returns the most readable color.
-// Optionally returns Black or White if the most readable color is unreadable.
-// *Example*
-//    tinycolor.mostReadable(tinycolor.mostReadable("#123", ["#124", "#125"],{includeFallbackColors:false}).toHexString(); // "#112255"
-//    tinycolor.mostReadable(tinycolor.mostReadable("#123", ["#124", "#125"],{includeFallbackColors:true}).toHexString();  // "#ffffff"
-//    tinycolor.mostReadable("#a8015a", ["#faf3f3"],{includeFallbackColors:true,level:"AAA",size:"large"}).toHexString(); // "#faf3f3"
-//    tinycolor.mostReadable("#a8015a", ["#faf3f3"],{includeFallbackColors:true,level:"AAA",size:"small"}).toHexString(); // "#ffffff"
-tinycolor.mostReadable = function(baseColor, colorList, args) {
-    var bestColor = null;
-    var bestScore = 0;
-    var readability;
-    var includeFallbackColors, level, size ;
-    args = args || {};
-    includeFallbackColors = args.includeFallbackColors ;
-    level = args.level;
-    size = args.size;
-
-    for (var i= 0; i < colorList.length ; i++) {
-        readability = tinycolor.readability(baseColor, colorList[i]);
-        if (readability > bestScore) {
-            bestScore = readability;
-            bestColor = tinycolor(colorList[i]);
-        }
-    }
-
-    if (tinycolor.isReadable(baseColor, bestColor, {"level":level,"size":size}) || !includeFallbackColors) {
-        return bestColor;
-    }
-    else {
-        args.includeFallbackColors=false;
-        return tinycolor.mostReadable(baseColor,["#fff", "#000"],args);
-    }
-};
-
-
-// Big List of Colors
-// ------------------
-// <http://www.w3.org/TR/css3-color/#svg-color>
-var names = tinycolor.names = {
-    aliceblue: "f0f8ff",
-    antiquewhite: "faebd7",
-    aqua: "0ff",
-    aquamarine: "7fffd4",
-    azure: "f0ffff",
-    beige: "f5f5dc",
-    bisque: "ffe4c4",
-    black: "000",
-    blanchedalmond: "ffebcd",
-    blue: "00f",
-    blueviolet: "8a2be2",
-    brown: "a52a2a",
-    burlywood: "deb887",
-    burntsienna: "ea7e5d",
-    cadetblue: "5f9ea0",
-    chartreuse: "7fff00",
-    chocolate: "d2691e",
-    coral: "ff7f50",
-    cornflowerblue: "6495ed",
-    cornsilk: "fff8dc",
-    crimson: "dc143c",
-    cyan: "0ff",
-    darkblue: "00008b",
-    darkcyan: "008b8b",
-    darkgoldenrod: "b8860b",
-    darkgray: "a9a9a9",
-    darkgreen: "006400",
-    darkgrey: "a9a9a9",
-    darkkhaki: "bdb76b",
-    darkmagenta: "8b008b",
-    darkolivegreen: "556b2f",
-    darkorange: "ff8c00",
-    darkorchid: "9932cc",
-    darkred: "8b0000",
-    darksalmon: "e9967a",
-    darkseagreen: "8fbc8f",
-    darkslateblue: "483d8b",
-    darkslategray: "2f4f4f",
-    darkslategrey: "2f4f4f",
-    darkturquoise: "00ced1",
-    darkviolet: "9400d3",
-    deeppink: "ff1493",
-    deepskyblue: "00bfff",
-    dimgray: "696969",
-    dimgrey: "696969",
-    dodgerblue: "1e90ff",
-    firebrick: "b22222",
-    floralwhite: "fffaf0",
-    forestgreen: "228b22",
-    fuchsia: "f0f",
-    gainsboro: "dcdcdc",
-    ghostwhite: "f8f8ff",
-    gold: "ffd700",
-    goldenrod: "daa520",
-    gray: "808080",
-    green: "008000",
-    greenyellow: "adff2f",
-    grey: "808080",
-    honeydew: "f0fff0",
-    hotpink: "ff69b4",
-    indianred: "cd5c5c",
-    indigo: "4b0082",
-    ivory: "fffff0",
-    khaki: "f0e68c",
-    lavender: "e6e6fa",
-    lavenderblush: "fff0f5",
-    lawngreen: "7cfc00",
-    lemonchiffon: "fffacd",
-    lightblue: "add8e6",
-    lightcoral: "f08080",
-    lightcyan: "e0ffff",
-    lightgoldenrodyellow: "fafad2",
-    lightgray: "d3d3d3",
-    lightgreen: "90ee90",
-    lightgrey: "d3d3d3",
-    lightpink: "ffb6c1",
-    lightsalmon: "ffa07a",
-    lightseagreen: "20b2aa",
-    lightskyblue: "87cefa",
-    lightslategray: "789",
-    lightslategrey: "789",
-    lightsteelblue: "b0c4de",
-    lightyellow: "ffffe0",
-    lime: "0f0",
-    limegreen: "32cd32",
-    linen: "faf0e6",
-    magenta: "f0f",
-    maroon: "800000",
-    mediumaquamarine: "66cdaa",
-    mediumblue: "0000cd",
-    mediumorchid: "ba55d3",
-    mediumpurple: "9370db",
-    mediumseagreen: "3cb371",
-    mediumslateblue: "7b68ee",
-    mediumspringgreen: "00fa9a",
-    mediumturquoise: "48d1cc",
-    mediumvioletred: "c71585",
-    midnightblue: "191970",
-    mintcream: "f5fffa",
-    mistyrose: "ffe4e1",
-    moccasin: "ffe4b5",
-    navajowhite: "ffdead",
-    navy: "000080",
-    oldlace: "fdf5e6",
-    olive: "808000",
-    olivedrab: "6b8e23",
-    orange: "ffa500",
-    orangered: "ff4500",
-    orchid: "da70d6",
-    palegoldenrod: "eee8aa",
-    palegreen: "98fb98",
-    paleturquoise: "afeeee",
-    palevioletred: "db7093",
-    papayawhip: "ffefd5",
-    peachpuff: "ffdab9",
-    peru: "cd853f",
-    pink: "ffc0cb",
-    plum: "dda0dd",
-    powderblue: "b0e0e6",
-    purple: "800080",
-    rebeccapurple: "663399",
-    red: "f00",
-    rosybrown: "bc8f8f",
-    royalblue: "4169e1",
-    saddlebrown: "8b4513",
-    salmon: "fa8072",
-    sandybrown: "f4a460",
-    seagreen: "2e8b57",
-    seashell: "fff5ee",
-    sienna: "a0522d",
-    silver: "c0c0c0",
-    skyblue: "87ceeb",
-    slateblue: "6a5acd",
-    slategray: "708090",
-    slategrey: "708090",
-    snow: "fffafa",
-    springgreen: "00ff7f",
-    steelblue: "4682b4",
-    tan: "d2b48c",
-    teal: "008080",
-    thistle: "d8bfd8",
-    tomato: "ff6347",
-    turquoise: "40e0d0",
-    violet: "ee82ee",
-    wheat: "f5deb3",
-    white: "fff",
-    whitesmoke: "f5f5f5",
-    yellow: "ff0",
-    yellowgreen: "9acd32"
-};
-
-// Make it easy to access colors via `hexNames[hex]`
-var hexNames = tinycolor.hexNames = flip(names);
-
-
-// Utilities
-// ---------
-
-// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`
-function flip(o) {
-    var flipped = { };
-    for (var i in o) {
-        if (o.hasOwnProperty(i)) {
-            flipped[o[i]] = i;
-        }
-    }
-    return flipped;
-}
-
-// Return a valid alpha value [0,1] with all invalid values being set to 1
-function boundAlpha(a) {
-    a = parseFloat(a);
-
-    if (isNaN(a) || a < 0 || a > 1) {
-        a = 1;
-    }
-
-    return a;
-}
-
-// Take input from [0, n] and return it as [0, 1]
-function bound01(n, max) {
-    if (isOnePointZero(n)) { n = "100%"; }
-
-    var processPercent = isPercentage(n);
-    n = mathMin(max, mathMax(0, parseFloat(n)));
-
-    // Automatically convert percentage into number
-    if (processPercent) {
-        n = parseInt(n * max, 10) / 100;
-    }
-
-    // Handle floating point rounding errors
-    if ((Math.abs(n - max) < 0.000001)) {
-        return 1;
-    }
-
-    // Convert into [0, 1] range if it isn't already
-    return (n % max) / parseFloat(max);
-}
-
-// Force a number between 0 and 1
-function clamp01(val) {
-    return mathMin(1, mathMax(0, val));
-}
-
-// Parse a base-16 hex value into a base-10 integer
-function parseIntFromHex(val) {
-    return parseInt(val, 16);
-}
-
-// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1
-// <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>
-function isOnePointZero(n) {
-    return typeof n == "string" && n.indexOf('.') != -1 && parseFloat(n) === 1;
-}
-
-// Check to see if string passed in is a percentage
-function isPercentage(n) {
-    return typeof n === "string" && n.indexOf('%') != -1;
-}
-
-// Force a hex value to have 2 characters
-function pad2(c) {
-    return c.length == 1 ? '0' + c : '' + c;
-}
-
-// Replace a decimal with it's percentage value
-function convertToPercentage(n) {
-    if (n <= 1) {
-        n = (n * 100) + "%";
-    }
-
-    return n;
-}
-
-// Converts a decimal to a hex value
-function convertDecimalToHex(d) {
-    return Math.round(parseFloat(d) * 255).toString(16);
-}
-// Converts a hex value to a decimal
-function convertHexToDecimal(h) {
-    return (parseIntFromHex(h) / 255);
-}
-
-var matchers = (function() {
-
-    // <http://www.w3.org/TR/css3-values/#integers>
-    var CSS_INTEGER = "[-\\+]?\\d+%?";
-
-    // <http://www.w3.org/TR/css3-values/#number-value>
-    var CSS_NUMBER = "[-\\+]?\\d*\\.\\d+%?";
-
-    // Allow positive/negative integer/number.  Don't capture the either/or, just the entire outcome.
-    var CSS_UNIT = "(?:" + CSS_NUMBER + ")|(?:" + CSS_INTEGER + ")";
-
-    // Actual matching.
-    // Parentheses and commas are optional, but not required.
-    // Whitespace can take the place of commas or opening paren
-    var PERMISSIVE_MATCH3 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")\\s*\\)?";
-    var PERMISSIVE_MATCH4 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")\\s*\\)?";
-
-    return {
-        CSS_UNIT: new RegExp(CSS_UNIT),
-        rgb: new RegExp("rgb" + PERMISSIVE_MATCH3),
-        rgba: new RegExp("rgba" + PERMISSIVE_MATCH4),
-        hsl: new RegExp("hsl" + PERMISSIVE_MATCH3),
-        hsla: new RegExp("hsla" + PERMISSIVE_MATCH4),
-        hsv: new RegExp("hsv" + PERMISSIVE_MATCH3),
-        hsva: new RegExp("hsva" + PERMISSIVE_MATCH4),
-        hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,
-        hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,
-        hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,
-        hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/
-    };
-})();
-
-// `isValidCSSUnit`
-// Take in a single string / number and check to see if it looks like a CSS unit
-// (see `matchers` above for definition).
-function isValidCSSUnit(color) {
-    return !!matchers.CSS_UNIT.exec(color);
-}
-
-// `stringInputToObject`
-// Permissive string parsing.  Take in a number of formats, and output an object
-// based on detected format.  Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`
-function stringInputToObject(color) {
-
-    color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();
-    var named = false;
-    if (names[color]) {
-        color = names[color];
-        named = true;
-    }
-    else if (color == 'transparent') {
-        return { r: 0, g: 0, b: 0, a: 0, format: "name" };
-    }
-
-    // Try to match string input using regular expressions.
-    // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]
-    // Just return an object and let the conversion functions handle that.
-    // This way the result will be the same whether the tinycolor is initialized with string or object.
-    var match;
-    if ((match = matchers.rgb.exec(color))) {
-        return { r: match[1], g: match[2], b: match[3] };
-    }
-    if ((match = matchers.rgba.exec(color))) {
-        return { r: match[1], g: match[2], b: match[3], a: match[4] };
-    }
-    if ((match = matchers.hsl.exec(color))) {
-        return { h: match[1], s: match[2], l: match[3] };
-    }
-    if ((match = matchers.hsla.exec(color))) {
-        return { h: match[1], s: match[2], l: match[3], a: match[4] };
-    }
-    if ((match = matchers.hsv.exec(color))) {
-        return { h: match[1], s: match[2], v: match[3] };
-    }
-    if ((match = matchers.hsva.exec(color))) {
-        return { h: match[1], s: match[2], v: match[3], a: match[4] };
-    }
-    if ((match = matchers.hex8.exec(color))) {
-        return {
-            r: parseIntFromHex(match[1]),
-            g: parseIntFromHex(match[2]),
-            b: parseIntFromHex(match[3]),
-            a: convertHexToDecimal(match[4]),
-            format: named ? "name" : "hex8"
-        };
-    }
-    if ((match = matchers.hex6.exec(color))) {
-        return {
-            r: parseIntFromHex(match[1]),
-            g: parseIntFromHex(match[2]),
-            b: parseIntFromHex(match[3]),
-            format: named ? "name" : "hex"
-        };
-    }
-    if ((match = matchers.hex4.exec(color))) {
-        return {
-            r: parseIntFromHex(match[1] + '' + match[1]),
-            g: parseIntFromHex(match[2] + '' + match[2]),
-            b: parseIntFromHex(match[3] + '' + match[3]),
-            a: convertHexToDecimal(match[4] + '' + match[4]),
-            format: named ? "name" : "hex8"
-        };
-    }
-    if ((match = matchers.hex3.exec(color))) {
-        return {
-            r: parseIntFromHex(match[1] + '' + match[1]),
-            g: parseIntFromHex(match[2] + '' + match[2]),
-            b: parseIntFromHex(match[3] + '' + match[3]),
-            format: named ? "name" : "hex"
-        };
-    }
-
-    return false;
-}
-
-function validateWCAG2Parms(parms) {
-    // return valid WCAG2 parms for isReadable.
-    // If input parms are invalid, return {"level":"AA", "size":"small"}
-    var level, size;
-    parms = parms || {"level":"AA", "size":"small"};
-    level = (parms.level || "AA").toUpperCase();
-    size = (parms.size || "small").toLowerCase();
-    if (level !== "AA" && level !== "AAA") {
-        level = "AA";
-    }
-    if (size !== "small" && size !== "large") {
-        size = "small";
-    }
-    return {"level":level, "size":size};
-}
-
-// Node: Export function
-if ( true && module.exports) {
-    module.exports = tinycolor;
-}
-// AMD/requirejs: Define the module
-else if (true) {
-    !(__WEBPACK_AMD_DEFINE_RESULT__ = (function () {return tinycolor;}).call(exports, __webpack_require__, exports, module),
-				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
-}
-// Browser: Expose to window
-else {}
-
-})(Math);
-
-
-/***/ }),
-
-/***/ "aA0e":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* WEBPACK VAR INJECTION */(function(process) {/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("wx14");
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("GRId");
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__);
-/* harmony import */ var reakit_Toolbar__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("zTEx");
-/* harmony import */ var _wordpress_warning__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("Z23Y");
-/* harmony import */ var _wordpress_warning__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_warning__WEBPACK_IMPORTED_MODULE_3__);
-/* harmony import */ var _toolbar_context__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("GK4x");
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-function ToolbarItem({
-  children,
-  as: Component,
-  ...props
-}, ref) {
-  const accessibleToolbarState = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["useContext"])(_toolbar_context__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"]);
-
-  if (typeof children !== 'function' && !Component) {
-    typeof process !== "undefined" && process.env && "production" !== "production" ? _wordpress_warning__WEBPACK_IMPORTED_MODULE_3___default()('`ToolbarItem` is a generic headless component. You must pass either a `children` prop as a function or an `as` prop as a component. ' + 'See https://developer.wordpress.org/block-editor/components/toolbar-item/') : void 0;
-    return null;
-  }
-
-  const allProps = { ...props,
-    ref,
-    'data-toolbar-item': true
-  };
-
-  if (!accessibleToolbarState) {
-    if (Component) {
-      return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(Component, allProps, children);
-    }
-
-    return children(allProps);
-  }
-
-  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(reakit_Toolbar__WEBPACK_IMPORTED_MODULE_2__[/* ToolbarItem */ "a"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({}, accessibleToolbarState, allProps, {
-    as: Component
-  }), children);
-}
-
-/* harmony default export */ __webpack_exports__["a"] = (Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["forwardRef"])(ToolbarItem));
-
-/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("8oxB")))
-
-/***/ }),
-
-/***/ "aE6U":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
+/***/ 5820:
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
   value: true
-});
-
-var _propTypes = __webpack_require__("17x9");
+}));
+
+var _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; };
+
+var _object = __webpack_require__(4011);
+
+var _object2 = _interopRequireDefault(_object);
+
+var _react = __webpack_require__(9196);
+
+var _react2 = _interopRequireDefault(_react);
+
+var _propTypes = __webpack_require__(2652);
 
 var _propTypes2 = _interopRequireDefault(_propTypes);
 
-var _constants = __webpack_require__("Fv1B");
+var _airbnbPropTypes = __webpack_require__(4882);
+
+var _reactWithStyles = __webpack_require__(3576);
 
 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
 
-exports['default'] = _propTypes2['default'].oneOf([_constants.HORIZONTAL_ORIENTATION, _constants.VERTICAL_ORIENTATION, _constants.VERTICAL_SCROLLABLE]);
-
-/***/ }),
-
-/***/ "aI7X":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-/* eslint no-invalid-this: 1 */
-
-var ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';
-var slice = Array.prototype.slice;
-var toStr = Object.prototype.toString;
-var funcType = '[object Function]';
-
-module.exports = function bind(that) {
-    var target = this;
-    if (typeof target !== 'function' || toStr.call(target) !== funcType) {
-        throw new TypeError(ERROR_MESSAGE + target);
-    }
-    var args = slice.call(arguments, 1);
-
-    var bound;
-    var binder = function () {
-        if (this instanceof bound) {
-            var result = target.apply(
-                this,
-                args.concat(slice.call(arguments))
-            );
-            if (Object(result) === result) {
-                return result;
-            }
-            return this;
-        } else {
-            return target.apply(
-                that,
-                args.concat(slice.call(arguments))
-            );
-        }
-    };
-
-    var boundLength = Math.max(0, target.length - args.length);
-    var boundArgs = [];
-    for (var i = 0; i < boundLength; i++) {
-        boundArgs.push('$' + i);
-    }
-
-    bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);
-
-    if (target.prototype) {
-        var Empty = function Empty() {};
-        Empty.prototype = target.prototype;
-        bound.prototype = new Empty();
-        Empty.prototype = null;
-    }
-
-    return bound;
-};
-
-
-/***/ }),
-
-/***/ "aU41":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return useForkRef; });
-/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("cDcd");
-/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
-
-
-// https://github.com/mui-org/material-ui/blob/2bcc874cf07b81202968f769cb9c2398c7c11311/packages/material-ui/src/utils/useForkRef.js
-
-function setRef(ref, value) {
-  if (value === void 0) {
-    value = null;
-  }
-
-  if (!ref) return;
-
-  if (typeof ref === "function") {
-    ref(value);
-  } else {
-    ref.current = value;
-  }
-}
-/**
- * Merges up to two React Refs into a single memoized function React Ref so you
- * can pass it to an element.
- *
- * @example
- * import React from "react";
- * import { useForkRef } from "reakit-utils";
- *
- * const Component = React.forwardRef((props, ref) => {
- *   const internalRef = React.useRef();
- *   return <div {...props} ref={useForkRef(internalRef, ref)} />;
- * });
- */
-
-
-function useForkRef(refA, refB) {
-  return Object(react__WEBPACK_IMPORTED_MODULE_0__["useMemo"])(function () {
-    if (refA == null && refB == null) {
-      return null;
-    }
-
-    return function (value) {
-      setRef(refA, value);
-      setRef(refB, value);
-    };
-  }, [refA, refB]);
-}
-
-
-
-
-/***/ }),
-
-/***/ "aUaa":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var GetIntrinsic = __webpack_require__("v7lB");
-
-var $TypeError = GetIntrinsic('%TypeError%');
-
-// http://www.ecma-international.org/ecma-262/5.1/#sec-9.10
-
-module.exports = function CheckObjectCoercible(value, optMessage) {
-	if (value == null) {
-		throw new $TypeError(optMessage || ('Cannot call method on ' + value));
-	}
-	return value;
-};
-
-
-/***/ }),
-
-/***/ "aenO":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var GetIntrinsic = __webpack_require__("rZ7t");
-
-var $TypeError = GetIntrinsic('%TypeError%');
-
-var IsPropertyKey = __webpack_require__("i10q");
-var Type = __webpack_require__("V1cy");
-
-// https://ecma-international.org/ecma-262/6.0/#sec-hasproperty
-
-module.exports = function HasProperty(O, P) {
-	if (Type(O) !== 'Object') {
-		throw new $TypeError('Assertion failed: `O` must be an Object');
-	}
-	if (!IsPropertyKey(P)) {
-		throw new $TypeError('Assertion failed: `P` must be a Property Key');
-	}
-	return P in O;
-};
-
-
-/***/ }),
-
-/***/ "agUq":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-// http://262.ecma-international.org/5.1/#sec-9.11
-
-module.exports = __webpack_require__("Asd8");
-
-
-/***/ }),
-
-/***/ "ald4":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var $isNaN = Number.isNaN || function (a) { return a !== a; };
-
-module.exports = Number.isFinite || function (x) { return typeof x === 'number' && !$isNaN(x) && x !== Infinity && x !== -Infinity; };
-
-
-/***/ }),
-
-/***/ "bWcr":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
-/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
-
-
-/**
- * WordPress dependencies
- */
-
-const closeSmall = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
-  xmlns: "http://www.w3.org/2000/svg",
-  viewBox: "0 0 24 24"
-}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
-  d: "M12 13.06l3.712 3.713 1.061-1.06L13.061 12l3.712-3.712-1.06-1.06L12 10.938 8.288 7.227l-1.061 1.06L10.939 12l-3.712 3.712 1.06 1.061L12 13.061z"
-}));
-/* harmony default export */ __webpack_exports__["a"] = (closeSmall);
-
-
-/***/ }),
-
-/***/ "c6aN":
-/***/ (function(module, exports, __webpack_require__) {
-
-var moment = __webpack_require__("wy2R");
-
-function isValidMoment(testMoment) {
-  if (typeof moment.isMoment === 'function' && !moment.isMoment(testMoment)) {
-    return false;
-  }
-
-  /* istanbul ignore else  */
-  if (typeof testMoment.isValid === 'function') {
-    // moment 1.7.0+
-    return testMoment.isValid();
-  }
-
-  /* istanbul ignore next */
-  return !isNaN(testMoment);
-}
-
-module.exports = {
-  isValidMoment : isValidMoment,
-};
-
-
-/***/ }),
-
-/***/ "cD2C":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-if (true) {
-  module.exports = __webpack_require__("5aBA");
-} else {}
-
-
-/***/ }),
-
-/***/ "cDcd":
-/***/ (function(module, exports) {
-
-(function() { module.exports = window["React"]; }());
-
-/***/ }),
-
-/***/ "cGtP":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
-/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
-
-
-/**
- * WordPress dependencies
- */
-
-const search = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
-  xmlns: "http://www.w3.org/2000/svg",
-  viewBox: "0 0 24 24"
-}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
-  d: "M13.5 6C10.5 6 8 8.5 8 11.5c0 1.1.3 2.1.9 3l-3.4 3 1 1.1 3.4-2.9c1 .9 2.2 1.4 3.6 1.4 3 0 5.5-2.5 5.5-5.5C19 8.5 16.5 6 13.5 6zm0 9.5c-2.2 0-4-1.8-4-4s1.8-4 4-4 4 1.8 4 4-1.8 4-4 4z"
-}));
-/* harmony default export */ __webpack_exports__["a"] = (search);
-
-
-/***/ }),
-
-/***/ "dRQD":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
+var propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, {
+  unicode: _propTypes2['default'].string.isRequired,
+  label: _propTypes2['default'].string.isRequired,
+  action: _propTypes2['default'].string.isRequired,
+  block: _propTypes2['default'].bool
+}));
+
+var defaultProps = {
+  block: false
+};
+
+function KeyboardShortcutRow(_ref) {
+  var unicode = _ref.unicode,
+      label = _ref.label,
+      action = _ref.action,
+      block = _ref.block,
+      styles = _ref.styles;
+
+  return _react2['default'].createElement(
+    'li',
+    (0, _reactWithStyles.css)(styles.KeyboardShortcutRow, block && styles.KeyboardShortcutRow__block),
+    _react2['default'].createElement(
+      'div',
+      (0, _reactWithStyles.css)(styles.KeyboardShortcutRow_keyContainer, block && styles.KeyboardShortcutRow_keyContainer__block),
+      _react2['default'].createElement(
+        'span',
+        _extends({}, (0, _reactWithStyles.css)(styles.KeyboardShortcutRow_key), {
+          role: 'img',
+          'aria-label': String(label) + ',' // add comma so screen readers will pause before reading action
+        }),
+        unicode
+      )
+    ),
+    _react2['default'].createElement(
+      'div',
+      (0, _reactWithStyles.css)(styles.KeyboardShortcutRow_action),
+      action
+    )
+  );
+}
+
+KeyboardShortcutRow.propTypes = propTypes;
+KeyboardShortcutRow.defaultProps = defaultProps;
+
+exports["default"] = (0, _reactWithStyles.withStyles)(function (_ref2) {
+  var color = _ref2.reactDates.color;
+  return {
+    KeyboardShortcutRow: {
+      listStyle: 'none',
+      margin: '6px 0'
+    },
+
+    KeyboardShortcutRow__block: {
+      marginBottom: 16
+    },
+
+    KeyboardShortcutRow_keyContainer: {
+      display: 'inline-block',
+      whiteSpace: 'nowrap',
+      textAlign: 'right',
+      marginRight: 6
+    },
+
+    KeyboardShortcutRow_keyContainer__block: {
+      textAlign: 'left',
+      display: 'inline'
+    },
+
+    KeyboardShortcutRow_key: {
+      fontFamily: 'monospace',
+      fontSize: 12,
+      textTransform: 'uppercase',
+      background: color.core.grayLightest,
+      padding: '2px 6px'
+    },
+
+    KeyboardShortcutRow_action: {
+      display: 'inline',
+      wordBreak: 'break-word',
+      marginLeft: 8
+    }
+  };
+})(KeyboardShortcutRow);
+
+/***/ }),
+
+/***/ 8:
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
   value: true
-});
-exports['default'] = isTransitionEndSupported;
-function isTransitionEndSupported() {
-  return !!(typeof window !== 'undefined' && 'TransitionEvent' in window);
-}
-
-/***/ }),
-
-/***/ "dSD1":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-
-// EXPORTS
-__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ slot_fill_Fill; });
-__webpack_require__.d(__webpack_exports__, "c", function() { return /* binding */ slot_fill_Slot; });
-__webpack_require__.d(__webpack_exports__, "b", function() { return /* binding */ Provider; });
-__webpack_require__.d(__webpack_exports__, "d", function() { return /* binding */ createSlotFill; });
-
-// UNUSED EXPORTS: useSlot
-
-// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js
-var esm_extends = __webpack_require__("wx14");
-
-// EXTERNAL MODULE: external ["wp","element"]
-var external_wp_element_ = __webpack_require__("GRId");
-
-// EXTERNAL MODULE: external "lodash"
-var external_lodash_ = __webpack_require__("YLtl");
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/context.js
-/**
- * WordPress dependencies
- */
-
-const SlotFillContext = Object(external_wp_element_["createContext"])({
-  registerSlot: () => {},
-  unregisterSlot: () => {},
-  registerFill: () => {},
-  unregisterFill: () => {},
-  getSlot: () => {},
-  getFills: () => {},
-  subscribe: () => {}
-});
-/* harmony default export */ var context = (SlotFillContext);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/use-slot.js
-/**
- * WordPress dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-/**
- * React hook returning the active slot given a name.
- *
- * @param {string} name Slot name.
- * @return {Object} Slot object.
- */
-
-const useSlot = name => {
-  const {
-    getSlot,
-    subscribe
-  } = Object(external_wp_element_["useContext"])(context);
-  const [slot, setSlot] = Object(external_wp_element_["useState"])(getSlot(name));
-  Object(external_wp_element_["useEffect"])(() => {
-    setSlot(getSlot(name));
-    const unsubscribe = subscribe(() => {
-      setSlot(getSlot(name));
-    });
-    return unsubscribe;
-  }, [name]);
-  return slot;
-};
-
-/* harmony default export */ var use_slot = (useSlot);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/fill.js
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-function fill_FillComponent({
-  name,
-  children,
-  registerFill,
-  unregisterFill
-}) {
-  const slot = use_slot(name);
-  const ref = Object(external_wp_element_["useRef"])({
-    name,
-    children
-  });
-  Object(external_wp_element_["useLayoutEffect"])(() => {
-    registerFill(name, ref.current);
-    return () => unregisterFill(name, ref.current);
-  }, []);
-  Object(external_wp_element_["useLayoutEffect"])(() => {
-    ref.current.children = children;
-
-    if (slot) {
-      slot.forceUpdate();
-    }
-  }, [children]);
-  Object(external_wp_element_["useLayoutEffect"])(() => {
-    if (name === ref.current.name) {
-      // ignore initial effect
-      return;
-    }
-
-    unregisterFill(ref.current.name, ref.current);
-    ref.current.name = name;
-    registerFill(name, ref.current);
-  }, [name]);
-
-  if (!slot || !slot.node) {
-    return null;
-  } // If a function is passed as a child, provide it with the fillProps.
-
-
-  if (Object(external_lodash_["isFunction"])(children)) {
-    children = children(slot.props.fillProps);
-  }
-
-  return Object(external_wp_element_["createPortal"])(children, slot.node);
-}
-
-const Fill = props => Object(external_wp_element_["createElement"])(context.Consumer, null, ({
-  registerFill,
-  unregisterFill
-}) => Object(external_wp_element_["createElement"])(fill_FillComponent, Object(esm_extends["a" /* default */])({}, props, {
-  registerFill: registerFill,
-  unregisterFill: unregisterFill
-})));
-
-/* harmony default export */ var slot_fill_fill = (Fill);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/slot.js
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-class slot_SlotComponent extends external_wp_element_["Component"] {
-  constructor() {
-    super(...arguments);
-    this.isUnmounted = false;
-    this.bindNode = this.bindNode.bind(this);
-  }
-
-  componentDidMount() {
-    const {
-      registerSlot
-    } = this.props;
-    registerSlot(this.props.name, this);
-  }
-
-  componentWillUnmount() {
-    const {
-      unregisterSlot
-    } = this.props;
-    this.isUnmounted = true;
-    unregisterSlot(this.props.name, this);
-  }
-
-  componentDidUpdate(prevProps) {
-    const {
-      name,
-      unregisterSlot,
-      registerSlot
-    } = this.props;
-
-    if (prevProps.name !== name) {
-      unregisterSlot(prevProps.name);
-      registerSlot(name, this);
-    }
-  }
-
-  bindNode(node) {
-    this.node = node;
-  }
-
-  forceUpdate() {
-    if (this.isUnmounted) {
-      return;
-    }
-
-    super.forceUpdate();
-  }
-
-  render() {
-    const {
-      children,
-      name,
-      fillProps = {},
-      getFills
-    } = this.props;
-    const fills = Object(external_lodash_["map"])(getFills(name, this), fill => {
-      const fillChildren = Object(external_lodash_["isFunction"])(fill.children) ? fill.children(fillProps) : fill.children;
-      return external_wp_element_["Children"].map(fillChildren, (child, childIndex) => {
-        if (!child || Object(external_lodash_["isString"])(child)) {
-          return child;
-        }
-
-        const childKey = child.key || childIndex;
-        return Object(external_wp_element_["cloneElement"])(child, {
-          key: childKey
-        });
-      });
-    }).filter( // In some cases fills are rendered only when some conditions apply.
-    // This ensures that we only use non-empty fills when rendering, i.e.,
-    // it allows us to render wrappers only when the fills are actually present.
-    Object(external_lodash_["negate"])(external_wp_element_["isEmptyElement"]));
-    return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_lodash_["isFunction"])(children) ? children(fills) : fills);
-  }
-
-}
-
-const Slot = props => Object(external_wp_element_["createElement"])(context.Consumer, null, ({
-  registerSlot,
-  unregisterSlot,
-  getFills
-}) => Object(external_wp_element_["createElement"])(slot_SlotComponent, Object(esm_extends["a" /* default */])({}, props, {
-  registerSlot: registerSlot,
-  unregisterSlot: unregisterSlot,
-  getFills: getFills
-})));
-
-/* harmony default export */ var slot_fill_slot = (Slot);
-
-// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/bubbles-virtually/use-slot.js
-var bubbles_virtually_use_slot = __webpack_require__("+WFq");
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/bubbles-virtually/fill.js
-/**
- * WordPress dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-
-function useForceUpdate() {
-  const [, setState] = Object(external_wp_element_["useState"])({});
-  const mounted = Object(external_wp_element_["useRef"])(true);
-  Object(external_wp_element_["useEffect"])(() => {
-    return () => {
-      mounted.current = false;
-    };
-  }, []);
-  return () => {
-    if (mounted.current) {
-      setState({});
-    }
-  };
-}
-
-function fill_Fill({
-  name,
-  children
-}) {
-  const slot = Object(bubbles_virtually_use_slot["a" /* default */])(name);
-  const ref = Object(external_wp_element_["useRef"])({
-    rerender: useForceUpdate()
-  });
-  Object(external_wp_element_["useEffect"])(() => {
-    // We register fills so we can keep track of their existance.
-    // Some Slot implementations need to know if there're already fills
-    // registered so they can choose to render themselves or not.
-    slot.registerFill(ref);
-    return () => {
-      slot.unregisterFill(ref);
-    };
-  }, [slot.registerFill, slot.unregisterFill]);
-
-  if (!slot.ref || !slot.ref.current) {
-    return null;
-  }
-
-  if (typeof children === 'function') {
-    children = children(slot.fillProps);
-  }
-
-  return Object(external_wp_element_["createPortal"])(children, slot.ref.current);
-}
-
-// EXTERNAL MODULE: external ["wp","compose"]
-var external_wp_compose_ = __webpack_require__("K9lf");
-
-// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/bubbles-virtually/slot-fill-context.js
-var slot_fill_context = __webpack_require__("JYkG");
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/bubbles-virtually/slot.js
-
-
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-function slot_Slot({
-  name,
-  fillProps = {},
-  as: Component = 'div',
-  ...props
-}, forwardedRef) {
-  const registry = Object(external_wp_element_["useContext"])(slot_fill_context["a" /* default */]);
-  const ref = Object(external_wp_element_["useRef"])();
-  Object(external_wp_element_["useLayoutEffect"])(() => {
-    registry.registerSlot(name, ref, fillProps);
-    return () => {
-      registry.unregisterSlot(name, ref);
-    }; // We are not including fillProps in the deps because we don't want to
-    // unregister and register the slot whenever fillProps change, which would
-    // cause the fill to be re-mounted. We are only considering the initial value
-    // of fillProps.
-  }, [registry.registerSlot, registry.unregisterSlot, name]); // fillProps may be an update that interacts with the layout, so we
-  // useLayoutEffect
-
-  Object(external_wp_element_["useLayoutEffect"])(() => {
-    registry.updateSlot(name, fillProps);
-  });
-  return Object(external_wp_element_["createElement"])(Component, Object(esm_extends["a" /* default */])({
-    ref: Object(external_wp_compose_["useMergeRefs"])([forwardedRef, ref])
-  }, props));
-}
-
-/* harmony default export */ var bubbles_virtually_slot = (Object(external_wp_element_["forwardRef"])(slot_Slot));
-
-// EXTERNAL MODULE: external ["wp","isShallowEqual"]
-var external_wp_isShallowEqual_ = __webpack_require__("rl8x");
-var external_wp_isShallowEqual_default = /*#__PURE__*/__webpack_require__.n(external_wp_isShallowEqual_);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/bubbles-virtually/slot-fill-provider.js
-
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-function useSlotRegistry() {
-  const [slots, setSlots] = Object(external_wp_element_["useState"])({});
-  const [fills, setFills] = Object(external_wp_element_["useState"])({});
-  const registerSlot = Object(external_wp_element_["useCallback"])((name, ref, fillProps) => {
-    setSlots(prevSlots => {
-      const slot = prevSlots[name] || {};
-      return { ...prevSlots,
-        [name]: { ...slot,
-          ref: ref || slot.ref,
-          fillProps: fillProps || slot.fillProps || {}
-        }
-      };
-    });
-  }, []);
-  const unregisterSlot = Object(external_wp_element_["useCallback"])((name, ref) => {
-    setSlots(prevSlots => {
-      const {
-        [name]: slot,
-        ...nextSlots
-      } = prevSlots; // Make sure we're not unregistering a slot registered by another element
-      // See https://github.com/WordPress/gutenberg/pull/19242#issuecomment-590295412
-
-      if ((slot === null || slot === void 0 ? void 0 : slot.ref) === ref) {
-        return nextSlots;
-      }
-
-      return prevSlots;
-    });
-  }, []);
-  const updateSlot = Object(external_wp_element_["useCallback"])((name, fillProps) => {
-    const slot = slots[name];
-
-    if (!slot) {
-      return;
-    }
-
-    if (!external_wp_isShallowEqual_default()(slot.fillProps, fillProps)) {
-      slot.fillProps = fillProps;
-      const slotFills = fills[name];
-
-      if (slotFills) {
-        // Force update fills
-        slotFills.map(fill => fill.current.rerender());
-      }
-    }
-  }, [slots, fills]);
-  const registerFill = Object(external_wp_element_["useCallback"])((name, ref) => {
-    setFills(prevFills => ({ ...prevFills,
-      [name]: [...(prevFills[name] || []), ref]
-    }));
-  }, []);
-  const unregisterFill = Object(external_wp_element_["useCallback"])((name, ref) => {
-    setFills(prevFills => {
-      if (prevFills[name]) {
-        return { ...prevFills,
-          [name]: prevFills[name].filter(fillRef => fillRef !== ref)
-        };
-      }
-
-      return prevFills;
-    });
-  }, []); // Memoizing the return value so it can be directly passed to Provider value
-
-  const registry = Object(external_wp_element_["useMemo"])(() => ({
-    slots,
-    fills,
-    registerSlot,
-    updateSlot,
-    unregisterSlot,
-    registerFill,
-    unregisterFill
-  }), [slots, fills, registerSlot, updateSlot, unregisterSlot, registerFill, unregisterFill]);
-  return registry;
-}
-
-function slot_fill_provider_SlotFillProvider({
-  children
-}) {
-  const registry = useSlotRegistry();
-  return Object(external_wp_element_["createElement"])(slot_fill_context["a" /* default */].Provider, {
-    value: registry
-  }, children);
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/provider.js
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-class provider_SlotFillProvider extends external_wp_element_["Component"] {
-  constructor() {
-    super(...arguments);
-    this.registerSlot = this.registerSlot.bind(this);
-    this.registerFill = this.registerFill.bind(this);
-    this.unregisterSlot = this.unregisterSlot.bind(this);
-    this.unregisterFill = this.unregisterFill.bind(this);
-    this.getSlot = this.getSlot.bind(this);
-    this.getFills = this.getFills.bind(this);
-    this.hasFills = this.hasFills.bind(this);
-    this.subscribe = this.subscribe.bind(this);
-    this.slots = {};
-    this.fills = {};
-    this.listeners = [];
-    this.contextValue = {
-      registerSlot: this.registerSlot,
-      unregisterSlot: this.unregisterSlot,
-      registerFill: this.registerFill,
-      unregisterFill: this.unregisterFill,
-      getSlot: this.getSlot,
-      getFills: this.getFills,
-      hasFills: this.hasFills,
-      subscribe: this.subscribe
-    };
-  }
-
-  registerSlot(name, slot) {
-    const previousSlot = this.slots[name];
-    this.slots[name] = slot;
-    this.triggerListeners(); // Sometimes the fills are registered after the initial render of slot
-    // But before the registerSlot call, we need to rerender the slot
-
-    this.forceUpdateSlot(name); // If a new instance of a slot is being mounted while another with the
-    // same name exists, force its update _after_ the new slot has been
-    // assigned into the instance, such that its own rendering of children
-    // will be empty (the new Slot will subsume all fills for this name).
-
-    if (previousSlot) {
-      previousSlot.forceUpdate();
-    }
-  }
-
-  registerFill(name, instance) {
-    this.fills[name] = [...(this.fills[name] || []), instance];
-    this.forceUpdateSlot(name);
-  }
-
-  unregisterSlot(name, instance) {
-    // If a previous instance of a Slot by this name unmounts, do nothing,
-    // as the slot and its fills should only be removed for the current
-    // known instance.
-    if (this.slots[name] !== instance) {
-      return;
-    }
-
-    delete this.slots[name];
-    this.triggerListeners();
-  }
-
-  unregisterFill(name, instance) {
-    this.fills[name] = Object(external_lodash_["without"])(this.fills[name], instance);
-    this.forceUpdateSlot(name);
-  }
-
-  getSlot(name) {
-    return this.slots[name];
-  }
-
-  getFills(name, slotInstance) {
-    // Fills should only be returned for the current instance of the slot
-    // in which they occupy.
-    if (this.slots[name] !== slotInstance) {
-      return [];
-    }
-
-    return this.fills[name];
-  }
-
-  hasFills(name) {
-    return this.fills[name] && !!this.fills[name].length;
-  }
-
-  forceUpdateSlot(name) {
-    const slot = this.getSlot(name);
-
-    if (slot) {
-      slot.forceUpdate();
-    }
-  }
-
-  triggerListeners() {
-    this.listeners.forEach(listener => listener());
-  }
-
-  subscribe(listener) {
-    this.listeners.push(listener);
-    return () => {
-      this.listeners = Object(external_lodash_["without"])(this.listeners, listener);
-    };
-  }
-
-  render() {
-    return Object(external_wp_element_["createElement"])(context.Provider, {
-      value: this.contextValue
-    }, this.props.children);
-  }
-
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/index.js
-
-
-
-/**
- * WordPress dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-
-
-
-function slot_fill_Fill(props) {
-  // We're adding both Fills here so they can register themselves before
-  // their respective slot has been registered. Only the Fill that has a slot
-  // will render. The other one will return null.
-  return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(slot_fill_fill, props), Object(external_wp_element_["createElement"])(fill_Fill, props));
-}
-const slot_fill_Slot = Object(external_wp_element_["forwardRef"])(({
-  bubblesVirtually,
-  ...props
-}, ref) => {
-  if (bubblesVirtually) {
-    return Object(external_wp_element_["createElement"])(bubbles_virtually_slot, Object(esm_extends["a" /* default */])({}, props, {
-      ref: ref
-    }));
-  }
-
-  return Object(external_wp_element_["createElement"])(slot_fill_slot, props);
-});
-function Provider({
-  children,
-  ...props
-}) {
-  return Object(external_wp_element_["createElement"])(provider_SlotFillProvider, props, Object(external_wp_element_["createElement"])(slot_fill_provider_SlotFillProvider, null, children));
-}
-function createSlotFill(name) {
-  const FillComponent = props => Object(external_wp_element_["createElement"])(slot_fill_Fill, Object(esm_extends["a" /* default */])({
-    name: name
-  }, props));
-
-  FillComponent.displayName = name + 'Fill';
-
-  const SlotComponent = props => Object(external_wp_element_["createElement"])(slot_fill_Slot, Object(esm_extends["a" /* default */])({
-    name: name
-  }, props));
-
-  SlotComponent.displayName = name + 'Slot';
-  SlotComponent.__unstableName = name;
-  return {
-    Fill: FillComponent,
-    Slot: SlotComponent
-  };
-}
-
-
-
-/***/ }),
-
-/***/ "ddK1":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var ES5ToInteger = __webpack_require__("Wfh+");
-
-var ToNumber = __webpack_require__("xCFm");
-
-// https://262.ecma-international.org/11.0/#sec-tointeger
-
-module.exports = function ToInteger(value) {
-	var number = ToNumber(value);
-	if (number !== 0) {
-		number = ES5ToInteger(number);
-	}
-	return number === 0 ? 0 : number;
-};
-
-
-/***/ }),
-
-/***/ "eBsn":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var has = __webpack_require__("oNNP");
-
-var GetIntrinsic = __webpack_require__("rZ7t");
-
-var $TypeError = GetIntrinsic('%TypeError%');
-
-var Type = __webpack_require__("V1cy");
-var ToBoolean = __webpack_require__("kvlw");
-var IsCallable = __webpack_require__("agUq");
-
-// https://262.ecma-international.org/5.1/#sec-8.10.5
-
-module.exports = function ToPropertyDescriptor(Obj) {
-	if (Type(Obj) !== 'Object') {
-		throw new $TypeError('ToPropertyDescriptor requires an object');
-	}
-
-	var desc = {};
-	if (has(Obj, 'enumerable')) {
-		desc['[[Enumerable]]'] = ToBoolean(Obj.enumerable);
-	}
-	if (has(Obj, 'configurable')) {
-		desc['[[Configurable]]'] = ToBoolean(Obj.configurable);
-	}
-	if (has(Obj, 'value')) {
-		desc['[[Value]]'] = Obj.value;
-	}
-	if (has(Obj, 'writable')) {
-		desc['[[Writable]]'] = ToBoolean(Obj.writable);
-	}
-	if (has(Obj, 'get')) {
-		var getter = Obj.get;
-		if (typeof getter !== 'undefined' && !IsCallable(getter)) {
-			throw new $TypeError('getter must be a function');
-		}
-		desc['[[Get]]'] = getter;
-	}
-	if (has(Obj, 'set')) {
-		var setter = Obj.set;
-		if (typeof setter !== 'undefined' && !IsCallable(setter)) {
-			throw new $TypeError('setter must be a function');
-		}
-		desc['[[Set]]'] = setter;
-	}
-
-	if ((has(desc, '[[Get]]') || has(desc, '[[Set]]')) && (has(desc, '[[Value]]') || has(desc, '[[Writable]]'))) {
-		throw new $TypeError('Invalid property descriptor. Cannot both specify accessors and a value or writable attribute');
-	}
-	return desc;
-};
-
-
-/***/ }),
-
-/***/ "eJkf":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-/* eslint complexity: [2, 18], max-statements: [2, 33] */
-module.exports = function hasSymbols() {
-	if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }
-	if (typeof Symbol.iterator === 'symbol') { return true; }
-
-	var obj = {};
-	var sym = Symbol('test');
-	var symObj = Object(sym);
-	if (typeof sym === 'string') { return false; }
-
-	if (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }
-	if (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }
-
-	// temp disabled per https://github.com/ljharb/object.assign/issues/17
-	// if (sym instanceof Symbol) { return false; }
-	// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4
-	// if (!(symObj instanceof Symbol)) { return false; }
-
-	// if (typeof Symbol.prototype.toString !== 'function') { return false; }
-	// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }
-
-	var symVal = 42;
-	obj[sym] = symVal;
-	for (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop
-	if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }
-
-	if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }
-
-	var syms = Object.getOwnPropertySymbols(obj);
-	if (syms.length !== 1 || syms[0] !== sym) { return false; }
-
-	if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }
-
-	if (typeof Object.getOwnPropertyDescriptor === 'function') {
-		var descriptor = Object.getOwnPropertyDescriptor(obj, sym);
-		if (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }
-	}
-
-	return true;
-};
-
-
-/***/ }),
-
-/***/ "eNtd":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return useLiveRef; });
-/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("cDcd");
-/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _useIsomorphicEffect_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("AXvK");
-
-
-
-
-
-
-/**
- * A `React.Ref` that keeps track of the passed `value`.
- */
-
-function useLiveRef(value) {
-  var ref = Object(react__WEBPACK_IMPORTED_MODULE_0__["useRef"])(value);
-  Object(_useIsomorphicEffect_js__WEBPACK_IMPORTED_MODULE_1__[/* useIsomorphicEffect */ "a"])(function () {
-    ref.current = value;
-  });
-  return ref;
-}
-
-
-
-
-/***/ }),
-
-/***/ "eOFJ":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var GetIntrinsic = __webpack_require__("rZ7t");
-
-var $TypeError = GetIntrinsic('%TypeError%');
-
-var isPropertyDescriptor = __webpack_require__("Qmvf");
-var DefineOwnProperty = __webpack_require__("wTIp");
-
-var FromPropertyDescriptor = __webpack_require__("zYbv");
-var IsAccessorDescriptor = __webpack_require__("z3X9");
-var IsDataDescriptor = __webpack_require__("CGNl");
-var IsPropertyKey = __webpack_require__("i10q");
-var SameValue = __webpack_require__("HI8u");
-var ToPropertyDescriptor = __webpack_require__("eBsn");
-var Type = __webpack_require__("V1cy");
-
-// https://ecma-international.org/ecma-262/6.0/#sec-definepropertyorthrow
-
-module.exports = function DefinePropertyOrThrow(O, P, desc) {
-	if (Type(O) !== 'Object') {
-		throw new $TypeError('Assertion failed: Type(O) is not Object');
-	}
-
-	if (!IsPropertyKey(P)) {
-		throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
-	}
-
-	var Desc = isPropertyDescriptor({
-		Type: Type,
-		IsDataDescriptor: IsDataDescriptor,
-		IsAccessorDescriptor: IsAccessorDescriptor
-	}, desc) ? desc : ToPropertyDescriptor(desc);
-	if (!isPropertyDescriptor({
-		Type: Type,
-		IsDataDescriptor: IsDataDescriptor,
-		IsAccessorDescriptor: IsAccessorDescriptor
-	}, Desc)) {
-		throw new $TypeError('Assertion failed: Desc is not a valid Property Descriptor');
-	}
-
-	return DefineOwnProperty(
-		IsDataDescriptor,
-		SameValue,
-		FromPropertyDescriptor,
-		O,
-		P,
-		Desc
-	);
-};
-
-
-/***/ }),
-
-/***/ "eUCI":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return SystemContext; });
-/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("cDcd");
-/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
-
-
-var SystemContext = /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_0__["createContext"])({});
-
-
-
-
-/***/ }),
-
-/***/ "fW1L":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var GetIntrinsic = __webpack_require__("rZ7t");
-var callBound = __webpack_require__("EXo9");
-
-var $TypeError = GetIntrinsic('%TypeError%');
-
-var IsArray = __webpack_require__("9cOx");
-
-var $apply = GetIntrinsic('%Reflect.apply%', true) || callBound('%Function.prototype.apply%');
-
-// https://ecma-international.org/ecma-262/6.0/#sec-call
-
-module.exports = function Call(F, V) {
-	var argumentsList = arguments.length > 2 ? arguments[2] : [];
-	if (!IsArray(argumentsList)) {
-		throw new $TypeError('Assertion failed: optional `argumentsList`, if provided, must be a List');
-	}
-	return $apply(F, V, argumentsList);
-};
-
-
-/***/ }),
-
-/***/ "g56x":
-/***/ (function(module, exports) {
-
-(function() { module.exports = window["wp"]["hooks"]; }());
-
-/***/ }),
-
-/***/ "gZI3":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
+}));
+
+var _react = __webpack_require__(9196);
+
+var _react2 = _interopRequireDefault(_react);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+var LeftArrow = function () {
+  function LeftArrow(props) {
+    return _react2['default'].createElement(
+      'svg',
+      props,
+      _react2['default'].createElement('path', {
+        d: 'M336.2 274.5l-210.1 210h805.4c13 0 23 10 23 23s-10 23-23 23H126.1l210.1 210.1c11 11 11 21 0 32-5 5-10 7-16 7s-11-2-16-7l-249.1-249c-11-11-11-21 0-32l249.1-249.1c21-21.1 53 10.9 32 32z'
+      })
+    );
+  }
+
+  return LeftArrow;
+}();
+
+LeftArrow.defaultProps = {
+  viewBox: '0 0 1000 1000'
+};
+exports["default"] = LeftArrow;
+
+/***/ }),
+
+/***/ 4921:
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
   value: true
-});
-
-var _react = __webpack_require__("cDcd");
+}));
+
+var _react = __webpack_require__(9196);
 
 var _react2 = _interopRequireDefault(_react);
 
@@ -52274,6258 +12194,65 @@
 RightArrow.defaultProps = {
   viewBox: '0 0 1000 1000'
 };
-exports['default'] = RightArrow;
-
-/***/ }),
-
-/***/ "gdqT":
-/***/ (function(module, exports) {
-
-(function() { module.exports = window["wp"]["a11y"]; }());
-
-/***/ }),
-
-/***/ "h6xH":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports['default'] = isBeforeDay;
-
-var _moment = __webpack_require__("wy2R");
-
-var _moment2 = _interopRequireDefault(_moment);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-function isBeforeDay(a, b) {
-  if (!_moment2['default'].isMoment(a) || !_moment2['default'].isMoment(b)) return false;
-
-  var aYear = a.year();
-  var aMonth = a.month();
-
-  var bYear = b.year();
-  var bMonth = b.month();
-
-  var isSameYear = aYear === bYear;
-  var isSameMonth = aMonth === bMonth;
-
-  if (isSameYear && isSameMonth) return a.date() < b.date();
-  if (isSameYear) return aMonth < bMonth;
-  return aYear < bYear;
-}
-
-/***/ }),
-
-/***/ "hE48":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-
-// EXPORTS
-__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ createComponent; });
-
-// EXTERNAL MODULE: external "React"
-var external_React_ = __webpack_require__("cDcd");
-
-// EXTERNAL MODULE: ./node_modules/reakit-system/es/_rollupPluginBabelHelpers-0c84a174.js
-var _rollupPluginBabelHelpers_0c84a174 = __webpack_require__("RDTF");
-
-// EXTERNAL MODULE: ./node_modules/reakit-system/es/useCreateElement.js
-var useCreateElement = __webpack_require__("IVEb");
-
-// EXTERNAL MODULE: ./node_modules/reakit-utils/es/_rollupPluginBabelHelpers-1f0bf8c2.js
-var _rollupPluginBabelHelpers_1f0bf8c2 = __webpack_require__("I/A+");
-
-// EXTERNAL MODULE: ./node_modules/reakit-utils/es/isObject.js
-var isObject = __webpack_require__("Ptb8");
-
-// CONCATENATED MODULE: ./node_modules/reakit-utils/es/isPlainObject.js
-
-
-/**
- * Checks whether `arg` is a plain object or not.
- *
- * @returns {boolean}
- */
-
-function isPlainObject(arg) {
-  var _proto$constructor;
-
-  if (!Object(isObject["a" /* isObject */])(arg)) return false;
-  var proto = Object.getPrototypeOf(arg);
-  if (proto == null) return true;
-  return ((_proto$constructor = proto.constructor) === null || _proto$constructor === void 0 ? void 0 : _proto$constructor.toString()) === Object.toString();
-}
-
-
-
-// CONCATENATED MODULE: ./node_modules/reakit-utils/es/splitProps.js
-
-
-
-
-/**
- * Splits an object (`props`) into a tuple where the first item is an object
- * with the passed `keys`, and the second item is an object with these keys
- * omitted.
- *
- * @deprecated will be removed in version 2
- *
- * @example
- * import { splitProps } from "reakit-utils";
- *
- * splitProps({ a: "a", b: "b" }, ["a"]); // [{ a: "a" }, { b: "b" }]
- */
-
-function __deprecatedSplitProps(props, keys) {
-  var propsKeys = Object.keys(props);
-  var picked = {};
-  var omitted = {};
-
-  for (var _i = 0, _propsKeys = propsKeys; _i < _propsKeys.length; _i++) {
-    var key = _propsKeys[_i];
-
-    if (keys.indexOf(key) >= 0) {
-      picked[key] = props[key];
-    } else {
-      omitted[key] = props[key];
-    }
-  }
-
-  return [picked, omitted];
-}
-/**
- * Splits an object (`props`) into a tuple where the first item
- * is the `state` property, and the second item is the rest of the properties.
- *
- * It is also backward compatible with version 1. If `keys` are passed then
- * splits an object (`props`) into a tuple where the first item is an object
- * with the passed `keys`, and the second item is an object with these keys
- * omitted.
- *
- * @example
- * import { splitProps } from "reakit-utils";
- *
- * splitProps({ a: "a", b: "b" }, ["a"]); // [{ a: "a" }, { b: "b" }]
- *
- * @example
- * import { splitProps } from "reakit-utils";
- *
- * splitProps({ state: { a: "a" }, b: "b" }); // [{ a: "a" }, { b: "b" }]
- */
-
-
-function splitProps(props, keys) {
-  if (keys === void 0) {
-    keys = [];
-  }
-
-  if (!isPlainObject(props.state)) {
-    return __deprecatedSplitProps(props, keys);
-  }
-
-  var _deprecatedSplitProp = __deprecatedSplitProps(props, [].concat(keys, ["state"])),
-      picked = _deprecatedSplitProp[0],
-      omitted = _deprecatedSplitProp[1];
-
-  var state = picked.state,
-      restPicked = Object(_rollupPluginBabelHelpers_1f0bf8c2["a" /* _ */])(picked, ["state"]);
-
-  return [Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, state), restPicked), omitted];
-}
-
-
-
-// EXTERNAL MODULE: ./node_modules/reakit-utils/es/shallowEqual.js
-var shallowEqual = __webpack_require__("uqqE");
-
-// CONCATENATED MODULE: ./node_modules/reakit-utils/es/normalizePropsAreEqual.js
-
-
-
-
-/**
- * This higher order functions take `propsAreEqual` function and
- * returns a new function which normalizes the props.
- *
- * Normalizing in our case is making sure the `propsAreEqual` works with
- * both version 1 (object spreading) and version 2 (state object) state passing.
- *
- * To achieve this, the returned function in case of a state object
- * will spread the state object in both `prev` and `next props.
- *
- * Other case it just returns the function as is which makes sure
- * that we are still backward compatible
- */
-function normalizePropsAreEqual(propsAreEqual) {
-  if (propsAreEqual.name === "normalizePropsAreEqualInner") {
-    return propsAreEqual;
-  }
-
-  return function normalizePropsAreEqualInner(prev, next) {
-    if (!isPlainObject(prev.state) || !isPlainObject(next.state)) {
-      return propsAreEqual(prev, next);
-    }
-
-    return propsAreEqual(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, prev.state), prev), Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({}, next.state), next));
-  };
-}
-
-
-
-// CONCATENATED MODULE: ./node_modules/reakit-system/es/createComponent.js
-
-
-
-
-
-
-
-
-function forwardRef(component) {
-  return /*#__PURE__*/Object(external_React_["forwardRef"])(component);
-}
-
-function memo(component, propsAreEqual) {
-  return /*#__PURE__*/Object(external_React_["memo"])(component, propsAreEqual);
-}
-
-/**
- * Creates a React component.
- *
- * @example
- * import { createComponent } from "reakit-system";
- *
- * const A = createComponent({ as: "a" });
- *
- * @param options
- */
-function createComponent(_ref) {
-  var type = _ref.as,
-      useHook = _ref.useHook,
-      shouldMemo = _ref.memo,
-      _ref$propsAreEqual = _ref.propsAreEqual,
-      propsAreEqual = _ref$propsAreEqual === void 0 ? useHook === null || useHook === void 0 ? void 0 : useHook.unstable_propsAreEqual : _ref$propsAreEqual,
-      _ref$keys = _ref.keys,
-      keys = _ref$keys === void 0 ? (useHook === null || useHook === void 0 ? void 0 : useHook.__keys) || [] : _ref$keys,
-      _ref$useCreateElement = _ref.useCreateElement,
-      useCreateElement$1 = _ref$useCreateElement === void 0 ? useCreateElement["a" /* useCreateElement */] : _ref$useCreateElement;
-
-  var Comp = function Comp(_ref2, ref) {
-    var _ref2$as = _ref2.as,
-        as = _ref2$as === void 0 ? type : _ref2$as,
-        props = Object(_rollupPluginBabelHelpers_0c84a174["b" /* a */])(_ref2, ["as"]);
-
-    if (useHook) {
-      var _as$render;
-
-      var _splitProps = splitProps(props, keys),
-          _options = _splitProps[0],
-          htmlProps = _splitProps[1];
-
-      var _useHook = useHook(_options, Object(_rollupPluginBabelHelpers_0c84a174["a" /* _ */])({
-        ref: ref
-      }, htmlProps)),
-          wrapElement = _useHook.wrapElement,
-          elementProps = Object(_rollupPluginBabelHelpers_0c84a174["b" /* a */])(_useHook, ["wrapElement"]); // @ts-ignore
-
-
-      var asKeys = ((_as$render = as.render) === null || _as$render === void 0 ? void 0 : _as$render.__keys) || as.__keys;
-      var asOptions = asKeys && splitProps(props, asKeys)[0];
-      var allProps = asOptions ? Object(_rollupPluginBabelHelpers_0c84a174["a" /* _ */])(Object(_rollupPluginBabelHelpers_0c84a174["a" /* _ */])({}, elementProps), asOptions) : elementProps;
-
-      var _element = useCreateElement$1(as, allProps);
-
-      if (wrapElement) {
-        return wrapElement(_element);
-      }
-
-      return _element;
-    }
-
-    return useCreateElement$1(as, Object(_rollupPluginBabelHelpers_0c84a174["a" /* _ */])({
-      ref: ref
-    }, props));
-  };
-
-  if (false) {}
-
-  Comp = forwardRef(Comp);
-
-  if (shouldMemo) {
-    Comp = memo(Comp, propsAreEqual && normalizePropsAreEqual(propsAreEqual));
-  }
-
-  Comp.__keys = keys;
-  Comp.unstable_propsAreEqual = normalizePropsAreEqual(propsAreEqual || shallowEqual["a" /* shallowEqual */]);
-  return Comp;
-}
-
-
-
-
-/***/ }),
-
-/***/ "hZ2/":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var bind = __webpack_require__("D3zA");
-var GetIntrinsic = __webpack_require__("rZ7t");
-
-var $apply = GetIntrinsic('%Function.prototype.apply%');
-var $call = GetIntrinsic('%Function.prototype.call%');
-var $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);
-
-var $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);
-var $defineProperty = GetIntrinsic('%Object.defineProperty%', true);
-var $max = GetIntrinsic('%Math.max%');
-
-if ($defineProperty) {
-	try {
-		$defineProperty({}, 'a', { value: 1 });
-	} catch (e) {
-		// IE 8 has a broken defineProperty
-		$defineProperty = null;
-	}
-}
-
-module.exports = function callBind(originalFunction) {
-	var func = $reflectApply(bind, $call, arguments);
-	if ($gOPD && $defineProperty) {
-		var desc = $gOPD(func, 'length');
-		if (desc.configurable) {
-			// original length, plus the receiver, minus any additional arguments (after the receiver)
-			$defineProperty(
-				func,
-				'length',
-				{ value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }
-			);
-		}
-	}
-	return func;
-};
-
-var applyBind = function applyBind() {
-	return $reflectApply(bind, $apply, arguments);
-};
-
-if ($defineProperty) {
-	$defineProperty(module.exports, 'apply', { value: applyBind });
-} else {
-	module.exports.apply = applyBind;
-}
-
-
-/***/ }),
-
-/***/ "i10q":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-// https://ecma-international.org/ecma-262/6.0/#sec-ispropertykey
-
-module.exports = function IsPropertyKey(argument) {
-	return typeof argument === 'string' || typeof argument === 'symbol';
-};
-
-
-/***/ }),
-
-/***/ "iB/h":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* WEBPACK VAR INJECTION */(function(process) {/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("YLtl");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);
-/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("TSYQ");
-/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_2__);
-/* harmony import */ var _wordpress_a11y__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("gdqT");
-/* harmony import */ var _wordpress_a11y__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_a11y__WEBPACK_IMPORTED_MODULE_3__);
-/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("l3Sj");
-/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__);
-/* harmony import */ var _wordpress_warning__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("Z23Y");
-/* harmony import */ var _wordpress_warning__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_warning__WEBPACK_IMPORTED_MODULE_5__);
-/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("kA6J");
-
-
-/**
- * External dependencies
- */
-
-
-/**
- * WordPress dependencies
- */
-
-
-
-
-
-/**
- * Internal dependencies
- */
-
-
-const NOTICE_TIMEOUT = 10000;
-/** @typedef {import('@wordpress/element').WPElement} WPElement */
-
-/**
- * Custom hook which announces the message with the given politeness, if a
- * valid message is provided.
- *
- * @param {string|WPElement}     [message]  Message to announce.
- * @param {'polite'|'assertive'} politeness Politeness to announce.
- */
-
-function useSpokenMessage(message, politeness) {
-  const spokenMessage = typeof message === 'string' ? message : Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["renderToString"])(message);
-  Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["useEffect"])(() => {
-    if (spokenMessage) {
-      Object(_wordpress_a11y__WEBPACK_IMPORTED_MODULE_3__["speak"])(spokenMessage, politeness);
-    }
-  }, [spokenMessage, politeness]);
-}
-
-function Snackbar({
-  className,
-  children,
-  spokenMessage = children,
-  politeness = 'polite',
-  actions = [],
-  onRemove = lodash__WEBPACK_IMPORTED_MODULE_1__["noop"],
-  icon = null,
-  explicitDismiss = false,
-  // onDismiss is a callback executed when the snackbar is dismissed.
-  // It is distinct from onRemove, which _looks_ like a callback but is
-  // actually the function to call to remove the snackbar from the UI.
-  onDismiss = lodash__WEBPACK_IMPORTED_MODULE_1__["noop"]
-}, ref) {
-  onDismiss = onDismiss || lodash__WEBPACK_IMPORTED_MODULE_1__["noop"];
-
-  function dismissMe(event) {
-    if (event && event.preventDefault) {
-      event.preventDefault();
-    }
-
-    onDismiss();
-    onRemove();
-  }
-
-  function onActionClick(event, onClick) {
-    event.stopPropagation();
-    onRemove();
-
-    if (onClick) {
-      onClick(event);
-    }
-  }
-
-  useSpokenMessage(spokenMessage, politeness); // Only set up the timeout dismiss if we're not explicitly dismissing.
-
-  Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["useEffect"])(() => {
-    const timeoutHandle = setTimeout(() => {
-      if (!explicitDismiss) {
-        onDismiss();
-        onRemove();
-      }
-    }, NOTICE_TIMEOUT);
-    return () => clearTimeout(timeoutHandle);
-  }, [onDismiss, onRemove]);
-  const classes = classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'components-snackbar', {
-    'components-snackbar-explicit-dismiss': !!explicitDismiss
-  });
-
-  if (actions && actions.length > 1) {
-    // we need to inform developers that snackbar only accepts 1 action
-    typeof process !== "undefined" && process.env && "production" !== "production" ? _wordpress_warning__WEBPACK_IMPORTED_MODULE_5___default()('Snackbar can only have 1 action, use Notice if your message require many messages') : void 0; // return first element only while keeping it inside an array
-
-    actions = [actions[0]];
-  }
-
-  const snackbarContentClassnames = classnames__WEBPACK_IMPORTED_MODULE_2___default()('components-snackbar__content', {
-    'components-snackbar__content-with-icon': !!icon
-  });
-  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", {
-    ref: ref,
-    className: classes,
-    onClick: !explicitDismiss ? dismissMe : lodash__WEBPACK_IMPORTED_MODULE_1__["noop"],
-    tabIndex: "0",
-    role: !explicitDismiss ? 'button' : '',
-    onKeyPress: !explicitDismiss ? dismissMe : lodash__WEBPACK_IMPORTED_MODULE_1__["noop"],
-    "aria-label": !explicitDismiss ? Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__["__"])('Dismiss this notice') : ''
-  }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", {
-    className: snackbarContentClassnames
-  }, icon && Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", {
-    className: "components-snackbar__icon"
-  }, icon), children, actions.map(({
-    label,
-    onClick,
-    url
-  }, index) => {
-    return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(___WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"], {
-      key: index,
-      href: url,
-      isTertiary: true,
-      onClick: event => onActionClick(event, onClick),
-      className: "components-snackbar__action"
-    }, label);
-  }), explicitDismiss && Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("span", {
-    role: "button",
-    "aria-label": "Dismiss this notice",
-    tabIndex: "0",
-    className: "components-snackbar__dismiss-button",
-    onClick: dismissMe,
-    onKeyPress: dismissMe
-  }, "\u2715")));
-}
-
-/* harmony default export */ __webpack_exports__["a"] = (Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["forwardRef"])(Snackbar));
-
-/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("8oxB")))
-
-/***/ }),
-
-/***/ "iClF":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
-/**
- * WordPress dependencies
- */
-
-/** @typedef {{icon: JSX.Element, size?: number} & import('@wordpress/primitives').SVGProps} IconProps */
-
-/**
- * Return an SVG icon.
- *
- * @param {IconProps} props icon is the SVG component to render
- *                          size is a number specifiying the icon size in pixels
- *                          Other props will be passed to wrapped SVG component
- *
- * @return {JSX.Element}  Icon component
- */
-
-function Icon({
-  icon,
-  size = 24,
-  ...props
-}) {
-  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["cloneElement"])(icon, {
-    width: size,
-    height: size,
-    ...props
-  });
-}
-
-/* harmony default export */ __webpack_exports__["a"] = (Icon);
-
-
-/***/ }),
-
-/***/ "iNdV":
-/***/ (function(module, exports) {
-
-var messages = {
-  invalidPredicate: '`predicate` must be a function',
-  invalidPropValidator: '`propValidator` must be a function',
-  requiredCore: 'is marked as required',
-  invalidTypeCore: 'Invalid input type',
-  predicateFailureCore: 'Failed to succeed with predicate',
-  anonymousMessage: '<<anonymous>>',
-  baseInvalidMessage: 'Invalid ',
-};
-
-function constructPropValidatorVariations(propValidator) {
-  if (typeof propValidator !== 'function') {
-    throw new Error(messages.invalidPropValidator);
-  }
-
-  var requiredPropValidator = propValidator.bind(null, false, null);
-  requiredPropValidator.isRequired = propValidator.bind(null, true, null);
-
-  requiredPropValidator.withPredicate = function predicateApplication(predicate) {
-    if (typeof predicate !== 'function') {
-      throw new Error(messages.invalidPredicate);
-    }
-    var basePropValidator = propValidator.bind(null, false, predicate);
-    basePropValidator.isRequired = propValidator.bind(null, true, predicate);
-    return basePropValidator;
-  };
-
-  return requiredPropValidator;
-}
-
-function createInvalidRequiredErrorMessage(propName, componentName, value) {
-  return new Error(
-    'The prop `' + propName + '` ' + messages.requiredCore +
-    ' in `' + componentName + '`, but its value is `' + value + '`.'
-  );
-}
-
-var independentGuardianValue = -1;
-
-function preValidationRequireCheck(isRequired, componentName, propFullName, propValue) {
-  var isPropValueUndefined = typeof propValue === 'undefined';
-  var isPropValueNull = propValue === null;
-
-  if (isRequired) {
-    if (isPropValueUndefined) {
-      return createInvalidRequiredErrorMessage(propFullName, componentName, 'undefined');
-    } else if (isPropValueNull) {
-      return createInvalidRequiredErrorMessage(propFullName, componentName, 'null');
-    }
-  }
-
-  if (isPropValueUndefined || isPropValueNull) {
-    return null;
-  }
-
-  return independentGuardianValue;
-}
-
-function createMomentChecker(type, typeValidator, validator, momentType) {
-
-  function propValidator(
-    isRequired, // Bound parameter to indicate with the propType is required
-    predicate, // Bound parameter to allow user to add dynamic validation
-    props,
-    propName,
-    componentName,
-    location,
-    propFullName
-  ) {
-    var propValue = props[ propName ];
-    var propType = typeof propValue;
-
-    componentName = componentName || messages.anonymousMessage;
-    propFullName = propFullName || propName;
-
-    var preValidationRequireCheckValue = preValidationRequireCheck(
-      isRequired, componentName, propFullName, propValue
-    );
-
-    if (preValidationRequireCheckValue !== independentGuardianValue) {
-      return preValidationRequireCheckValue;
-    }
-
-    if (typeValidator && !typeValidator(propValue)) {
-      return new Error(
-        messages.invalidTypeCore + ': `' + propName + '` of type `' + propType + '` ' +
-        'supplied to `' + componentName + '`, expected `' + type + '`.'
-      );
-    }
-
-    if (!validator(propValue)) {
-      return new Error(
-        messages.baseInvalidMessage + location + ' `' + propName + '` of type `' + propType + '` ' +
-        'supplied to `' + componentName + '`, expected `' + momentType + '`.'
-      );
-    }
-
-    if (predicate && !predicate(propValue)) {
-      var predicateName = predicate.name || messages.anonymousMessage;
-      return new Error(
-        messages.baseInvalidMessage + location + ' `' + propName + '` of type `' + propType + '` ' +
-        'supplied to `' + componentName + '`. ' + messages.predicateFailureCore + ' `' +
-        predicateName + '`.'
-      );
-    }
-
-    return null;
-
-  }
-
-  return constructPropValidatorVariations(propValidator);
-
-}
-
-module.exports = {
-  constructPropValidatorVariations: constructPropValidatorVariations,
-  createMomentChecker: createMomentChecker,
-  messages: messages,
-};
-
-
-/***/ }),
-
-/***/ "iYXd":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return findFirstEnabledItem; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getCurrentId; });
-function findFirstEnabledItem(items, excludeId) {
-  if (excludeId) {
-    return items.find(function (item) {
-      return !item.disabled && item.id !== excludeId;
-    });
-  }
-
-  return items.find(function (item) {
-    return !item.disabled;
-  });
-}
-
-function getCurrentId(options, passedId) {
-  var _findFirstEnabledItem;
-
-  if (passedId || passedId === null) {
-    return passedId;
-  }
-
-  if (options.currentId || options.currentId === null) {
-    return options.currentId;
-  }
-
-  return (_findFirstEnabledItem = findFirstEnabledItem(options.items || [])) === null || _findFirstEnabledItem === void 0 ? void 0 : _findFirstEnabledItem.id;
-}
-
-
-
-
-/***/ }),
-
-/***/ "ib7Q":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var getPolyfill = __webpack_require__("xoj2");
-var define = __webpack_require__("82c2");
-
-module.exports = function shimValues() {
-	var polyfill = getPolyfill();
-	define(Object, { values: polyfill }, {
-		values: function testValues() {
-			return Object.values !== polyfill;
-		}
-	});
-	return polyfill;
-};
-
-
-/***/ }),
-
-/***/ "ixyq":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports['default'] = calculateDimension;
-function calculateDimension(el, axis) {
-  var borderBox = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
-  var withMargin = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
-
-  if (!el) {
-    return 0;
-  }
-
-  var axisStart = axis === 'width' ? 'Left' : 'Top';
-  var axisEnd = axis === 'width' ? 'Right' : 'Bottom';
-
-  // Only read styles if we need to
-  var style = !borderBox || withMargin ? window.getComputedStyle(el) : null;
-
-  // Offset includes border and padding
-  var offsetWidth = el.offsetWidth,
-      offsetHeight = el.offsetHeight;
-
-  var size = axis === 'width' ? offsetWidth : offsetHeight;
-
-  // Get the inner size
-  if (!borderBox) {
-    size -= parseFloat(style['padding' + axisStart]) + parseFloat(style['padding' + axisEnd]) + parseFloat(style['border' + axisStart + 'Width']) + parseFloat(style['border' + axisEnd + 'Width']);
-  }
-
-  // Apply margin
-  if (withMargin) {
-    size += parseFloat(style['margin' + axisStart]) + parseFloat(style['margin' + axisEnd]);
-  }
-
-  return size;
-}
-
-/***/ }),
-
-/***/ "iz0l":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var GetIntrinsic = __webpack_require__("rZ7t");
-
-var $TypeError = GetIntrinsic('%TypeError%');
-
-var MAX_SAFE_INTEGER = __webpack_require__("yyeE");
-
-var Call = __webpack_require__("fW1L");
-var CreateDataPropertyOrThrow = __webpack_require__("WvKp");
-var Get = __webpack_require__("3aeR");
-var HasProperty = __webpack_require__("aenO");
-var IsArray = __webpack_require__("9cOx");
-var LengthOfArrayLike = __webpack_require__("y9oe");
-var ToString = __webpack_require__("Hx/O");
-
-// https://262.ecma-international.org/11.0/#sec-flattenintoarray
-
-// eslint-disable-next-line max-params
-module.exports = function FlattenIntoArray(target, source, sourceLen, start, depth) {
-	var mapperFunction;
-	if (arguments.length > 5) {
-		mapperFunction = arguments[5];
-	}
-
-	var targetIndex = start;
-	var sourceIndex = 0;
-	while (sourceIndex < sourceLen) {
-		var P = ToString(sourceIndex);
-		var exists = HasProperty(source, P);
-		if (exists === true) {
-			var element = Get(source, P);
-			if (typeof mapperFunction !== 'undefined') {
-				if (arguments.length <= 6) {
-					throw new $TypeError('Assertion failed: thisArg is required when mapperFunction is provided');
-				}
-				element = Call(mapperFunction, arguments[6], [element, sourceIndex, source]);
-			}
-			var shouldFlatten = false;
-			if (depth > 0) {
-				shouldFlatten = IsArray(element);
-			}
-			if (shouldFlatten) {
-				var elementLen = LengthOfArrayLike(element);
-				targetIndex = FlattenIntoArray(target, element, elementLen, targetIndex, depth - 1);
-			} else {
-				if (targetIndex >= MAX_SAFE_INTEGER) {
-					throw new $TypeError('index too large');
-				}
-				CreateDataPropertyOrThrow(target, ToString(targetIndex), element);
-				targetIndex += 1;
-			}
-		}
-		sourceIndex += 1;
-	}
-
-	return targetIndex;
-};
-
-
-/***/ }),
-
-/***/ "jB5C":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var _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; };
-
-var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; };
-
-var RE_NUM = /[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source;
-
-function getClientPosition(elem) {
-  var box = undefined;
-  var x = undefined;
-  var y = undefined;
-  var doc = elem.ownerDocument;
-  var body = doc.body;
-  var docElem = doc && doc.documentElement;
-  // 根据 GBS 最新数据,A-Grade Browsers 都已支持 getBoundingClientRect 方法,不用再考虑传统的实现方式
-  box = elem.getBoundingClientRect();
-
-  // 注:jQuery 还考虑减去 docElem.clientLeft/clientTop
-  // 但测试发现,这样反而会导致当 html 和 body 有边距/边框样式时,获取的值不正确
-  // 此外,ie6 会忽略 html 的 margin 值,幸运地是没有谁会去设置 html 的 margin
-
-  x = box.left;
-  y = box.top;
-
-  // In IE, most of the time, 2 extra pixels are added to the top and left
-  // due to the implicit 2-pixel inset border.  In IE6/7 quirks mode and
-  // IE6 standards mode, this border can be overridden by setting the
-  // document element's border to zero -- thus, we cannot rely on the
-  // offset always being 2 pixels.
-
-  // In quirks mode, the offset can be determined by querying the body's
-  // clientLeft/clientTop, but in standards mode, it is found by querying
-  // the document element's clientLeft/clientTop.  Since we already called
-  // getClientBoundingRect we have already forced a reflow, so it is not
-  // too expensive just to query them all.
-
-  // ie 下应该减去窗口的边框吧,毕竟默认 absolute 都是相对窗口定位的
-  // 窗口边框标准是设 documentElement ,quirks 时设置 body
-  // 最好禁止在 body 和 html 上边框 ,但 ie < 9 html 默认有 2px ,减去
-  // 但是非 ie 不可能设置窗口边框,body html 也不是窗口 ,ie 可以通过 html,body 设置
-  // 标准 ie 下 docElem.clientTop 就是 border-top
-  // ie7 html 即窗口边框改变不了。永远为 2
-  // 但标准 firefox/chrome/ie9 下 docElem.clientTop 是窗口边框,即使设了 border-top 也为 0
-
-  x -= docElem.clientLeft || body.clientLeft || 0;
-  y -= docElem.clientTop || body.clientTop || 0;
-
-  return {
-    left: x,
-    top: y
-  };
-}
-
-function getScroll(w, top) {
-  var ret = w['page' + (top ? 'Y' : 'X') + 'Offset'];
-  var method = 'scroll' + (top ? 'Top' : 'Left');
-  if (typeof ret !== 'number') {
-    var d = w.document;
-    // ie6,7,8 standard mode
-    ret = d.documentElement[method];
-    if (typeof ret !== 'number') {
-      // quirks mode
-      ret = d.body[method];
-    }
-  }
-  return ret;
-}
-
-function getScrollLeft(w) {
-  return getScroll(w);
-}
-
-function getScrollTop(w) {
-  return getScroll(w, true);
-}
-
-function getOffset(el) {
-  var pos = getClientPosition(el);
-  var doc = el.ownerDocument;
-  var w = doc.defaultView || doc.parentWindow;
-  pos.left += getScrollLeft(w);
-  pos.top += getScrollTop(w);
-  return pos;
-}
-function _getComputedStyle(elem, name, computedStyle_) {
-  var val = '';
-  var d = elem.ownerDocument;
-  var computedStyle = computedStyle_ || d.defaultView.getComputedStyle(elem, null);
-
-  // https://github.com/kissyteam/kissy/issues/61
-  if (computedStyle) {
-    val = computedStyle.getPropertyValue(name) || computedStyle[name];
-  }
-
-  return val;
-}
-
-var _RE_NUM_NO_PX = new RegExp('^(' + RE_NUM + ')(?!px)[a-z%]+$', 'i');
-var RE_POS = /^(top|right|bottom|left)$/;
-var CURRENT_STYLE = 'currentStyle';
-var RUNTIME_STYLE = 'runtimeStyle';
-var LEFT = 'left';
-var PX = 'px';
-
-function _getComputedStyleIE(elem, name) {
-  // currentStyle maybe null
-  // http://msdn.microsoft.com/en-us/library/ms535231.aspx
-  var ret = elem[CURRENT_STYLE] && elem[CURRENT_STYLE][name];
-
-  // 当 width/height 设置为百分比时,通过 pixelLeft 方式转换的 width/height 值
-  // 一开始就处理了! CUSTOM_STYLE.height,CUSTOM_STYLE.width ,cssHook 解决@2011-08-19
-  // 在 ie 下不对,需要直接用 offset 方式
-  // borderWidth 等值也有问题,但考虑到 borderWidth 设为百分比的概率很小,这里就不考虑了
-
-  // From the awesome hack by Dean Edwards
-  // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
-  // If we're not dealing with a regular pixel number
-  // but a number that has a weird ending, we need to convert it to pixels
-  // exclude left right for relativity
-  if (_RE_NUM_NO_PX.test(ret) && !RE_POS.test(name)) {
-    // Remember the original values
-    var style = elem.style;
-    var left = style[LEFT];
-    var rsLeft = elem[RUNTIME_STYLE][LEFT];
-
-    // prevent flashing of content
-    elem[RUNTIME_STYLE][LEFT] = elem[CURRENT_STYLE][LEFT];
-
-    // Put in the new values to get a computed value out
-    style[LEFT] = name === 'fontSize' ? '1em' : ret || 0;
-    ret = style.pixelLeft + PX;
-
-    // Revert the changed values
-    style[LEFT] = left;
-
-    elem[RUNTIME_STYLE][LEFT] = rsLeft;
-  }
-  return ret === '' ? 'auto' : ret;
-}
-
-var getComputedStyleX = undefined;
-if (typeof window !== 'undefined') {
-  getComputedStyleX = window.getComputedStyle ? _getComputedStyle : _getComputedStyleIE;
-}
-
-function each(arr, fn) {
-  for (var i = 0; i < arr.length; i++) {
-    fn(arr[i]);
-  }
-}
-
-function isBorderBoxFn(elem) {
-  return getComputedStyleX(elem, 'boxSizing') === 'border-box';
-}
-
-var BOX_MODELS = ['margin', 'border', 'padding'];
-var CONTENT_INDEX = -1;
-var PADDING_INDEX = 2;
-var BORDER_INDEX = 1;
-var MARGIN_INDEX = 0;
-
-function swap(elem, options, callback) {
-  var old = {};
-  var style = elem.style;
-  var name = undefined;
-
-  // Remember the old values, and insert the new ones
-  for (name in options) {
-    if (options.hasOwnProperty(name)) {
-      old[name] = style[name];
-      style[name] = options[name];
-    }
-  }
-
-  callback.call(elem);
-
-  // Revert the old values
-  for (name in options) {
-    if (options.hasOwnProperty(name)) {
-      style[name] = old[name];
-    }
-  }
-}
-
-function getPBMWidth(elem, props, which) {
-  var value = 0;
-  var prop = undefined;
-  var j = undefined;
-  var i = undefined;
-  for (j = 0; j < props.length; j++) {
-    prop = props[j];
-    if (prop) {
-      for (i = 0; i < which.length; i++) {
-        var cssProp = undefined;
-        if (prop === 'border') {
-          cssProp = prop + which[i] + 'Width';
-        } else {
-          cssProp = prop + which[i];
-        }
-        value += parseFloat(getComputedStyleX(elem, cssProp)) || 0;
-      }
-    }
-  }
-  return value;
-}
-
-/**
- * A crude way of determining if an object is a window
- * @member util
- */
-function isWindow(obj) {
-  // must use == for ie8
-  /* eslint eqeqeq:0 */
-  return obj != null && obj == obj.window;
-}
-
-var domUtils = {};
-
-each(['Width', 'Height'], function (name) {
-  domUtils['doc' + name] = function (refWin) {
-    var d = refWin.document;
-    return Math.max(
-    // firefox chrome documentElement.scrollHeight< body.scrollHeight
-    // ie standard mode : documentElement.scrollHeight> body.scrollHeight
-    d.documentElement['scroll' + name],
-    // quirks : documentElement.scrollHeight 最大等于可视窗口多一点?
-    d.body['scroll' + name], domUtils['viewport' + name](d));
-  };
-
-  domUtils['viewport' + name] = function (win) {
-    // pc browser includes scrollbar in window.innerWidth
-    var prop = 'client' + name;
-    var doc = win.document;
-    var body = doc.body;
-    var documentElement = doc.documentElement;
-    var documentElementProp = documentElement[prop];
-    // 标准模式取 documentElement
-    // backcompat 取 body
-    return doc.compatMode === 'CSS1Compat' && documentElementProp || body && body[prop] || documentElementProp;
-  };
-});
-
-/*
- 得到元素的大小信息
- @param elem
- @param name
- @param {String} [extra]  'padding' : (css width) + padding
- 'border' : (css width) + padding + border
- 'margin' : (css width) + padding + border + margin
- */
-function getWH(elem, name, extra) {
-  if (isWindow(elem)) {
-    return name === 'width' ? domUtils.viewportWidth(elem) : domUtils.viewportHeight(elem);
-  } else if (elem.nodeType === 9) {
-    return name === 'width' ? domUtils.docWidth(elem) : domUtils.docHeight(elem);
-  }
-  var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];
-  var borderBoxValue = name === 'width' ? elem.offsetWidth : elem.offsetHeight;
-  var computedStyle = getComputedStyleX(elem);
-  var isBorderBox = isBorderBoxFn(elem, computedStyle);
-  var cssBoxValue = 0;
-  if (borderBoxValue == null || borderBoxValue <= 0) {
-    borderBoxValue = undefined;
-    // Fall back to computed then un computed css if necessary
-    cssBoxValue = getComputedStyleX(elem, name);
-    if (cssBoxValue == null || Number(cssBoxValue) < 0) {
-      cssBoxValue = elem.style[name] || 0;
-    }
-    // Normalize '', auto, and prepare for extra
-    cssBoxValue = parseFloat(cssBoxValue) || 0;
-  }
-  if (extra === undefined) {
-    extra = isBorderBox ? BORDER_INDEX : CONTENT_INDEX;
-  }
-  var borderBoxValueOrIsBorderBox = borderBoxValue !== undefined || isBorderBox;
-  var val = borderBoxValue || cssBoxValue;
-  if (extra === CONTENT_INDEX) {
-    if (borderBoxValueOrIsBorderBox) {
-      return val - getPBMWidth(elem, ['border', 'padding'], which, computedStyle);
-    }
-    return cssBoxValue;
-  }
-  if (borderBoxValueOrIsBorderBox) {
-    var padding = extra === PADDING_INDEX ? -getPBMWidth(elem, ['border'], which, computedStyle) : getPBMWidth(elem, ['margin'], which, computedStyle);
-    return val + (extra === BORDER_INDEX ? 0 : padding);
-  }
-  return cssBoxValue + getPBMWidth(elem, BOX_MODELS.slice(extra), which, computedStyle);
-}
-
-var cssShow = {
-  position: 'absolute',
-  visibility: 'hidden',
-  display: 'block'
-};
-
-// fix #119 : https://github.com/kissyteam/kissy/issues/119
-function getWHIgnoreDisplay(elem) {
-  var val = undefined;
-  var args = arguments;
-  // in case elem is window
-  // elem.offsetWidth === undefined
-  if (elem.offsetWidth !== 0) {
-    val = getWH.apply(undefined, args);
-  } else {
-    swap(elem, cssShow, function () {
-      val = getWH.apply(undefined, args);
-    });
-  }
-  return val;
-}
-
-function css(el, name, v) {
-  var value = v;
-  if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') {
-    for (var i in name) {
-      if (name.hasOwnProperty(i)) {
-        css(el, i, name[i]);
-      }
-    }
-    return undefined;
-  }
-  if (typeof value !== 'undefined') {
-    if (typeof value === 'number') {
-      value += 'px';
-    }
-    el.style[name] = value;
-    return undefined;
-  }
-  return getComputedStyleX(el, name);
-}
-
-each(['width', 'height'], function (name) {
-  var first = name.charAt(0).toUpperCase() + name.slice(1);
-  domUtils['outer' + first] = function (el, includeMargin) {
-    return el && getWHIgnoreDisplay(el, name, includeMargin ? MARGIN_INDEX : BORDER_INDEX);
-  };
-  var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];
-
-  domUtils[name] = function (elem, val) {
-    if (val !== undefined) {
-      if (elem) {
-        var computedStyle = getComputedStyleX(elem);
-        var isBorderBox = isBorderBoxFn(elem);
-        if (isBorderBox) {
-          val += getPBMWidth(elem, ['padding', 'border'], which, computedStyle);
-        }
-        return css(elem, name, val);
-      }
-      return undefined;
-    }
-    return elem && getWHIgnoreDisplay(elem, name, CONTENT_INDEX);
-  };
-});
-
-// 设置 elem 相对 elem.ownerDocument 的坐标
-function setOffset(elem, offset) {
-  // set position first, in-case top/left are set even on static elem
-  if (css(elem, 'position') === 'static') {
-    elem.style.position = 'relative';
-  }
-
-  var old = getOffset(elem);
-  var ret = {};
-  var current = undefined;
-  var key = undefined;
-
-  for (key in offset) {
-    if (offset.hasOwnProperty(key)) {
-      current = parseFloat(css(elem, key)) || 0;
-      ret[key] = current + offset[key] - old[key];
-    }
-  }
-  css(elem, ret);
-}
-
-module.exports = _extends({
-  getWindow: function getWindow(node) {
-    var doc = node.ownerDocument || node;
-    return doc.defaultView || doc.parentWindow;
-  },
-  offset: function offset(el, value) {
-    if (typeof value !== 'undefined') {
-      setOffset(el, value);
-    } else {
-      return getOffset(el);
-    }
-  },
-
-  isWindow: isWindow,
-  each: each,
-  css: css,
-  clone: function clone(obj) {
-    var ret = {};
-    for (var i in obj) {
-      if (obj.hasOwnProperty(i)) {
-        ret[i] = obj[i];
-      }
-    }
-    var overflow = obj.overflow;
-    if (overflow) {
-      for (var i in obj) {
-        if (obj.hasOwnProperty(i)) {
-          ret.overflow[i] = obj.overflow[i];
-        }
-      }
-    }
-    return ret;
-  },
-  scrollLeft: function scrollLeft(w, v) {
-    if (isWindow(w)) {
-      if (v === undefined) {
-        return getScrollLeft(w);
-      }
-      window.scrollTo(v, getScrollTop(w));
-    } else {
-      if (v === undefined) {
-        return w.scrollLeft;
-      }
-      w.scrollLeft = v;
-    }
-  },
-  scrollTop: function scrollTop(w, v) {
-    if (isWindow(w)) {
-      if (v === undefined) {
-        return getScrollTop(w);
-      }
-      window.scrollTo(getScrollLeft(w), v);
-    } else {
-      if (v === undefined) {
-        return w.scrollTop;
-      }
-      w.scrollTop = v;
-    }
-  },
-
-  viewportWidth: 0,
-  viewportHeight: 0
-}, domUtils);
-
-/***/ }),
-
-/***/ "jXQH":
-/***/ (function(module, exports, __webpack_require__) {
-
-var trimmedEndIndex = __webpack_require__("TO8r");
-
-/** Used to match leading whitespace. */
-var reTrimStart = /^\s+/;
-
-/**
- * The base implementation of `_.trim`.
- *
- * @private
- * @param {string} string The string to trim.
- * @returns {string} Returns the trimmed string.
- */
-function baseTrim(string) {
-  return string
-    ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')
-    : string;
-}
-
-module.exports = baseTrim;
-
-
-/***/ }),
-
-/***/ "jenk":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports['default'] = toISOMonthString;
-
-var _moment = __webpack_require__("wy2R");
-
-var _moment2 = _interopRequireDefault(_moment);
-
-var _toMomentObject = __webpack_require__("WmS1");
-
-var _toMomentObject2 = _interopRequireDefault(_toMomentObject);
-
-var _constants = __webpack_require__("Fv1B");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-function toISOMonthString(date, currentFormat) {
-  var dateObj = _moment2['default'].isMoment(date) ? date : (0, _toMomentObject2['default'])(date, currentFormat);
-  if (!dateObj) return null;
-
-  return dateObj.format(_constants.ISO_MONTH_FORMAT);
-}
-
-/***/ }),
-
-/***/ "k2cL":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return isSelfTarget; });
-/**
- * Returns `true` if `event.target` and `event.currentTarget` are the same.
- */
-function isSelfTarget(event) {
-  return event.target === event.currentTarget;
-}
-
-
-
-
-/***/ }),
-
-/***/ "k8OV":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ScrollLock; });
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
-/**
- * WordPress dependencies
- */
-
-/*
- * Setting `overflow: hidden` on html and body elements resets body scroll in iOS.
- * Save scroll top so we can restore it after locking scroll.
- *
- * NOTE: It would be cleaner and possibly safer to find a localized solution such
- * as preventing default on certain touchmove events.
- */
-
-let previousScrollTop = 0;
-/**
- * @param {boolean} locked
- */
-
-function setLocked(locked) {
-  const scrollingElement = document.scrollingElement || document.body;
-
-  if (locked) {
-    previousScrollTop = scrollingElement.scrollTop;
-  }
-
-  const methodName = locked ? 'add' : 'remove';
-  scrollingElement.classList[methodName]('lockscroll'); // Adding the class to the document element seems to be necessary in iOS.
-
-  document.documentElement.classList[methodName]('lockscroll');
-
-  if (!locked) {
-    scrollingElement.scrollTop = previousScrollTop;
-  }
-}
-
-let lockCounter = 0;
-/**
- * A component that will lock scrolling when it is mounted and unlock scrolling when it is unmounted.
- *
- * @return {null} Render nothing.
- */
-
-function ScrollLock() {
-  Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["useEffect"])(() => {
-    if (lockCounter === 0) {
-      setLocked(true);
-    }
-
-    ++lockCounter;
-    return () => {
-      if (lockCounter === 1) {
-        setLocked(false);
-      }
-
-      --lockCounter;
-    };
-  }, []);
-  return null;
-}
-
-
-/***/ }),
-
-/***/ "kA6J":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* unused harmony export Button */
-/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("wx14");
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("GRId");
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__);
-/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("TSYQ");
-/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_2__);
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("YLtl");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_3__);
-/* harmony import */ var _wordpress_deprecated__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("NMb1");
-/* harmony import */ var _wordpress_deprecated__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_deprecated__WEBPACK_IMPORTED_MODULE_4__);
-/* harmony import */ var _tooltip__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("W/NR");
-/* harmony import */ var _icon__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("9VDH");
-/* harmony import */ var _visually_hidden__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("ldlY");
-
-
-
-/**
- * External dependencies
- */
-
-
-/**
- * WordPress dependencies
- */
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-const disabledEventsOnDisabledButton = ['onMouseDown', 'onClick'];
-function Button(props, ref) {
-  const {
-    href,
-    target,
-    isPrimary,
-    isSmall,
-    isTertiary,
-    isPressed,
-    isBusy,
-    isDefault,
-    isSecondary,
-    isLink,
-    isDestructive,
-    className,
-    disabled,
-    icon,
-    iconPosition = 'left',
-    iconSize,
-    showTooltip,
-    tooltipPosition,
-    shortcut,
-    label,
-    children,
-    text,
-    __experimentalIsFocusable: isFocusable,
-    describedBy,
-    ...additionalProps
-  } = props;
-
-  if (isDefault) {
-    _wordpress_deprecated__WEBPACK_IMPORTED_MODULE_4___default()('Button isDefault prop', {
-      since: '5.4',
-      alternative: 'isSecondary'
-    });
-  }
-
-  const classes = classnames__WEBPACK_IMPORTED_MODULE_2___default()('components-button', className, {
-    'is-secondary': isDefault || isSecondary,
-    'is-primary': isPrimary,
-    'is-small': isSmall,
-    'is-tertiary': isTertiary,
-    'is-pressed': isPressed,
-    'is-busy': isBusy,
-    'is-link': isLink,
-    'is-destructive': isDestructive,
-    'has-text': !!icon && !!children,
-    'has-icon': !!icon
-  });
-  const trulyDisabled = disabled && !isFocusable;
-  const Tag = href !== undefined && !trulyDisabled ? 'a' : 'button';
-  const tagProps = Tag === 'a' ? {
-    href,
-    target
-  } : {
-    type: 'button',
-    disabled: trulyDisabled,
-    'aria-pressed': isPressed
-  };
-
-  if (disabled && isFocusable) {
-    // In this case, the button will be disabled, but still focusable and
-    // perceivable by screen reader users.
-    tagProps['aria-disabled'] = true;
-
-    for (const disabledEvent of disabledEventsOnDisabledButton) {
-      additionalProps[disabledEvent] = event => {
-        event.stopPropagation();
-        event.preventDefault();
-      };
-    }
-  } // Should show the tooltip if...
-
-
-  const shouldShowTooltip = !trulyDisabled && ( // an explicit tooltip is passed or...
-  showTooltip && label || // there's a shortcut or...
-  shortcut || // there's a label and...
-  !!label && ( // the children are empty and...
-  !children || Object(lodash__WEBPACK_IMPORTED_MODULE_3__["isArray"])(children) && !children.length) && // the tooltip is not explicitly disabled.
-  false !== showTooltip);
-  const descriptionId = describedBy ? Object(lodash__WEBPACK_IMPORTED_MODULE_3__["uniqueId"])() : null;
-  const describedById = additionalProps['aria-describedby'] || descriptionId;
-  const element = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(Tag, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({}, tagProps, additionalProps, {
-    className: classes,
-    "aria-label": additionalProps['aria-label'] || label,
-    "aria-describedby": describedById,
-    ref: ref
-  }), icon && iconPosition === 'left' && Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_icon__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"], {
-    icon: icon,
-    size: iconSize
-  }), text && Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["Fragment"], null, text), icon && iconPosition === 'right' && Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_icon__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"], {
-    icon: icon,
-    size: iconSize
-  }), children);
-
-  if (!shouldShowTooltip) {
-    return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["Fragment"], null, element, describedBy && Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_visually_hidden__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"], null, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("span", {
-      id: descriptionId
-    }, describedBy)));
-  }
-
-  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["Fragment"], null, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_tooltip__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"], {
-    text: describedBy ? describedBy : label,
-    shortcut: shortcut,
-    position: tooltipPosition
-  }, element), describedBy && Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_visually_hidden__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"], null, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("span", {
-    id: descriptionId
-  }, describedBy)));
-}
-/* harmony default export */ __webpack_exports__["a"] = (Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["forwardRef"])(Button));
-
-
-/***/ }),
-
-/***/ "kDDq":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-
-// EXPORTS
-__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ emotion_esm_css; });
-__webpack_require__.d(__webpack_exports__, "b", function() { return /* binding */ emotion_esm_cx; });
-
-// UNUSED EXPORTS: cache, flush, getRegisteredStyles, hydrate, injectGlobal, keyframes, merge, sheet
-
-// EXTERNAL MODULE: ./node_modules/@emotion/cache/dist/cache.browser.esm.js + 2 modules
-var cache_browser_esm = __webpack_require__("TqVZ");
-
-// EXTERNAL MODULE: ./node_modules/@emotion/serialize/dist/serialize.browser.esm.js + 2 modules
-var serialize_browser_esm = __webpack_require__("MiSq");
-
-// EXTERNAL MODULE: ./node_modules/@emotion/utils/dist/utils.browser.esm.js
-var utils_browser_esm = __webpack_require__("SIPS");
-
-// CONCATENATED MODULE: ./node_modules/create-emotion/dist/create-emotion.browser.esm.js
-
-
-
-
-function insertWithoutScoping(cache, serialized) {
-  if (cache.inserted[serialized.name] === undefined) {
-    return cache.insert('', serialized, cache.sheet, true);
-  }
-}
-
-function merge(registered, css, className) {
-  var registeredStyles = [];
-  var rawClassName = Object(utils_browser_esm["a" /* getRegisteredStyles */])(registered, registeredStyles, className);
-
-  if (registeredStyles.length < 2) {
-    return className;
-  }
-
-  return rawClassName + css(registeredStyles);
-}
-
-var create_emotion_browser_esm_createEmotion = function createEmotion(options) {
-  var cache = Object(cache_browser_esm["a" /* default */])(options); // $FlowFixMe
-
-  cache.sheet.speedy = function (value) {
-    if (false) {}
-
-    this.isSpeedy = value;
-  };
-
-  cache.compat = true;
-
-  var css = function css() {
-    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
-      args[_key] = arguments[_key];
-    }
-
-    var serialized = Object(serialize_browser_esm["a" /* serializeStyles */])(args, cache.registered, undefined);
-    Object(utils_browser_esm["b" /* insertStyles */])(cache, serialized, false);
-    return cache.key + "-" + serialized.name;
-  };
-
-  var keyframes = function keyframes() {
-    for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
-      args[_key2] = arguments[_key2];
-    }
-
-    var serialized = Object(serialize_browser_esm["a" /* serializeStyles */])(args, cache.registered);
-    var animation = "animation-" + serialized.name;
-    insertWithoutScoping(cache, {
-      name: serialized.name,
-      styles: "@keyframes " + animation + "{" + serialized.styles + "}"
-    });
-    return animation;
-  };
-
-  var injectGlobal = function injectGlobal() {
-    for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
-      args[_key3] = arguments[_key3];
-    }
-
-    var serialized = Object(serialize_browser_esm["a" /* serializeStyles */])(args, cache.registered);
-    insertWithoutScoping(cache, serialized);
-  };
-
-  var cx = function cx() {
-    for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
-      args[_key4] = arguments[_key4];
-    }
-
-    return merge(cache.registered, css, classnames(args));
-  };
-
-  return {
-    css: css,
-    cx: cx,
-    injectGlobal: injectGlobal,
-    keyframes: keyframes,
-    hydrate: function hydrate(ids) {
-      ids.forEach(function (key) {
-        cache.inserted[key] = true;
-      });
-    },
-    flush: function flush() {
-      cache.registered = {};
-      cache.inserted = {};
-      cache.sheet.flush();
-    },
-    // $FlowFixMe
-    sheet: cache.sheet,
-    cache: cache,
-    getRegisteredStyles: utils_browser_esm["a" /* getRegisteredStyles */].bind(null, cache.registered),
-    merge: merge.bind(null, cache.registered, css)
-  };
-};
-
-var classnames = function classnames(args) {
-  var cls = '';
-
-  for (var i = 0; i < args.length; i++) {
-    var arg = args[i];
-    if (arg == null) continue;
-    var toAdd = void 0;
-
-    switch (typeof arg) {
-      case 'boolean':
-        break;
-
-      case 'object':
-        {
-          if (Array.isArray(arg)) {
-            toAdd = classnames(arg);
-          } else {
-            toAdd = '';
-
-            for (var k in arg) {
-              if (arg[k] && k) {
-                toAdd && (toAdd += ' ');
-                toAdd += k;
-              }
-            }
-          }
-
-          break;
-        }
-
-      default:
-        {
-          toAdd = arg;
-        }
-    }
-
-    if (toAdd) {
-      cls && (cls += ' ');
-      cls += toAdd;
-    }
-  }
-
-  return cls;
-};
-
-/* harmony default export */ var create_emotion_browser_esm = (create_emotion_browser_esm_createEmotion);
-
-// CONCATENATED MODULE: ./node_modules/emotion/dist/emotion.esm.js
-
-
-var _createEmotion = create_emotion_browser_esm(),
-    flush = _createEmotion.flush,
-    hydrate = _createEmotion.hydrate,
-    emotion_esm_cx = _createEmotion.cx,
-    emotion_esm_merge = _createEmotion.merge,
-    getRegisteredStyles = _createEmotion.getRegisteredStyles,
-    emotion_esm_injectGlobal = _createEmotion.injectGlobal,
-    emotion_esm_keyframes = _createEmotion.keyframes,
-    emotion_esm_css = _createEmotion.css,
-    sheet = _createEmotion.sheet,
-    emotion_esm_cache = _createEmotion.cache;
-
-
-
-
-/***/ }),
-
-/***/ "kFtd":
-/***/ (function(module, exports) {
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var GLOBAL_CACHE_KEY = 'reactWithStylesInterfaceCSS';
-var MAX_SPECIFICITY = 20;
-
-exports.GLOBAL_CACHE_KEY = GLOBAL_CACHE_KEY;
-exports.MAX_SPECIFICITY = MAX_SPECIFICITY;
-
-/***/ }),
-
-/***/ "kTC8":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return CompositeItem; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return useCompositeItem; });
-/* harmony import */ var _rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("BZp5");
-/* harmony import */ var reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("hE48");
-/* harmony import */ var reakit_system_createHook__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("qdes");
-/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("cDcd");
-/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);
-/* harmony import */ var reakit_utils_useForkRef__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("aU41");
-/* harmony import */ var reakit_warning__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("KA1K");
-/* harmony import */ var reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("eNtd");
-/* harmony import */ var reakit_utils_isSelfTarget__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("k2cL");
-/* harmony import */ var reakit_utils_hasFocusWithin__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("PcHe");
-/* harmony import */ var reakit_utils_isPortalEvent__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("Vq1w");
-/* harmony import */ var _Clickable_Clickable_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("JLmN");
-/* harmony import */ var reakit_utils_getDocument__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__("ouKs");
-/* harmony import */ var _getCurrentId_5aa9849e_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__("iYXd");
-/* harmony import */ var _keys_6742f591_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__("TFuP");
-/* harmony import */ var _userFocus_e16425e3_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__("Mih7");
-/* harmony import */ var reakit_utils_isTextField__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__("4po3");
-/* harmony import */ var reakit_utils_ensureFocus__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__("AClM");
-/* harmony import */ var _Id_Id_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__("ym77");
-/* harmony import */ var _setTextFieldValue_0a221f4e_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__("0HL0");
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-function getWidget(itemElement) {
-  return itemElement.querySelector("[data-composite-item-widget]");
-}
-
-function useItem(options) {
-  return Object(react__WEBPACK_IMPORTED_MODULE_3__["useMemo"])(function () {
-    var _options$items;
-
-    return (_options$items = options.items) === null || _options$items === void 0 ? void 0 : _options$items.find(function (item) {
-      return options.id && item.id === options.id;
-    });
-  }, [options.items, options.id]);
-}
-
-function targetIsAnotherItem(event, items) {
-  if (Object(reakit_utils_isSelfTarget__WEBPACK_IMPORTED_MODULE_7__[/* isSelfTarget */ "a"])(event)) return false;
-
-  for (var _iterator = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* b */ "c"])(items), _step; !(_step = _iterator()).done;) {
-    var item = _step.value;
-
-    if (item.ref.current === event.target) {
-      return true;
-    }
-  }
-
-  return false;
-}
-
-var useCompositeItem = Object(reakit_system_createHook__WEBPACK_IMPORTED_MODULE_2__[/* createHook */ "a"])({
-  name: "CompositeItem",
-  compose: [_Clickable_Clickable_js__WEBPACK_IMPORTED_MODULE_10__[/* useClickable */ "a"], _Id_Id_js__WEBPACK_IMPORTED_MODULE_17__[/* unstable_useId */ "a"]],
-  keys: _keys_6742f591_js__WEBPACK_IMPORTED_MODULE_13__[/* b */ "c"],
-  propsAreEqual: function propsAreEqual(prev, next) {
-    if (!next.id || prev.id !== next.id) {
-      return _Clickable_Clickable_js__WEBPACK_IMPORTED_MODULE_10__[/* useClickable */ "a"].unstable_propsAreEqual(prev, next);
-    }
-
-    var prevCurrentId = prev.currentId,
-        prevMoves = prev.unstable_moves,
-        prevProps = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* _ */ "a"])(prev, ["currentId", "unstable_moves"]);
-
-    var nextCurrentId = next.currentId,
-        nextMoves = next.unstable_moves,
-        nextProps = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* _ */ "a"])(next, ["currentId", "unstable_moves"]);
-
-    if (nextCurrentId !== prevCurrentId) {
-      if (next.id === nextCurrentId || next.id === prevCurrentId) {
-        return false;
-      }
-    } else if (prevMoves !== nextMoves) {
-      return false;
-    }
-
-    return _Clickable_Clickable_js__WEBPACK_IMPORTED_MODULE_10__[/* useClickable */ "a"].unstable_propsAreEqual(prevProps, nextProps);
-  },
-  useOptions: function useOptions(options) {
-    return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, options), {}, {
-      id: options.id,
-      currentId: Object(_getCurrentId_5aa9849e_js__WEBPACK_IMPORTED_MODULE_12__[/* g */ "b"])(options),
-      unstable_clickOnSpace: options.unstable_hasActiveWidget ? false : options.unstable_clickOnSpace
-    });
-  },
-  useProps: function useProps(options, _ref) {
-    var _options$items2;
-
-    var htmlRef = _ref.ref,
-        _ref$tabIndex = _ref.tabIndex,
-        htmlTabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex,
-        htmlOnMouseDown = _ref.onMouseDown,
-        htmlOnFocus = _ref.onFocus,
-        htmlOnBlurCapture = _ref.onBlurCapture,
-        htmlOnKeyDown = _ref.onKeyDown,
-        htmlOnClick = _ref.onClick,
-        htmlProps = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* _ */ "a"])(_ref, ["ref", "tabIndex", "onMouseDown", "onFocus", "onBlurCapture", "onKeyDown", "onClick"]);
-
-    var ref = Object(react__WEBPACK_IMPORTED_MODULE_3__["useRef"])(null);
-    var id = options.id;
-    var trulyDisabled = options.disabled && !options.focusable;
-    var isCurrentItem = options.currentId === id;
-    var isCurrentItemRef = Object(reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_6__[/* useLiveRef */ "a"])(isCurrentItem);
-    var hasFocusedComposite = Object(react__WEBPACK_IMPORTED_MODULE_3__["useRef"])(false);
-    var item = useItem(options);
-    var onMouseDownRef = Object(reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_6__[/* useLiveRef */ "a"])(htmlOnMouseDown);
-    var onFocusRef = Object(reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_6__[/* useLiveRef */ "a"])(htmlOnFocus);
-    var onBlurCaptureRef = Object(reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_6__[/* useLiveRef */ "a"])(htmlOnBlurCapture);
-    var onKeyDownRef = Object(reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_6__[/* useLiveRef */ "a"])(htmlOnKeyDown);
-    var onClickRef = Object(reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_6__[/* useLiveRef */ "a"])(htmlOnClick);
-    var shouldTabIndex = !options.unstable_virtual && !options.unstable_hasActiveWidget && isCurrentItem || // We don't want to set tabIndex="-1" when using CompositeItem as a
-    // standalone component, without state props.
-    !((_options$items2 = options.items) !== null && _options$items2 !== void 0 && _options$items2.length);
-    Object(react__WEBPACK_IMPORTED_MODULE_3__["useEffect"])(function () {
-      var _options$registerItem;
-
-      if (!id) return undefined;
-      (_options$registerItem = options.registerItem) === null || _options$registerItem === void 0 ? void 0 : _options$registerItem.call(options, {
-        id: id,
-        ref: ref,
-        disabled: !!trulyDisabled
-      });
-      return function () {
-        var _options$unregisterIt;
-
-        (_options$unregisterIt = options.unregisterItem) === null || _options$unregisterIt === void 0 ? void 0 : _options$unregisterIt.call(options, id);
-      };
-    }, [id, trulyDisabled, options.registerItem, options.unregisterItem]);
-    Object(react__WEBPACK_IMPORTED_MODULE_3__["useEffect"])(function () {
-      var element = ref.current;
-
-      if (!element) {
-         false ? undefined : void 0;
-        return;
-      } // `moves` will be incremented whenever next, previous, up, down, first,
-      // last or move have been called. This means that the composite item will
-      // be focused whenever some of these functions are called. We're using
-      // isCurrentItemRef instead of isCurrentItem because we don't want to
-      // focus the item if isCurrentItem changes (and options.moves doesn't).
-
-
-      if (options.unstable_moves && isCurrentItemRef.current) {
-        Object(_userFocus_e16425e3_js__WEBPACK_IMPORTED_MODULE_14__[/* u */ "c"])(element);
-      }
-    }, [options.unstable_moves]);
-    var onMouseDown = Object(react__WEBPACK_IMPORTED_MODULE_3__["useCallback"])(function (event) {
-      var _onMouseDownRef$curre;
-
-      (_onMouseDownRef$curre = onMouseDownRef.current) === null || _onMouseDownRef$curre === void 0 ? void 0 : _onMouseDownRef$curre.call(onMouseDownRef, event);
-      Object(_userFocus_e16425e3_js__WEBPACK_IMPORTED_MODULE_14__[/* s */ "b"])(event.currentTarget, true);
-    }, []);
-    var onFocus = Object(react__WEBPACK_IMPORTED_MODULE_3__["useCallback"])(function (event) {
-      var _onFocusRef$current, _options$setCurrentId;
-
-      var shouldFocusComposite = Object(_userFocus_e16425e3_js__WEBPACK_IMPORTED_MODULE_14__[/* h */ "a"])(event.currentTarget);
-      Object(_userFocus_e16425e3_js__WEBPACK_IMPORTED_MODULE_14__[/* s */ "b"])(event.currentTarget, false);
-      (_onFocusRef$current = onFocusRef.current) === null || _onFocusRef$current === void 0 ? void 0 : _onFocusRef$current.call(onFocusRef, event);
-      if (event.defaultPrevented) return;
-      if (Object(reakit_utils_isPortalEvent__WEBPACK_IMPORTED_MODULE_9__[/* isPortalEvent */ "a"])(event)) return;
-      if (!id) return;
-      if (targetIsAnotherItem(event, options.items)) return;
-      (_options$setCurrentId = options.setCurrentId) === null || _options$setCurrentId === void 0 ? void 0 : _options$setCurrentId.call(options, id); // When using aria-activedescendant, we want to make sure that the
-      // composite container receives focus, not the composite item.
-      // But we don't want to do this if the target is another focusable
-      // element inside the composite item, such as CompositeItemWidget.
-
-      if (shouldFocusComposite && options.unstable_virtual && options.baseId && Object(reakit_utils_isSelfTarget__WEBPACK_IMPORTED_MODULE_7__[/* isSelfTarget */ "a"])(event)) {
-        var target = event.target;
-        var composite = Object(reakit_utils_getDocument__WEBPACK_IMPORTED_MODULE_11__[/* getDocument */ "a"])(target).getElementById(options.baseId);
-
-        if (composite) {
-          hasFocusedComposite.current = true;
-          Object(reakit_utils_ensureFocus__WEBPACK_IMPORTED_MODULE_16__[/* ensureFocus */ "a"])(composite);
-        }
-      }
-    }, [id, options.items, options.setCurrentId, options.unstable_virtual, options.baseId]);
-    var onBlurCapture = Object(react__WEBPACK_IMPORTED_MODULE_3__["useCallback"])(function (event) {
-      var _onBlurCaptureRef$cur;
-
-      (_onBlurCaptureRef$cur = onBlurCaptureRef.current) === null || _onBlurCaptureRef$cur === void 0 ? void 0 : _onBlurCaptureRef$cur.call(onBlurCaptureRef, event);
-      if (event.defaultPrevented) return;
-
-      if (options.unstable_virtual && hasFocusedComposite.current) {
-        // When hasFocusedComposite is true, composite has been focused right
-        // after focusing this item. This is an intermediate blur event, so
-        // we ignore it.
-        hasFocusedComposite.current = false;
-        event.preventDefault();
-        event.stopPropagation();
-      }
-    }, [options.unstable_virtual]);
-    var onKeyDown = Object(react__WEBPACK_IMPORTED_MODULE_3__["useCallback"])(function (event) {
-      var _onKeyDownRef$current;
-
-      if (!Object(reakit_utils_isSelfTarget__WEBPACK_IMPORTED_MODULE_7__[/* isSelfTarget */ "a"])(event)) return;
-      var isVertical = options.orientation !== "horizontal";
-      var isHorizontal = options.orientation !== "vertical";
-      var isGrid = !!(item !== null && item !== void 0 && item.groupId);
-      var keyMap = {
-        ArrowUp: (isGrid || isVertical) && options.up,
-        ArrowRight: (isGrid || isHorizontal) && options.next,
-        ArrowDown: (isGrid || isVertical) && options.down,
-        ArrowLeft: (isGrid || isHorizontal) && options.previous,
-        Home: function Home() {
-          if (!isGrid || event.ctrlKey) {
-            var _options$first;
-
-            (_options$first = options.first) === null || _options$first === void 0 ? void 0 : _options$first.call(options);
-          } else {
-            var _options$previous;
-
-            (_options$previous = options.previous) === null || _options$previous === void 0 ? void 0 : _options$previous.call(options, true);
-          }
-        },
-        End: function End() {
-          if (!isGrid || event.ctrlKey) {
-            var _options$last;
-
-            (_options$last = options.last) === null || _options$last === void 0 ? void 0 : _options$last.call(options);
-          } else {
-            var _options$next;
-
-            (_options$next = options.next) === null || _options$next === void 0 ? void 0 : _options$next.call(options, true);
-          }
-        },
-        PageUp: function PageUp() {
-          if (isGrid) {
-            var _options$up;
-
-            (_options$up = options.up) === null || _options$up === void 0 ? void 0 : _options$up.call(options, true);
-          } else {
-            var _options$first2;
-
-            (_options$first2 = options.first) === null || _options$first2 === void 0 ? void 0 : _options$first2.call(options);
-          }
-        },
-        PageDown: function PageDown() {
-          if (isGrid) {
-            var _options$down;
-
-            (_options$down = options.down) === null || _options$down === void 0 ? void 0 : _options$down.call(options, true);
-          } else {
-            var _options$last2;
-
-            (_options$last2 = options.last) === null || _options$last2 === void 0 ? void 0 : _options$last2.call(options);
-          }
-        }
-      };
-      var action = keyMap[event.key];
-
-      if (action) {
-        event.preventDefault();
-        action();
-        return;
-      }
-
-      (_onKeyDownRef$current = onKeyDownRef.current) === null || _onKeyDownRef$current === void 0 ? void 0 : _onKeyDownRef$current.call(onKeyDownRef, event);
-      if (event.defaultPrevented) return;
-
-      if (event.key.length === 1 && event.key !== " ") {
-        var widget = getWidget(event.currentTarget);
-
-        if (widget && Object(reakit_utils_isTextField__WEBPACK_IMPORTED_MODULE_15__[/* isTextField */ "a"])(widget)) {
-          widget.focus();
-          Object(_setTextFieldValue_0a221f4e_js__WEBPACK_IMPORTED_MODULE_18__[/* s */ "a"])(widget, "");
-        }
-      } else if (event.key === "Delete" || event.key === "Backspace") {
-        var _widget = getWidget(event.currentTarget);
-
-        if (_widget && Object(reakit_utils_isTextField__WEBPACK_IMPORTED_MODULE_15__[/* isTextField */ "a"])(_widget)) {
-          event.preventDefault();
-          Object(_setTextFieldValue_0a221f4e_js__WEBPACK_IMPORTED_MODULE_18__[/* s */ "a"])(_widget, "");
-        }
-      }
-    }, [options.orientation, item, options.up, options.next, options.down, options.previous, options.first, options.last]);
-    var onClick = Object(react__WEBPACK_IMPORTED_MODULE_3__["useCallback"])(function (event) {
-      var _onClickRef$current;
-
-      (_onClickRef$current = onClickRef.current) === null || _onClickRef$current === void 0 ? void 0 : _onClickRef$current.call(onClickRef, event);
-      if (event.defaultPrevented) return;
-      var element = event.currentTarget;
-      var widget = getWidget(element);
-
-      if (widget && !Object(reakit_utils_hasFocusWithin__WEBPACK_IMPORTED_MODULE_8__[/* hasFocusWithin */ "a"])(widget)) {
-        // If there's a widget inside the composite item, we make sure it's
-        // focused when pressing enter, space or clicking on the composite item.
-        widget.focus();
-      }
-    }, []);
-    return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({
-      ref: Object(reakit_utils_useForkRef__WEBPACK_IMPORTED_MODULE_4__[/* useForkRef */ "a"])(ref, htmlRef),
-      id: id,
-      tabIndex: shouldTabIndex ? htmlTabIndex : -1,
-      "aria-selected": options.unstable_virtual && isCurrentItem ? true : undefined,
-      onMouseDown: onMouseDown,
-      onFocus: onFocus,
-      onBlurCapture: onBlurCapture,
-      onKeyDown: onKeyDown,
-      onClick: onClick
-    }, htmlProps);
-  }
-});
-var CompositeItem = Object(reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_1__[/* createComponent */ "a"])({
-  as: "button",
-  memo: true,
-  useHook: useCompositeItem
-});
-
-
-
-
-/***/ }),
-
-/***/ "kgBv":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var GetIntrinsic = __webpack_require__("rZ7t");
-
-var $gOPD = __webpack_require__("knm9");
-var $TypeError = GetIntrinsic('%TypeError%');
-
-var callBound = __webpack_require__("EXo9");
-
-var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable');
-
-var has = __webpack_require__("oNNP");
-
-var IsArray = __webpack_require__("9cOx");
-var IsPropertyKey = __webpack_require__("i10q");
-var IsRegExp = __webpack_require__("yy3d");
-var ToPropertyDescriptor = __webpack_require__("eBsn");
-var Type = __webpack_require__("V1cy");
-
-// https://ecma-international.org/ecma-262/6.0/#sec-ordinarygetownproperty
-
-module.exports = function OrdinaryGetOwnProperty(O, P) {
-	if (Type(O) !== 'Object') {
-		throw new $TypeError('Assertion failed: O must be an Object');
-	}
-	if (!IsPropertyKey(P)) {
-		throw new $TypeError('Assertion failed: P must be a Property Key');
-	}
-	if (!has(O, P)) {
-		return void 0;
-	}
-	if (!$gOPD) {
-		// ES3 / IE 8 fallback
-		var arrayLength = IsArray(O) && P === 'length';
-		var regexLastIndex = IsRegExp(O) && P === 'lastIndex';
-		return {
-			'[[Configurable]]': !(arrayLength || regexLastIndex),
-			'[[Enumerable]]': $isEnumerable(O, P),
-			'[[Value]]': O[P],
-			'[[Writable]]': true
-		};
-	}
-	return ToPropertyDescriptor($gOPD(O, P));
-};
-
-
-/***/ }),
-
-/***/ "khzz":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return createEvent; });
-/* harmony import */ var _getDocument_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("ouKs");
-
-
-/**
- * Creates an `Event` in a way that also works on IE 11.
- *
- * @example
- * import { createEvent } from "reakit-utils";
- *
- * const el = document.getElementById("id");
- * el.dispatchEvent(createEvent(el, "blur", { bubbles: false }));
- */
-
-function createEvent(element, type, eventInit) {
-  if (typeof Event === "function") {
-    return new Event(type, eventInit);
-  } // IE 11 doesn't support Event constructors
-
-
-  var event = Object(_getDocument_js__WEBPACK_IMPORTED_MODULE_0__[/* getDocument */ "a"])(element).createEvent("Event");
-  event.initEvent(type, eventInit === null || eventInit === void 0 ? void 0 : eventInit.bubbles, eventInit === null || eventInit === void 0 ? void 0 : eventInit.cancelable);
-  return event;
-}
-
-
-
-
-/***/ }),
-
-/***/ "knm9":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var GetIntrinsic = __webpack_require__("rZ7t");
-
-var $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%');
-if ($gOPD) {
-	try {
-		$gOPD([], 'length');
-	} catch (e) {
-		// IE 8 has a broken gOPD
-		$gOPD = null;
-	}
-}
-
-module.exports = $gOPD;
-
-
-/***/ }),
-
-/***/ "kqkJ":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-
-// EXPORTS
-__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ isFocusable; });
-
-// UNUSED EXPORTS: getAllFocusableIn, getAllTabbableIn, getClosestFocusable, getFirstFocusableIn, getFirstTabbableIn, getLastTabbableIn, getNextTabbableIn, getPreviousTabbableIn, isTabbable
-
-// CONCATENATED MODULE: ./node_modules/reakit-utils/es/matches.js
-/**
- * Ponyfill for `Element.prototype.matches`
- *
- * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/matches
- */
-function matches(element, selectors) {
-  if ("matches" in element) {
-    return element.matches(selectors);
-  }
-
-  if ("msMatchesSelector" in element) {
-    return element.msMatchesSelector(selectors);
-  }
-
-  return element.webkitMatchesSelector(selectors);
-}
-
-
-
-// CONCATENATED MODULE: ./node_modules/reakit-utils/es/closest.js
-
-
-/**
- * Ponyfill for `Element.prototype.closest`
- *
- * @example
- * import { closest } from "reakit-utils";
- *
- * closest(document.getElementById("id"), "div");
- * // same as
- * document.getElementById("id").closest("div");
- */
-function closest(element, selectors) {
-  if ("closest" in element) return element.closest(selectors);
-
-  do {
-    if (matches(element, selectors)) return element;
-    element = element.parentElement || element.parentNode;
-  } while (element !== null && element.nodeType === 1);
-
-  return null;
-}
-
-
-
-// EXTERNAL MODULE: ./node_modules/reakit-utils/es/getActiveElement.js
-var getActiveElement = __webpack_require__("Nym8");
-
-// CONCATENATED MODULE: ./node_modules/reakit-utils/es/tabbable.js
-
-
-
-
-
-/** @module tabbable */
-var selector = "input:not([type='hidden']):not([disabled]), select:not([disabled]), " + "textarea:not([disabled]), a[href], button:not([disabled]), [tabindex], " + "iframe, object, embed, area[href], audio[controls], video[controls], " + "[contenteditable]:not([contenteditable='false'])";
-
-function isVisible(element) {
-  var htmlElement = element;
-  return htmlElement.offsetWidth > 0 || htmlElement.offsetHeight > 0 || element.getClientRects().length > 0;
-}
-
-function hasNegativeTabIndex(element) {
-  var tabIndex = parseInt(element.getAttribute("tabindex") || "0", 10);
-  return tabIndex < 0;
-}
-/**
- * Checks whether `element` is focusable or not.
- *
- * @memberof tabbable
- *
- * @example
- * import { isFocusable } from "reakit-utils";
- *
- * isFocusable(document.querySelector("input")); // true
- * isFocusable(document.querySelector("input[tabindex='-1']")); // true
- * isFocusable(document.querySelector("input[hidden]")); // false
- * isFocusable(document.querySelector("input:disabled")); // false
- */
-
-
-function isFocusable(element) {
-  return matches(element, selector) && isVisible(element);
-}
-/**
- * Checks whether `element` is tabbable or not.
- *
- * @memberof tabbable
- *
- * @example
- * import { isTabbable } from "reakit-utils";
- *
- * isTabbable(document.querySelector("input")); // true
- * isTabbable(document.querySelector("input[tabindex='-1']")); // false
- * isTabbable(document.querySelector("input[hidden]")); // false
- * isTabbable(document.querySelector("input:disabled")); // false
- */
-
-function isTabbable(element) {
-  return isFocusable(element) && !hasNegativeTabIndex(element);
-}
-/**
- * Returns all the focusable elements in `container`.
- *
- * @memberof tabbable
- *
- * @param {Element} container
- *
- * @returns {Element[]}
- */
-
-function getAllFocusableIn(container) {
-  var allFocusable = Array.from(container.querySelectorAll(selector));
-  allFocusable.unshift(container);
-  return allFocusable.filter(isFocusable);
-}
-/**
- * Returns the first focusable element in `container`.
- *
- * @memberof tabbable
- *
- * @param {Element} container
- *
- * @returns {Element|null}
- */
-
-function getFirstFocusableIn(container) {
-  var _getAllFocusableIn = getAllFocusableIn(container),
-      first = _getAllFocusableIn[0];
-
-  return first || null;
-}
-/**
- * Returns all the tabbable elements in `container`, including the container
- * itself.
- *
- * @memberof tabbable
- *
- * @param {Element} container
- * @param fallbackToFocusable If `true`, it'll return focusable elements if there are no tabbable ones.
- *
- * @returns {Element[]}
- */
-
-function getAllTabbableIn(container, fallbackToFocusable) {
-  var allFocusable = Array.from(container.querySelectorAll(selector));
-  var allTabbable = allFocusable.filter(isTabbable);
-
-  if (isTabbable(container)) {
-    allTabbable.unshift(container);
-  }
-
-  if (!allTabbable.length && fallbackToFocusable) {
-    return allFocusable;
-  }
-
-  return allTabbable;
-}
-/**
- * Returns the first tabbable element in `container`, including the container
- * itself if it's tabbable.
- *
- * @memberof tabbable
- *
- * @param {Element} container
- * @param fallbackToFocusable If `true`, it'll return the first focusable element if there are no tabbable ones.
- *
- * @returns {Element|null}
- */
-
-function getFirstTabbableIn(container, fallbackToFocusable) {
-  var _getAllTabbableIn = getAllTabbableIn(container, fallbackToFocusable),
-      first = _getAllTabbableIn[0];
-
-  return first || null;
-}
-/**
- * Returns the last tabbable element in `container`, including the container
- * itself if it's tabbable.
- *
- * @memberof tabbable
- *
- * @param {Element} container
- * @param fallbackToFocusable If `true`, it'll return the last focusable element if there are no tabbable ones.
- *
- * @returns {Element|null}
- */
-
-function getLastTabbableIn(container, fallbackToFocusable) {
-  var allTabbable = getAllTabbableIn(container, fallbackToFocusable);
-  return allTabbable[allTabbable.length - 1] || null;
-}
-/**
- * Returns the next tabbable element in `container`.
- *
- * @memberof tabbable
- *
- * @param {Element} container
- * @param fallbackToFocusable If `true`, it'll return the next focusable element if there are no tabbable ones.
- *
- * @returns {Element|null}
- */
-
-function getNextTabbableIn(container, fallbackToFocusable) {
-  var activeElement = Object(getActiveElement["a" /* getActiveElement */])(container);
-  var allFocusable = getAllFocusableIn(container);
-  var index = allFocusable.indexOf(activeElement);
-  var slice = allFocusable.slice(index + 1);
-  return slice.find(isTabbable) || allFocusable.find(isTabbable) || (fallbackToFocusable ? slice[0] : null);
-}
-/**
- * Returns the previous tabbable element in `container`.
- *
- * @memberof tabbable
- *
- * @param {Element} container
- * @param fallbackToFocusable If `true`, it'll return the previous focusable element if there are no tabbable ones.
- *
- * @returns {Element|null}
- */
-
-function getPreviousTabbableIn(container, fallbackToFocusable) {
-  var activeElement = Object(getActiveElement["a" /* getActiveElement */])(container);
-  var allFocusable = getAllFocusableIn(container).reverse();
-  var index = allFocusable.indexOf(activeElement);
-  var slice = allFocusable.slice(index + 1);
-  return slice.find(isTabbable) || allFocusable.find(isTabbable) || (fallbackToFocusable ? slice[0] : null);
-}
-/**
- * Returns the closest focusable element.
- *
- * @memberof tabbable
- *
- * @param {Element} container
- *
- * @returns {Element|null}
- */
-
-function getClosestFocusable(element) {
-  while (element && !isFocusable(element)) {
-    element = closest(element, selector);
-  }
-
-  return element;
-}
-
-
-
-
-/***/ }),
-
-/***/ "kuGu":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var GetIntrinsic = __webpack_require__("Jt44");
-
-var $construct = GetIntrinsic('%Reflect.construct%', true);
-
-var DefinePropertyOrThrow = __webpack_require__("eOFJ");
-try {
-	DefinePropertyOrThrow({}, '', { '[[Get]]': function () {} });
-} catch (e) {
-	// Accessor properties aren't supported
-	DefinePropertyOrThrow = null;
-}
-
-// https://ecma-international.org/ecma-262/6.0/#sec-isconstructor
-
-if (DefinePropertyOrThrow && $construct) {
-	var isConstructorMarker = {};
-	var badArrayLike = {};
-	DefinePropertyOrThrow(badArrayLike, 'length', {
-		'[[Get]]': function () {
-			throw isConstructorMarker;
-		},
-		'[[Enumerable]]': true
-	});
-
-	module.exports = function IsConstructor(argument) {
-		try {
-			// `Reflect.construct` invokes `IsConstructor(target)` before `Get(args, 'length')`:
-			$construct(argument, badArrayLike);
-		} catch (err) {
-			return err === isConstructorMarker;
-		}
-	};
-} else {
-	module.exports = function IsConstructor(argument) {
-		// unfortunately there's no way to truly check this without try/catch `new argument` in old environments
-		return typeof argument === 'function' && !!argument.prototype;
-	};
-}
-
-
-/***/ }),
-
-/***/ "kvlw":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-// http://262.ecma-international.org/5.1/#sec-9.2
-
-module.exports = function ToBoolean(value) { return !!value; };
-
-
-/***/ }),
-
-/***/ "l3Sj":
-/***/ (function(module, exports) {
-
-(function() { module.exports = window["wp"]["i18n"]; }());
-
-/***/ }),
-
-/***/ "lSNA":
-/***/ (function(module, exports) {
-
-function _defineProperty(obj, key, value) {
-  if (key in obj) {
-    Object.defineProperty(obj, key, {
-      value: value,
-      enumerable: true,
-      configurable: true,
-      writable: true
-    });
-  } else {
-    obj[key] = value;
-  }
-
-  return obj;
-}
-
-module.exports = _defineProperty;
-module.exports["default"] = module.exports, module.exports.__esModule = true;
-
-/***/ }),
-
-/***/ "laOf":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var GetIntrinsic = __webpack_require__("rZ7t");
-
-var $TypeError = GetIntrinsic('%TypeError%');
-
-// http://262.ecma-international.org/5.1/#sec-9.10
-
-module.exports = function CheckObjectCoercible(value, optMessage) {
-	if (value == null) {
-		throw new $TypeError(optMessage || ('Cannot call method on ' + value));
-	}
-	return value;
-};
-
-
-/***/ }),
-
-/***/ "ldlY":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-
-// EXTERNAL MODULE: ./node_modules/classnames/index.js
-var classnames = __webpack_require__("TSYQ");
-var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);
-
-// EXTERNAL MODULE: external ["wp","element"]
-var external_wp_element_ = __webpack_require__("GRId");
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/visually-hidden/utils.js
-
-
-/**
- * @template {keyof JSX.IntrinsicElements | import('react').JSXElementConstructor<any>} T
- * @typedef OwnProps
- * @property {T} [as='div'] Component to render
- * @property {import('react').ReactNode | ((props: import('react').ComponentProps<T>) => JSX.Element) } [children] Children or render props function
- */
-
-/**
- * @template {keyof JSX.IntrinsicElements | import('react').JSXElementConstructor<any>} T
- * @typedef {OwnProps<T> & import('react').ComponentProps<T>} Props
- */
-
-/**
- * renderAsRenderProps is used to wrap a component and convert
- * the passed property "as" either a string or component, to the
- * rendered tag if a string, or component.
- *
- * See VisuallyHidden hidden for example.
- *
- * @template {keyof JSX.IntrinsicElements | import('react').JSXElementConstructor<any>} T
- * @param {Props<T>} props
- * @return {JSX.Element} The rendered element.
- */
-function renderAsRenderProps({
-  as: Component = 'div',
-  ...props
-}) {
-  if (typeof props.children === 'function') {
-    return props.children(props);
-  }
-
-  return Object(external_wp_element_["createElement"])(Component, props);
-}
-
-
-
-// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/ui/context/with-next.js
-var with_next = __webpack_require__("9NHk");
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/visually-hidden/next.js
-/**
- * Internal dependencies
- */
-
-
-const VisuallyHidden =  false ? undefined : undefined;
-/**
- * There is nothing to adapt, the props are equal.
- *
- * @param {import('.').Props<any>} props
- * @return {import('../ui/visually-hidden/hook').Props} Adapted props
- */
-
-const adapter = props =>
-/** @type {import('../ui/visually-hidden/hook').Props} */
-props;
-/**
- * The generic type is too difficult to type here, default to any to circumvent that.
- *
- * @param {import('react').ForwardRefExoticComponent<import('.').Props<any>>} Current
- */
-
-
-function withNextComponent(Current) {
-  return Object(with_next["a" /* withNext */])(Current, VisuallyHidden, 'WPComponentsVisuallyHidden', adapter);
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/visually-hidden/index.js
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-/**
- * @template {keyof JSX.IntrinsicElements | import('react').JSXElementConstructor<any>} T
- * @typedef OwnProps
- * @property {T} [as='div'] Component to render, e.g. `"div"` or `MyComponent`.
- */
-
-/**
- * @template {keyof JSX.IntrinsicElements | import('react').JSXElementConstructor<any>} T
- * @typedef {OwnProps<T> & import('react').ComponentPropsWithRef<T>} Props
- */
-
-/**
- * VisuallyHidden component to render text out non-visually
- * for use in devices such as a screen reader.
- *
- * @template {keyof JSX.IntrinsicElements | import('react').JSXElementConstructor<any>} T T
- * @param {Props<T>} props
- * @param {import('react').Ref<any>} forwardedRef
- * @return {JSX.Element} Element
- */
-
-function visually_hidden_VisuallyHidden({
-  as = 'div',
-  className,
-  ...props
-}, forwardedRef) {
-  return renderAsRenderProps({
-    as,
-    className: classnames_default()('components-visually-hidden', className),
-    ...props,
-    ref: forwardedRef
-  });
-}
-
-/* harmony default export */ var visually_hidden = __webpack_exports__["a"] = (withNextComponent(Object(external_wp_element_["forwardRef"])(visually_hidden_VisuallyHidden)));
-
-
-/***/ }),
-
-/***/ "lzPt":
-/***/ (function(module, exports, __webpack_require__) {
-
-// eslint-disable-next-line import/no-unresolved
-module.exports = __webpack_require__("VDVV").default;
-
-
-/***/ }),
-
-/***/ "m2ax":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = getCalendarMonthWidth;
-function getCalendarMonthWidth(daySize, calendarMonthPadding) {
-  return 7 * daySize + 2 * calendarMonthPadding + 1;
-}
-
-/***/ }),
-
-/***/ "mMiH":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
+exports["default"] = RightArrow;
+
+/***/ }),
+
+/***/ 257:
+/***/ (function(__unused_webpack_module, exports) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
   value: true
-});
-
-var _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; };
-
-var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
-
-var _object = __webpack_require__("Koq/");
-
-var _object2 = _interopRequireDefault(_object);
-
-var _react = __webpack_require__("cDcd");
-
-var _react2 = _interopRequireDefault(_react);
-
-var _propTypes = __webpack_require__("17x9");
-
-var _propTypes2 = _interopRequireDefault(_propTypes);
-
-var _reactAddonsShallowCompare = __webpack_require__("YZDV");
-
-var _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare);
-
-var _reactMomentProptypes = __webpack_require__("XGBb");
-
-var _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes);
-
-var _airbnbPropTypes = __webpack_require__("Hsqg");
-
-var _reactWithStyles = __webpack_require__("TG4+");
-
-var _moment = __webpack_require__("wy2R");
-
-var _moment2 = _interopRequireDefault(_moment);
-
-var _defaultPhrases = __webpack_require__("vV+G");
-
-var _getPhrasePropTypes = __webpack_require__("yc2e");
-
-var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);
-
-var _CalendarWeek = __webpack_require__("2Q00");
-
-var _CalendarWeek2 = _interopRequireDefault(_CalendarWeek);
-
-var _CalendarDay = __webpack_require__("N3k4");
-
-var _CalendarDay2 = _interopRequireDefault(_CalendarDay);
-
-var _calculateDimension = __webpack_require__("ixyq");
-
-var _calculateDimension2 = _interopRequireDefault(_calculateDimension);
-
-var _getCalendarMonthWeeks = __webpack_require__("F7ZS");
-
-var _getCalendarMonthWeeks2 = _interopRequireDefault(_getCalendarMonthWeeks);
-
-var _isSameDay = __webpack_require__("pRvc");
-
-var _isSameDay2 = _interopRequireDefault(_isSameDay);
-
-var _toISODateString = __webpack_require__("pYxT");
-
-var _toISODateString2 = _interopRequireDefault(_toISODateString);
-
-var _ModifiersShape = __webpack_require__("J7JS");
-
-var _ModifiersShape2 = _interopRequireDefault(_ModifiersShape);
-
-var _ScrollableOrientationShape = __webpack_require__("aE6U");
-
-var _ScrollableOrientationShape2 = _interopRequireDefault(_ScrollableOrientationShape);
-
-var _DayOfWeekShape = __webpack_require__("2S2E");
-
-var _DayOfWeekShape2 = _interopRequireDefault(_DayOfWeekShape);
-
-var _constants = __webpack_require__("Fv1B");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
-
-function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
-
-function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /* eslint react/no-array-index-key: 0 */
-
-var propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, {
-  month: _reactMomentProptypes2['default'].momentObj,
-  horizontalMonthPadding: _airbnbPropTypes.nonNegativeInteger,
-  isVisible: _propTypes2['default'].bool,
-  enableOutsideDays: _propTypes2['default'].bool,
-  modifiers: _propTypes2['default'].objectOf(_ModifiersShape2['default']),
-  orientation: _ScrollableOrientationShape2['default'],
-  daySize: _airbnbPropTypes.nonNegativeInteger,
-  onDayClick: _propTypes2['default'].func,
-  onDayMouseEnter: _propTypes2['default'].func,
-  onDayMouseLeave: _propTypes2['default'].func,
-  onMonthSelect: _propTypes2['default'].func,
-  onYearSelect: _propTypes2['default'].func,
-  renderMonthText: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),
-  renderCalendarDay: _propTypes2['default'].func,
-  renderDayContents: _propTypes2['default'].func,
-  renderMonthElement: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),
-  firstDayOfWeek: _DayOfWeekShape2['default'],
-  setMonthTitleHeight: _propTypes2['default'].func,
-  verticalBorderSpacing: _airbnbPropTypes.nonNegativeInteger,
-
-  focusedDate: _reactMomentProptypes2['default'].momentObj, // indicates focusable day
-  isFocused: _propTypes2['default'].bool, // indicates whether or not to move focus to focusable day
-
-  // i18n
-  monthFormat: _propTypes2['default'].string,
-  phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.CalendarDayPhrases)),
-  dayAriaLabelFormat: _propTypes2['default'].string
-}));
-
-var defaultProps = {
-  month: (0, _moment2['default'])(),
-  horizontalMonthPadding: 13,
-  isVisible: true,
-  enableOutsideDays: false,
-  modifiers: {},
-  orientation: _constants.HORIZONTAL_ORIENTATION,
-  daySize: _constants.DAY_SIZE,
-  onDayClick: function () {
-    function onDayClick() {}
-
-    return onDayClick;
-  }(),
-  onDayMouseEnter: function () {
-    function onDayMouseEnter() {}
-
-    return onDayMouseEnter;
-  }(),
-  onDayMouseLeave: function () {
-    function onDayMouseLeave() {}
-
-    return onDayMouseLeave;
-  }(),
-  onMonthSelect: function () {
-    function onMonthSelect() {}
-
-    return onMonthSelect;
-  }(),
-  onYearSelect: function () {
-    function onYearSelect() {}
-
-    return onYearSelect;
-  }(),
-
-  renderMonthText: null,
-  renderCalendarDay: function () {
-    function renderCalendarDay(props) {
-      return _react2['default'].createElement(_CalendarDay2['default'], props);
-    }
-
-    return renderCalendarDay;
-  }(),
-  renderDayContents: null,
-  renderMonthElement: null,
-  firstDayOfWeek: null,
-  setMonthTitleHeight: null,
-
-  focusedDate: null,
-  isFocused: false,
-
-  // i18n
-  monthFormat: 'MMMM YYYY', // english locale
-  phrases: _defaultPhrases.CalendarDayPhrases,
-  dayAriaLabelFormat: undefined,
-  verticalBorderSpacing: undefined
-};
-
-var CalendarMonth = function (_React$Component) {
-  _inherits(CalendarMonth, _React$Component);
-
-  function CalendarMonth(props) {
-    _classCallCheck(this, CalendarMonth);
-
-    var _this = _possibleConstructorReturn(this, (CalendarMonth.__proto__ || Object.getPrototypeOf(CalendarMonth)).call(this, props));
-
-    _this.state = {
-      weeks: (0, _getCalendarMonthWeeks2['default'])(props.month, props.enableOutsideDays, props.firstDayOfWeek == null ? _moment2['default'].localeData().firstDayOfWeek() : props.firstDayOfWeek)
-    };
-
-    _this.setCaptionRef = _this.setCaptionRef.bind(_this);
-    _this.setMonthTitleHeight = _this.setMonthTitleHeight.bind(_this);
-    return _this;
-  }
-
-  _createClass(CalendarMonth, [{
-    key: 'componentDidMount',
-    value: function () {
-      function componentDidMount() {
-        this.setMonthTitleHeightTimeout = setTimeout(this.setMonthTitleHeight, 0);
-      }
-
-      return componentDidMount;
-    }()
-  }, {
-    key: 'componentWillReceiveProps',
-    value: function () {
-      function componentWillReceiveProps(nextProps) {
-        var month = nextProps.month,
-            enableOutsideDays = nextProps.enableOutsideDays,
-            firstDayOfWeek = nextProps.firstDayOfWeek;
-        var _props = this.props,
-            prevMonth = _props.month,
-            prevEnableOutsideDays = _props.enableOutsideDays,
-            prevFirstDayOfWeek = _props.firstDayOfWeek;
-
-        if (!month.isSame(prevMonth) || enableOutsideDays !== prevEnableOutsideDays || firstDayOfWeek !== prevFirstDayOfWeek) {
-          this.setState({
-            weeks: (0, _getCalendarMonthWeeks2['default'])(month, enableOutsideDays, firstDayOfWeek == null ? _moment2['default'].localeData().firstDayOfWeek() : firstDayOfWeek)
-          });
-        }
-      }
-
-      return componentWillReceiveProps;
-    }()
-  }, {
-    key: 'shouldComponentUpdate',
-    value: function () {
-      function shouldComponentUpdate(nextProps, nextState) {
-        return (0, _reactAddonsShallowCompare2['default'])(this, nextProps, nextState);
-      }
-
-      return shouldComponentUpdate;
-    }()
-  }, {
-    key: 'componentWillUnmount',
-    value: function () {
-      function componentWillUnmount() {
-        if (this.setMonthTitleHeightTimeout) {
-          clearTimeout(this.setMonthTitleHeightTimeout);
-        }
-      }
-
-      return componentWillUnmount;
-    }()
-  }, {
-    key: 'setMonthTitleHeight',
-    value: function () {
-      function setMonthTitleHeight() {
-        var setMonthTitleHeight = this.props.setMonthTitleHeight;
-
-        if (setMonthTitleHeight) {
-          var captionHeight = (0, _calculateDimension2['default'])(this.captionRef, 'height', true, true);
-          setMonthTitleHeight(captionHeight);
-        }
-      }
-
-      return setMonthTitleHeight;
-    }()
-  }, {
-    key: 'setCaptionRef',
-    value: function () {
-      function setCaptionRef(ref) {
-        this.captionRef = ref;
-      }
-
-      return setCaptionRef;
-    }()
-  }, {
-    key: 'render',
-    value: function () {
-      function render() {
-        var _props2 = this.props,
-            dayAriaLabelFormat = _props2.dayAriaLabelFormat,
-            daySize = _props2.daySize,
-            focusedDate = _props2.focusedDate,
-            horizontalMonthPadding = _props2.horizontalMonthPadding,
-            isFocused = _props2.isFocused,
-            isVisible = _props2.isVisible,
-            modifiers = _props2.modifiers,
-            month = _props2.month,
-            monthFormat = _props2.monthFormat,
-            onDayClick = _props2.onDayClick,
-            onDayMouseEnter = _props2.onDayMouseEnter,
-            onDayMouseLeave = _props2.onDayMouseLeave,
-            onMonthSelect = _props2.onMonthSelect,
-            onYearSelect = _props2.onYearSelect,
-            orientation = _props2.orientation,
-            phrases = _props2.phrases,
-            renderCalendarDay = _props2.renderCalendarDay,
-            renderDayContents = _props2.renderDayContents,
-            renderMonthElement = _props2.renderMonthElement,
-            renderMonthText = _props2.renderMonthText,
-            styles = _props2.styles,
-            verticalBorderSpacing = _props2.verticalBorderSpacing;
-        var weeks = this.state.weeks;
-
-        var monthTitle = renderMonthText ? renderMonthText(month) : month.format(monthFormat);
-
-        var verticalScrollable = orientation === _constants.VERTICAL_SCROLLABLE;
-
-        return _react2['default'].createElement(
-          'div',
-          _extends({}, (0, _reactWithStyles.css)(styles.CalendarMonth, { padding: '0 ' + String(horizontalMonthPadding) + 'px' }), {
-            'data-visible': isVisible
-          }),
-          _react2['default'].createElement(
-            'div',
-            _extends({
-              ref: this.setCaptionRef
-            }, (0, _reactWithStyles.css)(styles.CalendarMonth_caption, verticalScrollable && styles.CalendarMonth_caption__verticalScrollable)),
-            renderMonthElement ? renderMonthElement({ month: month, onMonthSelect: onMonthSelect, onYearSelect: onYearSelect }) : _react2['default'].createElement(
-              'strong',
-              null,
-              monthTitle
-            )
-          ),
-          _react2['default'].createElement(
-            'table',
-            _extends({}, (0, _reactWithStyles.css)(!verticalBorderSpacing && styles.CalendarMonth_table, verticalBorderSpacing && styles.CalendarMonth_verticalSpacing, verticalBorderSpacing && { borderSpacing: '0px ' + String(verticalBorderSpacing) + 'px' }), {
-              role: 'presentation'
-            }),
-            _react2['default'].createElement(
-              'tbody',
-              null,
-              weeks.map(function (week, i) {
-                return _react2['default'].createElement(
-                  _CalendarWeek2['default'],
-                  { key: i },
-                  week.map(function (day, dayOfWeek) {
-                    return renderCalendarDay({
-                      key: dayOfWeek,
-                      day: day,
-                      daySize: daySize,
-                      isOutsideDay: !day || day.month() !== month.month(),
-                      tabIndex: isVisible && (0, _isSameDay2['default'])(day, focusedDate) ? 0 : -1,
-                      isFocused: isFocused,
-                      onDayMouseEnter: onDayMouseEnter,
-                      onDayMouseLeave: onDayMouseLeave,
-                      onDayClick: onDayClick,
-                      renderDayContents: renderDayContents,
-                      phrases: phrases,
-                      modifiers: modifiers[(0, _toISODateString2['default'])(day)],
-                      ariaLabelFormat: dayAriaLabelFormat
-                    });
-                  })
-                );
-              })
-            )
-          )
-        );
-      }
-
-      return render;
-    }()
-  }]);
-
-  return CalendarMonth;
-}(_react2['default'].Component);
-
-CalendarMonth.propTypes = propTypes;
-CalendarMonth.defaultProps = defaultProps;
-
-exports['default'] = (0, _reactWithStyles.withStyles)(function (_ref) {
-  var _ref$reactDates = _ref.reactDates,
-      color = _ref$reactDates.color,
-      font = _ref$reactDates.font,
-      spacing = _ref$reactDates.spacing;
-  return {
-    CalendarMonth: {
-      background: color.background,
-      textAlign: 'center',
-      verticalAlign: 'top',
-      userSelect: 'none'
-    },
-
-    CalendarMonth_table: {
-      borderCollapse: 'collapse',
-      borderSpacing: 0
-    },
-
-    CalendarMonth_verticalSpacing: {
-      borderCollapse: 'separate'
-    },
-
-    CalendarMonth_caption: {
-      color: color.text,
-      fontSize: font.captionSize,
-      textAlign: 'center',
-      paddingTop: spacing.captionPaddingTop,
-      paddingBottom: spacing.captionPaddingBottom,
-      captionSide: 'initial'
-    },
-
-    CalendarMonth_caption__verticalScrollable: {
-      paddingTop: 12,
-      paddingBottom: 7
-    }
-  };
-})(CalendarMonth);
-
-/***/ }),
-
-/***/ "mjVI":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return TOOLBAR_KEYS; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return TOOLBAR_ITEM_KEYS; });
-/* unused harmony export b */
-// Automatically generated
-var TOOLBAR_STATE_KEYS = ["baseId", "unstable_idCountRef", "unstable_virtual", "rtl", "orientation", "items", "groups", "currentId", "loop", "wrap", "shift", "unstable_moves", "unstable_hasActiveWidget", "unstable_includesBaseElement", "setBaseId", "registerItem", "unregisterItem", "registerGroup", "unregisterGroup", "move", "next", "previous", "up", "down", "first", "last", "sort", "unstable_setVirtual", "setRTL", "setOrientation", "setCurrentId", "setLoop", "setWrap", "setShift", "reset", "unstable_setIncludesBaseElement", "unstable_setHasActiveWidget"];
-var TOOLBAR_KEYS = TOOLBAR_STATE_KEYS;
-var TOOLBAR_ITEM_KEYS = TOOLBAR_KEYS;
-var TOOLBAR_SEPARATOR_KEYS = TOOLBAR_ITEM_KEYS;
-
-
-
-
-/***/ }),
-
-/***/ "n1Y7":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var define = __webpack_require__("82c2");
-
-var implementation = __webpack_require__("nRDI");
-var getPolyfill = __webpack_require__("5yQQ");
-var polyfill = getPolyfill();
-var shim = __webpack_require__("Gn0q");
-
-var boundContains = function contains(node, other) {
-	return polyfill.apply(node, [other]);
-};
-
-define(boundContains, {
-	getPolyfill: getPolyfill,
-	implementation: implementation,
-	shim: shim
-});
-
-module.exports = boundContains;
-
-
-/***/ }),
-
-/***/ "nKkb":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var GetIntrinsic = __webpack_require__("rZ7t");
-
-var $abs = GetIntrinsic('%Math.abs%');
-
-// http://262.ecma-international.org/5.1/#sec-5.2
-
-module.exports = function abs(x) {
-	return $abs(x);
-};
-
-
-/***/ }),
-
-/***/ "nLTY":
-/***/ (function(module, exports) {
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports['default'] = getClassName;
-/**
- * Construct a class name.
- *
- * namespace {String} Used to construct unique class names.
- * styleName {String} Name identifying the specific style.
- *
- * Return the class name.
- */
-function getClassName(namespace, styleName) {
-  var namespaceSegment = namespace.length > 0 ? String(namespace) + '__' : '';
-  return '' + namespaceSegment + String(styleName);
-}
-
-/***/ }),
-
-/***/ "nRDI":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-module.exports = function contains(other) {
-	if (arguments.length < 1) {
-		throw new TypeError('1 argument is required');
-	}
-	if (typeof other !== 'object') {
-		throw new TypeError('Argument 1 (”other“) to Node.contains must be an instance of Node');
-	}
-
-	var node = other;
-	do {
-		if (this === node) {
-			return true;
-		}
-		if (node) {
-			node = node.parentNode;
-		}
-	} while (node);
-
-	return false;
-};
-
-
-/***/ }),
-
-/***/ "nmnc":
-/***/ (function(module, exports, __webpack_require__) {
-
-var root = __webpack_require__("Kz5y");
-
-/** Built-in value references. */
-var Symbol = root.Symbol;
-
-module.exports = Symbol;
-
-
-/***/ }),
-
-/***/ "oNNP":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var bind = __webpack_require__("D3zA");
-
-module.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);
-
-
-/***/ }),
-
-/***/ "oOcr":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports['default'] = getPhrase;
-function getPhrase(phrase, args) {
-  if (typeof phrase === 'string') return phrase;
-
-  if (typeof phrase === 'function') {
-    return phrase(args);
-  }
-
-  return '';
-}
-
-/***/ }),
-
-/***/ "oR9Z":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _propTypes = __webpack_require__("17x9");
-
-var _propTypes2 = _interopRequireDefault(_propTypes);
-
-var _constants = __webpack_require__("Fv1B");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-exports['default'] = _propTypes2['default'].oneOf([_constants.INFO_POSITION_TOP, _constants.INFO_POSITION_BOTTOM, _constants.INFO_POSITION_BEFORE, _constants.INFO_POSITION_AFTER]);
-
-/***/ }),
-
-/***/ "oXO/":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-
-// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js
-var esm_extends = __webpack_require__("wx14");
-
-// EXTERNAL MODULE: external ["wp","element"]
-var external_wp_element_ = __webpack_require__("GRId");
-
-// EXTERNAL MODULE: ./node_modules/classnames/index.js
-var classnames = __webpack_require__("TSYQ");
-var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);
-
-// EXTERNAL MODULE: external ["wp","dom"]
-var external_wp_dom_ = __webpack_require__("1CF3");
-
-// EXTERNAL MODULE: external ["wp","keycodes"]
-var external_wp_keycodes_ = __webpack_require__("RxS6");
-
-// EXTERNAL MODULE: external ["wp","deprecated"]
-var external_wp_deprecated_ = __webpack_require__("NMb1");
-var external_wp_deprecated_default = /*#__PURE__*/__webpack_require__.n(external_wp_deprecated_);
-
-// EXTERNAL MODULE: external ["wp","compose"]
-var external_wp_compose_ = __webpack_require__("K9lf");
-
-// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/close.js
-var library_close = __webpack_require__("w95h");
-
-// EXTERNAL MODULE: external ["wp","i18n"]
-var external_wp_i18n_ = __webpack_require__("l3Sj");
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/popover/utils.js
-/**
- * WordPress dependencies
- */
-
-/**
- * Module constants
- */
-
-const HEIGHT_OFFSET = 10; // used by the arrow and a bit of empty space
-
-/**
- * Utility used to compute the popover position over the xAxis
- *
- * @param {Object}  anchorRect            Anchor Rect.
- * @param {Object}  contentSize           Content Size.
- * @param {string}  xAxis                 Desired xAxis.
- * @param {string}  corner                Desired corner.
- * @param {boolean} stickyBoundaryElement The boundary element to use when
- *                                        switching between sticky and normal
- *                                        position.
- * @param {string}  chosenYAxis           yAxis to be used.
- * @param {Element} boundaryElement       Boundary element.
- * @param {boolean} forcePosition         Don't adjust position based on anchor.
- * @param {boolean} forceXAlignment       Don't adjust alignment based on YAxis
- *
- * @return {Object} Popover xAxis position and constraints.
- */
-
-function computePopoverXAxisPosition(anchorRect, contentSize, xAxis, corner, stickyBoundaryElement, chosenYAxis, boundaryElement, forcePosition, forceXAlignment) {
-  const {
-    width
-  } = contentSize; // Correct xAxis for RTL support
-
-  if (xAxis === 'left' && Object(external_wp_i18n_["isRTL"])()) {
-    xAxis = 'right';
-  } else if (xAxis === 'right' && Object(external_wp_i18n_["isRTL"])()) {
-    xAxis = 'left';
-  }
-
-  if (corner === 'left' && Object(external_wp_i18n_["isRTL"])()) {
-    corner = 'right';
-  } else if (corner === 'right' && Object(external_wp_i18n_["isRTL"])()) {
-    corner = 'left';
-  } // x axis alignment choices
-
-
-  const anchorMidPoint = Math.round(anchorRect.left + anchorRect.width / 2);
-  const centerAlignment = {
-    popoverLeft: anchorMidPoint,
-    contentWidth: (anchorMidPoint - width / 2 > 0 ? width / 2 : anchorMidPoint) + (anchorMidPoint + width / 2 > window.innerWidth ? window.innerWidth - anchorMidPoint : width / 2)
-  };
-  let leftAlignmentX = anchorRect.left;
-
-  if (corner === 'right') {
-    leftAlignmentX = anchorRect.right;
-  } else if (chosenYAxis !== 'middle' && !forceXAlignment) {
-    leftAlignmentX = anchorMidPoint;
-  }
-
-  let rightAlignmentX = anchorRect.right;
-
-  if (corner === 'left') {
-    rightAlignmentX = anchorRect.left;
-  } else if (chosenYAxis !== 'middle' && !forceXAlignment) {
-    rightAlignmentX = anchorMidPoint;
-  }
-
-  const leftAlignment = {
-    popoverLeft: leftAlignmentX,
-    contentWidth: leftAlignmentX - width > 0 ? width : leftAlignmentX
-  };
-  const rightAlignment = {
-    popoverLeft: rightAlignmentX,
-    contentWidth: rightAlignmentX + width > window.innerWidth ? window.innerWidth - rightAlignmentX : width
-  }; // Choosing the x axis
-
-  let chosenXAxis = xAxis;
-  let contentWidth = null;
-
-  if (!stickyBoundaryElement && !forcePosition) {
-    if (xAxis === 'center' && centerAlignment.contentWidth === width) {
-      chosenXAxis = 'center';
-    } else if (xAxis === 'left' && leftAlignment.contentWidth === width) {
-      chosenXAxis = 'left';
-    } else if (xAxis === 'right' && rightAlignment.contentWidth === width) {
-      chosenXAxis = 'right';
-    } else {
-      chosenXAxis = leftAlignment.contentWidth > rightAlignment.contentWidth ? 'left' : 'right';
-      const chosenWidth = chosenXAxis === 'left' ? leftAlignment.contentWidth : rightAlignment.contentWidth; // Limit width of the content to the viewport width
-
-      if (width > window.innerWidth) {
-        contentWidth = window.innerWidth;
-      } // If we can't find any alignment options that could fit
-      // our content, then let's fallback to the center of the viewport.
-
-
-      if (chosenWidth !== width) {
-        chosenXAxis = 'center';
-        centerAlignment.popoverLeft = window.innerWidth / 2;
-      }
-    }
-  }
-
-  let popoverLeft;
-
-  if (chosenXAxis === 'center') {
-    popoverLeft = centerAlignment.popoverLeft;
-  } else if (chosenXAxis === 'left') {
-    popoverLeft = leftAlignment.popoverLeft;
-  } else {
-    popoverLeft = rightAlignment.popoverLeft;
-  }
-
-  if (boundaryElement) {
-    const boundaryRect = boundaryElement.getBoundingClientRect();
-    popoverLeft = Math.min(popoverLeft, boundaryRect.right - width); // Avoid the popover being position beyond the left boundary if the
-    // direction is left to right.
-
-    if (!Object(external_wp_i18n_["isRTL"])()) {
-      popoverLeft = Math.max(popoverLeft, 0);
-    }
-  }
-
-  return {
-    xAxis: chosenXAxis,
-    popoverLeft,
-    contentWidth
-  };
-}
-/**
- * Utility used to compute the popover position over the yAxis
- *
- * @param {Object}  anchorRect            Anchor Rect.
- * @param {Object}  contentSize           Content Size.
- * @param {string}  yAxis                 Desired yAxis.
- * @param {string}  corner                Desired corner.
- * @param {boolean} stickyBoundaryElement The boundary element to use when
- *                                        switching between sticky and normal
- *                                        position.
- * @param {Element} anchorRef             The anchor element.
- * @param {Element} relativeOffsetTop     If applicable, top offset of the
- *                                        relative positioned parent container.
- * @param {boolean} forcePosition         Don't adjust position based on anchor.
- *
- * @return {Object} Popover xAxis position and constraints.
- */
-
-function computePopoverYAxisPosition(anchorRect, contentSize, yAxis, corner, stickyBoundaryElement, anchorRef, relativeOffsetTop, forcePosition) {
-  const {
-    height
-  } = contentSize;
-
-  if (stickyBoundaryElement) {
-    const stickyRect = stickyBoundaryElement.getBoundingClientRect();
-    const stickyPosition = stickyRect.top + height - relativeOffsetTop;
-
-    if (anchorRect.top <= stickyPosition) {
-      return {
-        yAxis,
-        popoverTop: Math.min(anchorRect.bottom, stickyPosition)
-      };
-    }
-  } // y axis alignment choices
-
-
-  let anchorMidPoint = anchorRect.top + anchorRect.height / 2;
-
-  if (corner === 'bottom') {
-    anchorMidPoint = anchorRect.bottom;
-  } else if (corner === 'top') {
-    anchorMidPoint = anchorRect.top;
-  }
-
-  const middleAlignment = {
-    popoverTop: anchorMidPoint,
-    contentHeight: (anchorMidPoint - height / 2 > 0 ? height / 2 : anchorMidPoint) + (anchorMidPoint + height / 2 > window.innerHeight ? window.innerHeight - anchorMidPoint : height / 2)
-  };
-  const topAlignment = {
-    popoverTop: anchorRect.top,
-    contentHeight: anchorRect.top - HEIGHT_OFFSET - height > 0 ? height : anchorRect.top - HEIGHT_OFFSET
-  };
-  const bottomAlignment = {
-    popoverTop: anchorRect.bottom,
-    contentHeight: anchorRect.bottom + HEIGHT_OFFSET + height > window.innerHeight ? window.innerHeight - HEIGHT_OFFSET - anchorRect.bottom : height
-  }; // Choosing the y axis
-
-  let chosenYAxis = yAxis;
-  let contentHeight = null;
-
-  if (!stickyBoundaryElement && !forcePosition) {
-    if (yAxis === 'middle' && middleAlignment.contentHeight === height) {
-      chosenYAxis = 'middle';
-    } else if (yAxis === 'top' && topAlignment.contentHeight === height) {
-      chosenYAxis = 'top';
-    } else if (yAxis === 'bottom' && bottomAlignment.contentHeight === height) {
-      chosenYAxis = 'bottom';
-    } else {
-      chosenYAxis = topAlignment.contentHeight > bottomAlignment.contentHeight ? 'top' : 'bottom';
-      const chosenHeight = chosenYAxis === 'top' ? topAlignment.contentHeight : bottomAlignment.contentHeight;
-      contentHeight = chosenHeight !== height ? chosenHeight : null;
-    }
-  }
-
-  let popoverTop;
-
-  if (chosenYAxis === 'middle') {
-    popoverTop = middleAlignment.popoverTop;
-  } else if (chosenYAxis === 'top') {
-    popoverTop = topAlignment.popoverTop;
-  } else {
-    popoverTop = bottomAlignment.popoverTop;
-  }
-
-  return {
-    yAxis: chosenYAxis,
-    popoverTop,
-    contentHeight
-  };
-}
-/**
- * Utility used to compute the popover position and the content max width/height
- * for a popover given its anchor rect and its content size.
- *
- * @param {Object}  anchorRect            Anchor Rect.
- * @param {Object}  contentSize           Content Size.
- * @param {string}  position              Position.
- * @param {boolean} stickyBoundaryElement The boundary element to use when
- *                                        switching between sticky and normal
- *                                        position.
- * @param {Element} anchorRef             The anchor element.
- * @param {number}  relativeOffsetTop     If applicable, top offset of the
- *                                        relative positioned parent container.
- * @param {Element} boundaryElement       Boundary element.
- * @param {boolean} forcePosition         Don't adjust position based on anchor.
- *  @param {boolean} forceXAlignment       Don't adjust alignment based on YAxis
- *
- * @return {Object} Popover position and constraints.
- */
-
-function computePopoverPosition(anchorRect, contentSize, position = 'top', stickyBoundaryElement, anchorRef, relativeOffsetTop, boundaryElement, forcePosition, forceXAlignment) {
-  const [yAxis, xAxis = 'center', corner] = position.split(' ');
-  const yAxisPosition = computePopoverYAxisPosition(anchorRect, contentSize, yAxis, corner, stickyBoundaryElement, anchorRef, relativeOffsetTop, forcePosition);
-  const xAxisPosition = computePopoverXAxisPosition(anchorRect, contentSize, xAxis, corner, stickyBoundaryElement, yAxisPosition.yAxis, boundaryElement, forcePosition, forceXAlignment);
-  return { ...xAxisPosition,
-    ...yAxisPosition
-  };
-}
-/**
- * Offsets the given rect by the position of the iframe that contains the
- * element. If the owner document is not in an iframe then it returns with the
- * original rect. If the popover container document and the anchor document are
- * the same, the original rect will also be returned.
- *
- * @param {DOMRect}  rect          bounds of the element
- * @param {Document} ownerDocument document of the element
- * @param {Element}  container     The popover container to position.
- *
- * @return {DOMRect} offsetted bounds
- */
-
-function offsetIframe(rect, ownerDocument, container) {
-  const {
-    defaultView
-  } = ownerDocument;
-  const {
-    frameElement
-  } = defaultView;
-
-  if (!frameElement || ownerDocument === container.ownerDocument) {
-    return rect;
-  }
-
-  const iframeRect = frameElement.getBoundingClientRect();
-  return new defaultView.DOMRect(rect.left + iframeRect.left, rect.top + iframeRect.top, rect.width, rect.height);
-}
-
-// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/button/index.js
-var build_module_button = __webpack_require__("kA6J");
-
-// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/scroll-lock/index.js
-var scroll_lock = __webpack_require__("k8OV");
-
-// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/bubbles-virtually/use-slot.js
-var use_slot = __webpack_require__("+WFq");
-
-// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/index.js + 8 modules
-var slot_fill = __webpack_require__("dSD1");
-
-// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/animate/index.js
-var build_module_animate = __webpack_require__("L8Kx");
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/popover/index.js
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-
-/**
- * Name of slot in which popover should fill.
- *
- * @type {string}
- */
-
-const SLOT_NAME = 'Popover';
-
-function computeAnchorRect(anchorRefFallback, anchorRect, getAnchorRect, anchorRef = false, shouldAnchorIncludePadding, container) {
-  if (anchorRect) {
-    return anchorRect;
-  }
-
-  if (getAnchorRect) {
-    if (!anchorRefFallback.current) {
-      return;
-    }
-
-    const rect = getAnchorRect(anchorRefFallback.current);
-    return offsetIframe(rect, rect.ownerDocument || anchorRefFallback.current.ownerDocument, container);
-  }
-
-  if (anchorRef !== false) {
-    if (!anchorRef || !window.Range || !window.Element || !window.DOMRect) {
-      return;
-    } // Duck-type to check if `anchorRef` is an instance of Range
-    // `anchorRef instanceof window.Range` checks will break across document boundaries
-    // such as in an iframe
-
-
-    if (typeof (anchorRef === null || anchorRef === void 0 ? void 0 : anchorRef.cloneRange) === 'function') {
-      return offsetIframe(Object(external_wp_dom_["getRectangleFromRange"])(anchorRef), anchorRef.endContainer.ownerDocument, container);
-    } // Duck-type to check if `anchorRef` is an instance of Element
-    // `anchorRef instanceof window.Element` checks will break across document boundaries
-    // such as in an iframe
-
-
-    if (typeof (anchorRef === null || anchorRef === void 0 ? void 0 : anchorRef.getBoundingClientRect) === 'function') {
-      const rect = offsetIframe(anchorRef.getBoundingClientRect(), anchorRef.ownerDocument, container);
-
-      if (shouldAnchorIncludePadding) {
-        return rect;
-      }
-
-      return withoutPadding(rect, anchorRef);
-    }
-
-    const {
-      top,
-      bottom
-    } = anchorRef;
-    const topRect = top.getBoundingClientRect();
-    const bottomRect = bottom.getBoundingClientRect();
-    const rect = offsetIframe(new window.DOMRect(topRect.left, topRect.top, topRect.width, bottomRect.bottom - topRect.top), top.ownerDocument, container);
-
-    if (shouldAnchorIncludePadding) {
-      return rect;
-    }
-
-    return withoutPadding(rect, anchorRef);
-  }
-
-  if (!anchorRefFallback.current) {
-    return;
-  }
-
-  const {
-    parentNode
-  } = anchorRefFallback.current;
-  const rect = parentNode.getBoundingClientRect();
-
-  if (shouldAnchorIncludePadding) {
-    return rect;
-  }
-
-  return withoutPadding(rect, parentNode);
-}
-
-function getComputedStyle(node) {
-  return node.ownerDocument.defaultView.getComputedStyle(node);
-}
-
-function withoutPadding(rect, element) {
-  const {
-    paddingTop,
-    paddingBottom,
-    paddingLeft,
-    paddingRight
-  } = getComputedStyle(element);
-  const top = paddingTop ? parseInt(paddingTop, 10) : 0;
-  const bottom = paddingBottom ? parseInt(paddingBottom, 10) : 0;
-  const left = paddingLeft ? parseInt(paddingLeft, 10) : 0;
-  const right = paddingRight ? parseInt(paddingRight, 10) : 0;
-  return {
-    x: rect.left + left,
-    y: rect.top + top,
-    width: rect.width - left - right,
-    height: rect.height - top - bottom,
-    left: rect.left + left,
-    right: rect.right - right,
-    top: rect.top + top,
-    bottom: rect.bottom - bottom
-  };
-}
-/**
- * Sets or removes an element attribute.
- *
- * @param {Element} element The element to modify.
- * @param {string}  name    The attribute name to set or remove.
- * @param {?string} value   The value to set. A falsy value will remove the
- *                          attribute.
- */
-
-
-function setAttribute(element, name, value) {
-  if (!value) {
-    if (element.hasAttribute(name)) {
-      element.removeAttribute(name);
-    }
-  } else if (element.getAttribute(name) !== value) {
-    element.setAttribute(name, value);
-  }
-}
-/**
- * Sets or removes an element style property.
- *
- * @param {Element} element  The element to modify.
- * @param {string}  property The property to set or remove.
- * @param {?string} value    The value to set. A falsy value will remove the
- *                           property.
- */
-
-
-function setStyle(element, property, value = '') {
-  if (element.style[property] !== value) {
-    element.style[property] = value;
-  }
-}
-/**
- * Sets or removes an element class.
- *
- * @param {Element} element The element to modify.
- * @param {string}  name    The class to set or remove.
- * @param {boolean} toggle  True to set the class, false to remove.
- */
-
-
-function setClass(element, name, toggle) {
-  if (toggle) {
-    if (!element.classList.contains(name)) {
-      element.classList.add(name);
-    }
-  } else if (element.classList.contains(name)) {
-    element.classList.remove(name);
-  }
-}
-
-function getAnchorDocument(anchor) {
-  if (!anchor) {
-    return;
-  }
-
-  if (anchor.endContainer) {
-    return anchor.endContainer.ownerDocument;
-  }
-
-  if (anchor.top) {
-    return anchor.top.ownerDocument;
-  }
-
-  return anchor.ownerDocument;
-}
-
-const Popover = ({
-  headerTitle,
-  onClose,
-  children,
-  className,
-  noArrow = true,
-  isAlternate,
-  // Disable reason: We generate the `...contentProps` rest as remainder
-  // of props which aren't explicitly handled by this component.
-
-  /* eslint-disable no-unused-vars */
-  position = 'bottom right',
-  range,
-  focusOnMount = 'firstElement',
-  anchorRef,
-  shouldAnchorIncludePadding,
-  anchorRect,
-  getAnchorRect,
-  expandOnMobile,
-  animate = true,
-  onClickOutside,
-  onFocusOutside,
-  __unstableStickyBoundaryElement,
-  __unstableSlotName = SLOT_NAME,
-  __unstableObserveElement,
-  __unstableBoundaryParent,
-  __unstableForcePosition,
-  __unstableForceXAlignment,
-
-  /* eslint-enable no-unused-vars */
-  ...contentProps
-}, ref) => {
-  const anchorRefFallback = Object(external_wp_element_["useRef"])(null);
-  const contentRef = Object(external_wp_element_["useRef"])(null);
-  const containerRef = Object(external_wp_element_["useRef"])();
-  const isMobileViewport = Object(external_wp_compose_["useViewportMatch"])('medium', '<');
-  const [animateOrigin, setAnimateOrigin] = Object(external_wp_element_["useState"])();
-  const slot = Object(use_slot["a" /* default */])(__unstableSlotName);
-  const isExpanded = expandOnMobile && isMobileViewport;
-  const [containerResizeListener, contentSize] = Object(external_wp_compose_["useResizeObserver"])();
-  noArrow = isExpanded || noArrow;
-  Object(external_wp_element_["useLayoutEffect"])(() => {
-    if (isExpanded) {
-      setClass(containerRef.current, 'is-without-arrow', noArrow);
-      setClass(containerRef.current, 'is-alternate', isAlternate);
-      setAttribute(containerRef.current, 'data-x-axis');
-      setAttribute(containerRef.current, 'data-y-axis');
-      setStyle(containerRef.current, 'top');
-      setStyle(containerRef.current, 'left');
-      setStyle(contentRef.current, 'maxHeight');
-      setStyle(contentRef.current, 'maxWidth');
-      return;
-    }
-
-    const refresh = () => {
-      if (!containerRef.current || !contentRef.current) {
-        return;
-      }
-
-      let anchor = computeAnchorRect(anchorRefFallback, anchorRect, getAnchorRect, anchorRef, shouldAnchorIncludePadding, containerRef.current);
-
-      if (!anchor) {
-        return;
-      }
-
-      const {
-        offsetParent,
-        ownerDocument
-      } = containerRef.current;
-      let relativeOffsetTop = 0; // If there is a positioned ancestor element that is not the body,
-      // subtract the position from the anchor rect. If the position of
-      // the popover is fixed, the offset parent is null or the body
-      // element, in which case the position is relative to the viewport.
-      // See https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetParent
-
-      if (offsetParent && offsetParent !== ownerDocument.body) {
-        const offsetParentRect = offsetParent.getBoundingClientRect();
-        relativeOffsetTop = offsetParentRect.top;
-        anchor = new window.DOMRect(anchor.left - offsetParentRect.left, anchor.top - offsetParentRect.top, anchor.width, anchor.height);
-      }
-
-      let boundaryElement;
-
-      if (__unstableBoundaryParent) {
-        var _containerRef$current;
-
-        boundaryElement = (_containerRef$current = containerRef.current.closest('.popover-slot')) === null || _containerRef$current === void 0 ? void 0 : _containerRef$current.parentNode;
-      }
-
-      const usedContentSize = !contentSize.height ? contentRef.current.getBoundingClientRect() : contentSize;
-      const {
-        popoverTop,
-        popoverLeft,
-        xAxis,
-        yAxis,
-        contentHeight,
-        contentWidth
-      } = computePopoverPosition(anchor, usedContentSize, position, __unstableStickyBoundaryElement, containerRef.current, relativeOffsetTop, boundaryElement, __unstableForcePosition, __unstableForceXAlignment);
-
-      if (typeof popoverTop === 'number' && typeof popoverLeft === 'number') {
-        setStyle(containerRef.current, 'top', popoverTop + 'px');
-        setStyle(containerRef.current, 'left', popoverLeft + 'px');
-      }
-
-      setClass(containerRef.current, 'is-without-arrow', noArrow || xAxis === 'center' && yAxis === 'middle');
-      setClass(containerRef.current, 'is-alternate', isAlternate);
-      setAttribute(containerRef.current, 'data-x-axis', xAxis);
-      setAttribute(containerRef.current, 'data-y-axis', yAxis);
-      setStyle(contentRef.current, 'maxHeight', typeof contentHeight === 'number' ? contentHeight + 'px' : '');
-      setStyle(contentRef.current, 'maxWidth', typeof contentWidth === 'number' ? contentWidth + 'px' : ''); // Compute the animation position
-
-      const yAxisMapping = {
-        top: 'bottom',
-        bottom: 'top'
-      };
-      const xAxisMapping = {
-        left: 'right',
-        right: 'left'
-      };
-      const animateYAxis = yAxisMapping[yAxis] || 'middle';
-      const animateXAxis = xAxisMapping[xAxis] || 'center';
-      setAnimateOrigin(animateXAxis + ' ' + animateYAxis);
-    };
-
-    refresh();
-    const {
-      ownerDocument
-    } = containerRef.current;
-    const {
-      defaultView
-    } = ownerDocument;
-    /*
-     * There are sometimes we need to reposition or resize the popover that
-     * are not handled by the resize/scroll window events (i.e. CSS changes
-     * in the layout that changes the position of the anchor).
-     *
-     * For these situations, we refresh the popover every 0.5s
-     */
-
-    const intervalHandle = defaultView.setInterval(refresh, 500);
-    let rafId;
-
-    const refreshOnAnimationFrame = () => {
-      defaultView.cancelAnimationFrame(rafId);
-      rafId = defaultView.requestAnimationFrame(refresh);
-    }; // Sometimes a click trigger a layout change that affects the popover
-    // position. This is an opportunity to immediately refresh rather than
-    // at the interval.
-
-
-    defaultView.addEventListener('click', refreshOnAnimationFrame);
-    defaultView.addEventListener('resize', refresh);
-    defaultView.addEventListener('scroll', refresh, true);
-    const anchorDocument = getAnchorDocument(anchorRef); // If the anchor is within an iframe, the popover position also needs
-    // to refrest when the iframe content is scrolled or resized.
-
-    if (anchorDocument && anchorDocument !== ownerDocument) {
-      anchorDocument.defaultView.addEventListener('resize', refresh);
-      anchorDocument.defaultView.addEventListener('scroll', refresh, true);
-    }
-
-    let observer;
-
-    if (__unstableObserveElement) {
-      observer = new defaultView.MutationObserver(refresh);
-      observer.observe(__unstableObserveElement, {
-        attributes: true
-      });
-    }
-
-    return () => {
-      defaultView.clearInterval(intervalHandle);
-      defaultView.removeEventListener('resize', refresh);
-      defaultView.removeEventListener('scroll', refresh, true);
-      defaultView.removeEventListener('click', refreshOnAnimationFrame);
-      defaultView.cancelAnimationFrame(rafId);
-
-      if (anchorDocument && anchorDocument !== ownerDocument) {
-        anchorDocument.defaultView.removeEventListener('resize', refresh);
-        anchorDocument.defaultView.removeEventListener('scroll', refresh, true);
-      }
-
-      if (observer) {
-        observer.disconnect();
-      }
-    };
-  }, [isExpanded, anchorRect, getAnchorRect, anchorRef, shouldAnchorIncludePadding, position, contentSize, __unstableStickyBoundaryElement, __unstableObserveElement, __unstableBoundaryParent]); // Event handlers for closing the popover.
-
-  const closeEventRef = Object(external_wp_compose_["useRefEffect"])(node => {
-    function maybeClose(event) {
-      // Close on escape.
-      if (event.keyCode === external_wp_keycodes_["ESCAPE"] && onClose) {
-        event.stopPropagation();
-        onClose();
-      }
-    }
-
-    node.addEventListener('keydown', maybeClose);
-    return () => {
-      node.removeEventListener('keydown', maybeClose);
-    };
-  }, [onClose]);
-  const constrainedTabbingRef = Object(external_wp_compose_["useConstrainedTabbing"])();
-  const focusReturnRef = Object(external_wp_compose_["useFocusReturn"])();
-  const focusOnMountRef = Object(external_wp_compose_["useFocusOnMount"])(focusOnMount);
-  const focusOutsideProps = Object(external_wp_compose_["__experimentalUseFocusOutside"])(handleOnFocusOutside);
-  const mergedRefs = Object(external_wp_compose_["useMergeRefs"])([ref, containerRef, // Don't register the event at all if there's no onClose callback.
-  onClose ? closeEventRef : null, focusOnMount ? constrainedTabbingRef : null, focusOnMount ? focusReturnRef : null, focusOnMount ? focusOnMountRef : null]);
-  /**
-   * Shims an onFocusOutside callback to be compatible with a deprecated
-   * onClickOutside prop function, if provided.
-   *
-   * @param {FocusEvent} event Focus event from onFocusOutside.
-   */
-
-  function handleOnFocusOutside(event) {
-    // Defer to given `onFocusOutside` if specified. Call `onClose` only if
-    // both `onFocusOutside` and `onClickOutside` are unspecified. Doing so
-    // assures backwards-compatibility for prior `onClickOutside` default.
-    if (onFocusOutside) {
-      onFocusOutside(event);
-      return;
-    } else if (!onClickOutside) {
-      if (onClose) {
-        onClose();
-      }
-
-      return;
-    } // Simulate MouseEvent using FocusEvent#relatedTarget as emulated click
-    // target. MouseEvent constructor is unsupported in Internet Explorer.
-
-
-    let clickEvent;
-
-    try {
-      clickEvent = new window.MouseEvent('click');
-    } catch (error) {
-      clickEvent = document.createEvent('MouseEvent');
-      clickEvent.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
-    }
-
-    Object.defineProperty(clickEvent, 'target', {
-      get: () => event.relatedTarget
-    });
-    external_wp_deprecated_default()('Popover onClickOutside prop', {
-      since: '5.3',
-      alternative: 'onFocusOutside'
-    });
-    onClickOutside(clickEvent);
-  }
-  /** @type {false | string} */
-
-
-  const animateClassName = Boolean(animate && animateOrigin) && Object(build_module_animate["b" /* getAnimateClassName */])({
-    type: 'appear',
-    origin: animateOrigin
-  }); // Disable reason: We care to capture the _bubbled_ events from inputs
-  // within popover as inferring close intent.
-
-  let content = // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions
-  // eslint-disable-next-line jsx-a11y/no-static-element-interactions
-  Object(external_wp_element_["createElement"])("div", Object(esm_extends["a" /* default */])({
-    className: classnames_default()('components-popover', className, animateClassName, {
-      'is-expanded': isExpanded,
-      'is-without-arrow': noArrow,
-      'is-alternate': isAlternate
-    })
-  }, contentProps, focusOutsideProps, {
-    ref: mergedRefs,
-    tabIndex: "-1"
-  }), isExpanded && Object(external_wp_element_["createElement"])(scroll_lock["a" /* default */], null), isExpanded && Object(external_wp_element_["createElement"])("div", {
-    className: "components-popover__header"
-  }, Object(external_wp_element_["createElement"])("span", {
-    className: "components-popover__header-title"
-  }, headerTitle), Object(external_wp_element_["createElement"])(build_module_button["a" /* default */], {
-    className: "components-popover__close",
-    icon: library_close["a" /* default */],
-    onClick: onClose
-  })), Object(external_wp_element_["createElement"])("div", {
-    ref: contentRef,
-    className: "components-popover__content"
-  }, Object(external_wp_element_["createElement"])("div", {
-    style: {
-      position: 'relative'
-    }
-  }, containerResizeListener, children)));
-
-  if (slot.ref) {
-    content = Object(external_wp_element_["createElement"])(slot_fill["a" /* Fill */], {
-      name: __unstableSlotName
-    }, content);
-  }
-
-  if (anchorRef || anchorRect) {
-    return content;
-  }
-
-  return Object(external_wp_element_["createElement"])("span", {
-    ref: anchorRefFallback
-  }, content);
-};
-
-const PopoverContainer = Object(external_wp_element_["forwardRef"])(Popover);
-
-function PopoverSlot({
-  name = SLOT_NAME
-}, ref) {
-  return Object(external_wp_element_["createElement"])(slot_fill["c" /* Slot */], {
-    bubblesVirtually: true,
-    name: name,
-    className: "popover-slot",
-    ref: ref
-  });
-}
-
-PopoverContainer.Slot = Object(external_wp_element_["forwardRef"])(PopoverSlot);
-/* harmony default export */ var popover = __webpack_exports__["a"] = (PopoverContainer);
-
-
-/***/ }),
-
-/***/ "ouKs":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return getDocument; });
-/**
- * Returns `element.ownerDocument || document`.
- */
-function getDocument(element) {
-  return element ? element.ownerDocument || element : document;
-}
-
-
-
-
-/***/ }),
-
-/***/ "pRvc":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports['default'] = isSameDay;
-
-var _moment = __webpack_require__("wy2R");
-
-var _moment2 = _interopRequireDefault(_moment);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-function isSameDay(a, b) {
-  if (!_moment2['default'].isMoment(a) || !_moment2['default'].isMoment(b)) return false;
-  // Compare least significant, most likely to change units first
-  // Moment's isSame clones moment inputs and is a tad slow
-  return a.date() === b.date() && a.month() === b.month() && a.year() === b.year();
-}
-
-/***/ }),
-
-/***/ "pVnL":
-/***/ (function(module, exports) {
-
-function _extends() {
-  module.exports = _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;
-  };
-
-  module.exports["default"] = module.exports, module.exports.__esModule = true;
-  return _extends.apply(this, arguments);
-}
-
-module.exports = _extends;
-module.exports["default"] = module.exports, module.exports.__esModule = true;
-
-/***/ }),
-
-/***/ "pYxT":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports['default'] = toISODateString;
-
-var _moment = __webpack_require__("wy2R");
-
-var _moment2 = _interopRequireDefault(_moment);
-
-var _toMomentObject = __webpack_require__("WmS1");
-
-var _toMomentObject2 = _interopRequireDefault(_toMomentObject);
-
-var _constants = __webpack_require__("Fv1B");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-function toISODateString(date, currentFormat) {
-  var dateObj = _moment2['default'].isMoment(date) ? date : (0, _toMomentObject2['default'])(date, currentFormat);
-  if (!dateObj) return null;
-
-  return dateObj.format(_constants.ISO_FORMAT);
-}
-
-/***/ }),
-
-/***/ "q86A":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
+}));
+var DISPLAY_FORMAT = exports.DISPLAY_FORMAT = 'L';
+var ISO_FORMAT = exports.ISO_FORMAT = 'YYYY-MM-DD';
+var ISO_MONTH_FORMAT = exports.ISO_MONTH_FORMAT = 'YYYY-MM';
+
+var START_DATE = exports.START_DATE = 'startDate';
+var END_DATE = exports.END_DATE = 'endDate';
+
+var HORIZONTAL_ORIENTATION = exports.HORIZONTAL_ORIENTATION = 'horizontal';
+var VERTICAL_ORIENTATION = exports.VERTICAL_ORIENTATION = 'vertical';
+var VERTICAL_SCROLLABLE = exports.VERTICAL_SCROLLABLE = 'verticalScrollable';
+
+var ICON_BEFORE_POSITION = exports.ICON_BEFORE_POSITION = 'before';
+var ICON_AFTER_POSITION = exports.ICON_AFTER_POSITION = 'after';
+
+var INFO_POSITION_TOP = exports.INFO_POSITION_TOP = 'top';
+var INFO_POSITION_BOTTOM = exports.INFO_POSITION_BOTTOM = 'bottom';
+var INFO_POSITION_BEFORE = exports.INFO_POSITION_BEFORE = 'before';
+var INFO_POSITION_AFTER = exports.INFO_POSITION_AFTER = 'after';
+
+var ANCHOR_LEFT = exports.ANCHOR_LEFT = 'left';
+var ANCHOR_RIGHT = exports.ANCHOR_RIGHT = 'right';
+
+var OPEN_DOWN = exports.OPEN_DOWN = 'down';
+var OPEN_UP = exports.OPEN_UP = 'up';
+
+var DAY_SIZE = exports.DAY_SIZE = 39;
+var BLOCKED_MODIFIER = exports.BLOCKED_MODIFIER = 'blocked';
+var WEEKDAYS = exports.WEEKDAYS = [0, 1, 2, 3, 4, 5, 6];
+
+var FANG_WIDTH_PX = exports.FANG_WIDTH_PX = 20;
+var FANG_HEIGHT_PX = exports.FANG_HEIGHT_PX = 10;
+var DEFAULT_VERTICAL_SPACING = exports.DEFAULT_VERTICAL_SPACING = 22;
+
+var MODIFIER_KEY_NAMES = exports.MODIFIER_KEY_NAMES = new Set(['Shift', 'Control', 'Alt', 'Meta']);
+
+/***/ }),
+
+/***/ 6030:
+/***/ (function(__unused_webpack_module, exports) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
   value: true
-});
-exports["default"] = getTransformStyles;
-function getTransformStyles(transformValue) {
-  return {
-    transform: transformValue,
-    msTransform: transformValue,
-    MozTransform: transformValue,
-    WebkitTransform: transformValue
-  };
-}
-
-/***/ }),
-
-/***/ "qGip":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-/* eslint complexity: [2, 18], max-statements: [2, 33] */
-module.exports = function hasSymbols() {
-	if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }
-	if (typeof Symbol.iterator === 'symbol') { return true; }
-
-	var obj = {};
-	var sym = Symbol('test');
-	var symObj = Object(sym);
-	if (typeof sym === 'string') { return false; }
-
-	if (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }
-	if (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }
-
-	// temp disabled per https://github.com/ljharb/object.assign/issues/17
-	// if (sym instanceof Symbol) { return false; }
-	// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4
-	// if (!(symObj instanceof Symbol)) { return false; }
-
-	// if (typeof Symbol.prototype.toString !== 'function') { return false; }
-	// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }
-
-	var symVal = 42;
-	obj[sym] = symVal;
-	for (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop
-	if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }
-
-	if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }
-
-	var syms = Object.getOwnPropertySymbols(obj);
-	if (syms.length !== 1 || syms[0] !== sym) { return false; }
-
-	if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }
-
-	if (typeof Object.getOwnPropertyDescriptor === 'function') {
-		var descriptor = Object.getOwnPropertyDescriptor(obj, sym);
-		if (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }
-	}
-
-	return true;
-};
-
-
-/***/ }),
-
-/***/ "qOxZ":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return fireEvent; });
-/* harmony import */ var _createEvent_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("khzz");
-
-
-
-/**
- * Creates and dispatches `Event` in a way that also works on IE 11.
- *
- * @example
- * import { fireEvent } from "reakit-utils";
- *
- * fireEvent(document.getElementById("id"), "blur", {
- *   bubbles: true,
- *   cancelable: true,
- * });
- */
-
-function fireEvent(element, type, eventInit) {
-  return element.dispatchEvent(Object(_createEvent_js__WEBPACK_IMPORTED_MODULE_0__[/* createEvent */ "a"])(element, type, eventInit));
-}
-
-
-
-
-/***/ }),
-
-/***/ "qRz9":
-/***/ (function(module, exports) {
-
-(function() { module.exports = window["wp"]["richText"]; }());
-
-/***/ }),
-
-/***/ "qT12":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-/** @license React v16.13.1
- * react-is.production.min.js
- *
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-var b="function"===typeof Symbol&&Symbol.for,c=b?Symbol.for("react.element"):60103,d=b?Symbol.for("react.portal"):60106,e=b?Symbol.for("react.fragment"):60107,f=b?Symbol.for("react.strict_mode"):60108,g=b?Symbol.for("react.profiler"):60114,h=b?Symbol.for("react.provider"):60109,k=b?Symbol.for("react.context"):60110,l=b?Symbol.for("react.async_mode"):60111,m=b?Symbol.for("react.concurrent_mode"):60111,n=b?Symbol.for("react.forward_ref"):60112,p=b?Symbol.for("react.suspense"):60113,q=b?
-Symbol.for("react.suspense_list"):60120,r=b?Symbol.for("react.memo"):60115,t=b?Symbol.for("react.lazy"):60116,v=b?Symbol.for("react.block"):60121,w=b?Symbol.for("react.fundamental"):60117,x=b?Symbol.for("react.responder"):60118,y=b?Symbol.for("react.scope"):60119;
-function z(a){if("object"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;
-exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return"object"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};
-exports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};
-exports.isValidElementType=function(a){return"string"===typeof a||"function"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||"object"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;
-
-
-/***/ }),
-
-/***/ "qdes":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-
-// EXPORTS
-__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ createHook; });
-
-// EXTERNAL MODULE: external "React"
-var external_React_ = __webpack_require__("cDcd");
-
-// EXTERNAL MODULE: ./node_modules/reakit-system/es/SystemContext.js
-var SystemContext = __webpack_require__("eUCI");
-
-// CONCATENATED MODULE: ./node_modules/reakit-system/es/useToken.js
-
-
-
-/**
- * React custom hook that returns the value of any token defined in the
- * SystemContext. It's mainly used internally in [`useOptions`](#useoptions)
- * and [`useProps`](#useprops).
- *
- * @example
- * import { SystemProvider, useToken } from "reakit-system";
- *
- * const system = {
- *   token: "value",
- * };
- *
- * function Component(props) {
- *   const token = useToken("token", "default value");
- *   return <div {...props}>{token}</div>;
- * }
- *
- * function App() {
- *   return (
- *     <SystemProvider unstable_system={system}>
- *       <Component />
- *     </SystemProvider>
- *   );
- * }
- */
-
-function useToken(token, defaultValue) {
-  Object(external_React_["useDebugValue"])(token);
-  var context = Object(external_React_["useContext"])(SystemContext["a" /* SystemContext */]);
-  return context[token] != null ? context[token] : defaultValue;
-}
-
-
-
-// CONCATENATED MODULE: ./node_modules/reakit-system/es/useProps.js
-
-
-
-
-/**
- * React custom hook that returns the props returned by a given
- * `use${name}Props` in the SystemContext.
- *
- * @example
- * import { SystemProvider, useProps } from "reakit-system";
- *
- * const system = {
- *   useAProps(options, htmlProps) {
- *     return {
- *       ...htmlProps,
- *       href: options.url,
- *     };
- *   },
- * };
- *
- * function A({ url, ...htmlProps }) {
- *   const props = useProps("A", { url }, htmlProps);
- *   return <a {...props} />;
- * }
- *
- * function App() {
- *   return (
- *     <SystemProvider unstable_system={system}>
- *       <A url="url">It will convert url into href in useAProps</A>
- *     </SystemProvider>
- *   );
- * }
- */
-
-function useProps(name, options, htmlProps) {
-  if (options === void 0) {
-    options = {};
-  }
-
-  if (htmlProps === void 0) {
-    htmlProps = {};
-  }
-
-  var hookName = "use" + name + "Props";
-  Object(external_React_["useDebugValue"])(hookName);
-  var useHook = useToken(hookName);
-
-  if (useHook) {
-    return useHook(options, htmlProps);
-  }
-
-  return htmlProps;
-}
-
-
-
-// EXTERNAL MODULE: ./node_modules/reakit-system/es/_rollupPluginBabelHelpers-0c84a174.js
-var _rollupPluginBabelHelpers_0c84a174 = __webpack_require__("RDTF");
-
-// CONCATENATED MODULE: ./node_modules/reakit-system/es/useOptions.js
-
-
-
-
-
-/**
- * React custom hook that returns the options returned by a given
- * `use${name}Options` in the SystemContext.
- *
- * @example
- * import React from "react";
- * import { SystemProvider, useOptions } from "reakit-system";
- *
- * const system = {
- *   useAOptions(options, htmlProps) {
- *     return {
- *       ...options,
- *       url: htmlProps.href,
- *     };
- *   },
- * };
- *
- * function A({ url, ...htmlProps }) {
- *   const options = useOptions("A", { url }, htmlProps);
- *   return <a href={options.url} {...htmlProps} />;
- * }
- *
- * function App() {
- *   return (
- *     <SystemProvider unstable_system={system}>
- *       <A href="url">
- *         It will convert href into url in useAOptions and then url into href in A
- *       </A>
- *     </SystemProvider>
- *   );
- * }
- */
-
-function useOptions(name, options, htmlProps) {
-  if (options === void 0) {
-    options = {};
-  }
-
-  if (htmlProps === void 0) {
-    htmlProps = {};
-  }
-
-  var hookName = "use" + name + "Options";
-  Object(external_React_["useDebugValue"])(hookName);
-  var useHook = useToken(hookName);
-
-  if (useHook) {
-    return Object(_rollupPluginBabelHelpers_0c84a174["a" /* _ */])(Object(_rollupPluginBabelHelpers_0c84a174["a" /* _ */])({}, options), useHook(options, htmlProps));
-  }
-
-  return options;
-}
-
-
-
-// EXTERNAL MODULE: ./node_modules/reakit-utils/es/shallowEqual.js
-var shallowEqual = __webpack_require__("uqqE");
-
-// CONCATENATED MODULE: ./node_modules/reakit-utils/es/toArray.js
-/**
- * Transforms `arg` into an array if it's not already.
- *
- * @example
- * import { toArray } from "reakit-utils";
- *
- * toArray("a"); // ["a"]
- * toArray(["a"]); // ["a"]
- */
-function toArray(arg) {
-  if (Array.isArray(arg)) {
-    return arg;
-  }
-
-  return typeof arg !== "undefined" ? [arg] : [];
-}
-
-
-
-// CONCATENATED MODULE: ./node_modules/reakit-system/es/createHook.js
-
-
-
-
-
-
-
-
-
-/**
- * Creates a React custom hook that will return component props.
- *
- * @example
- * import { createHook } from "reakit-system";
- *
- * const useA = createHook({
- *   name: "A",
- *   keys: ["url"], // custom props/options keys
- *   useProps(options, htmlProps) {
- *     return {
- *       ...htmlProps,
- *       href: options.url,
- *     };
- *   },
- * });
- *
- * function A({ url, ...htmlProps }) {
- *   const props = useA({ url }, htmlProps);
- *   return <a {...props} />;
- * }
- *
- * @param options
- */
-function createHook(options) {
-  var _options$useState, _composedHooks$;
-
-  var composedHooks = toArray(options.compose);
-
-  var __useOptions = function __useOptions(hookOptions, htmlProps) {
-    // Call the current hook's useOptions first
-    if (options.useOptions) {
-      hookOptions = options.useOptions(hookOptions, htmlProps);
-    } // If there's name, call useOptions from the system context
-
-
-    if (options.name) {
-      hookOptions = useOptions(options.name, hookOptions, htmlProps);
-    } // Run composed hooks useOptions
-
-
-    if (options.compose) {
-      for (var _iterator = Object(_rollupPluginBabelHelpers_0c84a174["c" /* b */])(composedHooks), _step; !(_step = _iterator()).done;) {
-        var hook = _step.value;
-        hookOptions = hook.__useOptions(hookOptions, htmlProps);
-      }
-    }
-
-    return hookOptions;
-  };
-
-  var useHook = function useHook(hookOptions, htmlProps, unstable_ignoreUseOptions) {
-    if (hookOptions === void 0) {
-      hookOptions = {};
-    }
-
-    if (htmlProps === void 0) {
-      htmlProps = {};
-    }
-
-    if (unstable_ignoreUseOptions === void 0) {
-      unstable_ignoreUseOptions = false;
-    }
-
-    // This won't execute when useHook was called from within another useHook
-    if (!unstable_ignoreUseOptions) {
-      hookOptions = __useOptions(hookOptions, htmlProps);
-    } // Call the current hook's useProps
-
-
-    if (options.useProps) {
-      htmlProps = options.useProps(hookOptions, htmlProps);
-    } // If there's name, call useProps from the system context
-
-
-    if (options.name) {
-      htmlProps = useProps(options.name, hookOptions, htmlProps);
-    }
-
-    if (options.compose) {
-      if (options.useComposeOptions) {
-        hookOptions = options.useComposeOptions(hookOptions, htmlProps);
-      }
-
-      if (options.useComposeProps) {
-        htmlProps = options.useComposeProps(hookOptions, htmlProps);
-      } else {
-        for (var _iterator2 = Object(_rollupPluginBabelHelpers_0c84a174["c" /* b */])(composedHooks), _step2; !(_step2 = _iterator2()).done;) {
-          var hook = _step2.value;
-          htmlProps = hook(hookOptions, htmlProps, true);
-        }
-      }
-    } // Remove undefined values from htmlProps
-
-
-    var finalHTMLProps = {};
-    var definedHTMLProps = htmlProps || {};
-
-    for (var prop in definedHTMLProps) {
-      if (definedHTMLProps[prop] !== undefined) {
-        finalHTMLProps[prop] = definedHTMLProps[prop];
-      }
-    }
-
-    return finalHTMLProps;
-  };
-
-  useHook.__useOptions = __useOptions;
-  var composedKeys = composedHooks.reduce(function (keys, hook) {
-    keys.push.apply(keys, hook.__keys || []);
-    return keys;
-  }, []); // It's used by createComponent to split option props (keys) and html props
-
-  useHook.__keys = [].concat(composedKeys, ((_options$useState = options.useState) === null || _options$useState === void 0 ? void 0 : _options$useState.__keys) || [], options.keys || []);
-  useHook.unstable_propsAreEqual = options.propsAreEqual || ((_composedHooks$ = composedHooks[0]) === null || _composedHooks$ === void 0 ? void 0 : _composedHooks$.unstable_propsAreEqual) || shallowEqual["a" /* shallowEqual */];
-
-  if (false) {}
-
-  return useHook;
-}
-
-
-
-
-/***/ }),
-
-/***/ "rDFq":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var GetIntrinsic = __webpack_require__("rZ7t");
-
-var $Object = GetIntrinsic('%Object%');
-
-var isPrimitive = __webpack_require__("BeK9");
-
-var $preventExtensions = $Object.preventExtensions;
-var $isExtensible = $Object.isExtensible;
-
-// https://ecma-international.org/ecma-262/6.0/#sec-isextensible-o
-
-module.exports = $preventExtensions
-	? function IsExtensible(obj) {
-		return !isPrimitive(obj) && $isExtensible(obj);
-	}
-	: function IsExtensible(obj) {
-		return !isPrimitive(obj);
-	};
-
-
-/***/ }),
-
-/***/ "rQy3":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var has = __webpack_require__("oNNP");
-var RequireObjectCoercible = __webpack_require__("25kQ");
-var callBound = __webpack_require__("VF6F");
-
-var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable');
-
-module.exports = function values(O) {
-	var obj = RequireObjectCoercible(O);
-	var vals = [];
-	for (var key in obj) {
-		if (has(obj, key) && $isEnumerable(obj, key)) {
-			vals.push(obj[key]);
-		}
-	}
-	return vals;
-};
-
-
-/***/ }),
-
-/***/ "rZ7t":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var undefined;
-
-var $SyntaxError = SyntaxError;
-var $Function = Function;
-var $TypeError = TypeError;
-
-// eslint-disable-next-line consistent-return
-var getEvalledConstructor = function (expressionSyntax) {
-	try {
-		return $Function('"use strict"; return (' + expressionSyntax + ').constructor;')();
-	} catch (e) {}
-};
-
-var $gOPD = Object.getOwnPropertyDescriptor;
-if ($gOPD) {
-	try {
-		$gOPD({}, '');
-	} catch (e) {
-		$gOPD = null; // this is IE 8, which has a broken gOPD
-	}
-}
-
-var throwTypeError = function () {
-	throw new $TypeError();
-};
-var ThrowTypeError = $gOPD
-	? (function () {
-		try {
-			// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties
-			arguments.callee; // IE 8 does not throw here
-			return throwTypeError;
-		} catch (calleeThrows) {
-			try {
-				// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')
-				return $gOPD(arguments, 'callee').get;
-			} catch (gOPDthrows) {
-				return throwTypeError;
-			}
-		}
-	}())
-	: throwTypeError;
-
-var hasSymbols = __webpack_require__("HyUg")();
-
-var getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto
-
-var needsEval = {};
-
-var TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);
-
-var INTRINSICS = {
-	'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,
-	'%Array%': Array,
-	'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,
-	'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,
-	'%AsyncFromSyncIteratorPrototype%': undefined,
-	'%AsyncFunction%': needsEval,
-	'%AsyncGenerator%': needsEval,
-	'%AsyncGeneratorFunction%': needsEval,
-	'%AsyncIteratorPrototype%': needsEval,
-	'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,
-	'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,
-	'%Boolean%': Boolean,
-	'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,
-	'%Date%': Date,
-	'%decodeURI%': decodeURI,
-	'%decodeURIComponent%': decodeURIComponent,
-	'%encodeURI%': encodeURI,
-	'%encodeURIComponent%': encodeURIComponent,
-	'%Error%': Error,
-	'%eval%': eval, // eslint-disable-line no-eval
-	'%EvalError%': EvalError,
-	'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,
-	'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,
-	'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,
-	'%Function%': $Function,
-	'%GeneratorFunction%': needsEval,
-	'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,
-	'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,
-	'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,
-	'%isFinite%': isFinite,
-	'%isNaN%': isNaN,
-	'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,
-	'%JSON%': typeof JSON === 'object' ? JSON : undefined,
-	'%Map%': typeof Map === 'undefined' ? undefined : Map,
-	'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),
-	'%Math%': Math,
-	'%Number%': Number,
-	'%Object%': Object,
-	'%parseFloat%': parseFloat,
-	'%parseInt%': parseInt,
-	'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,
-	'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,
-	'%RangeError%': RangeError,
-	'%ReferenceError%': ReferenceError,
-	'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,
-	'%RegExp%': RegExp,
-	'%Set%': typeof Set === 'undefined' ? undefined : Set,
-	'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),
-	'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,
-	'%String%': String,
-	'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,
-	'%Symbol%': hasSymbols ? Symbol : undefined,
-	'%SyntaxError%': $SyntaxError,
-	'%ThrowTypeError%': ThrowTypeError,
-	'%TypedArray%': TypedArray,
-	'%TypeError%': $TypeError,
-	'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,
-	'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,
-	'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,
-	'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,
-	'%URIError%': URIError,
-	'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,
-	'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,
-	'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet
-};
-
-var doEval = function doEval(name) {
-	var value;
-	if (name === '%AsyncFunction%') {
-		value = getEvalledConstructor('async function () {}');
-	} else if (name === '%GeneratorFunction%') {
-		value = getEvalledConstructor('function* () {}');
-	} else if (name === '%AsyncGeneratorFunction%') {
-		value = getEvalledConstructor('async function* () {}');
-	} else if (name === '%AsyncGenerator%') {
-		var fn = doEval('%AsyncGeneratorFunction%');
-		if (fn) {
-			value = fn.prototype;
-		}
-	} else if (name === '%AsyncIteratorPrototype%') {
-		var gen = doEval('%AsyncGenerator%');
-		if (gen) {
-			value = getProto(gen.prototype);
-		}
-	}
-
-	INTRINSICS[name] = value;
-
-	return value;
-};
-
-var LEGACY_ALIASES = {
-	'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],
-	'%ArrayPrototype%': ['Array', 'prototype'],
-	'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],
-	'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],
-	'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],
-	'%ArrayProto_values%': ['Array', 'prototype', 'values'],
-	'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],
-	'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],
-	'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],
-	'%BooleanPrototype%': ['Boolean', 'prototype'],
-	'%DataViewPrototype%': ['DataView', 'prototype'],
-	'%DatePrototype%': ['Date', 'prototype'],
-	'%ErrorPrototype%': ['Error', 'prototype'],
-	'%EvalErrorPrototype%': ['EvalError', 'prototype'],
-	'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],
-	'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],
-	'%FunctionPrototype%': ['Function', 'prototype'],
-	'%Generator%': ['GeneratorFunction', 'prototype'],
-	'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],
-	'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],
-	'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],
-	'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],
-	'%JSONParse%': ['JSON', 'parse'],
-	'%JSONStringify%': ['JSON', 'stringify'],
-	'%MapPrototype%': ['Map', 'prototype'],
-	'%NumberPrototype%': ['Number', 'prototype'],
-	'%ObjectPrototype%': ['Object', 'prototype'],
-	'%ObjProto_toString%': ['Object', 'prototype', 'toString'],
-	'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],
-	'%PromisePrototype%': ['Promise', 'prototype'],
-	'%PromiseProto_then%': ['Promise', 'prototype', 'then'],
-	'%Promise_all%': ['Promise', 'all'],
-	'%Promise_reject%': ['Promise', 'reject'],
-	'%Promise_resolve%': ['Promise', 'resolve'],
-	'%RangeErrorPrototype%': ['RangeError', 'prototype'],
-	'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],
-	'%RegExpPrototype%': ['RegExp', 'prototype'],
-	'%SetPrototype%': ['Set', 'prototype'],
-	'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],
-	'%StringPrototype%': ['String', 'prototype'],
-	'%SymbolPrototype%': ['Symbol', 'prototype'],
-	'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],
-	'%TypedArrayPrototype%': ['TypedArray', 'prototype'],
-	'%TypeErrorPrototype%': ['TypeError', 'prototype'],
-	'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],
-	'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],
-	'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],
-	'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],
-	'%URIErrorPrototype%': ['URIError', 'prototype'],
-	'%WeakMapPrototype%': ['WeakMap', 'prototype'],
-	'%WeakSetPrototype%': ['WeakSet', 'prototype']
-};
-
-var bind = __webpack_require__("D3zA");
-var hasOwn = __webpack_require__("oNNP");
-var $concat = bind.call(Function.call, Array.prototype.concat);
-var $spliceApply = bind.call(Function.apply, Array.prototype.splice);
-var $replace = bind.call(Function.call, String.prototype.replace);
-var $strSlice = bind.call(Function.call, String.prototype.slice);
-
-/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */
-var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g;
-var reEscapeChar = /\\(\\)?/g; /** Used to match backslashes in property paths. */
-var stringToPath = function stringToPath(string) {
-	var first = $strSlice(string, 0, 1);
-	var last = $strSlice(string, -1);
-	if (first === '%' && last !== '%') {
-		throw new $SyntaxError('invalid intrinsic syntax, expected closing `%`');
-	} else if (last === '%' && first !== '%') {
-		throw new $SyntaxError('invalid intrinsic syntax, expected opening `%`');
-	}
-	var result = [];
-	$replace(string, rePropName, function (match, number, quote, subString) {
-		result[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;
-	});
-	return result;
-};
-/* end adaptation */
-
-var getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {
-	var intrinsicName = name;
-	var alias;
-	if (hasOwn(LEGACY_ALIASES, intrinsicName)) {
-		alias = LEGACY_ALIASES[intrinsicName];
-		intrinsicName = '%' + alias[0] + '%';
-	}
-
-	if (hasOwn(INTRINSICS, intrinsicName)) {
-		var value = INTRINSICS[intrinsicName];
-		if (value === needsEval) {
-			value = doEval(intrinsicName);
-		}
-		if (typeof value === 'undefined' && !allowMissing) {
-			throw new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');
-		}
-
-		return {
-			alias: alias,
-			name: intrinsicName,
-			value: value
-		};
-	}
-
-	throw new $SyntaxError('intrinsic ' + name + ' does not exist!');
-};
-
-module.exports = function GetIntrinsic(name, allowMissing) {
-	if (typeof name !== 'string' || name.length === 0) {
-		throw new $TypeError('intrinsic name must be a non-empty string');
-	}
-	if (arguments.length > 1 && typeof allowMissing !== 'boolean') {
-		throw new $TypeError('"allowMissing" argument must be a boolean');
-	}
-
-	var parts = stringToPath(name);
-	var intrinsicBaseName = parts.length > 0 ? parts[0] : '';
-
-	var intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);
-	var intrinsicRealName = intrinsic.name;
-	var value = intrinsic.value;
-	var skipFurtherCaching = false;
-
-	var alias = intrinsic.alias;
-	if (alias) {
-		intrinsicBaseName = alias[0];
-		$spliceApply(parts, $concat([0, 1], alias));
-	}
-
-	for (var i = 1, isOwn = true; i < parts.length; i += 1) {
-		var part = parts[i];
-		var first = $strSlice(part, 0, 1);
-		var last = $strSlice(part, -1);
-		if (
-			(
-				(first === '"' || first === "'" || first === '`')
-				|| (last === '"' || last === "'" || last === '`')
-			)
-			&& first !== last
-		) {
-			throw new $SyntaxError('property names with quotes must have matching quotes');
-		}
-		if (part === 'constructor' || !isOwn) {
-			skipFurtherCaching = true;
-		}
-
-		intrinsicBaseName += '.' + part;
-		intrinsicRealName = '%' + intrinsicBaseName + '%';
-
-		if (hasOwn(INTRINSICS, intrinsicRealName)) {
-			value = INTRINSICS[intrinsicRealName];
-		} else if (value != null) {
-			if (!(part in value)) {
-				if (!allowMissing) {
-					throw new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');
-				}
-				return void undefined;
-			}
-			if ($gOPD && (i + 1) >= parts.length) {
-				var desc = $gOPD(value, part);
-				isOwn = !!desc;
-
-				// By convention, when a data property is converted to an accessor
-				// property to emulate a data property that does not suffer from
-				// the override mistake, that accessor's getter is marked with
-				// an `originalValue` property. Here, when we detect this, we
-				// uphold the illusion by pretending to see that original data
-				// property, i.e., returning the value rather than the getter
-				// itself.
-				if (isOwn && 'get' in desc && !('originalValue' in desc.get)) {
-					value = desc.get;
-				} else {
-					value = value[part];
-				}
-			} else {
-				isOwn = hasOwn(value, part);
-				value = value[part];
-			}
-
-			if (isOwn && !skipFurtherCaching) {
-				INTRINSICS[intrinsicRealName] = value;
-			}
-		}
-	}
-	return value;
-};
-
-
-/***/ }),
-
-/***/ "reMF":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return isUA; });
-/* harmony import */ var _canUseDOM_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("+ipW");
-
-
-
-
-/**
- * Checks if a given string exists in the user agent string.
- */
-
-function isUA(string) {
-  if (!_canUseDOM_js__WEBPACK_IMPORTED_MODULE_0__[/* canUseDOM */ "a"]) return false;
-  return window.navigator.userAgent.indexOf(string) !== -1;
-}
-
-
-
-
-/***/ }),
-
-/***/ "rl8x":
-/***/ (function(module, exports) {
-
-(function() { module.exports = window["wp"]["isShallowEqual"]; }());
-
-/***/ }),
-
-/***/ "sA9S":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var GetIntrinsic = __webpack_require__("rZ7t");
-
-var $Object = GetIntrinsic('%Object%');
-
-var RequireObjectCoercible = __webpack_require__("S0jC");
-
-// https://ecma-international.org/ecma-262/6.0/#sec-toobject
-
-module.exports = function ToObject(value) {
-	RequireObjectCoercible(value);
-	return $Object(value);
-};
-
-
-/***/ }),
-
-/***/ "sDMB":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _propTypes = __webpack_require__("17x9");
-
-var _propTypes2 = _interopRequireDefault(_propTypes);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-exports['default'] = _propTypes2['default'].shape({
-  getState: _propTypes2['default'].func,
-  setState: _propTypes2['default'].func,
-  subscribe: _propTypes2['default'].func
-});
-
-/***/ }),
-
-/***/ "sEfC":
-/***/ (function(module, exports, __webpack_require__) {
-
-var isObject = __webpack_require__("GoyQ"),
-    now = __webpack_require__("QIyF"),
-    toNumber = __webpack_require__("tLB3");
-
-/** Error message constants. */
-var FUNC_ERROR_TEXT = 'Expected a function';
-
-/* Built-in method references for those with the same name as other `lodash` methods. */
-var nativeMax = Math.max,
-    nativeMin = Math.min;
-
-/**
- * Creates a debounced function that delays invoking `func` until after `wait`
- * milliseconds have elapsed since the last time the debounced function was
- * invoked. The debounced function comes with a `cancel` method to cancel
- * delayed `func` invocations and a `flush` method to immediately invoke them.
- * Provide `options` to indicate whether `func` should be invoked on the
- * leading and/or trailing edge of the `wait` timeout. The `func` is invoked
- * with the last arguments provided to the debounced function. Subsequent
- * calls to the debounced function return the result of the last `func`
- * invocation.
- *
- * **Note:** If `leading` and `trailing` options are `true`, `func` is
- * invoked on the trailing edge of the timeout only if the debounced function
- * is invoked more than once during the `wait` timeout.
- *
- * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
- * until to the next tick, similar to `setTimeout` with a timeout of `0`.
- *
- * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
- * for details over the differences between `_.debounce` and `_.throttle`.
- *
- * @static
- * @memberOf _
- * @since 0.1.0
- * @category Function
- * @param {Function} func The function to debounce.
- * @param {number} [wait=0] The number of milliseconds to delay.
- * @param {Object} [options={}] The options object.
- * @param {boolean} [options.leading=false]
- *  Specify invoking on the leading edge of the timeout.
- * @param {number} [options.maxWait]
- *  The maximum time `func` is allowed to be delayed before it's invoked.
- * @param {boolean} [options.trailing=true]
- *  Specify invoking on the trailing edge of the timeout.
- * @returns {Function} Returns the new debounced function.
- * @example
- *
- * // Avoid costly calculations while the window size is in flux.
- * jQuery(window).on('resize', _.debounce(calculateLayout, 150));
- *
- * // Invoke `sendMail` when clicked, debouncing subsequent calls.
- * jQuery(element).on('click', _.debounce(sendMail, 300, {
- *   'leading': true,
- *   'trailing': false
- * }));
- *
- * // Ensure `batchLog` is invoked once after 1 second of debounced calls.
- * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });
- * var source = new EventSource('/stream');
- * jQuery(source).on('message', debounced);
- *
- * // Cancel the trailing debounced invocation.
- * jQuery(window).on('popstate', debounced.cancel);
- */
-function debounce(func, wait, options) {
-  var lastArgs,
-      lastThis,
-      maxWait,
-      result,
-      timerId,
-      lastCallTime,
-      lastInvokeTime = 0,
-      leading = false,
-      maxing = false,
-      trailing = true;
-
-  if (typeof func != 'function') {
-    throw new TypeError(FUNC_ERROR_TEXT);
-  }
-  wait = toNumber(wait) || 0;
-  if (isObject(options)) {
-    leading = !!options.leading;
-    maxing = 'maxWait' in options;
-    maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;
-    trailing = 'trailing' in options ? !!options.trailing : trailing;
-  }
-
-  function invokeFunc(time) {
-    var args = lastArgs,
-        thisArg = lastThis;
-
-    lastArgs = lastThis = undefined;
-    lastInvokeTime = time;
-    result = func.apply(thisArg, args);
-    return result;
-  }
-
-  function leadingEdge(time) {
-    // Reset any `maxWait` timer.
-    lastInvokeTime = time;
-    // Start the timer for the trailing edge.
-    timerId = setTimeout(timerExpired, wait);
-    // Invoke the leading edge.
-    return leading ? invokeFunc(time) : result;
-  }
-
-  function remainingWait(time) {
-    var timeSinceLastCall = time - lastCallTime,
-        timeSinceLastInvoke = time - lastInvokeTime,
-        timeWaiting = wait - timeSinceLastCall;
-
-    return maxing
-      ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)
-      : timeWaiting;
-  }
-
-  function shouldInvoke(time) {
-    var timeSinceLastCall = time - lastCallTime,
-        timeSinceLastInvoke = time - lastInvokeTime;
-
-    // Either this is the first call, activity has stopped and we're at the
-    // trailing edge, the system time has gone backwards and we're treating
-    // it as the trailing edge, or we've hit the `maxWait` limit.
-    return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||
-      (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));
-  }
-
-  function timerExpired() {
-    var time = now();
-    if (shouldInvoke(time)) {
-      return trailingEdge(time);
-    }
-    // Restart the timer.
-    timerId = setTimeout(timerExpired, remainingWait(time));
-  }
-
-  function trailingEdge(time) {
-    timerId = undefined;
-
-    // Only invoke if we have `lastArgs` which means `func` has been
-    // debounced at least once.
-    if (trailing && lastArgs) {
-      return invokeFunc(time);
-    }
-    lastArgs = lastThis = undefined;
-    return result;
-  }
-
-  function cancel() {
-    if (timerId !== undefined) {
-      clearTimeout(timerId);
-    }
-    lastInvokeTime = 0;
-    lastArgs = lastCallTime = lastThis = timerId = undefined;
-  }
-
-  function flush() {
-    return timerId === undefined ? result : trailingEdge(now());
-  }
-
-  function debounced() {
-    var time = now(),
-        isInvoking = shouldInvoke(time);
-
-    lastArgs = arguments;
-    lastThis = this;
-    lastCallTime = time;
-
-    if (isInvoking) {
-      if (timerId === undefined) {
-        return leadingEdge(lastCallTime);
-      }
-      if (maxing) {
-        // Handle invocations in a tight loop.
-        clearTimeout(timerId);
-        timerId = setTimeout(timerExpired, wait);
-        return invokeFunc(lastCallTime);
-      }
-    }
-    if (timerId === undefined) {
-      timerId = setTimeout(timerExpired, wait);
-    }
-    return result;
-  }
-  debounced.cancel = cancel;
-  debounced.flush = flush;
-  return debounced;
-}
-
-module.exports = debounce;
-
-
-/***/ }),
-
-/***/ "sYn3":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var keysShim;
-if (!Object.keys) {
-	// modified from https://github.com/es-shims/es5-shim
-	var has = Object.prototype.hasOwnProperty;
-	var toStr = Object.prototype.toString;
-	var isArgs = __webpack_require__("1KsK"); // eslint-disable-line global-require
-	var isEnumerable = Object.prototype.propertyIsEnumerable;
-	var hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');
-	var hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');
-	var dontEnums = [
-		'toString',
-		'toLocaleString',
-		'valueOf',
-		'hasOwnProperty',
-		'isPrototypeOf',
-		'propertyIsEnumerable',
-		'constructor'
-	];
-	var equalsConstructorPrototype = function (o) {
-		var ctor = o.constructor;
-		return ctor && ctor.prototype === o;
-	};
-	var excludedKeys = {
-		$applicationCache: true,
-		$console: true,
-		$external: true,
-		$frame: true,
-		$frameElement: true,
-		$frames: true,
-		$innerHeight: true,
-		$innerWidth: true,
-		$onmozfullscreenchange: true,
-		$onmozfullscreenerror: true,
-		$outerHeight: true,
-		$outerWidth: true,
-		$pageXOffset: true,
-		$pageYOffset: true,
-		$parent: true,
-		$scrollLeft: true,
-		$scrollTop: true,
-		$scrollX: true,
-		$scrollY: true,
-		$self: true,
-		$webkitIndexedDB: true,
-		$webkitStorageInfo: true,
-		$window: true
-	};
-	var hasAutomationEqualityBug = (function () {
-		/* global window */
-		if (typeof window === 'undefined') { return false; }
-		for (var k in window) {
-			try {
-				if (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {
-					try {
-						equalsConstructorPrototype(window[k]);
-					} catch (e) {
-						return true;
-					}
-				}
-			} catch (e) {
-				return true;
-			}
-		}
-		return false;
-	}());
-	var equalsConstructorPrototypeIfNotBuggy = function (o) {
-		/* global window */
-		if (typeof window === 'undefined' || !hasAutomationEqualityBug) {
-			return equalsConstructorPrototype(o);
-		}
-		try {
-			return equalsConstructorPrototype(o);
-		} catch (e) {
-			return false;
-		}
-	};
-
-	keysShim = function keys(object) {
-		var isObject = object !== null && typeof object === 'object';
-		var isFunction = toStr.call(object) === '[object Function]';
-		var isArguments = isArgs(object);
-		var isString = isObject && toStr.call(object) === '[object String]';
-		var theKeys = [];
-
-		if (!isObject && !isFunction && !isArguments) {
-			throw new TypeError('Object.keys called on a non-object');
-		}
-
-		var skipProto = hasProtoEnumBug && isFunction;
-		if (isString && object.length > 0 && !has.call(object, 0)) {
-			for (var i = 0; i < object.length; ++i) {
-				theKeys.push(String(i));
-			}
-		}
-
-		if (isArguments && object.length > 0) {
-			for (var j = 0; j < object.length; ++j) {
-				theKeys.push(String(j));
-			}
-		} else {
-			for (var name in object) {
-				if (!(skipProto && name === 'prototype') && has.call(object, name)) {
-					theKeys.push(String(name));
-				}
-			}
-		}
-
-		if (hasDontEnumBug) {
-			var skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);
-
-			for (var k = 0; k < dontEnums.length; ++k) {
-				if (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {
-					theKeys.push(dontEnums[k]);
-				}
-			}
-		}
-		return theKeys;
-	};
-}
-module.exports = keysShim;
-
-
-/***/ }),
-
-/***/ "tLB3":
-/***/ (function(module, exports, __webpack_require__) {
-
-var baseTrim = __webpack_require__("jXQH"),
-    isObject = __webpack_require__("GoyQ"),
-    isSymbol = __webpack_require__("/9aa");
-
-/** Used as references for various `Number` constants. */
-var NAN = 0 / 0;
-
-/** Used to detect bad signed hexadecimal string values. */
-var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
-
-/** Used to detect binary string values. */
-var reIsBinary = /^0b[01]+$/i;
-
-/** Used to detect octal string values. */
-var reIsOctal = /^0o[0-7]+$/i;
-
-/** Built-in method references without a dependency on `root`. */
-var freeParseInt = parseInt;
-
-/**
- * Converts `value` to a number.
- *
- * @static
- * @memberOf _
- * @since 4.0.0
- * @category Lang
- * @param {*} value The value to process.
- * @returns {number} Returns the number.
- * @example
- *
- * _.toNumber(3.2);
- * // => 3.2
- *
- * _.toNumber(Number.MIN_VALUE);
- * // => 5e-324
- *
- * _.toNumber(Infinity);
- * // => Infinity
- *
- * _.toNumber('3.2');
- * // => 3.2
- */
-function toNumber(value) {
-  if (typeof value == 'number') {
-    return value;
-  }
-  if (isSymbol(value)) {
-    return NAN;
-  }
-  if (isObject(value)) {
-    var other = typeof value.valueOf == 'function' ? value.valueOf() : value;
-    value = isObject(other) ? (other + '') : other;
-  }
-  if (typeof value != 'string') {
-    return value === 0 ? value : +value;
-  }
-  value = baseTrim(value);
-  var isBinary = reIsBinary.test(value);
-  return (isBinary || reIsOctal.test(value))
-    ? freeParseInt(value.slice(2), isBinary ? 2 : 8)
-    : (reIsBadHex.test(value) ? NAN : +value);
-}
-
-module.exports = toNumber;
-
-
-/***/ }),
-
-/***/ "tQ+x":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* unused harmony export REACT_TYPEOF_KEY */
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return COMPONENT_NAMESPACE; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return CONNECTED_NAMESPACE; });
-/* unused harmony export CONTEXT_COMPONENT_NAMESPACE */
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return CONNECT_STATIC_NAMESPACE; });
-const REACT_TYPEOF_KEY = '$$typeof';
-const COMPONENT_NAMESPACE = 'data-wp-component';
-const CONNECTED_NAMESPACE = 'data-wp-c16t';
-const CONTEXT_COMPONENT_NAMESPACE = 'data-wp-c5tc8t';
-/**
- * Special key where the connected namespaces are stored.
- * This is attached to Context connected components as a static property.
- */
-
-const CONNECT_STATIC_NAMESPACE = '__contextSystemKey__';
-
-
-/***/ }),
-
-/***/ "u5Fq":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports['default'] = getVisibleDays;
-
-var _moment = __webpack_require__("wy2R");
-
-var _moment2 = _interopRequireDefault(_moment);
-
-var _toISOMonthString = __webpack_require__("jenk");
-
-var _toISOMonthString2 = _interopRequireDefault(_toISOMonthString);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-function getVisibleDays(month, numberOfMonths, enableOutsideDays, withoutTransitionMonths) {
-  if (!_moment2['default'].isMoment(month)) return {};
-
-  var visibleDaysByMonth = {};
-  var currentMonth = withoutTransitionMonths ? month.clone() : month.clone().subtract(1, 'month');
-  for (var i = 0; i < (withoutTransitionMonths ? numberOfMonths : numberOfMonths + 2); i += 1) {
-    var visibleDays = [];
-
-    // set utc offset to get correct dates in future (when timezone changes)
-    var baseDate = currentMonth.clone();
-    var firstOfMonth = baseDate.clone().startOf('month').hour(12);
-    var lastOfMonth = baseDate.clone().endOf('month').hour(12);
-
-    var currentDay = firstOfMonth.clone();
-
-    // days belonging to the previous month
-    if (enableOutsideDays) {
-      for (var j = 0; j < currentDay.weekday(); j += 1) {
-        var prevDay = currentDay.clone().subtract(j + 1, 'day');
-        visibleDays.unshift(prevDay);
-      }
-    }
-
-    while (currentDay < lastOfMonth) {
-      visibleDays.push(currentDay.clone());
-      currentDay.add(1, 'day');
-    }
-
-    if (enableOutsideDays) {
-      // weekday() returns the index of the day of the week according to the locale
-      // this means if the week starts on Monday, weekday() will return 0 for a Monday date, not 1
-      if (currentDay.weekday() !== 0) {
-        // days belonging to the next month
-        for (var k = currentDay.weekday(), count = 0; k < 7; k += 1, count += 1) {
-          var nextDay = currentDay.clone().add(count, 'day');
-          visibleDays.push(nextDay);
-        }
-      }
-    }
-
-    visibleDaysByMonth[(0, _toISOMonthString2['default'])(currentMonth)] = visibleDays;
-    currentMonth = currentMonth.clone().add(1, 'month');
-  }
-
-  return visibleDaysByMonth;
-}
-
-/***/ }),
-
-/***/ "uGfJ":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
-/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
-
-
-/**
- * WordPress dependencies
- */
-
-const textColor = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
-  xmlns: "http://www.w3.org/2000/svg",
-  viewBox: "0 0 24 24"
-}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
-  d: "M12.9 6h-2l-4 11h1.9l1.1-3h4.2l1.1 3h1.9L12.9 6zm-2.5 6.5l1.5-4.9 1.7 4.9h-3.2z"
-}));
-/* harmony default export */ __webpack_exports__["a"] = (textColor);
-
-
-/***/ }),
-
-/***/ "ulUS":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports['default'] = isSameMonth;
-
-var _moment = __webpack_require__("wy2R");
-
-var _moment2 = _interopRequireDefault(_moment);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-function isSameMonth(a, b) {
-  if (!_moment2['default'].isMoment(a) || !_moment2['default'].isMoment(b)) return false;
-  // Compare least significant, most likely to change units first
-  // Moment's isSame clones moment inputs and is a tad slow
-  return a.month() === b.month() && a.year() === b.year();
-}
-
-/***/ }),
-
-/***/ "uqqE":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return shallowEqual; });
-/**
- * Compares two objects.
- *
- * @example
- * import { shallowEqual } from "reakit-utils";
- *
- * shallowEqual({ a: "a" }, {}); // false
- * shallowEqual({ a: "a" }, { b: "b" }); // false
- * shallowEqual({ a: "a" }, { a: "a" }); // true
- * shallowEqual({ a: "a" }, { a: "a", b: "b" }); // false
- */
-function shallowEqual(objA, objB) {
-  if (objA === objB) return true;
-  if (!objA) return false;
-  if (!objB) return false;
-  if (typeof objA !== "object") return false;
-  if (typeof objB !== "object") return false;
-  var aKeys = Object.keys(objA);
-  var bKeys = Object.keys(objB);
-  var length = aKeys.length;
-  if (bKeys.length !== length) return false;
-
-  for (var _i = 0, _aKeys = aKeys; _i < _aKeys.length; _i++) {
-    var key = _aKeys[_i];
-
-    if (objA[key] !== objB[key]) {
-      return false;
-    }
-  }
-
-  return true;
-}
-
-
-
-
-/***/ }),
-
-/***/ "utzN":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return contains; });
-/**
- * Similar to `Element.prototype.contains`, but a little bit faster when
- * `element` is the same as `child`.
- *
- * @example
- * import { contains } from "reakit-utils";
- *
- * contains(document.getElementById("parent"), document.getElementById("child"));
- */
-function contains(parent, child) {
-  return parent === child || parent.contains(child);
-}
-
-
-
-
-/***/ }),
-
-/***/ "v3P4":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var define = __webpack_require__("82c2");
-var getPolyfill = __webpack_require__("22yB");
-
-module.exports = function shimFlat() {
-	var polyfill = getPolyfill();
-	define(
-		Array.prototype,
-		{ flat: polyfill },
-		{ flat: function () { return Array.prototype.flat !== polyfill; } }
-	);
-	return polyfill;
-};
-
-
-/***/ }),
-
-/***/ "v7lB":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-/* globals
-	AggregateError,
-	Atomics,
-	FinalizationRegistry,
-	SharedArrayBuffer,
-	WeakRef,
-*/
-
-var undefined;
-
-var $SyntaxError = SyntaxError;
-var $Function = Function;
-var $TypeError = TypeError;
-
-// eslint-disable-next-line consistent-return
-var getEvalledConstructor = function (expressionSyntax) {
-	try {
-		// eslint-disable-next-line no-new-func
-		return Function('"use strict"; return (' + expressionSyntax + ').constructor;')();
-	} catch (e) {}
-};
-
-var $gOPD = Object.getOwnPropertyDescriptor;
-if ($gOPD) {
-	try {
-		$gOPD({}, '');
-	} catch (e) {
-		$gOPD = null; // this is IE 8, which has a broken gOPD
-	}
-}
-
-var throwTypeError = function () { throw new $TypeError(); };
-var ThrowTypeError = $gOPD
-	? (function () {
-		try {
-			// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties
-			arguments.callee; // IE 8 does not throw here
-			return throwTypeError;
-		} catch (calleeThrows) {
-			try {
-				// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')
-				return $gOPD(arguments, 'callee').get;
-			} catch (gOPDthrows) {
-				return throwTypeError;
-			}
-		}
-	}())
-	: throwTypeError;
-
-var hasSymbols = __webpack_require__("UVaH")();
-
-var getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto
-
-var asyncGenFunction = getEvalledConstructor('async function* () {}');
-var asyncGenFunctionPrototype = asyncGenFunction ? asyncGenFunction.prototype : undefined;
-var asyncGenPrototype = asyncGenFunctionPrototype ? asyncGenFunctionPrototype.prototype : undefined;
-
-var TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);
-
-var INTRINSICS = {
-	'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,
-	'%Array%': Array,
-	'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,
-	'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,
-	'%AsyncFromSyncIteratorPrototype%': undefined,
-	'%AsyncFunction%': getEvalledConstructor('async function () {}'),
-	'%AsyncGenerator%': asyncGenFunctionPrototype,
-	'%AsyncGeneratorFunction%': asyncGenFunction,
-	'%AsyncIteratorPrototype%': asyncGenPrototype ? getProto(asyncGenPrototype) : undefined,
-	'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,
-	'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,
-	'%Boolean%': Boolean,
-	'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,
-	'%Date%': Date,
-	'%decodeURI%': decodeURI,
-	'%decodeURIComponent%': decodeURIComponent,
-	'%encodeURI%': encodeURI,
-	'%encodeURIComponent%': encodeURIComponent,
-	'%Error%': Error,
-	'%eval%': eval, // eslint-disable-line no-eval
-	'%EvalError%': EvalError,
-	'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,
-	'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,
-	'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,
-	'%Function%': $Function,
-	'%GeneratorFunction%': getEvalledConstructor('function* () {}'),
-	'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,
-	'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,
-	'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,
-	'%isFinite%': isFinite,
-	'%isNaN%': isNaN,
-	'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,
-	'%JSON%': typeof JSON === 'object' ? JSON : undefined,
-	'%Map%': typeof Map === 'undefined' ? undefined : Map,
-	'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),
-	'%Math%': Math,
-	'%Number%': Number,
-	'%Object%': Object,
-	'%parseFloat%': parseFloat,
-	'%parseInt%': parseInt,
-	'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,
-	'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,
-	'%RangeError%': RangeError,
-	'%ReferenceError%': ReferenceError,
-	'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,
-	'%RegExp%': RegExp,
-	'%Set%': typeof Set === 'undefined' ? undefined : Set,
-	'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),
-	'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,
-	'%String%': String,
-	'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,
-	'%Symbol%': hasSymbols ? Symbol : undefined,
-	'%SyntaxError%': $SyntaxError,
-	'%ThrowTypeError%': ThrowTypeError,
-	'%TypedArray%': TypedArray,
-	'%TypeError%': $TypeError,
-	'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,
-	'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,
-	'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,
-	'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,
-	'%URIError%': URIError,
-	'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,
-	'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,
-	'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet
-};
-
-var LEGACY_ALIASES = {
-	'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],
-	'%ArrayPrototype%': ['Array', 'prototype'],
-	'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],
-	'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],
-	'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],
-	'%ArrayProto_values%': ['Array', 'prototype', 'values'],
-	'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],
-	'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],
-	'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],
-	'%BooleanPrototype%': ['Boolean', 'prototype'],
-	'%DataViewPrototype%': ['DataView', 'prototype'],
-	'%DatePrototype%': ['Date', 'prototype'],
-	'%ErrorPrototype%': ['Error', 'prototype'],
-	'%EvalErrorPrototype%': ['EvalError', 'prototype'],
-	'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],
-	'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],
-	'%FunctionPrototype%': ['Function', 'prototype'],
-	'%Generator%': ['GeneratorFunction', 'prototype'],
-	'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],
-	'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],
-	'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],
-	'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],
-	'%JSONParse%': ['JSON', 'parse'],
-	'%JSONStringify%': ['JSON', 'stringify'],
-	'%MapPrototype%': ['Map', 'prototype'],
-	'%NumberPrototype%': ['Number', 'prototype'],
-	'%ObjectPrototype%': ['Object', 'prototype'],
-	'%ObjProto_toString%': ['Object', 'prototype', 'toString'],
-	'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],
-	'%PromisePrototype%': ['Promise', 'prototype'],
-	'%PromiseProto_then%': ['Promise', 'prototype', 'then'],
-	'%Promise_all%': ['Promise', 'all'],
-	'%Promise_reject%': ['Promise', 'reject'],
-	'%Promise_resolve%': ['Promise', 'resolve'],
-	'%RangeErrorPrototype%': ['RangeError', 'prototype'],
-	'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],
-	'%RegExpPrototype%': ['RegExp', 'prototype'],
-	'%SetPrototype%': ['Set', 'prototype'],
-	'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],
-	'%StringPrototype%': ['String', 'prototype'],
-	'%SymbolPrototype%': ['Symbol', 'prototype'],
-	'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],
-	'%TypedArrayPrototype%': ['TypedArray', 'prototype'],
-	'%TypeErrorPrototype%': ['TypeError', 'prototype'],
-	'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],
-	'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],
-	'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],
-	'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],
-	'%URIErrorPrototype%': ['URIError', 'prototype'],
-	'%WeakMapPrototype%': ['WeakMap', 'prototype'],
-	'%WeakSetPrototype%': ['WeakSet', 'prototype']
-};
-
-var bind = __webpack_require__("D3zA");
-var hasOwn = __webpack_require__("oNNP");
-var $concat = bind.call(Function.call, Array.prototype.concat);
-var $spliceApply = bind.call(Function.apply, Array.prototype.splice);
-var $replace = bind.call(Function.call, String.prototype.replace);
-
-/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */
-var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g;
-var reEscapeChar = /\\(\\)?/g; /** Used to match backslashes in property paths. */
-var stringToPath = function stringToPath(string) {
-	var result = [];
-	$replace(string, rePropName, function (match, number, quote, subString) {
-		result[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;
-	});
-	return result;
-};
-/* end adaptation */
-
-var getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {
-	var intrinsicName = name;
-	var alias;
-	if (hasOwn(LEGACY_ALIASES, intrinsicName)) {
-		alias = LEGACY_ALIASES[intrinsicName];
-		intrinsicName = '%' + alias[0] + '%';
-	}
-
-	if (hasOwn(INTRINSICS, intrinsicName)) {
-		var value = INTRINSICS[intrinsicName];
-		if (typeof value === 'undefined' && !allowMissing) {
-			throw new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');
-		}
-
-		return {
-			alias: alias,
-			name: intrinsicName,
-			value: value
-		};
-	}
-
-	throw new $SyntaxError('intrinsic ' + name + ' does not exist!');
-};
-
-module.exports = function GetIntrinsic(name, allowMissing) {
-	if (typeof name !== 'string' || name.length === 0) {
-		throw new $TypeError('intrinsic name must be a non-empty string');
-	}
-	if (arguments.length > 1 && typeof allowMissing !== 'boolean') {
-		throw new $TypeError('"allowMissing" argument must be a boolean');
-	}
-
-	var parts = stringToPath(name);
-	var intrinsicBaseName = parts.length > 0 ? parts[0] : '';
-
-	var intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);
-	var intrinsicRealName = intrinsic.name;
-	var value = intrinsic.value;
-	var skipFurtherCaching = false;
-
-	var alias = intrinsic.alias;
-	if (alias) {
-		intrinsicBaseName = alias[0];
-		$spliceApply(parts, $concat([0, 1], alias));
-	}
-
-	for (var i = 1, isOwn = true; i < parts.length; i += 1) {
-		var part = parts[i];
-		if (part === 'constructor' || !isOwn) {
-			skipFurtherCaching = true;
-		}
-
-		intrinsicBaseName += '.' + part;
-		intrinsicRealName = '%' + intrinsicBaseName + '%';
-
-		if (hasOwn(INTRINSICS, intrinsicRealName)) {
-			value = INTRINSICS[intrinsicRealName];
-		} else if (value != null) {
-			if ($gOPD && (i + 1) >= parts.length) {
-				var desc = $gOPD(value, part);
-				isOwn = !!desc;
-
-				if (!allowMissing && !(part in value)) {
-					throw new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');
-				}
-				// By convention, when a data property is converted to an accessor
-				// property to emulate a data property that does not suffer from
-				// the override mistake, that accessor's getter is marked with
-				// an `originalValue` property. Here, when we detect this, we
-				// uphold the illusion by pretending to see that original data
-				// property, i.e., returning the value rather than the getter
-				// itself.
-				if (isOwn && 'get' in desc && !('originalValue' in desc.get)) {
-					value = desc.get;
-				} else {
-					value = value[part];
-				}
-			} else {
-				isOwn = hasOwn(value, part);
-				value = value[part];
-			}
-
-			if (isOwn && !skipFurtherCaching) {
-				INTRINSICS[intrinsicRealName] = value;
-			}
-		}
-	}
-	return value;
-};
-
-
-/***/ }),
-
-/***/ "vLdR":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-// http://262.ecma-international.org/5.1/#sec-9.1
-
-module.exports = __webpack_require__("Lxf3");
-
-
-/***/ }),
-
-/***/ "vUUf":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("wx14");
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("GRId");
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__);
-
-
-
-/**
- * @typedef OwnProps
- *
- * @property {string} icon        Icon name
- * @property {string} [className] Class name
- */
-
-/** @typedef {import('react').ComponentPropsWithoutRef<'span'> & OwnProps} Props */
-
-/**
- * @param {Props} props
- * @return {JSX.Element} Element
- */
-function Dashicon({
-  icon,
-  className,
-  ...extraProps
-}) {
-  const iconClass = ['dashicon', 'dashicons', 'dashicons-' + icon, className].filter(Boolean).join(' ');
-  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("span", Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({
-    className: iconClass
-  }, extraProps));
-}
-
-/* harmony default export */ __webpack_exports__["a"] = (Dashicon);
-
-
-/***/ }),
-
-/***/ "vV+G":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
+}));
 var calendarLabel = 'Calendar';
 var closeDatePicker = 'Close';
 var focusStartDate = 'Interact with the calendar and add the check-in date for your trip.';
@@ -58573,7 +12300,7 @@
   return 'Selected. ' + String(date);
 };
 
-exports['default'] = {
+exports["default"] = {
   calendarLabel: calendarLabel,
   closeDatePicker: closeDatePicker,
   focusStartDate: focusStartDate,
@@ -58737,253 +12464,143 @@
 
 /***/ }),
 
-/***/ "w3Ut":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var MAX_SAFE_INTEGER = __webpack_require__("yyeE");
-
-var ToInteger = __webpack_require__("ddK1");
-
-module.exports = function ToLength(argument) {
-	var len = ToInteger(argument);
-	if (len <= 0) { return 0; } // includes converting -0 to +0
-	if (len > MAX_SAFE_INTEGER) { return MAX_SAFE_INTEGER; }
-	return len;
-};
-
-
-/***/ }),
-
-/***/ "w95h":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
-/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
-/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
-
-
-/**
- * WordPress dependencies
- */
-
-const close = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
-  xmlns: "http://www.w3.org/2000/svg",
-  viewBox: "0 0 24 24"
-}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
-  d: "M13 11.8l6.1-6.3-1-1-6.1 6.2-6.1-6.2-1 1 6.1 6.3-6.5 6.7 1 1 6.5-6.6 6.5 6.6 1-1z"
-}));
-/* harmony default export */ __webpack_exports__["a"] = (close);
-
-
-/***/ }),
-
-/***/ "wTIp":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var GetIntrinsic = __webpack_require__("rZ7t");
-
-var $defineProperty = GetIntrinsic('%Object.defineProperty%', true);
-
-if ($defineProperty) {
-	try {
-		$defineProperty({}, 'a', { value: 1 });
-	} catch (e) {
-		// IE 8 has a broken defineProperty
-		$defineProperty = null;
-	}
-}
-
-var callBound = __webpack_require__("EXo9");
-
-var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable');
-
-// eslint-disable-next-line max-params
-module.exports = function DefineOwnProperty(IsDataDescriptor, SameValue, FromPropertyDescriptor, O, P, desc) {
-	if (!$defineProperty) {
-		if (!IsDataDescriptor(desc)) {
-			// ES3 does not support getters/setters
-			return false;
-		}
-		if (!desc['[[Configurable]]'] || !desc['[[Writable]]']) {
-			return false;
-		}
-
-		// fallback for ES3
-		if (P in O && $isEnumerable(O, P) !== !!desc['[[Enumerable]]']) {
-			// a non-enumerable existing property
-			return false;
-		}
-
-		// property does not exist at all, or exists but is enumerable
-		var V = desc['[[Value]]'];
-		// eslint-disable-next-line no-param-reassign
-		O[P] = V; // will use [[Define]]
-		return SameValue(O[P], V);
-	}
-	$defineProperty(O, P, FromPropertyDescriptor(desc));
-	return true;
-};
-
-
-/***/ }),
-
-/***/ "wx14":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _extends; });
-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);
-}
-
-/***/ }),
-
-/***/ "wy2R":
-/***/ (function(module, exports) {
-
-(function() { module.exports = window["moment"]; }());
-
-/***/ }),
-
-/***/ "xCFm":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var GetIntrinsic = __webpack_require__("rZ7t");
-
-var $TypeError = GetIntrinsic('%TypeError%');
-var $Number = GetIntrinsic('%Number%');
-var $RegExp = GetIntrinsic('%RegExp%');
-var $parseInteger = GetIntrinsic('%parseInt%');
-
-var callBound = __webpack_require__("EXo9");
-var regexTester = __webpack_require__("ZbWB");
-var isPrimitive = __webpack_require__("BeK9");
-
-var $strSlice = callBound('String.prototype.slice');
-var isBinary = regexTester(/^0b[01]+$/i);
-var isOctal = regexTester(/^0o[0-7]+$/i);
-var isInvalidHexLiteral = regexTester(/^[-+]0x[0-9a-f]+$/i);
-var nonWS = ['\u0085', '\u200b', '\ufffe'].join('');
-var nonWSregex = new $RegExp('[' + nonWS + ']', 'g');
-var hasNonWS = regexTester(nonWSregex);
-
-// whitespace from: https://es5.github.io/#x15.5.4.20
-// implementation from https://github.com/es-shims/es5-shim/blob/v3.4.0/es5-shim.js#L1304-L1324
-var ws = [
-	'\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003',
-	'\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028',
-	'\u2029\uFEFF'
-].join('');
-var trimRegex = new RegExp('(^[' + ws + ']+)|([' + ws + ']+$)', 'g');
-var $replace = callBound('String.prototype.replace');
-var $trim = function (value) {
-	return $replace(value, trimRegex, '');
-};
-
-var ToPrimitive = __webpack_require__("L7Wv");
-
-// https://ecma-international.org/ecma-262/6.0/#sec-tonumber
-
-module.exports = function ToNumber(argument) {
-	var value = isPrimitive(argument) ? argument : ToPrimitive(argument, $Number);
-	if (typeof value === 'symbol') {
-		throw new $TypeError('Cannot convert a Symbol value to a number');
-	}
-	if (typeof value === 'bigint') {
-		throw new $TypeError('Conversion from \'BigInt\' to \'number\' is not allowed.');
-	}
-	if (typeof value === 'string') {
-		if (isBinary(value)) {
-			return ToNumber($parseInteger($strSlice(value, 2), 2));
-		} else if (isOctal(value)) {
-			return ToNumber($parseInteger($strSlice(value, 2), 8));
-		} else if (hasNonWS(value) || isInvalidHexLiteral(value)) {
-			return NaN;
-		} else {
-			var trimmed = $trim(value);
-			if (trimmed !== value) {
-				return ToNumber(trimmed);
-			}
-		}
-	}
-	return $Number(value);
-};
-
-
-/***/ }),
-
-/***/ "xEte":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
+/***/ 17:
+/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var _registerCSSInterfaceWithDefaultTheme = __webpack_require__(9305);
+
+var _registerCSSInterfaceWithDefaultTheme2 = _interopRequireDefault(_registerCSSInterfaceWithDefaultTheme);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+(0, _registerCSSInterfaceWithDefaultTheme2['default'])();
+
+/***/ }),
+
+/***/ 8182:
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
   value: true
-});
-
-var _react = __webpack_require__("cDcd");
-
-var _react2 = _interopRequireDefault(_react);
+}));
+
+var _propTypes = __webpack_require__(2652);
+
+var _propTypes2 = _interopRequireDefault(_propTypes);
+
+var _constants = __webpack_require__(257);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+exports["default"] = _propTypes2['default'].oneOf([_constants.INFO_POSITION_TOP, _constants.INFO_POSITION_BOTTOM, _constants.INFO_POSITION_BEFORE, _constants.INFO_POSITION_AFTER]);
+
+/***/ }),
+
+/***/ 243:
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+
+var _propTypes = __webpack_require__(2652);
+
+var _propTypes2 = _interopRequireDefault(_propTypes);
+
+var _constants = __webpack_require__(257);
 
 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
 
-var CloseButton = function () {
-  function CloseButton(props) {
-    return _react2['default'].createElement(
-      'svg',
-      props,
-      _react2['default'].createElement('path', {
-        fillRule: 'evenodd',
-        d: 'M11.53.47a.75.75 0 0 0-1.061 0l-4.47 4.47L1.529.47A.75.75 0 1 0 .468 1.531l4.47 4.47-4.47 4.47a.75.75 0 1 0 1.061 1.061l4.47-4.47 4.47 4.47a.75.75 0 1 0 1.061-1.061l-4.47-4.47 4.47-4.47a.75.75 0 0 0 0-1.061z'
-      })
-    );
-  }
-
-  return CloseButton;
-}();
-
-CloseButton.defaultProps = {
-  viewBox: '0 0 12 12'
-};
-exports['default'] = CloseButton;
-
-/***/ }),
-
-/***/ "xOhs":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
+exports["default"] = _propTypes2['default'].oneOf(_constants.WEEKDAYS);
+
+/***/ }),
+
+/***/ 6747:
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
   value: true
-});
+}));
+
+var _propTypes = __webpack_require__(2652);
+
+var _propTypes2 = _interopRequireDefault(_propTypes);
+
+var _airbnbPropTypes = __webpack_require__(4882);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
+
+exports["default"] = (0, _airbnbPropTypes.and)([_propTypes2['default'].instanceOf(Set), function () {
+  function modifiers(props, propName) {
+    for (var _len = arguments.length, rest = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
+      rest[_key - 2] = arguments[_key];
+    }
+
+    var propValue = props[propName];
+
+    var firstError = void 0;
+    [].concat(_toConsumableArray(propValue)).some(function (v, i) {
+      var _PropTypes$string;
+
+      var fakePropName = String(propName) + ': index ' + String(i);
+      firstError = (_PropTypes$string = _propTypes2['default'].string).isRequired.apply(_PropTypes$string, [_defineProperty({}, fakePropName, v), fakePropName].concat(rest));
+      return firstError != null;
+    });
+    return firstError == null ? null : firstError;
+  }
+
+  return modifiers;
+}()], 'Modifiers (Set of Strings)');
+
+/***/ }),
+
+/***/ 6553:
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+
+var _propTypes = __webpack_require__(2652);
+
+var _propTypes2 = _interopRequireDefault(_propTypes);
+
+var _constants = __webpack_require__(257);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+exports["default"] = _propTypes2['default'].oneOf([_constants.HORIZONTAL_ORIENTATION, _constants.VERTICAL_ORIENTATION, _constants.VERTICAL_SCROLLABLE]);
+
+/***/ }),
+
+/***/ 8158:
+/***/ (function(__unused_webpack_module, exports) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
 var core = {
   white: '#fff',
   gray: '#484848',
@@ -59010,7 +12627,7 @@
   yellow_dark: '#ffce71'
 };
 
-exports['default'] = {
+exports["default"] = {
   reactDates: {
     zIndex: 0,
     border: {
@@ -59182,34 +12799,2531 @@
 
 /***/ }),
 
-/***/ "xoj2":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var implementation = __webpack_require__("rQy3");
-
-module.exports = function getPolyfill() {
-	return typeof Object.values === 'function' ? Object.values : implementation;
-};
-
-
-/***/ }),
-
-/***/ "y9oe":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var GetIntrinsic = __webpack_require__("rZ7t");
+/***/ 8607:
+/***/ (function(__unused_webpack_module, exports) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports["default"] = calculateDimension;
+function calculateDimension(el, axis) {
+  var borderBox = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
+  var withMargin = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
+
+  if (!el) {
+    return 0;
+  }
+
+  var axisStart = axis === 'width' ? 'Left' : 'Top';
+  var axisEnd = axis === 'width' ? 'Right' : 'Bottom';
+
+  // Only read styles if we need to
+  var style = !borderBox || withMargin ? window.getComputedStyle(el) : null;
+
+  // Offset includes border and padding
+  var offsetWidth = el.offsetWidth,
+      offsetHeight = el.offsetHeight;
+
+  var size = axis === 'width' ? offsetWidth : offsetHeight;
+
+  // Get the inner size
+  if (!borderBox) {
+    size -= parseFloat(style['padding' + axisStart]) + parseFloat(style['padding' + axisEnd]) + parseFloat(style['border' + axisStart + 'Width']) + parseFloat(style['border' + axisEnd + 'Width']);
+  }
+
+  // Apply margin
+  if (withMargin) {
+    size += parseFloat(style['margin' + axisStart]) + parseFloat(style['margin' + axisEnd]);
+  }
+
+  return size;
+}
+
+/***/ }),
+
+/***/ 5814:
+/***/ (function(__unused_webpack_module, exports) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports["default"] = getActiveElement;
+function getActiveElement() {
+  return typeof document !== 'undefined' && document.activeElement;
+}
+
+/***/ }),
+
+/***/ 7475:
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports["default"] = getCalendarDaySettings;
+
+var _getPhrase = __webpack_require__(7098);
+
+var _getPhrase2 = _interopRequireDefault(_getPhrase);
+
+var _constants = __webpack_require__(257);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+function getCalendarDaySettings(day, ariaLabelFormat, daySize, modifiers, phrases) {
+  var chooseAvailableDate = phrases.chooseAvailableDate,
+      dateIsUnavailable = phrases.dateIsUnavailable,
+      dateIsSelected = phrases.dateIsSelected;
+
+
+  var daySizeStyles = {
+    width: daySize,
+    height: daySize - 1
+  };
+
+  var useDefaultCursor = modifiers.has('blocked-minimum-nights') || modifiers.has('blocked-calendar') || modifiers.has('blocked-out-of-range');
+
+  var selected = modifiers.has('selected') || modifiers.has('selected-start') || modifiers.has('selected-end');
+
+  var hoveredSpan = !selected && (modifiers.has('hovered-span') || modifiers.has('after-hovered-start'));
+
+  var isOutsideRange = modifiers.has('blocked-out-of-range');
+
+  var formattedDate = { date: day.format(ariaLabelFormat) };
+
+  var ariaLabel = (0, _getPhrase2['default'])(chooseAvailableDate, formattedDate);
+  if (modifiers.has(_constants.BLOCKED_MODIFIER)) {
+    ariaLabel = (0, _getPhrase2['default'])(dateIsUnavailable, formattedDate);
+  } else if (selected) {
+    ariaLabel = (0, _getPhrase2['default'])(dateIsSelected, formattedDate);
+  }
+
+  return {
+    daySizeStyles: daySizeStyles,
+    useDefaultCursor: useDefaultCursor,
+    selected: selected,
+    hoveredSpan: hoveredSpan,
+    isOutsideRange: isOutsideRange,
+    ariaLabel: ariaLabel
+  };
+}
+
+/***/ }),
+
+/***/ 5644:
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports["default"] = getCalendarMonthWeeks;
+
+var _moment = __webpack_require__(6292);
+
+var _moment2 = _interopRequireDefault(_moment);
+
+var _constants = __webpack_require__(257);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+function getCalendarMonthWeeks(month, enableOutsideDays) {
+  var firstDayOfWeek = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _moment2['default'].localeData().firstDayOfWeek();
+
+  if (!_moment2['default'].isMoment(month) || !month.isValid()) {
+    throw new TypeError('`month` must be a valid moment object');
+  }
+  if (_constants.WEEKDAYS.indexOf(firstDayOfWeek) === -1) {
+    throw new TypeError('`firstDayOfWeek` must be an integer between 0 and 6');
+  }
+
+  // set utc offset to get correct dates in future (when timezone changes)
+  var firstOfMonth = month.clone().startOf('month').hour(12);
+  var lastOfMonth = month.clone().endOf('month').hour(12);
+
+  // calculate the exact first and last days to fill the entire matrix
+  // (considering days outside month)
+  var prevDays = (firstOfMonth.day() + 7 - firstDayOfWeek) % 7;
+  var nextDays = (firstDayOfWeek + 6 - lastOfMonth.day()) % 7;
+  var firstDay = firstOfMonth.clone().subtract(prevDays, 'day');
+  var lastDay = lastOfMonth.clone().add(nextDays, 'day');
+
+  var totalDays = lastDay.diff(firstDay, 'days') + 1;
+
+  var currentDay = firstDay.clone();
+  var weeksInMonth = [];
+
+  for (var i = 0; i < totalDays; i += 1) {
+    if (i % 7 === 0) {
+      weeksInMonth.push([]);
+    }
+
+    var day = null;
+    if (i >= prevDays && i < totalDays - nextDays || enableOutsideDays) {
+      day = currentDay.clone();
+    }
+
+    weeksInMonth[weeksInMonth.length - 1].push(day);
+
+    currentDay.add(1, 'day');
+  }
+
+  return weeksInMonth;
+}
+
+/***/ }),
+
+/***/ 8964:
+/***/ (function(__unused_webpack_module, exports) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports["default"] = getCalendarMonthWidth;
+function getCalendarMonthWidth(daySize, calendarMonthPadding) {
+  return 7 * daySize + 2 * calendarMonthPadding + 1;
+}
+
+/***/ }),
+
+/***/ 4112:
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports["default"] = getNumberOfCalendarMonthWeeks;
+
+var _moment = __webpack_require__(6292);
+
+var _moment2 = _interopRequireDefault(_moment);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+function getBlankDaysBeforeFirstDay(firstDayOfMonth, firstDayOfWeek) {
+  var weekDayDiff = firstDayOfMonth.day() - firstDayOfWeek;
+  return (weekDayDiff + 7) % 7;
+}
+
+function getNumberOfCalendarMonthWeeks(month) {
+  var firstDayOfWeek = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _moment2['default'].localeData().firstDayOfWeek();
+
+  var firstDayOfMonth = month.clone().startOf('month');
+  var numBlankDays = getBlankDaysBeforeFirstDay(firstDayOfMonth, firstDayOfWeek);
+  return Math.ceil((numBlankDays + month.daysInMonth()) / 7);
+}
+
+/***/ }),
+
+/***/ 7098:
+/***/ (function(__unused_webpack_module, exports) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports["default"] = getPhrase;
+function getPhrase(phrase, args) {
+  if (typeof phrase === 'string') return phrase;
+
+  if (typeof phrase === 'function') {
+    return phrase(args);
+  }
+
+  return '';
+}
+
+/***/ }),
+
+/***/ 2893:
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports["default"] = getPhrasePropTypes;
+
+var _object = __webpack_require__(4011);
+
+var _object2 = _interopRequireDefault(_object);
+
+var _propTypes = __webpack_require__(2652);
+
+var _propTypes2 = _interopRequireDefault(_propTypes);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+function getPhrasePropTypes(defaultPhrases) {
+  return Object.keys(defaultPhrases).reduce(function (phrases, key) {
+    return (0, _object2['default'])({}, phrases, _defineProperty({}, key, _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].func, _propTypes2['default'].node])));
+  }, {});
+}
+
+/***/ }),
+
+/***/ 8304:
+/***/ (function(__unused_webpack_module, exports) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports["default"] = getTransformStyles;
+function getTransformStyles(transformValue) {
+  return {
+    transform: transformValue,
+    msTransform: transformValue,
+    MozTransform: transformValue,
+    WebkitTransform: transformValue
+  };
+}
+
+/***/ }),
+
+/***/ 3268:
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports["default"] = getVisibleDays;
+
+var _moment = __webpack_require__(6292);
+
+var _moment2 = _interopRequireDefault(_moment);
+
+var _toISOMonthString = __webpack_require__(2705);
+
+var _toISOMonthString2 = _interopRequireDefault(_toISOMonthString);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+function getVisibleDays(month, numberOfMonths, enableOutsideDays, withoutTransitionMonths) {
+  if (!_moment2['default'].isMoment(month)) return {};
+
+  var visibleDaysByMonth = {};
+  var currentMonth = withoutTransitionMonths ? month.clone() : month.clone().subtract(1, 'month');
+  for (var i = 0; i < (withoutTransitionMonths ? numberOfMonths : numberOfMonths + 2); i += 1) {
+    var visibleDays = [];
+
+    // set utc offset to get correct dates in future (when timezone changes)
+    var baseDate = currentMonth.clone();
+    var firstOfMonth = baseDate.clone().startOf('month').hour(12);
+    var lastOfMonth = baseDate.clone().endOf('month').hour(12);
+
+    var currentDay = firstOfMonth.clone();
+
+    // days belonging to the previous month
+    if (enableOutsideDays) {
+      for (var j = 0; j < currentDay.weekday(); j += 1) {
+        var prevDay = currentDay.clone().subtract(j + 1, 'day');
+        visibleDays.unshift(prevDay);
+      }
+    }
+
+    while (currentDay < lastOfMonth) {
+      visibleDays.push(currentDay.clone());
+      currentDay.add(1, 'day');
+    }
+
+    if (enableOutsideDays) {
+      // weekday() returns the index of the day of the week according to the locale
+      // this means if the week starts on Monday, weekday() will return 0 for a Monday date, not 1
+      if (currentDay.weekday() !== 0) {
+        // days belonging to the next month
+        for (var k = currentDay.weekday(), count = 0; k < 7; k += 1, count += 1) {
+          var nextDay = currentDay.clone().add(count, 'day');
+          visibleDays.push(nextDay);
+        }
+      }
+    }
+
+    visibleDaysByMonth[(0, _toISOMonthString2['default'])(currentMonth)] = visibleDays;
+    currentMonth = currentMonth.clone().add(1, 'month');
+  }
+
+  return visibleDaysByMonth;
+}
+
+/***/ }),
+
+/***/ 7365:
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports["default"] = isAfterDay;
+
+var _moment = __webpack_require__(6292);
+
+var _moment2 = _interopRequireDefault(_moment);
+
+var _isBeforeDay = __webpack_require__(862);
+
+var _isBeforeDay2 = _interopRequireDefault(_isBeforeDay);
+
+var _isSameDay = __webpack_require__(3923);
+
+var _isSameDay2 = _interopRequireDefault(_isSameDay);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+function isAfterDay(a, b) {
+  if (!_moment2['default'].isMoment(a) || !_moment2['default'].isMoment(b)) return false;
+  return !(0, _isBeforeDay2['default'])(a, b) && !(0, _isSameDay2['default'])(a, b);
+}
+
+/***/ }),
+
+/***/ 862:
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports["default"] = isBeforeDay;
+
+var _moment = __webpack_require__(6292);
+
+var _moment2 = _interopRequireDefault(_moment);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+function isBeforeDay(a, b) {
+  if (!_moment2['default'].isMoment(a) || !_moment2['default'].isMoment(b)) return false;
+
+  var aYear = a.year();
+  var aMonth = a.month();
+
+  var bYear = b.year();
+  var bMonth = b.month();
+
+  var isSameYear = aYear === bYear;
+  var isSameMonth = aMonth === bMonth;
+
+  if (isSameYear && isSameMonth) return a.date() < b.date();
+  if (isSameYear) return aMonth < bMonth;
+  return aYear < bYear;
+}
+
+/***/ }),
+
+/***/ 5713:
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports["default"] = isDayVisible;
+
+var _isBeforeDay = __webpack_require__(862);
+
+var _isBeforeDay2 = _interopRequireDefault(_isBeforeDay);
+
+var _isAfterDay = __webpack_require__(7365);
+
+var _isAfterDay2 = _interopRequireDefault(_isAfterDay);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+function isDayVisible(day, month, numberOfMonths, enableOutsideDays) {
+  var firstDayOfFirstMonth = month.clone().startOf('month');
+  if (enableOutsideDays) firstDayOfFirstMonth = firstDayOfFirstMonth.startOf('week');
+  if ((0, _isBeforeDay2['default'])(day, firstDayOfFirstMonth)) return false;
+
+  var lastDayOfLastMonth = month.clone().add(numberOfMonths - 1, 'months').endOf('month');
+  if (enableOutsideDays) lastDayOfLastMonth = lastDayOfLastMonth.endOf('week');
+  return !(0, _isAfterDay2['default'])(day, lastDayOfLastMonth);
+}
+
+/***/ }),
+
+/***/ 1310:
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports["default"] = isNextMonth;
+
+var _moment = __webpack_require__(6292);
+
+var _moment2 = _interopRequireDefault(_moment);
+
+var _isSameMonth = __webpack_require__(4669);
+
+var _isSameMonth2 = _interopRequireDefault(_isSameMonth);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+function isNextMonth(a, b) {
+  if (!_moment2['default'].isMoment(a) || !_moment2['default'].isMoment(b)) return false;
+  return (0, _isSameMonth2['default'])(a.clone().add(1, 'month'), b);
+}
+
+/***/ }),
+
+/***/ 3858:
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports["default"] = isPrevMonth;
+
+var _moment = __webpack_require__(6292);
+
+var _moment2 = _interopRequireDefault(_moment);
+
+var _isSameMonth = __webpack_require__(4669);
+
+var _isSameMonth2 = _interopRequireDefault(_isSameMonth);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+function isPrevMonth(a, b) {
+  if (!_moment2['default'].isMoment(a) || !_moment2['default'].isMoment(b)) return false;
+  return (0, _isSameMonth2['default'])(a.clone().subtract(1, 'month'), b);
+}
+
+/***/ }),
+
+/***/ 3923:
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports["default"] = isSameDay;
+
+var _moment = __webpack_require__(6292);
+
+var _moment2 = _interopRequireDefault(_moment);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+function isSameDay(a, b) {
+  if (!_moment2['default'].isMoment(a) || !_moment2['default'].isMoment(b)) return false;
+  // Compare least significant, most likely to change units first
+  // Moment's isSame clones moment inputs and is a tad slow
+  return a.date() === b.date() && a.month() === b.month() && a.year() === b.year();
+}
+
+/***/ }),
+
+/***/ 4669:
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports["default"] = isSameMonth;
+
+var _moment = __webpack_require__(6292);
+
+var _moment2 = _interopRequireDefault(_moment);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+function isSameMonth(a, b) {
+  if (!_moment2['default'].isMoment(a) || !_moment2['default'].isMoment(b)) return false;
+  // Compare least significant, most likely to change units first
+  // Moment's isSame clones moment inputs and is a tad slow
+  return a.month() === b.month() && a.year() === b.year();
+}
+
+/***/ }),
+
+/***/ 7978:
+/***/ (function(__unused_webpack_module, exports) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports["default"] = isTransitionEndSupported;
+function isTransitionEndSupported() {
+  return !!(typeof window !== 'undefined' && 'TransitionEvent' in window);
+}
+
+/***/ }),
+
+/***/ 9305:
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports["default"] = registerCSSInterfaceWithDefaultTheme;
+
+var _reactWithStylesInterfaceCss = __webpack_require__(5553);
+
+var _reactWithStylesInterfaceCss2 = _interopRequireDefault(_reactWithStylesInterfaceCss);
+
+var _registerInterfaceWithDefaultTheme = __webpack_require__(1980);
+
+var _registerInterfaceWithDefaultTheme2 = _interopRequireDefault(_registerInterfaceWithDefaultTheme);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+function registerCSSInterfaceWithDefaultTheme() {
+  (0, _registerInterfaceWithDefaultTheme2['default'])(_reactWithStylesInterfaceCss2['default']);
+}
+
+/***/ }),
+
+/***/ 1980:
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports["default"] = registerInterfaceWithDefaultTheme;
+
+var _ThemedStyleSheet = __webpack_require__(9349);
+
+var _ThemedStyleSheet2 = _interopRequireDefault(_ThemedStyleSheet);
+
+var _DefaultTheme = __webpack_require__(8158);
+
+var _DefaultTheme2 = _interopRequireDefault(_DefaultTheme);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+function registerInterfaceWithDefaultTheme(reactWithStylesInterface) {
+  _ThemedStyleSheet2['default'].registerInterface(reactWithStylesInterface);
+  _ThemedStyleSheet2['default'].registerTheme(_DefaultTheme2['default']);
+}
+
+/***/ }),
+
+/***/ 7310:
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports["default"] = toISODateString;
+
+var _moment = __webpack_require__(6292);
+
+var _moment2 = _interopRequireDefault(_moment);
+
+var _toMomentObject = __webpack_require__(2008);
+
+var _toMomentObject2 = _interopRequireDefault(_toMomentObject);
+
+var _constants = __webpack_require__(257);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+function toISODateString(date, currentFormat) {
+  var dateObj = _moment2['default'].isMoment(date) ? date : (0, _toMomentObject2['default'])(date, currentFormat);
+  if (!dateObj) return null;
+
+  return dateObj.format(_constants.ISO_FORMAT);
+}
+
+/***/ }),
+
+/***/ 2705:
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports["default"] = toISOMonthString;
+
+var _moment = __webpack_require__(6292);
+
+var _moment2 = _interopRequireDefault(_moment);
+
+var _toMomentObject = __webpack_require__(2008);
+
+var _toMomentObject2 = _interopRequireDefault(_toMomentObject);
+
+var _constants = __webpack_require__(257);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+function toISOMonthString(date, currentFormat) {
+  var dateObj = _moment2['default'].isMoment(date) ? date : (0, _toMomentObject2['default'])(date, currentFormat);
+  if (!dateObj) return null;
+
+  return dateObj.format(_constants.ISO_MONTH_FORMAT);
+}
+
+/***/ }),
+
+/***/ 2008:
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports["default"] = toMomentObject;
+
+var _moment = __webpack_require__(6292);
+
+var _moment2 = _interopRequireDefault(_moment);
+
+var _constants = __webpack_require__(257);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+function toMomentObject(dateString, customFormat) {
+  var dateFormats = customFormat ? [customFormat, _constants.DISPLAY_FORMAT, _constants.ISO_FORMAT] : [_constants.DISPLAY_FORMAT, _constants.ISO_FORMAT];
+
+  var date = (0, _moment2['default'])(dateString, dateFormats, true);
+  return date.isValid() ? date.hour(12) : null;
+}
+
+/***/ }),
+
+/***/ 4821:
+/***/ (function(__unused_webpack_module, exports) {
+
+"use strict";
+/** @license React v16.13.1
+ * react-is.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+var b="function"===typeof Symbol&&Symbol.for,c=b?Symbol.for("react.element"):60103,d=b?Symbol.for("react.portal"):60106,e=b?Symbol.for("react.fragment"):60107,f=b?Symbol.for("react.strict_mode"):60108,g=b?Symbol.for("react.profiler"):60114,h=b?Symbol.for("react.provider"):60109,k=b?Symbol.for("react.context"):60110,l=b?Symbol.for("react.async_mode"):60111,m=b?Symbol.for("react.concurrent_mode"):60111,n=b?Symbol.for("react.forward_ref"):60112,p=b?Symbol.for("react.suspense"):60113,q=b?
+Symbol.for("react.suspense_list"):60120,r=b?Symbol.for("react.memo"):60115,t=b?Symbol.for("react.lazy"):60116,v=b?Symbol.for("react.block"):60121,w=b?Symbol.for("react.fundamental"):60117,x=b?Symbol.for("react.responder"):60118,y=b?Symbol.for("react.scope"):60119;
+function z(a){if("object"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;
+exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return"object"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};
+exports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};
+exports.isValidElementType=function(a){return"string"===typeof a||"function"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||"object"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;
+
+
+/***/ }),
+
+/***/ 338:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+if (true) {
+  module.exports = __webpack_require__(4821);
+} else {}
+
+
+/***/ }),
+
+/***/ 9217:
+/***/ (function(module) {
+
+var messages = {
+  invalidPredicate: '`predicate` must be a function',
+  invalidPropValidator: '`propValidator` must be a function',
+  requiredCore: 'is marked as required',
+  invalidTypeCore: 'Invalid input type',
+  predicateFailureCore: 'Failed to succeed with predicate',
+  anonymousMessage: '<<anonymous>>',
+  baseInvalidMessage: 'Invalid ',
+};
+
+function constructPropValidatorVariations(propValidator) {
+  if (typeof propValidator !== 'function') {
+    throw new Error(messages.invalidPropValidator);
+  }
+
+  var requiredPropValidator = propValidator.bind(null, false, null);
+  requiredPropValidator.isRequired = propValidator.bind(null, true, null);
+
+  requiredPropValidator.withPredicate = function predicateApplication(predicate) {
+    if (typeof predicate !== 'function') {
+      throw new Error(messages.invalidPredicate);
+    }
+    var basePropValidator = propValidator.bind(null, false, predicate);
+    basePropValidator.isRequired = propValidator.bind(null, true, predicate);
+    return basePropValidator;
+  };
+
+  return requiredPropValidator;
+}
+
+function createInvalidRequiredErrorMessage(propName, componentName, value) {
+  return new Error(
+    'The prop `' + propName + '` ' + messages.requiredCore +
+    ' in `' + componentName + '`, but its value is `' + value + '`.'
+  );
+}
+
+var independentGuardianValue = -1;
+
+function preValidationRequireCheck(isRequired, componentName, propFullName, propValue) {
+  var isPropValueUndefined = typeof propValue === 'undefined';
+  var isPropValueNull = propValue === null;
+
+  if (isRequired) {
+    if (isPropValueUndefined) {
+      return createInvalidRequiredErrorMessage(propFullName, componentName, 'undefined');
+    } else if (isPropValueNull) {
+      return createInvalidRequiredErrorMessage(propFullName, componentName, 'null');
+    }
+  }
+
+  if (isPropValueUndefined || isPropValueNull) {
+    return null;
+  }
+
+  return independentGuardianValue;
+}
+
+function createMomentChecker(type, typeValidator, validator, momentType) {
+
+  function propValidator(
+    isRequired, // Bound parameter to indicate with the propType is required
+    predicate, // Bound parameter to allow user to add dynamic validation
+    props,
+    propName,
+    componentName,
+    location,
+    propFullName
+  ) {
+    var propValue = props[ propName ];
+    var propType = typeof propValue;
+
+    componentName = componentName || messages.anonymousMessage;
+    propFullName = propFullName || propName;
+
+    var preValidationRequireCheckValue = preValidationRequireCheck(
+      isRequired, componentName, propFullName, propValue
+    );
+
+    if (preValidationRequireCheckValue !== independentGuardianValue) {
+      return preValidationRequireCheckValue;
+    }
+
+    if (typeValidator && !typeValidator(propValue)) {
+      return new Error(
+        messages.invalidTypeCore + ': `' + propName + '` of type `' + propType + '` ' +
+        'supplied to `' + componentName + '`, expected `' + type + '`.'
+      );
+    }
+
+    if (!validator(propValue)) {
+      return new Error(
+        messages.baseInvalidMessage + location + ' `' + propName + '` of type `' + propType + '` ' +
+        'supplied to `' + componentName + '`, expected `' + momentType + '`.'
+      );
+    }
+
+    if (predicate && !predicate(propValue)) {
+      var predicateName = predicate.name || messages.anonymousMessage;
+      return new Error(
+        messages.baseInvalidMessage + location + ' `' + propName + '` of type `' + propType + '` ' +
+        'supplied to `' + componentName + '`. ' + messages.predicateFailureCore + ' `' +
+        predicateName + '`.'
+      );
+    }
+
+    return null;
+
+  }
+
+  return constructPropValidatorVariations(propValidator);
+
+}
+
+module.exports = {
+  constructPropValidatorVariations: constructPropValidatorVariations,
+  createMomentChecker: createMomentChecker,
+  messages: messages,
+};
+
+
+/***/ }),
+
+/***/ 6150:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+var moment = __webpack_require__(6292);
+var momentValidationWrapper = __webpack_require__(3416);
+var core = __webpack_require__(9217);
+
+module.exports = {
+
+  momentObj : core.createMomentChecker(
+    'object',
+    function(obj) {
+      return typeof obj === 'object';
+    },
+    function isValid(value) {
+      return momentValidationWrapper.isValidMoment(value);
+    },
+    'Moment'
+  ),
+
+  momentString : core.createMomentChecker(
+    'string',
+    function(str) {
+      return typeof str === 'string';
+    },
+    function isValid(value) {
+      return momentValidationWrapper.isValidMoment(moment(value));
+    },
+    'Moment'
+  ),
+
+  momentDurationObj : core.createMomentChecker(
+    'object',
+    function(obj) {
+      return typeof obj === 'object';
+    },
+    function isValid(value) {
+      return moment.isDuration(value);
+    },
+    'Duration'
+  ),
+
+};
+
+
+/***/ }),
+
+/***/ 3416:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+var moment = __webpack_require__(6292);
+
+function isValidMoment(testMoment) {
+  if (typeof moment.isMoment === 'function' && !moment.isMoment(testMoment)) {
+    return false;
+  }
+
+  /* istanbul ignore else  */
+  if (typeof testMoment.isValid === 'function') {
+    // moment 1.7.0+
+    return testMoment.isValid();
+  }
+
+  /* istanbul ignore next */
+  return !isNaN(testMoment);
+}
+
+module.exports = {
+  isValidMoment : isValidMoment,
+};
+
+
+/***/ }),
+
+/***/ 2239:
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+
+var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
+
+var _react = __webpack_require__(9196);
+
+var _react2 = _interopRequireDefault(_react);
+
+var _propTypes = __webpack_require__(2652);
+
+var _propTypes2 = _interopRequireDefault(_propTypes);
+
+var _airbnbPropTypes = __webpack_require__(4882);
+
+var _consolidatedEvents = __webpack_require__(8495);
+
+var _object = __webpack_require__(5861);
+
+var _object2 = _interopRequireDefault(_object);
+
+var _document = __webpack_require__(6789);
+
+var _document2 = _interopRequireDefault(_document);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
+
+function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var DISPLAY = {
+  BLOCK: 'block',
+  FLEX: 'flex',
+  INLINE: 'inline',
+  INLINE_BLOCK: 'inline-block',
+  CONTENTS: 'contents'
+};
+
+var propTypes = (0, _airbnbPropTypes.forbidExtraProps)({
+  children: _propTypes2['default'].node.isRequired,
+  onOutsideClick: _propTypes2['default'].func.isRequired,
+  disabled: _propTypes2['default'].bool,
+  useCapture: _propTypes2['default'].bool,
+  display: _propTypes2['default'].oneOf((0, _object2['default'])(DISPLAY))
+});
+
+var defaultProps = {
+  disabled: false,
+
+  // `useCapture` is set to true by default so that a `stopPropagation` in the
+  // children will not prevent all outside click handlers from firing - maja
+  useCapture: true,
+  display: DISPLAY.BLOCK
+};
+
+var OutsideClickHandler = function (_React$Component) {
+  _inherits(OutsideClickHandler, _React$Component);
+
+  function OutsideClickHandler() {
+    var _ref;
+
+    _classCallCheck(this, OutsideClickHandler);
+
+    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
+      args[_key] = arguments[_key];
+    }
+
+    var _this = _possibleConstructorReturn(this, (_ref = OutsideClickHandler.__proto__ || Object.getPrototypeOf(OutsideClickHandler)).call.apply(_ref, [this].concat(args)));
+
+    _this.onMouseDown = _this.onMouseDown.bind(_this);
+    _this.onMouseUp = _this.onMouseUp.bind(_this);
+    _this.setChildNodeRef = _this.setChildNodeRef.bind(_this);
+    return _this;
+  }
+
+  _createClass(OutsideClickHandler, [{
+    key: 'componentDidMount',
+    value: function () {
+      function componentDidMount() {
+        var _props = this.props,
+            disabled = _props.disabled,
+            useCapture = _props.useCapture;
+
+
+        if (!disabled) this.addMouseDownEventListener(useCapture);
+      }
+
+      return componentDidMount;
+    }()
+  }, {
+    key: 'componentDidUpdate',
+    value: function () {
+      function componentDidUpdate(_ref2) {
+        var prevDisabled = _ref2.disabled;
+        var _props2 = this.props,
+            disabled = _props2.disabled,
+            useCapture = _props2.useCapture;
+
+        if (prevDisabled !== disabled) {
+          if (disabled) {
+            this.removeEventListeners();
+          } else {
+            this.addMouseDownEventListener(useCapture);
+          }
+        }
+      }
+
+      return componentDidUpdate;
+    }()
+  }, {
+    key: 'componentWillUnmount',
+    value: function () {
+      function componentWillUnmount() {
+        this.removeEventListeners();
+      }
+
+      return componentWillUnmount;
+    }()
+
+    // Use mousedown/mouseup to enforce that clicks remain outside the root's
+    // descendant tree, even when dragged. This should also get triggered on
+    // touch devices.
+
+  }, {
+    key: 'onMouseDown',
+    value: function () {
+      function onMouseDown(e) {
+        var useCapture = this.props.useCapture;
+
+
+        var isDescendantOfRoot = this.childNode && (0, _document2['default'])(this.childNode, e.target);
+        if (!isDescendantOfRoot) {
+          if (this.removeMouseUp) {
+            this.removeMouseUp();
+            this.removeMouseUp = null;
+          }
+          this.removeMouseUp = (0, _consolidatedEvents.addEventListener)(document, 'mouseup', this.onMouseUp, { capture: useCapture });
+        }
+      }
+
+      return onMouseDown;
+    }()
+
+    // Use mousedown/mouseup to enforce that clicks remain outside the root's
+    // descendant tree, even when dragged. This should also get triggered on
+    // touch devices.
+
+  }, {
+    key: 'onMouseUp',
+    value: function () {
+      function onMouseUp(e) {
+        var onOutsideClick = this.props.onOutsideClick;
+
+
+        var isDescendantOfRoot = this.childNode && (0, _document2['default'])(this.childNode, e.target);
+        if (this.removeMouseUp) {
+          this.removeMouseUp();
+          this.removeMouseUp = null;
+        }
+
+        if (!isDescendantOfRoot) {
+          onOutsideClick(e);
+        }
+      }
+
+      return onMouseUp;
+    }()
+  }, {
+    key: 'setChildNodeRef',
+    value: function () {
+      function setChildNodeRef(ref) {
+        this.childNode = ref;
+      }
+
+      return setChildNodeRef;
+    }()
+  }, {
+    key: 'addMouseDownEventListener',
+    value: function () {
+      function addMouseDownEventListener(useCapture) {
+        this.removeMouseDown = (0, _consolidatedEvents.addEventListener)(document, 'mousedown', this.onMouseDown, { capture: useCapture });
+      }
+
+      return addMouseDownEventListener;
+    }()
+  }, {
+    key: 'removeEventListeners',
+    value: function () {
+      function removeEventListeners() {
+        if (this.removeMouseDown) this.removeMouseDown();
+        if (this.removeMouseUp) this.removeMouseUp();
+      }
+
+      return removeEventListeners;
+    }()
+  }, {
+    key: 'render',
+    value: function () {
+      function render() {
+        var _props3 = this.props,
+            children = _props3.children,
+            display = _props3.display;
+
+
+        return _react2['default'].createElement(
+          'div',
+          {
+            ref: this.setChildNodeRef,
+            style: display !== DISPLAY.BLOCK && (0, _object2['default'])(DISPLAY).includes(display) ? { display: display } : undefined
+          },
+          children
+        );
+      }
+
+      return render;
+    }()
+  }]);
+
+  return OutsideClickHandler;
+}(_react2['default'].Component);
+
+exports["default"] = OutsideClickHandler;
+
+
+OutsideClickHandler.propTypes = propTypes;
+OutsideClickHandler.defaultProps = defaultProps;
+
+/***/ }),
+
+/***/ 6606:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+// eslint-disable-next-line import/no-unresolved
+module.exports = __webpack_require__(2239);
+
+
+/***/ }),
+
+/***/ 235:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+var e=__webpack_require__(9196),n={display:"block",opacity:0,position:"absolute",top:0,left:0,height:"100%",width:"100%",overflow:"hidden",pointerEvents:"none",zIndex:-1},t=function(t){var r=t.onResize,u=e.useRef();return function(n,t){var r=function(){return n.current&&n.current.contentDocument&&n.current.contentDocument.defaultView};function u(){t();var e=r();e&&e.addEventListener("resize",t)}e.useEffect((function(){return r()?u():n.current&&n.current.addEventListener&&n.current.addEventListener("load",u),function(){var e=r();e&&"function"==typeof e.removeEventListener&&e.removeEventListener("resize",t)}}),[])}(u,(function(){return r(u)})),e.createElement("iframe",{style:n,src:"about:blank",ref:u,"aria-hidden":!0,tabIndex:-1,frameBorder:0})},r=function(e){return{width:null!=e?e.offsetWidth:null,height:null!=e?e.offsetHeight:null}};module.exports=function(n){void 0===n&&(n=r);var u=e.useState(n(null)),o=u[0],i=u[1],c=e.useCallback((function(e){return i(n(e.current))}),[n]);return[e.useMemo((function(){return e.createElement(t,{onResize:c})}),[c]),o]};
+
+
+/***/ }),
+
+/***/ 5080:
+/***/ (function(__unused_webpack_module, exports) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+var CHANNEL = exports.CHANNEL = '__direction__';
+
+var DIRECTIONS = exports.DIRECTIONS = {
+  LTR: 'ltr',
+  RTL: 'rtl'
+};
+
+/***/ }),
+
+/***/ 6640:
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+
+var _propTypes = __webpack_require__(2652);
+
+var _propTypes2 = _interopRequireDefault(_propTypes);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+exports["default"] = _propTypes2['default'].shape({
+  getState: _propTypes2['default'].func,
+  setState: _propTypes2['default'].func,
+  subscribe: _propTypes2['default'].func
+});
+
+/***/ }),
+
+/***/ 3688:
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+var __webpack_unused_export__;
+__webpack_unused_export__ = ({
+  value: true
+});
+
+var _arrayPrototype = __webpack_require__(116);
+
+var _arrayPrototype2 = _interopRequireDefault(_arrayPrototype);
+
+var _globalCache = __webpack_require__(5371);
+
+var _globalCache2 = _interopRequireDefault(_globalCache);
+
+var _constants = __webpack_require__(6930);
+
+var _getClassName = __webpack_require__(1689);
+
+var _getClassName2 = _interopRequireDefault(_getClassName);
+
+var _separateStyles2 = __webpack_require__(1881);
+
+var _separateStyles3 = _interopRequireDefault(_separateStyles2);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+/**
+ * Function required as part of the react-with-styles interface. Parses the styles provided by
+ * react-with-styles to produce class names based on the style name and optionally the namespace if
+ * available.
+ *
+ * stylesObject {Object} The styles object passed to withStyles.
+ *
+ * Return an object mapping style names to class names.
+ */
+function create(stylesObject) {
+  var stylesToClasses = {};
+  var styleNames = Object.keys(stylesObject);
+  var sharedState = _globalCache2['default'].get(_constants.GLOBAL_CACHE_KEY) || {};
+  var _sharedState$namespac = sharedState.namespace,
+      namespace = _sharedState$namespac === undefined ? '' : _sharedState$namespac;
+
+  styleNames.forEach(function (styleName) {
+    var className = (0, _getClassName2['default'])(namespace, styleName);
+    stylesToClasses[styleName] = className;
+  });
+  return stylesToClasses;
+}
+
+/**
+ * Process styles to be consumed by a component.
+ *
+ * stylesArray {Array} Array of the following: values returned by create, plain JavaScript objects
+ * representing inline styles, or arrays thereof.
+ *
+ * Return an object with optional className and style properties to be spread on a component.
+ */
+function resolve(stylesArray) {
+  var flattenedStyles = (0, _arrayPrototype2['default'])(stylesArray, Infinity);
+
+  var _separateStyles = (0, _separateStyles3['default'])(flattenedStyles),
+      classNames = _separateStyles.classNames,
+      hasInlineStyles = _separateStyles.hasInlineStyles,
+      inlineStyles = _separateStyles.inlineStyles;
+
+  var specificClassNames = classNames.map(function (name, index) {
+    return String(name) + ' ' + String(name) + '_' + String(index + 1);
+  });
+  var className = specificClassNames.join(' ');
+
+  var result = { className: className };
+  if (hasInlineStyles) result.style = inlineStyles;
+  return result;
+}
+
+exports["default"] = { create: create, resolve: resolve };
+
+/***/ }),
+
+/***/ 6930:
+/***/ (function(__unused_webpack_module, exports) {
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+var GLOBAL_CACHE_KEY = 'reactWithStylesInterfaceCSS';
+var MAX_SPECIFICITY = 20;
+
+exports.GLOBAL_CACHE_KEY = GLOBAL_CACHE_KEY;
+exports.MAX_SPECIFICITY = MAX_SPECIFICITY;
+
+/***/ }),
+
+/***/ 1689:
+/***/ (function(__unused_webpack_module, exports) {
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports["default"] = getClassName;
+/**
+ * Construct a class name.
+ *
+ * namespace {String} Used to construct unique class names.
+ * styleName {String} Name identifying the specific style.
+ *
+ * Return the class name.
+ */
+function getClassName(namespace, styleName) {
+  var namespaceSegment = namespace.length > 0 ? String(namespace) + '__' : '';
+  return '' + namespaceSegment + String(styleName);
+}
+
+/***/ }),
+
+/***/ 1881:
+/***/ (function(__unused_webpack_module, exports) {
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+// This function takes an array of styles and separates them into styles that
+// are handled by Aphrodite and inline styles.
+function separateStyles(stylesArray) {
+  var classNames = [];
+
+  // Since determining if an Object is empty requires collecting all of its
+  // keys, and we want the best performance in this code because we are in the
+  // render path, we are going to do a little bookkeeping ourselves.
+  var hasInlineStyles = false;
+  var inlineStyles = {};
+
+  // This is run on potentially every node in the tree when rendering, where
+  // performance is critical. Normally we would prefer using `forEach`, but
+  // old-fashioned for loops are faster so that's what we have chosen here.
+  for (var i = 0; i < stylesArray.length; i++) {
+    // eslint-disable-line no-plusplus
+    var style = stylesArray[i];
+
+    // If this  style is falsy, we just want to disregard it. This allows for
+    // syntax like:
+    //
+    //   css(isFoo && styles.foo)
+    if (style) {
+      if (typeof style === 'string') {
+        classNames.push(style);
+      } else {
+        Object.assign(inlineStyles, style);
+        hasInlineStyles = true;
+      }
+    }
+  }
+
+  return {
+    classNames: classNames,
+    hasInlineStyles: hasInlineStyles,
+    inlineStyles: inlineStyles
+  };
+}
+
+exports["default"] = separateStyles;
+
+/***/ }),
+
+/***/ 5553:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+// eslint-disable-next-line import/no-unresolved
+module.exports = __webpack_require__(3688)["default"];
+
+
+/***/ }),
+
+/***/ 9349:
+/***/ (function(__unused_webpack_module, exports) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+var styleInterface = void 0;
+var styleTheme = void 0;
+
+var START_MARK = 'react-with-styles.resolve.start';
+var END_MARK = 'react-with-styles.resolve.end';
+var MEASURE_MARK = '\uD83D\uDC69\u200D\uD83C\uDFA8 [resolve]';
+
+function registerTheme(theme) {
+  styleTheme = theme;
+}
+
+function registerInterface(interfaceToRegister) {
+  styleInterface = interfaceToRegister;
+}
+
+function create(makeFromTheme, createWithDirection) {
+  var styles = createWithDirection(makeFromTheme(styleTheme));
+  return function () {
+    return styles;
+  };
+}
+
+function createLTR(makeFromTheme) {
+  return create(makeFromTheme, styleInterface.createLTR || styleInterface.create);
+}
+
+function createRTL(makeFromTheme) {
+  return create(makeFromTheme, styleInterface.createRTL || styleInterface.create);
+}
+
+function get() {
+  return styleTheme;
+}
+
+function resolve() {
+  if (false) {}
+
+  for (var _len = arguments.length, styles = Array(_len), _key = 0; _key < _len; _key++) {
+    styles[_key] = arguments[_key];
+  }
+
+  var result = styleInterface.resolve(styles);
+
+  if (false) {}
+
+  return result;
+}
+
+function resolveLTR() {
+  for (var _len2 = arguments.length, styles = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
+    styles[_key2] = arguments[_key2];
+  }
+
+  if (styleInterface.resolveLTR) {
+    return styleInterface.resolveLTR(styles);
+  }
+
+  return resolve(styles);
+}
+
+function resolveRTL() {
+  for (var _len3 = arguments.length, styles = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
+    styles[_key3] = arguments[_key3];
+  }
+
+  if (styleInterface.resolveRTL) {
+    return styleInterface.resolveRTL(styles);
+  }
+
+  return resolve(styles);
+}
+
+function flush() {
+  if (styleInterface.flush) {
+    styleInterface.flush();
+  }
+}
+
+exports["default"] = {
+  registerTheme: registerTheme,
+  registerInterface: registerInterface,
+  create: createLTR,
+  createLTR: createLTR,
+  createRTL: createRTL,
+  get: get,
+  resolve: resolveLTR,
+  resolveLTR: resolveLTR,
+  resolveRTL: resolveRTL,
+  flush: flush
+};
+
+/***/ }),
+
+/***/ 3576:
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", ({
+  value: true
+}));
+exports.withStylesPropTypes = exports.css = undefined;
+
+var _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; };
+
+var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
+
+exports.withStyles = withStyles;
+
+var _object = __webpack_require__(4011);
+
+var _object2 = _interopRequireDefault(_object);
+
+var _react = __webpack_require__(9196);
+
+var _react2 = _interopRequireDefault(_react);
+
+var _propTypes = __webpack_require__(2652);
+
+var _propTypes2 = _interopRequireDefault(_propTypes);
+
+var _hoistNonReactStatics = __webpack_require__(1281);
+
+var _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics);
+
+var _constants = __webpack_require__(5080);
+
+var _brcast = __webpack_require__(6640);
+
+var _brcast2 = _interopRequireDefault(_brcast);
+
+var _ThemedStyleSheet = __webpack_require__(9349);
+
+var _ThemedStyleSheet2 = _interopRequireDefault(_ThemedStyleSheet);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
+
+function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } /* eslint react/forbid-foreign-prop-types: off */
+
+// Add some named exports to assist in upgrading and for convenience
+var css = exports.css = _ThemedStyleSheet2['default'].resolveLTR;
+var withStylesPropTypes = exports.withStylesPropTypes = {
+  styles: _propTypes2['default'].object.isRequired, // eslint-disable-line react/forbid-prop-types
+  theme: _propTypes2['default'].object.isRequired, // eslint-disable-line react/forbid-prop-types
+  css: _propTypes2['default'].func.isRequired
+};
+
+var EMPTY_STYLES = {};
+var EMPTY_STYLES_FN = function EMPTY_STYLES_FN() {
+  return EMPTY_STYLES;
+};
+
+var START_MARK = 'react-with-styles.createStyles.start';
+var END_MARK = 'react-with-styles.createStyles.end';
+
+function baseClass(pureComponent) {
+  if (pureComponent) {
+    if (!_react2['default'].PureComponent) {
+      throw new ReferenceError('withStyles() pureComponent option requires React 15.3.0 or later');
+    }
+
+    return _react2['default'].PureComponent;
+  }
+
+  return _react2['default'].Component;
+}
+
+var contextTypes = _defineProperty({}, _constants.CHANNEL, _brcast2['default']);
+
+var defaultDirection = _constants.DIRECTIONS.LTR;
+
+function withStyles(styleFn) {
+  var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
+      _ref$stylesPropName = _ref.stylesPropName,
+      stylesPropName = _ref$stylesPropName === undefined ? 'styles' : _ref$stylesPropName,
+      _ref$themePropName = _ref.themePropName,
+      themePropName = _ref$themePropName === undefined ? 'theme' : _ref$themePropName,
+      _ref$cssPropName = _ref.cssPropName,
+      cssPropName = _ref$cssPropName === undefined ? 'css' : _ref$cssPropName,
+      _ref$flushBefore = _ref.flushBefore,
+      flushBefore = _ref$flushBefore === undefined ? false : _ref$flushBefore,
+      _ref$pureComponent = _ref.pureComponent,
+      pureComponent = _ref$pureComponent === undefined ? false : _ref$pureComponent;
+
+  var styleDefLTR = void 0;
+  var styleDefRTL = void 0;
+  var currentThemeLTR = void 0;
+  var currentThemeRTL = void 0;
+  var BaseClass = baseClass(pureComponent);
+
+  function getResolveMethod(direction) {
+    return direction === _constants.DIRECTIONS.LTR ? _ThemedStyleSheet2['default'].resolveLTR : _ThemedStyleSheet2['default'].resolveRTL;
+  }
+
+  function getCurrentTheme(direction) {
+    return direction === _constants.DIRECTIONS.LTR ? currentThemeLTR : currentThemeRTL;
+  }
+
+  function getStyleDef(direction, wrappedComponentName) {
+    var currentTheme = getCurrentTheme(direction);
+    var styleDef = direction === _constants.DIRECTIONS.LTR ? styleDefLTR : styleDefRTL;
+
+    var registeredTheme = _ThemedStyleSheet2['default'].get();
+
+    // Return the existing styles if they've already been defined
+    // and if the theme used to create them corresponds to the theme
+    // registered with ThemedStyleSheet
+    if (styleDef && currentTheme === registeredTheme) {
+      return styleDef;
+    }
+
+    if (false) {}
+
+    var isRTL = direction === _constants.DIRECTIONS.RTL;
+
+    if (isRTL) {
+      styleDefRTL = styleFn ? _ThemedStyleSheet2['default'].createRTL(styleFn) : EMPTY_STYLES_FN;
+
+      currentThemeRTL = registeredTheme;
+      styleDef = styleDefRTL;
+    } else {
+      styleDefLTR = styleFn ? _ThemedStyleSheet2['default'].createLTR(styleFn) : EMPTY_STYLES_FN;
+
+      currentThemeLTR = registeredTheme;
+      styleDef = styleDefLTR;
+    }
+
+    if (false) { var measureName; }
+
+    return styleDef;
+  }
+
+  function getState(direction, wrappedComponentName) {
+    return {
+      resolveMethod: getResolveMethod(direction),
+      styleDef: getStyleDef(direction, wrappedComponentName)
+    };
+  }
+
+  return function () {
+    function withStylesHOC(WrappedComponent) {
+      var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';
+
+      // NOTE: Use a class here so components are ref-able if need be:
+      // eslint-disable-next-line react/prefer-stateless-function
+
+      var WithStyles = function (_BaseClass) {
+        _inherits(WithStyles, _BaseClass);
+
+        function WithStyles(props, context) {
+          _classCallCheck(this, WithStyles);
+
+          var _this = _possibleConstructorReturn(this, (WithStyles.__proto__ || Object.getPrototypeOf(WithStyles)).call(this, props, context));
+
+          var direction = _this.context[_constants.CHANNEL] ? _this.context[_constants.CHANNEL].getState() : defaultDirection;
+
+          _this.state = getState(direction, wrappedComponentName);
+          return _this;
+        }
+
+        _createClass(WithStyles, [{
+          key: 'componentDidMount',
+          value: function () {
+            function componentDidMount() {
+              var _this2 = this;
+
+              if (this.context[_constants.CHANNEL]) {
+                // subscribe to future direction changes
+                this.channelUnsubscribe = this.context[_constants.CHANNEL].subscribe(function (direction) {
+                  _this2.setState(getState(direction, wrappedComponentName));
+                });
+              }
+            }
+
+            return componentDidMount;
+          }()
+        }, {
+          key: 'componentWillUnmount',
+          value: function () {
+            function componentWillUnmount() {
+              if (this.channelUnsubscribe) {
+                this.channelUnsubscribe();
+              }
+            }
+
+            return componentWillUnmount;
+          }()
+        }, {
+          key: 'render',
+          value: function () {
+            function render() {
+              var _ref2;
+
+              // As some components will depend on previous styles in
+              // the component tree, we provide the option of flushing the
+              // buffered styles (i.e. to a style tag) **before** the rendering
+              // cycle begins.
+              //
+              // The interfaces provide the optional "flush" method which
+              // is run in turn by ThemedStyleSheet.flush.
+              if (flushBefore) {
+                _ThemedStyleSheet2['default'].flush();
+              }
+
+              var _state = this.state,
+                  resolveMethod = _state.resolveMethod,
+                  styleDef = _state.styleDef;
+
+
+              return _react2['default'].createElement(WrappedComponent, _extends({}, this.props, (_ref2 = {}, _defineProperty(_ref2, themePropName, _ThemedStyleSheet2['default'].get()), _defineProperty(_ref2, stylesPropName, styleDef()), _defineProperty(_ref2, cssPropName, resolveMethod), _ref2)));
+            }
+
+            return render;
+          }()
+        }]);
+
+        return WithStyles;
+      }(BaseClass);
+
+      WithStyles.WrappedComponent = WrappedComponent;
+      WithStyles.displayName = 'withStyles(' + String(wrappedComponentName) + ')';
+      WithStyles.contextTypes = contextTypes;
+      if (WrappedComponent.propTypes) {
+        WithStyles.propTypes = (0, _object2['default'])({}, WrappedComponent.propTypes);
+        delete WithStyles.propTypes[stylesPropName];
+        delete WithStyles.propTypes[themePropName];
+        delete WithStyles.propTypes[cssPropName];
+      }
+      if (WrappedComponent.defaultProps) {
+        WithStyles.defaultProps = (0, _object2['default'])({}, WrappedComponent.defaultProps);
+      }
+
+      return (0, _hoistNonReactStatics2['default'])(WithStyles, WrappedComponent);
+    }
+
+    return withStylesHOC;
+  }();
+}
+
+/***/ }),
+
+/***/ 9196:
+/***/ (function(module) {
+
+"use strict";
+module.exports = window["React"];
+
+/***/ }),
+
+/***/ 6292:
+/***/ (function(module) {
+
+"use strict";
+module.exports = window["moment"];
+
+/***/ }),
+
+/***/ 4080:
+/***/ (function() {
+
+/* (ignored) */
+
+/***/ }),
+
+/***/ 3665:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(4219);
+
+var $ArrayPrototype = GetIntrinsic('%Array.prototype%');
+var $RangeError = GetIntrinsic('%RangeError%');
+var $SyntaxError = GetIntrinsic('%SyntaxError%');
+var $TypeError = GetIntrinsic('%TypeError%');
+
+var IsIntegralNumber = __webpack_require__(485);
+
+var MAX_ARRAY_LENGTH = Math.pow(2, 32) - 1;
+
+var $setProto = GetIntrinsic('%Object.setPrototypeOf%', true) || (
+	// eslint-disable-next-line no-proto, no-negated-condition
+	[].__proto__ !== $ArrayPrototype
+		? null
+		: function (O, proto) {
+			O.__proto__ = proto; // eslint-disable-line no-proto, no-param-reassign
+			return O;
+		}
+);
+
+// https://www.ecma-international.org/ecma-262/12.0/#sec-arraycreate
+
+module.exports = function ArrayCreate(length) {
+	if (!IsIntegralNumber(length) || length < 0) {
+		throw new $TypeError('Assertion failed: `length` must be an integer Number >= 0');
+	}
+	if (length > MAX_ARRAY_LENGTH) {
+		throw new $RangeError('length is greater than (2**32 - 1)');
+	}
+	var proto = arguments.length > 1 ? arguments[1] : $ArrayPrototype;
+	var A = []; // steps 3, 5
+	if (proto !== $ArrayPrototype) { // step 4
+		if (!$setProto) {
+			throw new $SyntaxError('ArrayCreate: a `proto` argument that is not `Array.prototype` is not supported in an environment that does not support setting the [[Prototype]]');
+		}
+		$setProto(A, proto);
+	}
+	if (length !== 0) { // bypasses the need for step 6
+		A.length = length;
+	}
+	/* step 6, the above as a shortcut for the below
+	OrdinaryDefineOwnProperty(A, 'length', {
+		'[[Configurable]]': false,
+		'[[Enumerable]]': false,
+		'[[Value]]': length,
+		'[[Writable]]': true
+	});
+	*/
+	return A;
+};
+
+
+/***/ }),
+
+/***/ 1539:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(4219);
+
+var $species = GetIntrinsic('%Symbol.species%', true);
+var $TypeError = GetIntrinsic('%TypeError%');
+
+var ArrayCreate = __webpack_require__(3665);
+var Get = __webpack_require__(6448);
+var IsArray = __webpack_require__(5971);
+var IsConstructor = __webpack_require__(4065);
+var IsIntegralNumber = __webpack_require__(485);
+var Type = __webpack_require__(9747);
+
+// https://ecma-international.org/ecma-262/12.0/#sec-arrayspeciescreate
+
+module.exports = function ArraySpeciesCreate(originalArray, length) {
+	if (!IsIntegralNumber(length) || length < 0) {
+		throw new $TypeError('Assertion failed: length must be an integer >= 0');
+	}
+
+	var isArray = IsArray(originalArray);
+	if (!isArray) {
+		return ArrayCreate(length);
+	}
+
+	var C = Get(originalArray, 'constructor');
+	// TODO: figure out how to make a cross-realm normal Array, a same-realm Array
+	// if (IsConstructor(C)) {
+	// 	if C is another realm's Array, C = undefined
+	// 	Object.getPrototypeOf(Object.getPrototypeOf(Object.getPrototypeOf(Array))) === null ?
+	// }
+	if ($species && Type(C) === 'Object') {
+		C = Get(C, $species);
+		if (C === null) {
+			C = void 0;
+		}
+	}
+
+	if (typeof C === 'undefined') {
+		return ArrayCreate(length);
+	}
+	if (!IsConstructor(C)) {
+		throw new $TypeError('C must be a constructor');
+	}
+	return new C(length); // Construct(C, length);
+};
+
+
+
+/***/ }),
+
+/***/ 8323:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(4219);
+var callBound = __webpack_require__(9630);
 
 var $TypeError = GetIntrinsic('%TypeError%');
 
-var Get = __webpack_require__("3aeR");
-var ToLength = __webpack_require__("w3Ut");
-var Type = __webpack_require__("V1cy");
+var IsArray = __webpack_require__(5971);
+
+var $apply = GetIntrinsic('%Reflect.apply%', true) || callBound('%Function.prototype.apply%');
+
+// https://ecma-international.org/ecma-262/6.0/#sec-call
+
+module.exports = function Call(F, V) {
+	var argumentsList = arguments.length > 2 ? arguments[2] : [];
+	if (!IsArray(argumentsList)) {
+		throw new $TypeError('Assertion failed: optional `argumentsList`, if provided, must be a List');
+	}
+	return $apply(F, V, argumentsList);
+};
+
+
+/***/ }),
+
+/***/ 5597:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(4219);
+
+var $TypeError = GetIntrinsic('%TypeError%');
+
+var DefineOwnProperty = __webpack_require__(1327);
+
+var FromPropertyDescriptor = __webpack_require__(8487);
+var OrdinaryGetOwnProperty = __webpack_require__(6403);
+var IsDataDescriptor = __webpack_require__(1392);
+var IsExtensible = __webpack_require__(3428);
+var IsPropertyKey = __webpack_require__(3290);
+var SameValue = __webpack_require__(9836);
+var Type = __webpack_require__(9747);
+
+// https://ecma-international.org/ecma-262/6.0/#sec-createdataproperty
+
+module.exports = function CreateDataProperty(O, P, V) {
+	if (Type(O) !== 'Object') {
+		throw new $TypeError('Assertion failed: Type(O) is not Object');
+	}
+	if (!IsPropertyKey(P)) {
+		throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
+	}
+	var oldDesc = OrdinaryGetOwnProperty(O, P);
+	var extensible = !oldDesc || IsExtensible(O);
+	var nonConfigurable = oldDesc && !oldDesc['[[Configurable]]'];
+	if (nonConfigurable || !extensible) {
+		return false;
+	}
+	return DefineOwnProperty(
+		IsDataDescriptor,
+		SameValue,
+		FromPropertyDescriptor,
+		O,
+		P,
+		{
+			'[[Configurable]]': true,
+			'[[Enumerable]]': true,
+			'[[Value]]': V,
+			'[[Writable]]': true
+		}
+	);
+};
+
+
+/***/ }),
+
+/***/ 3323:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(4219);
+
+var $TypeError = GetIntrinsic('%TypeError%');
+
+var CreateDataProperty = __webpack_require__(5597);
+var IsPropertyKey = __webpack_require__(3290);
+var Type = __webpack_require__(9747);
+
+// // https://ecma-international.org/ecma-262/6.0/#sec-createdatapropertyorthrow
+
+module.exports = function CreateDataPropertyOrThrow(O, P, V) {
+	if (Type(O) !== 'Object') {
+		throw new $TypeError('Assertion failed: Type(O) is not Object');
+	}
+	if (!IsPropertyKey(P)) {
+		throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
+	}
+	var success = CreateDataProperty(O, P, V);
+	if (!success) {
+		throw new $TypeError('unable to create data property');
+	}
+	return success;
+};
+
+
+/***/ }),
+
+/***/ 6356:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(4219);
+
+var $TypeError = GetIntrinsic('%TypeError%');
+
+var isPropertyDescriptor = __webpack_require__(8682);
+var DefineOwnProperty = __webpack_require__(1327);
+
+var FromPropertyDescriptor = __webpack_require__(8487);
+var IsAccessorDescriptor = __webpack_require__(7857);
+var IsDataDescriptor = __webpack_require__(1392);
+var IsPropertyKey = __webpack_require__(3290);
+var SameValue = __webpack_require__(9836);
+var ToPropertyDescriptor = __webpack_require__(2402);
+var Type = __webpack_require__(9747);
+
+// https://ecma-international.org/ecma-262/6.0/#sec-definepropertyorthrow
+
+module.exports = function DefinePropertyOrThrow(O, P, desc) {
+	if (Type(O) !== 'Object') {
+		throw new $TypeError('Assertion failed: Type(O) is not Object');
+	}
+
+	if (!IsPropertyKey(P)) {
+		throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
+	}
+
+	var Desc = isPropertyDescriptor({
+		Type: Type,
+		IsDataDescriptor: IsDataDescriptor,
+		IsAccessorDescriptor: IsAccessorDescriptor
+	}, desc) ? desc : ToPropertyDescriptor(desc);
+	if (!isPropertyDescriptor({
+		Type: Type,
+		IsDataDescriptor: IsDataDescriptor,
+		IsAccessorDescriptor: IsAccessorDescriptor
+	}, Desc)) {
+		throw new $TypeError('Assertion failed: Desc is not a valid Property Descriptor');
+	}
+
+	return DefineOwnProperty(
+		IsDataDescriptor,
+		SameValue,
+		FromPropertyDescriptor,
+		O,
+		P,
+		Desc
+	);
+};
+
+
+/***/ }),
+
+/***/ 6739:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(4219);
+
+var $TypeError = GetIntrinsic('%TypeError%');
+
+var MAX_SAFE_INTEGER = __webpack_require__(8540);
+
+var Call = __webpack_require__(8323);
+var CreateDataPropertyOrThrow = __webpack_require__(3323);
+var Get = __webpack_require__(6448);
+var HasProperty = __webpack_require__(3059);
+var IsArray = __webpack_require__(5971);
+var LengthOfArrayLike = __webpack_require__(2151);
+var ToString = __webpack_require__(6888);
+
+// https://262.ecma-international.org/11.0/#sec-flattenintoarray
+
+// eslint-disable-next-line max-params
+module.exports = function FlattenIntoArray(target, source, sourceLen, start, depth) {
+	var mapperFunction;
+	if (arguments.length > 5) {
+		mapperFunction = arguments[5];
+	}
+
+	var targetIndex = start;
+	var sourceIndex = 0;
+	while (sourceIndex < sourceLen) {
+		var P = ToString(sourceIndex);
+		var exists = HasProperty(source, P);
+		if (exists === true) {
+			var element = Get(source, P);
+			if (typeof mapperFunction !== 'undefined') {
+				if (arguments.length <= 6) {
+					throw new $TypeError('Assertion failed: thisArg is required when mapperFunction is provided');
+				}
+				element = Call(mapperFunction, arguments[6], [element, sourceIndex, source]);
+			}
+			var shouldFlatten = false;
+			if (depth > 0) {
+				shouldFlatten = IsArray(element);
+			}
+			if (shouldFlatten) {
+				var elementLen = LengthOfArrayLike(element);
+				targetIndex = FlattenIntoArray(target, element, elementLen, targetIndex, depth - 1);
+			} else {
+				if (targetIndex >= MAX_SAFE_INTEGER) {
+					throw new $TypeError('index too large');
+				}
+				CreateDataPropertyOrThrow(target, ToString(targetIndex), element);
+				targetIndex += 1;
+			}
+		}
+		sourceIndex += 1;
+	}
+
+	return targetIndex;
+};
+
+
+/***/ }),
+
+/***/ 8487:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var assertRecord = __webpack_require__(5114);
+var fromPropertyDescriptor = __webpack_require__(3359);
+
+var Type = __webpack_require__(9747);
+
+// https://ecma-international.org/ecma-262/6.0/#sec-frompropertydescriptor
+
+module.exports = function FromPropertyDescriptor(Desc) {
+	if (typeof Desc !== 'undefined') {
+		assertRecord(Type, 'Property Descriptor', 'Desc', Desc);
+	}
+
+	return fromPropertyDescriptor(Desc);
+};
+
+
+/***/ }),
+
+/***/ 6448:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(4219);
+
+var $TypeError = GetIntrinsic('%TypeError%');
+
+var inspect = __webpack_require__(3205);
+
+var IsPropertyKey = __webpack_require__(3290);
+var Type = __webpack_require__(9747);
+
+// https://ecma-international.org/ecma-262/6.0/#sec-get-o-p
+
+module.exports = function Get(O, P) {
+	// 7.3.1.1
+	if (Type(O) !== 'Object') {
+		throw new $TypeError('Assertion failed: Type(O) is not Object');
+	}
+	// 7.3.1.2
+	if (!IsPropertyKey(P)) {
+		throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true, got ' + inspect(P));
+	}
+	// 7.3.1.3
+	return O[P];
+};
+
+
+/***/ }),
+
+/***/ 3059:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(4219);
+
+var $TypeError = GetIntrinsic('%TypeError%');
+
+var IsPropertyKey = __webpack_require__(3290);
+var Type = __webpack_require__(9747);
+
+// https://ecma-international.org/ecma-262/6.0/#sec-hasproperty
+
+module.exports = function HasProperty(O, P) {
+	if (Type(O) !== 'Object') {
+		throw new $TypeError('Assertion failed: `O` must be an Object');
+	}
+	if (!IsPropertyKey(P)) {
+		throw new $TypeError('Assertion failed: `P` must be a Property Key');
+	}
+	return P in O;
+};
+
+
+/***/ }),
+
+/***/ 7857:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var has = __webpack_require__(9284);
+
+var assertRecord = __webpack_require__(5114);
+
+var Type = __webpack_require__(9747);
+
+// https://ecma-international.org/ecma-262/6.0/#sec-isaccessordescriptor
+
+module.exports = function IsAccessorDescriptor(Desc) {
+	if (typeof Desc === 'undefined') {
+		return false;
+	}
+
+	assertRecord(Type, 'Property Descriptor', 'Desc', Desc);
+
+	if (!has(Desc, '[[Get]]') && !has(Desc, '[[Set]]')) {
+		return false;
+	}
+
+	return true;
+};
+
+
+/***/ }),
+
+/***/ 5971:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+// https://ecma-international.org/ecma-262/6.0/#sec-isarray
+module.exports = __webpack_require__(4351);
+
+
+/***/ }),
+
+/***/ 1089:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+// http://262.ecma-international.org/5.1/#sec-9.11
+
+module.exports = __webpack_require__(4363);
+
+
+/***/ }),
+
+/***/ 4065:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(137);
+
+var $construct = GetIntrinsic('%Reflect.construct%', true);
+
+var DefinePropertyOrThrow = __webpack_require__(6356);
+try {
+	DefinePropertyOrThrow({}, '', { '[[Get]]': function () {} });
+} catch (e) {
+	// Accessor properties aren't supported
+	DefinePropertyOrThrow = null;
+}
+
+// https://ecma-international.org/ecma-262/6.0/#sec-isconstructor
+
+if (DefinePropertyOrThrow && $construct) {
+	var isConstructorMarker = {};
+	var badArrayLike = {};
+	DefinePropertyOrThrow(badArrayLike, 'length', {
+		'[[Get]]': function () {
+			throw isConstructorMarker;
+		},
+		'[[Enumerable]]': true
+	});
+
+	module.exports = function IsConstructor(argument) {
+		try {
+			// `Reflect.construct` invokes `IsConstructor(target)` before `Get(args, 'length')`:
+			$construct(argument, badArrayLike);
+		} catch (err) {
+			return err === isConstructorMarker;
+		}
+	};
+} else {
+	module.exports = function IsConstructor(argument) {
+		// unfortunately there's no way to truly check this without try/catch `new argument` in old environments
+		return typeof argument === 'function' && !!argument.prototype;
+	};
+}
+
+
+/***/ }),
+
+/***/ 1392:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var has = __webpack_require__(9284);
+
+var assertRecord = __webpack_require__(5114);
+
+var Type = __webpack_require__(9747);
+
+// https://ecma-international.org/ecma-262/6.0/#sec-isdatadescriptor
+
+module.exports = function IsDataDescriptor(Desc) {
+	if (typeof Desc === 'undefined') {
+		return false;
+	}
+
+	assertRecord(Type, 'Property Descriptor', 'Desc', Desc);
+
+	if (!has(Desc, '[[Value]]') && !has(Desc, '[[Writable]]')) {
+		return false;
+	}
+
+	return true;
+};
+
+
+/***/ }),
+
+/***/ 3428:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(4219);
+
+var $preventExtensions = GetIntrinsic('%Object.preventExtensions%', true);
+var $isExtensible = GetIntrinsic('%Object.isExtensible%', true);
+
+var isPrimitive = __webpack_require__(5019);
+
+// https://ecma-international.org/ecma-262/6.0/#sec-isextensible-o
+
+module.exports = $preventExtensions
+	? function IsExtensible(obj) {
+		return !isPrimitive(obj) && $isExtensible(obj);
+	}
+	: function IsExtensible(obj) {
+		return !isPrimitive(obj);
+	};
+
+
+/***/ }),
+
+/***/ 485:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var abs = __webpack_require__(13);
+var floor = __webpack_require__(5127);
+var Type = __webpack_require__(9747);
+
+var $isNaN = __webpack_require__(3234);
+var $isFinite = __webpack_require__(7061);
+
+// https://tc39.es/ecma262/#sec-isintegralnumber
+
+module.exports = function IsIntegralNumber(argument) {
+	if (Type(argument) !== 'Number' || $isNaN(argument) || !$isFinite(argument)) {
+		return false;
+	}
+	var absValue = abs(argument);
+	return floor(absValue) === absValue;
+};
+
+
+/***/ }),
+
+/***/ 3290:
+/***/ (function(module) {
+
+"use strict";
+
+
+// https://ecma-international.org/ecma-262/6.0/#sec-ispropertykey
+
+module.exports = function IsPropertyKey(argument) {
+	return typeof argument === 'string' || typeof argument === 'symbol';
+};
+
+
+/***/ }),
+
+/***/ 1275:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(4219);
+
+var $match = GetIntrinsic('%Symbol.match%', true);
+
+var hasRegExpMatcher = __webpack_require__(4221);
+
+var ToBoolean = __webpack_require__(3704);
+
+// https://ecma-international.org/ecma-262/6.0/#sec-isregexp
+
+module.exports = function IsRegExp(argument) {
+	if (!argument || typeof argument !== 'object') {
+		return false;
+	}
+	if ($match) {
+		var isRegExp = argument[$match];
+		if (typeof isRegExp !== 'undefined') {
+			return ToBoolean(isRegExp);
+		}
+	}
+	return hasRegExpMatcher(argument);
+};
+
+
+/***/ }),
+
+/***/ 2151:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(4219);
+
+var $TypeError = GetIntrinsic('%TypeError%');
+
+var Get = __webpack_require__(6448);
+var ToLength = __webpack_require__(6840);
+var Type = __webpack_require__(9747);
 
 // https://262.ecma-international.org/11.0/#sec-lengthofarraylike
 
@@ -59225,169 +15339,3182 @@
 
 /***/ }),
 
-/***/ "yLpj":
-/***/ (function(module, exports) {
-
-var g;
-
-// This works in non-strict mode
-g = (function() {
-	return this;
-})();
+/***/ 6403:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(4219);
+
+var $gOPD = __webpack_require__(5180);
+var $TypeError = GetIntrinsic('%TypeError%');
+
+var callBound = __webpack_require__(9630);
+
+var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable');
+
+var has = __webpack_require__(9284);
+
+var IsArray = __webpack_require__(5971);
+var IsPropertyKey = __webpack_require__(3290);
+var IsRegExp = __webpack_require__(1275);
+var ToPropertyDescriptor = __webpack_require__(2402);
+var Type = __webpack_require__(9747);
+
+// https://ecma-international.org/ecma-262/6.0/#sec-ordinarygetownproperty
+
+module.exports = function OrdinaryGetOwnProperty(O, P) {
+	if (Type(O) !== 'Object') {
+		throw new $TypeError('Assertion failed: O must be an Object');
+	}
+	if (!IsPropertyKey(P)) {
+		throw new $TypeError('Assertion failed: P must be a Property Key');
+	}
+	if (!has(O, P)) {
+		return void 0;
+	}
+	if (!$gOPD) {
+		// ES3 / IE 8 fallback
+		var arrayLength = IsArray(O) && P === 'length';
+		var regexLastIndex = IsRegExp(O) && P === 'lastIndex';
+		return {
+			'[[Configurable]]': !(arrayLength || regexLastIndex),
+			'[[Enumerable]]': $isEnumerable(O, P),
+			'[[Value]]': O[P],
+			'[[Writable]]': true
+		};
+	}
+	return ToPropertyDescriptor($gOPD(O, P));
+};
+
+
+/***/ }),
+
+/***/ 6953:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+module.exports = __webpack_require__(3031);
+
+
+/***/ }),
+
+/***/ 9836:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var $isNaN = __webpack_require__(3234);
+
+// http://262.ecma-international.org/5.1/#sec-9.12
+
+module.exports = function SameValue(x, y) {
+	if (x === y) { // 0 === -0, but they are not identical.
+		if (x === 0) { return 1 / x === 1 / y; }
+		return true;
+	}
+	return $isNaN(x) && $isNaN(y);
+};
+
+
+/***/ }),
+
+/***/ 3704:
+/***/ (function(module) {
+
+"use strict";
+
+
+// http://262.ecma-international.org/5.1/#sec-9.2
+
+module.exports = function ToBoolean(value) { return !!value; };
+
+
+/***/ }),
+
+/***/ 1723:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var abs = __webpack_require__(13);
+var floor = __webpack_require__(5127);
+var ToNumber = __webpack_require__(5541);
+
+var $isNaN = __webpack_require__(3234);
+var $isFinite = __webpack_require__(7061);
+var $sign = __webpack_require__(2163);
+
+// https://262.ecma-international.org/12.0/#sec-tointegerorinfinity
+
+module.exports = function ToIntegerOrInfinity(value) {
+	var number = ToNumber(value);
+	if ($isNaN(number) || number === 0) { return 0; }
+	if (!$isFinite(number)) { return number; }
+	return $sign(number) * floor(abs(number));
+};
+
+
+/***/ }),
+
+/***/ 6840:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var MAX_SAFE_INTEGER = __webpack_require__(8540);
+
+var ToIntegerOrInfinity = __webpack_require__(1723);
+
+module.exports = function ToLength(argument) {
+	var len = ToIntegerOrInfinity(argument);
+	if (len <= 0) { return 0; } // includes converting -0 to +0
+	if (len > MAX_SAFE_INTEGER) { return MAX_SAFE_INTEGER; }
+	return len;
+};
+
+
+/***/ }),
+
+/***/ 5541:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(4219);
+
+var $TypeError = GetIntrinsic('%TypeError%');
+var $Number = GetIntrinsic('%Number%');
+var $RegExp = GetIntrinsic('%RegExp%');
+var $parseInteger = GetIntrinsic('%parseInt%');
+
+var callBound = __webpack_require__(9630);
+var regexTester = __webpack_require__(8441);
+var isPrimitive = __webpack_require__(5019);
+
+var $strSlice = callBound('String.prototype.slice');
+var isBinary = regexTester(/^0b[01]+$/i);
+var isOctal = regexTester(/^0o[0-7]+$/i);
+var isInvalidHexLiteral = regexTester(/^[-+]0x[0-9a-f]+$/i);
+var nonWS = ['\u0085', '\u200b', '\ufffe'].join('');
+var nonWSregex = new $RegExp('[' + nonWS + ']', 'g');
+var hasNonWS = regexTester(nonWSregex);
+
+// whitespace from: https://es5.github.io/#x15.5.4.20
+// implementation from https://github.com/es-shims/es5-shim/blob/v3.4.0/es5-shim.js#L1304-L1324
+var ws = [
+	'\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003',
+	'\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028',
+	'\u2029\uFEFF'
+].join('');
+var trimRegex = new RegExp('(^[' + ws + ']+)|([' + ws + ']+$)', 'g');
+var $replace = callBound('String.prototype.replace');
+var $trim = function (value) {
+	return $replace(value, trimRegex, '');
+};
+
+var ToPrimitive = __webpack_require__(6745);
+
+// https://ecma-international.org/ecma-262/6.0/#sec-tonumber
+
+module.exports = function ToNumber(argument) {
+	var value = isPrimitive(argument) ? argument : ToPrimitive(argument, $Number);
+	if (typeof value === 'symbol') {
+		throw new $TypeError('Cannot convert a Symbol value to a number');
+	}
+	if (typeof value === 'bigint') {
+		throw new $TypeError('Conversion from \'BigInt\' to \'number\' is not allowed.');
+	}
+	if (typeof value === 'string') {
+		if (isBinary(value)) {
+			return ToNumber($parseInteger($strSlice(value, 2), 2));
+		} else if (isOctal(value)) {
+			return ToNumber($parseInteger($strSlice(value, 2), 8));
+		} else if (hasNonWS(value) || isInvalidHexLiteral(value)) {
+			return NaN;
+		}
+		var trimmed = $trim(value);
+		if (trimmed !== value) {
+			return ToNumber(trimmed);
+		}
+
+	}
+	return $Number(value);
+};
+
+
+/***/ }),
+
+/***/ 1283:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(4219);
+
+var $Object = GetIntrinsic('%Object%');
+
+var RequireObjectCoercible = __webpack_require__(6953);
+
+// https://ecma-international.org/ecma-262/6.0/#sec-toobject
+
+module.exports = function ToObject(value) {
+	RequireObjectCoercible(value);
+	return $Object(value);
+};
+
+
+/***/ }),
+
+/***/ 6745:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var toPrimitive = __webpack_require__(5249);
+
+// https://ecma-international.org/ecma-262/6.0/#sec-toprimitive
+
+module.exports = function ToPrimitive(input) {
+	if (arguments.length > 1) {
+		return toPrimitive(input, arguments[1]);
+	}
+	return toPrimitive(input);
+};
+
+
+/***/ }),
+
+/***/ 2402:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var has = __webpack_require__(9284);
+
+var GetIntrinsic = __webpack_require__(4219);
+
+var $TypeError = GetIntrinsic('%TypeError%');
+
+var Type = __webpack_require__(9747);
+var ToBoolean = __webpack_require__(3704);
+var IsCallable = __webpack_require__(1089);
+
+// https://262.ecma-international.org/5.1/#sec-8.10.5
+
+module.exports = function ToPropertyDescriptor(Obj) {
+	if (Type(Obj) !== 'Object') {
+		throw new $TypeError('ToPropertyDescriptor requires an object');
+	}
+
+	var desc = {};
+	if (has(Obj, 'enumerable')) {
+		desc['[[Enumerable]]'] = ToBoolean(Obj.enumerable);
+	}
+	if (has(Obj, 'configurable')) {
+		desc['[[Configurable]]'] = ToBoolean(Obj.configurable);
+	}
+	if (has(Obj, 'value')) {
+		desc['[[Value]]'] = Obj.value;
+	}
+	if (has(Obj, 'writable')) {
+		desc['[[Writable]]'] = ToBoolean(Obj.writable);
+	}
+	if (has(Obj, 'get')) {
+		var getter = Obj.get;
+		if (typeof getter !== 'undefined' && !IsCallable(getter)) {
+			throw new $TypeError('getter must be a function');
+		}
+		desc['[[Get]]'] = getter;
+	}
+	if (has(Obj, 'set')) {
+		var setter = Obj.set;
+		if (typeof setter !== 'undefined' && !IsCallable(setter)) {
+			throw new $TypeError('setter must be a function');
+		}
+		desc['[[Set]]'] = setter;
+	}
+
+	if ((has(desc, '[[Get]]') || has(desc, '[[Set]]')) && (has(desc, '[[Value]]') || has(desc, '[[Writable]]'))) {
+		throw new $TypeError('Invalid property descriptor. Cannot both specify accessors and a value or writable attribute');
+	}
+	return desc;
+};
+
+
+/***/ }),
+
+/***/ 6888:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(4219);
+
+var $String = GetIntrinsic('%String%');
+var $TypeError = GetIntrinsic('%TypeError%');
+
+// https://ecma-international.org/ecma-262/6.0/#sec-tostring
+
+module.exports = function ToString(argument) {
+	if (typeof argument === 'symbol') {
+		throw new $TypeError('Cannot convert a Symbol value to a string');
+	}
+	return $String(argument);
+};
+
+
+/***/ }),
+
+/***/ 9747:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var ES5Type = __webpack_require__(290);
+
+// https://262.ecma-international.org/11.0/#sec-ecmascript-data-types-and-values
+
+module.exports = function Type(x) {
+	if (typeof x === 'symbol') {
+		return 'Symbol';
+	}
+	if (typeof x === 'bigint') {
+		return 'BigInt';
+	}
+	return ES5Type(x);
+};
+
+
+/***/ }),
+
+/***/ 13:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(4219);
+
+var $abs = GetIntrinsic('%Math.abs%');
+
+// http://262.ecma-international.org/5.1/#sec-5.2
+
+module.exports = function abs(x) {
+	return $abs(x);
+};
+
+
+/***/ }),
+
+/***/ 5127:
+/***/ (function(module) {
+
+"use strict";
+
+
+// var modulo = require('./modulo');
+var $floor = Math.floor;
+
+// http://262.ecma-international.org/5.1/#sec-5.2
+
+module.exports = function floor(x) {
+	// return x - modulo(x, 1);
+	return $floor(x);
+};
+
+
+/***/ }),
+
+/***/ 3031:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(4219);
+
+var $TypeError = GetIntrinsic('%TypeError%');
+
+// http://262.ecma-international.org/5.1/#sec-9.10
+
+module.exports = function CheckObjectCoercible(value, optMessage) {
+	if (value == null) {
+		throw new $TypeError(optMessage || ('Cannot call method on ' + value));
+	}
+	return value;
+};
+
+
+/***/ }),
+
+/***/ 290:
+/***/ (function(module) {
+
+"use strict";
+
+
+// https://262.ecma-international.org/5.1/#sec-8
+
+module.exports = function Type(x) {
+	if (x === null) {
+		return 'Null';
+	}
+	if (typeof x === 'undefined') {
+		return 'Undefined';
+	}
+	if (typeof x === 'function' || typeof x === 'object') {
+		return 'Object';
+	}
+	if (typeof x === 'number') {
+		return 'Number';
+	}
+	if (typeof x === 'boolean') {
+		return 'Boolean';
+	}
+	if (typeof x === 'string') {
+		return 'String';
+	}
+};
+
+
+/***/ }),
+
+/***/ 137:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+// TODO: remove, semver-major
+
+module.exports = __webpack_require__(4219);
+
+
+/***/ }),
+
+/***/ 1327:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var hasPropertyDescriptors = __webpack_require__(8198);
+
+var GetIntrinsic = __webpack_require__(4219);
+
+var $defineProperty = hasPropertyDescriptors() && GetIntrinsic('%Object.defineProperty%', true);
+
+var hasArrayLengthDefineBug = hasPropertyDescriptors.hasArrayLengthDefineBug();
+
+// eslint-disable-next-line global-require
+var isArray = hasArrayLengthDefineBug && __webpack_require__(4351);
+
+var callBound = __webpack_require__(9630);
+
+var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable');
+
+// eslint-disable-next-line max-params
+module.exports = function DefineOwnProperty(IsDataDescriptor, SameValue, FromPropertyDescriptor, O, P, desc) {
+	if (!$defineProperty) {
+		if (!IsDataDescriptor(desc)) {
+			// ES3 does not support getters/setters
+			return false;
+		}
+		if (!desc['[[Configurable]]'] || !desc['[[Writable]]']) {
+			return false;
+		}
+
+		// fallback for ES3
+		if (P in O && $isEnumerable(O, P) !== !!desc['[[Enumerable]]']) {
+			// a non-enumerable existing property
+			return false;
+		}
+
+		// property does not exist at all, or exists but is enumerable
+		var V = desc['[[Value]]'];
+		// eslint-disable-next-line no-param-reassign
+		O[P] = V; // will use [[Define]]
+		return SameValue(O[P], V);
+	}
+	if (
+		hasArrayLengthDefineBug
+		&& P === 'length'
+		&& '[[Value]]' in desc
+		&& isArray(O)
+		&& O.length !== desc['[[Value]]']
+	) {
+		// eslint-disable-next-line no-param-reassign
+		O.length = desc['[[Value]]'];
+		return O.length === desc['[[Value]]'];
+	}
+
+	$defineProperty(O, P, FromPropertyDescriptor(desc));
+	return true;
+};
+
+
+/***/ }),
+
+/***/ 4351:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(4219);
+
+var $Array = GetIntrinsic('%Array%');
+
+// eslint-disable-next-line global-require
+var toStr = !$Array.isArray && __webpack_require__(9630)('Object.prototype.toString');
+
+module.exports = $Array.isArray || function IsArray(argument) {
+	return toStr(argument) === '[object Array]';
+};
+
+
+/***/ }),
+
+/***/ 5114:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(4219);
+
+var $TypeError = GetIntrinsic('%TypeError%');
+var $SyntaxError = GetIntrinsic('%SyntaxError%');
+
+var has = __webpack_require__(9284);
+
+var isMatchRecord = __webpack_require__(7040);
+
+var predicates = {
+	// https://262.ecma-international.org/6.0/#sec-property-descriptor-specification-type
+	'Property Descriptor': function isPropertyDescriptor(Desc) {
+		var allowed = {
+			'[[Configurable]]': true,
+			'[[Enumerable]]': true,
+			'[[Get]]': true,
+			'[[Set]]': true,
+			'[[Value]]': true,
+			'[[Writable]]': true
+		};
+
+		for (var key in Desc) { // eslint-disable-line
+			if (has(Desc, key) && !allowed[key]) {
+				return false;
+			}
+		}
+
+		var isData = has(Desc, '[[Value]]');
+		var IsAccessor = has(Desc, '[[Get]]') || has(Desc, '[[Set]]');
+		if (isData && IsAccessor) {
+			throw new $TypeError('Property Descriptors may not be both accessor and data descriptors');
+		}
+		return true;
+	},
+	// https://262.ecma-international.org/13.0/#sec-match-records
+	'Match Record': isMatchRecord
+};
+
+module.exports = function assertRecord(Type, recordType, argumentName, value) {
+	var predicate = predicates[recordType];
+	if (typeof predicate !== 'function') {
+		throw new $SyntaxError('unknown record type: ' + recordType);
+	}
+	if (Type(value) !== 'Object' || !predicate(value)) {
+		throw new $TypeError(argumentName + ' must be a ' + recordType);
+	}
+};
+
+
+/***/ }),
+
+/***/ 3359:
+/***/ (function(module) {
+
+"use strict";
+
+
+module.exports = function fromPropertyDescriptor(Desc) {
+	if (typeof Desc === 'undefined') {
+		return Desc;
+	}
+	var obj = {};
+	if ('[[Value]]' in Desc) {
+		obj.value = Desc['[[Value]]'];
+	}
+	if ('[[Writable]]' in Desc) {
+		obj.writable = !!Desc['[[Writable]]'];
+	}
+	if ('[[Get]]' in Desc) {
+		obj.get = Desc['[[Get]]'];
+	}
+	if ('[[Set]]' in Desc) {
+		obj.set = Desc['[[Set]]'];
+	}
+	if ('[[Enumerable]]' in Desc) {
+		obj.enumerable = !!Desc['[[Enumerable]]'];
+	}
+	if ('[[Configurable]]' in Desc) {
+		obj.configurable = !!Desc['[[Configurable]]'];
+	}
+	return obj;
+};
+
+
+/***/ }),
+
+/***/ 5180:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(4219);
+
+var $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);
+if ($gOPD) {
+	try {
+		$gOPD([], 'length');
+	} catch (e) {
+		// IE 8 has a broken gOPD
+		$gOPD = null;
+	}
+}
+
+module.exports = $gOPD;
+
+
+/***/ }),
+
+/***/ 7061:
+/***/ (function(module) {
+
+"use strict";
+
+
+var $isNaN = Number.isNaN || function (a) { return a !== a; };
+
+module.exports = Number.isFinite || function (x) { return typeof x === 'number' && !$isNaN(x) && x !== Infinity && x !== -Infinity; };
+
+
+/***/ }),
+
+/***/ 7040:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var has = __webpack_require__(9284);
+
+// https://262.ecma-international.org/13.0/#sec-match-records
+
+module.exports = function isMatchRecord(record) {
+	return (
+		has(record, '[[StartIndex]]')
+        && has(record, '[[EndIndex]]')
+        && record['[[StartIndex]]'] >= 0
+        && record['[[EndIndex]]'] >= record['[[StartIndex]]']
+        && String(parseInt(record['[[StartIndex]]'], 10)) === String(record['[[StartIndex]]'])
+        && String(parseInt(record['[[EndIndex]]'], 10)) === String(record['[[EndIndex]]'])
+	);
+};
+
+
+/***/ }),
+
+/***/ 3234:
+/***/ (function(module) {
+
+"use strict";
+
+
+module.exports = Number.isNaN || function isNaN(a) {
+	return a !== a;
+};
+
+
+/***/ }),
+
+/***/ 5019:
+/***/ (function(module) {
+
+"use strict";
+
+
+module.exports = function isPrimitive(value) {
+	return value === null || (typeof value !== 'function' && typeof value !== 'object');
+};
+
+
+/***/ }),
+
+/***/ 8682:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(4219);
+
+var has = __webpack_require__(9284);
+var $TypeError = GetIntrinsic('%TypeError%');
+
+module.exports = function IsPropertyDescriptor(ES, Desc) {
+	if (ES.Type(Desc) !== 'Object') {
+		return false;
+	}
+	var allowed = {
+		'[[Configurable]]': true,
+		'[[Enumerable]]': true,
+		'[[Get]]': true,
+		'[[Set]]': true,
+		'[[Value]]': true,
+		'[[Writable]]': true
+	};
+
+	for (var key in Desc) { // eslint-disable-line no-restricted-syntax
+		if (has(Desc, key) && !allowed[key]) {
+			return false;
+		}
+	}
+
+	if (ES.IsDataDescriptor(Desc) && ES.IsAccessorDescriptor(Desc)) {
+		throw new $TypeError('Property Descriptors may not be both accessor and data descriptors');
+	}
+	return true;
+};
+
+
+/***/ }),
+
+/***/ 8540:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(4219);
+
+var $Math = GetIntrinsic('%Math%');
+var $Number = GetIntrinsic('%Number%');
+
+module.exports = $Number.MAX_SAFE_INTEGER || $Math.pow(2, 53) - 1;
+
+
+/***/ }),
+
+/***/ 8441:
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+var callBound = __webpack_require__(9630);
+
+var $exec = callBound('RegExp.prototype.exec');
+
+module.exports = function regexTester(regex) {
+	return function test(s) { return $exec(regex, s) !== null; };
+};
+
+
+/***/ }),
+
+/***/ 2163:
+/***/ (function(module) {
+
+"use strict";
+
+
+module.exports = function sign(number) {
+	return number >= 0 ? 1 : -1;
+};
+
+
+/***/ })
+
+/******/ 	});
+/************************************************************************/
+/******/ 	// The module cache
+/******/ 	var __webpack_module_cache__ = {};
+/******/ 	
+/******/ 	// The require function
+/******/ 	function __webpack_require__(moduleId) {
+/******/ 		// Check if module is in cache
+/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
+/******/ 		if (cachedModule !== undefined) {
+/******/ 			return cachedModule.exports;
+/******/ 		}
+/******/ 		// Create a new module (and put it into the cache)
+/******/ 		var module = __webpack_module_cache__[moduleId] = {
+/******/ 			// no module.id needed
+/******/ 			// no module.loaded needed
+/******/ 			exports: {}
+/******/ 		};
+/******/ 	
+/******/ 		// Execute the module function
+/******/ 		__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
+/******/ 	
+/******/ 		// Return the exports of the module
+/******/ 		return module.exports;
+/******/ 	}
+/******/ 	
+/************************************************************************/
+/******/ 	/* webpack/runtime/compat get default export */
+/******/ 	!function() {
+/******/ 		// getDefaultExport function for compatibility with non-harmony modules
+/******/ 		__webpack_require__.n = function(module) {
+/******/ 			var getter = module && module.__esModule ?
+/******/ 				function() { return module['default']; } :
+/******/ 				function() { return module; };
+/******/ 			__webpack_require__.d(getter, { a: getter });
+/******/ 			return getter;
+/******/ 		};
+/******/ 	}();
+/******/ 	
+/******/ 	/* webpack/runtime/define property getters */
+/******/ 	!function() {
+/******/ 		// define getter functions for harmony exports
+/******/ 		__webpack_require__.d = function(exports, definition) {
+/******/ 			for(var key in definition) {
+/******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
+/******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
+/******/ 				}
+/******/ 			}
+/******/ 		};
+/******/ 	}();
+/******/ 	
+/******/ 	/* webpack/runtime/global */
+/******/ 	!function() {
+/******/ 		__webpack_require__.g = (function() {
+/******/ 			if (typeof globalThis === 'object') return globalThis;
+/******/ 			try {
+/******/ 				return this || new Function('return this')();
+/******/ 			} catch (e) {
+/******/ 				if (typeof window === 'object') return window;
+/******/ 			}
+/******/ 		})();
+/******/ 	}();
+/******/ 	
+/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
+/******/ 	!function() {
+/******/ 		__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
+/******/ 	}();
+/******/ 	
+/******/ 	/* webpack/runtime/make namespace object */
+/******/ 	!function() {
+/******/ 		// define __esModule on exports
+/******/ 		__webpack_require__.r = function(exports) {
+/******/ 			if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
+/******/ 				Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+/******/ 			}
+/******/ 			Object.defineProperty(exports, '__esModule', { value: true });
+/******/ 		};
+/******/ 	}();
+/******/ 	
+/************************************************************************/
+var __webpack_exports__ = {};
+// This entry need to be wrapped in an IIFE because it need to be in strict mode.
+!function() {
+"use strict";
+// ESM COMPAT FLAG
+__webpack_require__.r(__webpack_exports__);
+
+// EXPORTS
+__webpack_require__.d(__webpack_exports__, {
+  "AnglePickerControl": function() { return /* reexport */ AnglePickerControl; },
+  "Animate": function() { return /* reexport */ Animate; },
+  "Autocomplete": function() { return /* reexport */ Autocomplete; },
+  "BaseControl": function() { return /* reexport */ base_control; },
+  "BlockQuotation": function() { return /* reexport */ external_wp_primitives_namespaceObject.BlockQuotation; },
+  "Button": function() { return /* reexport */ build_module_button; },
+  "ButtonGroup": function() { return /* reexport */ button_group; },
+  "Card": function() { return /* reexport */ card_component; },
+  "CardBody": function() { return /* reexport */ card_body_component; },
+  "CardDivider": function() { return /* reexport */ card_divider_component; },
+  "CardFooter": function() { return /* reexport */ card_footer_component; },
+  "CardHeader": function() { return /* reexport */ card_header_component; },
+  "CardMedia": function() { return /* reexport */ card_media_component; },
+  "CheckboxControl": function() { return /* reexport */ CheckboxControl; },
+  "Circle": function() { return /* reexport */ external_wp_primitives_namespaceObject.Circle; },
+  "ClipboardButton": function() { return /* reexport */ ClipboardButton; },
+  "ColorIndicator": function() { return /* reexport */ color_indicator; },
+  "ColorPalette": function() { return /* reexport */ ColorPalette; },
+  "ColorPicker": function() { return /* reexport */ LegacyAdapter; },
+  "ComboboxControl": function() { return /* reexport */ combobox_control; },
+  "CustomGradientPicker": function() { return /* reexport */ CustomGradientPicker; },
+  "CustomSelectControl": function() { return /* reexport */ CustomSelectControl; },
+  "Dashicon": function() { return /* reexport */ dashicon; },
+  "DatePicker": function() { return /* reexport */ date; },
+  "DateTimePicker": function() { return /* reexport */ date_time; },
+  "Disabled": function() { return /* reexport */ disabled; },
+  "Draggable": function() { return /* reexport */ Draggable; },
+  "DropZone": function() { return /* reexport */ DropZoneComponent; },
+  "DropZoneProvider": function() { return /* reexport */ DropZoneProvider; },
+  "Dropdown": function() { return /* reexport */ Dropdown; },
+  "DropdownMenu": function() { return /* reexport */ dropdown_menu; },
+  "DuotonePicker": function() { return /* reexport */ duotone_picker; },
+  "DuotoneSwatch": function() { return /* reexport */ duotone_swatch; },
+  "ExternalLink": function() { return /* reexport */ external_link; },
+  "Fill": function() { return /* reexport */ slot_fill_Fill; },
+  "Flex": function() { return /* reexport */ flex_component; },
+  "FlexBlock": function() { return /* reexport */ flex_block_component; },
+  "FlexItem": function() { return /* reexport */ flex_item_component; },
+  "FocalPointPicker": function() { return /* reexport */ focal_point_picker; },
+  "FocusReturnProvider": function() { return /* reexport */ with_focus_return_Provider; },
+  "FocusableIframe": function() { return /* reexport */ FocusableIframe; },
+  "FontSizePicker": function() { return /* reexport */ font_size_picker; },
+  "FormFileUpload": function() { return /* reexport */ form_file_upload; },
+  "FormToggle": function() { return /* reexport */ form_toggle; },
+  "FormTokenField": function() { return /* reexport */ form_token_field; },
+  "G": function() { return /* reexport */ external_wp_primitives_namespaceObject.G; },
+  "GradientPicker": function() { return /* reexport */ GradientPicker; },
+  "Guide": function() { return /* reexport */ Guide; },
+  "GuidePage": function() { return /* reexport */ GuidePage; },
+  "HorizontalRule": function() { return /* reexport */ external_wp_primitives_namespaceObject.HorizontalRule; },
+  "Icon": function() { return /* reexport */ build_module_icon; },
+  "IconButton": function() { return /* reexport */ deprecated; },
+  "IsolatedEventContainer": function() { return /* reexport */ isolated_event_container; },
+  "KeyboardShortcuts": function() { return /* reexport */ keyboard_shortcuts; },
+  "MenuGroup": function() { return /* reexport */ menu_group; },
+  "MenuItem": function() { return /* reexport */ menu_item; },
+  "MenuItemsChoice": function() { return /* reexport */ MenuItemsChoice; },
+  "Modal": function() { return /* reexport */ modal; },
+  "NavigableMenu": function() { return /* reexport */ navigable_container_menu; },
+  "Notice": function() { return /* reexport */ build_module_notice; },
+  "NoticeList": function() { return /* reexport */ list; },
+  "Panel": function() { return /* reexport */ panel; },
+  "PanelBody": function() { return /* reexport */ body; },
+  "PanelHeader": function() { return /* reexport */ panel_header; },
+  "PanelRow": function() { return /* reexport */ row; },
+  "Path": function() { return /* reexport */ external_wp_primitives_namespaceObject.Path; },
+  "Placeholder": function() { return /* reexport */ placeholder; },
+  "Polygon": function() { return /* reexport */ external_wp_primitives_namespaceObject.Polygon; },
+  "Popover": function() { return /* reexport */ popover; },
+  "QueryControls": function() { return /* reexport */ QueryControls; },
+  "RadioControl": function() { return /* reexport */ RadioControl; },
+  "RangeControl": function() { return /* reexport */ range_control; },
+  "Rect": function() { return /* reexport */ external_wp_primitives_namespaceObject.Rect; },
+  "ResizableBox": function() { return /* reexport */ resizable_box; },
+  "ResponsiveWrapper": function() { return /* reexport */ responsive_wrapper; },
+  "SVG": function() { return /* reexport */ external_wp_primitives_namespaceObject.SVG; },
+  "SandBox": function() { return /* reexport */ Sandbox; },
+  "ScrollLock": function() { return /* reexport */ ScrollLock; },
+  "SearchControl": function() { return /* reexport */ search_control; },
+  "SelectControl": function() { return /* reexport */ select_control; },
+  "Slot": function() { return /* reexport */ slot_fill_Slot; },
+  "SlotFillProvider": function() { return /* reexport */ Provider; },
+  "Snackbar": function() { return /* reexport */ snackbar; },
+  "SnackbarList": function() { return /* reexport */ snackbar_list; },
+  "Spinner": function() { return /* reexport */ Spinner; },
+  "TabPanel": function() { return /* reexport */ TabPanel; },
+  "TabbableContainer": function() { return /* reexport */ tabbable; },
+  "TextControl": function() { return /* reexport */ text_control; },
+  "TextHighlight": function() { return /* reexport */ text_highlight; },
+  "TextareaControl": function() { return /* reexport */ TextareaControl; },
+  "TimePicker": function() { return /* reexport */ time; },
+  "Tip": function() { return /* reexport */ build_module_tip; },
+  "ToggleControl": function() { return /* reexport */ ToggleControl; },
+  "Toolbar": function() { return /* reexport */ toolbar; },
+  "ToolbarButton": function() { return /* reexport */ toolbar_button; },
+  "ToolbarDropdownMenu": function() { return /* reexport */ toolbar_dropdown_menu; },
+  "ToolbarGroup": function() { return /* reexport */ toolbar_group; },
+  "ToolbarItem": function() { return /* reexport */ toolbar_item; },
+  "Tooltip": function() { return /* reexport */ tooltip; },
+  "TreeSelect": function() { return /* reexport */ TreeSelect; },
+  "VisuallyHidden": function() { return /* reexport */ visually_hidden_component; },
+  "__experimentalAlignmentMatrixControl": function() { return /* reexport */ AlignmentMatrixControl; },
+  "__experimentalBorderBoxControl": function() { return /* reexport */ border_box_control_component; },
+  "__experimentalBorderControl": function() { return /* reexport */ border_control_component; },
+  "__experimentalBoxControl": function() { return /* reexport */ BoxControl; },
+  "__experimentalConfirmDialog": function() { return /* reexport */ confirm_dialog_component; },
+  "__experimentalDimensionControl": function() { return /* reexport */ dimension_control; },
+  "__experimentalDivider": function() { return /* reexport */ divider_component; },
+  "__experimentalElevation": function() { return /* reexport */ elevation_component; },
+  "__experimentalFlyout": function() { return /* reexport */ flyout_component; },
+  "__experimentalGrid": function() { return /* reexport */ grid_component; },
+  "__experimentalHStack": function() { return /* reexport */ h_stack_component; },
+  "__experimentalHasSplitBorders": function() { return /* reexport */ hasSplitBorders; },
+  "__experimentalHeading": function() { return /* reexport */ heading_component; },
+  "__experimentalInputControl": function() { return /* reexport */ input_control; },
+  "__experimentalIsDefinedBorder": function() { return /* reexport */ isDefinedBorder; },
+  "__experimentalIsEmptyBorder": function() { return /* reexport */ isEmptyBorder; },
+  "__experimentalItem": function() { return /* reexport */ item_component; },
+  "__experimentalItemGroup": function() { return /* reexport */ item_group_component; },
+  "__experimentalNavigation": function() { return /* reexport */ Navigation; },
+  "__experimentalNavigationBackButton": function() { return /* reexport */ back_button; },
+  "__experimentalNavigationGroup": function() { return /* reexport */ NavigationGroup; },
+  "__experimentalNavigationItem": function() { return /* reexport */ NavigationItem; },
+  "__experimentalNavigationMenu": function() { return /* reexport */ NavigationMenu; },
+  "__experimentalNavigatorBackButton": function() { return /* reexport */ navigator_back_button_component; },
+  "__experimentalNavigatorButton": function() { return /* reexport */ navigator_button_component; },
+  "__experimentalNavigatorProvider": function() { return /* reexport */ navigator_provider_component; },
+  "__experimentalNavigatorScreen": function() { return /* reexport */ navigator_screen_component; },
+  "__experimentalNumberControl": function() { return /* reexport */ number_control; },
+  "__experimentalPaletteEdit": function() { return /* reexport */ PaletteEdit; },
+  "__experimentalParseQuantityAndUnitFromRawValue": function() { return /* reexport */ parseQuantityAndUnitFromRawValue; },
+  "__experimentalRadio": function() { return /* reexport */ build_module_radio; },
+  "__experimentalRadioGroup": function() { return /* reexport */ radio_group; },
+  "__experimentalScrollable": function() { return /* reexport */ scrollable_component; },
+  "__experimentalSpacer": function() { return /* reexport */ spacer_component; },
+  "__experimentalStyleProvider": function() { return /* reexport */ StyleProvider; },
+  "__experimentalSurface": function() { return /* reexport */ surface_component; },
+  "__experimentalText": function() { return /* reexport */ text_component; },
+  "__experimentalToggleGroupControl": function() { return /* reexport */ toggle_group_control_component; },
+  "__experimentalToggleGroupControlOption": function() { return /* reexport */ ToggleGroupControlOption; },
+  "__experimentalToggleGroupControlOptionIcon": function() { return /* reexport */ ToggleGroupControlOptionIcon; },
+  "__experimentalToolbarContext": function() { return /* reexport */ toolbar_context; },
+  "__experimentalToolsPanel": function() { return /* reexport */ tools_panel_component; },
+  "__experimentalToolsPanelContext": function() { return /* reexport */ ToolsPanelContext; },
+  "__experimentalToolsPanelItem": function() { return /* reexport */ tools_panel_item_component; },
+  "__experimentalTreeGrid": function() { return /* reexport */ tree_grid; },
+  "__experimentalTreeGridCell": function() { return /* reexport */ cell; },
+  "__experimentalTreeGridItem": function() { return /* reexport */ tree_grid_item; },
+  "__experimentalTreeGridRow": function() { return /* reexport */ tree_grid_row; },
+  "__experimentalTruncate": function() { return /* reexport */ truncate_component; },
+  "__experimentalUnitControl": function() { return /* reexport */ unit_control; },
+  "__experimentalUseCustomUnits": function() { return /* reexport */ useCustomUnits; },
+  "__experimentalUseNavigator": function() { return /* reexport */ use_navigator; },
+  "__experimentalUseSlot": function() { return /* reexport */ use_slot_useSlot; },
+  "__experimentalVStack": function() { return /* reexport */ v_stack_component; },
+  "__experimentalView": function() { return /* reexport */ component; },
+  "__experimentalZStack": function() { return /* reexport */ z_stack_component; },
+  "__unstableComposite": function() { return /* reexport */ Composite; },
+  "__unstableCompositeGroup": function() { return /* reexport */ CompositeGroup; },
+  "__unstableCompositeItem": function() { return /* reexport */ CompositeItem; },
+  "__unstableDisclosureContent": function() { return /* reexport */ DisclosureContent; },
+  "__unstableGetAnimateClassName": function() { return /* reexport */ getAnimateClassName; },
+  "__unstableMotion": function() { return /* reexport */ motion; },
+  "__unstableUseAutocompleteProps": function() { return /* reexport */ useAutocompleteProps; },
+  "__unstableUseCompositeState": function() { return /* reexport */ useCompositeState; },
+  "__unstableUseNavigateRegions": function() { return /* reexport */ useNavigateRegions; },
+  "createSlotFill": function() { return /* reexport */ createSlotFill; },
+  "navigateRegions": function() { return /* reexport */ navigate_regions; },
+  "withConstrainedTabbing": function() { return /* reexport */ with_constrained_tabbing; },
+  "withFallbackStyles": function() { return /* reexport */ with_fallback_styles; },
+  "withFilters": function() { return /* reexport */ withFilters; },
+  "withFocusOutside": function() { return /* reexport */ with_focus_outside; },
+  "withFocusReturn": function() { return /* reexport */ with_focus_return; },
+  "withNotices": function() { return /* reexport */ with_notices; },
+  "withSpokenMessages": function() { return /* reexport */ with_spoken_messages; }
+});
+
+// NAMESPACE OBJECT: ./node_modules/@wordpress/components/build-module/text/styles.js
+var text_styles_namespaceObject = {};
+__webpack_require__.r(text_styles_namespaceObject);
+__webpack_require__.d(text_styles_namespaceObject, {
+  "Text": function() { return Text; },
+  "block": function() { return styles_block; },
+  "destructive": function() { return destructive; },
+  "highlighterText": function() { return highlighterText; },
+  "muted": function() { return muted; },
+  "positive": function() { return positive; },
+  "upperCase": function() { return upperCase; }
+});
+
+// NAMESPACE OBJECT: ./node_modules/@wordpress/components/build-module/ui/tooltip/styles.js
+var tooltip_styles_namespaceObject = {};
+__webpack_require__.r(tooltip_styles_namespaceObject);
+__webpack_require__.d(tooltip_styles_namespaceObject, {
+  "TooltipContent": function() { return TooltipContent; },
+  "TooltipPopoverView": function() { return TooltipPopoverView; },
+  "TooltipShortcut": function() { return TooltipShortcut; },
+  "noOutline": function() { return noOutline; }
+});
+
+// NAMESPACE OBJECT: ./node_modules/@wordpress/components/build-module/toggle-group-control/toggle-group-control-option-base/styles.js
+var toggle_group_control_option_base_styles_namespaceObject = {};
+__webpack_require__.r(toggle_group_control_option_base_styles_namespaceObject);
+__webpack_require__.d(toggle_group_control_option_base_styles_namespaceObject, {
+  "ButtonContentView": function() { return ButtonContentView; },
+  "LabelView": function() { return LabelView; },
+  "buttonActive": function() { return buttonActive; },
+  "buttonView": function() { return buttonView; },
+  "labelBlock": function() { return labelBlock; },
+  "medium": function() { return medium; },
+  "separatorActive": function() { return separatorActive; }
+});
+
+;// CONCATENATED MODULE: external ["wp","primitives"]
+var external_wp_primitives_namespaceObject = window["wp"]["primitives"];
+;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js
+function extends_extends() {
+  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_extends.apply(this, arguments);
+}
+;// CONCATENATED MODULE: external ["wp","element"]
+var external_wp_element_namespaceObject = window["wp"]["element"];
+;// CONCATENATED MODULE: external "lodash"
+var external_lodash_namespaceObject = window["lodash"];
+// EXTERNAL MODULE: ./node_modules/classnames/index.js
+var classnames = __webpack_require__(4403);
+var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);
+;// CONCATENATED MODULE: external ["wp","i18n"]
+var external_wp_i18n_namespaceObject = window["wp"]["i18n"];
+;// CONCATENATED MODULE: external ["wp","compose"]
+var external_wp_compose_namespaceObject = window["wp"]["compose"];
+;// CONCATENATED MODULE: ./node_modules/reakit/es/_rollupPluginBabelHelpers-1f0bf8c2.js
+function _defineProperty(obj, key, value) {
+  if (key in obj) {
+    Object.defineProperty(obj, key, {
+      value: value,
+      enumerable: true,
+      configurable: true,
+      writable: true
+    });
+  } else {
+    obj[key] = value;
+  }
+
+  return obj;
+}
+
+function ownKeys(object, enumerableOnly) {
+  var keys = Object.keys(object);
+
+  if (Object.getOwnPropertySymbols) {
+    var symbols = Object.getOwnPropertySymbols(object);
+    if (enumerableOnly) symbols = symbols.filter(function (sym) {
+      return Object.getOwnPropertyDescriptor(object, sym).enumerable;
+    });
+    keys.push.apply(keys, symbols);
+  }
+
+  return keys;
+}
+
+function _objectSpread2(target) {
+  for (var i = 1; i < arguments.length; i++) {
+    var source = arguments[i] != null ? arguments[i] : {};
+
+    if (i % 2) {
+      ownKeys(Object(source), true).forEach(function (key) {
+        _defineProperty(target, key, source[key]);
+      });
+    } else if (Object.getOwnPropertyDescriptors) {
+      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
+    } else {
+      ownKeys(Object(source)).forEach(function (key) {
+        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(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 _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 _createForOfIteratorHelperLoose(o, allowArrayLike) {
+  var it;
+
+  if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) {
+    if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
+      if (it) o = it;
+      var i = 0;
+      return function () {
+        if (i >= o.length) return {
+          done: true
+        };
+        return {
+          done: false,
+          value: o[i++]
+        };
+      };
+    }
+
+    throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
+  }
+
+  it = o[Symbol.iterator]();
+  return it.next.bind(it);
+}
+
+
+
+// EXTERNAL MODULE: external "React"
+var external_React_ = __webpack_require__(9196);
+var external_React_default = /*#__PURE__*/__webpack_require__.n(external_React_);
+;// CONCATENATED MODULE: ./node_modules/reakit-system/es/_rollupPluginBabelHelpers-0c84a174.js
+function _rollupPluginBabelHelpers_0c84a174_defineProperty(obj, key, value) {
+  if (key in obj) {
+    Object.defineProperty(obj, key, {
+      value: value,
+      enumerable: true,
+      configurable: true,
+      writable: true
+    });
+  } else {
+    obj[key] = value;
+  }
+
+  return obj;
+}
+
+function _rollupPluginBabelHelpers_0c84a174_ownKeys(object, enumerableOnly) {
+  var keys = Object.keys(object);
+
+  if (Object.getOwnPropertySymbols) {
+    var symbols = Object.getOwnPropertySymbols(object);
+    if (enumerableOnly) symbols = symbols.filter(function (sym) {
+      return Object.getOwnPropertyDescriptor(object, sym).enumerable;
+    });
+    keys.push.apply(keys, symbols);
+  }
+
+  return keys;
+}
+
+function _rollupPluginBabelHelpers_0c84a174_objectSpread2(target) {
+  for (var i = 1; i < arguments.length; i++) {
+    var source = arguments[i] != null ? arguments[i] : {};
+
+    if (i % 2) {
+      _rollupPluginBabelHelpers_0c84a174_ownKeys(Object(source), true).forEach(function (key) {
+        _rollupPluginBabelHelpers_0c84a174_defineProperty(target, key, source[key]);
+      });
+    } else if (Object.getOwnPropertyDescriptors) {
+      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
+    } else {
+      _rollupPluginBabelHelpers_0c84a174_ownKeys(Object(source)).forEach(function (key) {
+        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
+      });
+    }
+  }
+
+  return target;
+}
+
+function _rollupPluginBabelHelpers_0c84a174_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 _rollupPluginBabelHelpers_0c84a174_unsupportedIterableToArray(o, minLen) {
+  if (!o) return;
+  if (typeof o === "string") return _rollupPluginBabelHelpers_0c84a174_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 _rollupPluginBabelHelpers_0c84a174_arrayLikeToArray(o, minLen);
+}
+
+function _rollupPluginBabelHelpers_0c84a174_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 _rollupPluginBabelHelpers_0c84a174_createForOfIteratorHelperLoose(o, allowArrayLike) {
+  var it;
+
+  if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) {
+    if (Array.isArray(o) || (it = _rollupPluginBabelHelpers_0c84a174_unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
+      if (it) o = it;
+      var i = 0;
+      return function () {
+        if (i >= o.length) return {
+          done: true
+        };
+        return {
+          done: false,
+          value: o[i++]
+        };
+      };
+    }
+
+    throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
+  }
+
+  it = o[Symbol.iterator]();
+  return it.next.bind(it);
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit-system/es/SystemContext.js
+
+
+var SystemContext = /*#__PURE__*/(0,external_React_.createContext)({});
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit-system/es/useCreateElement.js
+
+
+
+
+function isRenderProp(children) {
+  return typeof children === "function";
+}
+
+/**
+ * Custom hook that will call `children` if it's a function. If
+ * `useCreateElement` has been passed to the context, it'll be used instead.
+ *
+ * @example
+ * import React from "react";
+ * import { SystemProvider, useCreateElement } from "reakit-system";
+ *
+ * const system = {
+ *   useCreateElement(type, props, children = props.children) {
+ *     // very similar to what `useCreateElement` does already
+ *     if (typeof children === "function") {
+ *       const { children: _, ...rest } = props;
+ *       return children(rest);
+ *     }
+ *     return React.createElement(type, props, children);
+ *   },
+ * };
+ *
+ * function Component(props) {
+ *   return useCreateElement("div", props);
+ * }
+ *
+ * function App() {
+ *   return (
+ *     <SystemProvider unstable_system={system}>
+ *       <Component url="url">{({ url }) => <a href={url}>link</a>}</Component>
+ *     </SystemProvider>
+ *   );
+ * }
+ */
+
+var useCreateElement = function useCreateElement(type, props, children) {
+  if (children === void 0) {
+    children = props.children;
+  }
+
+  var context = (0,external_React_.useContext)(SystemContext);
+
+  if (context.useCreateElement) {
+    return context.useCreateElement(type, props, children);
+  }
+
+  if (typeof type === "string" && isRenderProp(children)) {
+    var _ = props.children,
+        rest = _rollupPluginBabelHelpers_0c84a174_objectWithoutPropertiesLoose(props, ["children"]);
+
+    return children(rest);
+  }
+
+  return /*#__PURE__*/(0,external_React_.createElement)(type, props, children);
+};
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit-utils/es/_rollupPluginBabelHelpers-1f0bf8c2.js
+function _rollupPluginBabelHelpers_1f0bf8c2_defineProperty(obj, key, value) {
+  if (key in obj) {
+    Object.defineProperty(obj, key, {
+      value: value,
+      enumerable: true,
+      configurable: true,
+      writable: true
+    });
+  } else {
+    obj[key] = value;
+  }
+
+  return obj;
+}
+
+function _rollupPluginBabelHelpers_1f0bf8c2_ownKeys(object, enumerableOnly) {
+  var keys = Object.keys(object);
+
+  if (Object.getOwnPropertySymbols) {
+    var symbols = Object.getOwnPropertySymbols(object);
+    if (enumerableOnly) symbols = symbols.filter(function (sym) {
+      return Object.getOwnPropertyDescriptor(object, sym).enumerable;
+    });
+    keys.push.apply(keys, symbols);
+  }
+
+  return keys;
+}
+
+function _rollupPluginBabelHelpers_1f0bf8c2_objectSpread2(target) {
+  for (var i = 1; i < arguments.length; i++) {
+    var source = arguments[i] != null ? arguments[i] : {};
+
+    if (i % 2) {
+      _rollupPluginBabelHelpers_1f0bf8c2_ownKeys(Object(source), true).forEach(function (key) {
+        _rollupPluginBabelHelpers_1f0bf8c2_defineProperty(target, key, source[key]);
+      });
+    } else if (Object.getOwnPropertyDescriptors) {
+      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
+    } else {
+      _rollupPluginBabelHelpers_1f0bf8c2_ownKeys(Object(source)).forEach(function (key) {
+        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
+      });
+    }
+  }
+
+  return target;
+}
+
+function _rollupPluginBabelHelpers_1f0bf8c2_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 _rollupPluginBabelHelpers_1f0bf8c2_unsupportedIterableToArray(o, minLen) {
+  if (!o) return;
+  if (typeof o === "string") return _rollupPluginBabelHelpers_1f0bf8c2_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 _rollupPluginBabelHelpers_1f0bf8c2_arrayLikeToArray(o, minLen);
+}
+
+function _rollupPluginBabelHelpers_1f0bf8c2_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 _rollupPluginBabelHelpers_1f0bf8c2_createForOfIteratorHelperLoose(o, allowArrayLike) {
+  var it;
+
+  if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) {
+    if (Array.isArray(o) || (it = _rollupPluginBabelHelpers_1f0bf8c2_unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
+      if (it) o = it;
+      var i = 0;
+      return function () {
+        if (i >= o.length) return {
+          done: true
+        };
+        return {
+          done: false,
+          value: o[i++]
+        };
+      };
+    }
+
+    throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
+  }
+
+  it = o[Symbol.iterator]();
+  return it.next.bind(it);
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit-utils/es/isObject.js
+/**
+ * Checks whether `arg` is an object or not.
+ *
+ * @returns {boolean}
+ */
+function isObject_isObject(arg) {
+  return typeof arg === "object" && arg != null;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit-utils/es/isPlainObject.js
+
+
+/**
+ * Checks whether `arg` is a plain object or not.
+ *
+ * @returns {boolean}
+ */
+
+function isPlainObject(arg) {
+  var _proto$constructor;
+
+  if (!isObject_isObject(arg)) return false;
+  var proto = Object.getPrototypeOf(arg);
+  if (proto == null) return true;
+  return ((_proto$constructor = proto.constructor) === null || _proto$constructor === void 0 ? void 0 : _proto$constructor.toString()) === Object.toString();
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit-utils/es/splitProps.js
+
+
+
+
+/**
+ * Splits an object (`props`) into a tuple where the first item is an object
+ * with the passed `keys`, and the second item is an object with these keys
+ * omitted.
+ *
+ * @deprecated will be removed in version 2
+ *
+ * @example
+ * import { splitProps } from "reakit-utils";
+ *
+ * splitProps({ a: "a", b: "b" }, ["a"]); // [{ a: "a" }, { b: "b" }]
+ */
+
+function __deprecatedSplitProps(props, keys) {
+  var propsKeys = Object.keys(props);
+  var picked = {};
+  var omitted = {};
+
+  for (var _i = 0, _propsKeys = propsKeys; _i < _propsKeys.length; _i++) {
+    var key = _propsKeys[_i];
+
+    if (keys.indexOf(key) >= 0) {
+      picked[key] = props[key];
+    } else {
+      omitted[key] = props[key];
+    }
+  }
+
+  return [picked, omitted];
+}
+/**
+ * Splits an object (`props`) into a tuple where the first item
+ * is the `state` property, and the second item is the rest of the properties.
+ *
+ * It is also backward compatible with version 1. If `keys` are passed then
+ * splits an object (`props`) into a tuple where the first item is an object
+ * with the passed `keys`, and the second item is an object with these keys
+ * omitted.
+ *
+ * @example
+ * import { splitProps } from "reakit-utils";
+ *
+ * splitProps({ a: "a", b: "b" }, ["a"]); // [{ a: "a" }, { b: "b" }]
+ *
+ * @example
+ * import { splitProps } from "reakit-utils";
+ *
+ * splitProps({ state: { a: "a" }, b: "b" }); // [{ a: "a" }, { b: "b" }]
+ */
+
+
+function splitProps(props, keys) {
+  if (keys === void 0) {
+    keys = [];
+  }
+
+  if (!isPlainObject(props.state)) {
+    return __deprecatedSplitProps(props, keys);
+  }
+
+  var _deprecatedSplitProp = __deprecatedSplitProps(props, [].concat(keys, ["state"])),
+      picked = _deprecatedSplitProp[0],
+      omitted = _deprecatedSplitProp[1];
+
+  var state = picked.state,
+      restPicked = _rollupPluginBabelHelpers_1f0bf8c2_objectWithoutPropertiesLoose(picked, ["state"]);
+
+  return [_rollupPluginBabelHelpers_1f0bf8c2_objectSpread2(_rollupPluginBabelHelpers_1f0bf8c2_objectSpread2({}, state), restPicked), omitted];
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit-utils/es/shallowEqual.js
+/**
+ * Compares two objects.
+ *
+ * @example
+ * import { shallowEqual } from "reakit-utils";
+ *
+ * shallowEqual({ a: "a" }, {}); // false
+ * shallowEqual({ a: "a" }, { b: "b" }); // false
+ * shallowEqual({ a: "a" }, { a: "a" }); // true
+ * shallowEqual({ a: "a" }, { a: "a", b: "b" }); // false
+ */
+function shallowEqual(objA, objB) {
+  if (objA === objB) return true;
+  if (!objA) return false;
+  if (!objB) return false;
+  if (typeof objA !== "object") return false;
+  if (typeof objB !== "object") return false;
+  var aKeys = Object.keys(objA);
+  var bKeys = Object.keys(objB);
+  var length = aKeys.length;
+  if (bKeys.length !== length) return false;
+
+  for (var _i = 0, _aKeys = aKeys; _i < _aKeys.length; _i++) {
+    var key = _aKeys[_i];
+
+    if (objA[key] !== objB[key]) {
+      return false;
+    }
+  }
+
+  return true;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit-utils/es/normalizePropsAreEqual.js
+
+
+
+
+/**
+ * This higher order functions take `propsAreEqual` function and
+ * returns a new function which normalizes the props.
+ *
+ * Normalizing in our case is making sure the `propsAreEqual` works with
+ * both version 1 (object spreading) and version 2 (state object) state passing.
+ *
+ * To achieve this, the returned function in case of a state object
+ * will spread the state object in both `prev` and `next props.
+ *
+ * Other case it just returns the function as is which makes sure
+ * that we are still backward compatible
+ */
+function normalizePropsAreEqual(propsAreEqual) {
+  if (propsAreEqual.name === "normalizePropsAreEqualInner") {
+    return propsAreEqual;
+  }
+
+  return function normalizePropsAreEqualInner(prev, next) {
+    if (!isPlainObject(prev.state) || !isPlainObject(next.state)) {
+      return propsAreEqual(prev, next);
+    }
+
+    return propsAreEqual(_rollupPluginBabelHelpers_1f0bf8c2_objectSpread2(_rollupPluginBabelHelpers_1f0bf8c2_objectSpread2({}, prev.state), prev), _rollupPluginBabelHelpers_1f0bf8c2_objectSpread2(_rollupPluginBabelHelpers_1f0bf8c2_objectSpread2({}, next.state), next));
+  };
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit-system/es/createComponent.js
+
+
+
+
+
+
+
+
+function createComponent_forwardRef(component) {
+  return /*#__PURE__*/(0,external_React_.forwardRef)(component);
+}
+
+function memo(component, propsAreEqual) {
+  return /*#__PURE__*/(0,external_React_.memo)(component, propsAreEqual);
+}
+
+/**
+ * Creates a React component.
+ *
+ * @example
+ * import { createComponent } from "reakit-system";
+ *
+ * const A = createComponent({ as: "a" });
+ *
+ * @param options
+ */
+function createComponent(_ref) {
+  var type = _ref.as,
+      useHook = _ref.useHook,
+      shouldMemo = _ref.memo,
+      _ref$propsAreEqual = _ref.propsAreEqual,
+      propsAreEqual = _ref$propsAreEqual === void 0 ? useHook === null || useHook === void 0 ? void 0 : useHook.unstable_propsAreEqual : _ref$propsAreEqual,
+      _ref$keys = _ref.keys,
+      keys = _ref$keys === void 0 ? (useHook === null || useHook === void 0 ? void 0 : useHook.__keys) || [] : _ref$keys,
+      _ref$useCreateElement = _ref.useCreateElement,
+      useCreateElement$1 = _ref$useCreateElement === void 0 ? useCreateElement : _ref$useCreateElement;
+
+  var Comp = function Comp(_ref2, ref) {
+    var _ref2$as = _ref2.as,
+        as = _ref2$as === void 0 ? type : _ref2$as,
+        props = _rollupPluginBabelHelpers_0c84a174_objectWithoutPropertiesLoose(_ref2, ["as"]);
+
+    if (useHook) {
+      var _as$render;
+
+      var _splitProps = splitProps(props, keys),
+          _options = _splitProps[0],
+          htmlProps = _splitProps[1];
+
+      var _useHook = useHook(_options, _rollupPluginBabelHelpers_0c84a174_objectSpread2({
+        ref: ref
+      }, htmlProps)),
+          wrapElement = _useHook.wrapElement,
+          elementProps = _rollupPluginBabelHelpers_0c84a174_objectWithoutPropertiesLoose(_useHook, ["wrapElement"]); // @ts-ignore
+
+
+      var asKeys = ((_as$render = as.render) === null || _as$render === void 0 ? void 0 : _as$render.__keys) || as.__keys;
+      var asOptions = asKeys && splitProps(props, asKeys)[0];
+      var allProps = asOptions ? _rollupPluginBabelHelpers_0c84a174_objectSpread2(_rollupPluginBabelHelpers_0c84a174_objectSpread2({}, elementProps), asOptions) : elementProps;
+
+      var _element = useCreateElement$1(as, allProps);
+
+      if (wrapElement) {
+        return wrapElement(_element);
+      }
+
+      return _element;
+    }
+
+    return useCreateElement$1(as, _rollupPluginBabelHelpers_0c84a174_objectSpread2({
+      ref: ref
+    }, props));
+  };
+
+  if (false) {}
+
+  Comp = createComponent_forwardRef(Comp);
+
+  if (shouldMemo) {
+    Comp = memo(Comp, propsAreEqual && normalizePropsAreEqual(propsAreEqual));
+  }
+
+  Comp.__keys = keys;
+  Comp.unstable_propsAreEqual = normalizePropsAreEqual(propsAreEqual || shallowEqual);
+  return Comp;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit-system/es/useToken.js
+
+
+
+/**
+ * React custom hook that returns the value of any token defined in the
+ * SystemContext. It's mainly used internally in [`useOptions`](#useoptions)
+ * and [`useProps`](#useprops).
+ *
+ * @example
+ * import { SystemProvider, useToken } from "reakit-system";
+ *
+ * const system = {
+ *   token: "value",
+ * };
+ *
+ * function Component(props) {
+ *   const token = useToken("token", "default value");
+ *   return <div {...props}>{token}</div>;
+ * }
+ *
+ * function App() {
+ *   return (
+ *     <SystemProvider unstable_system={system}>
+ *       <Component />
+ *     </SystemProvider>
+ *   );
+ * }
+ */
+
+function useToken(token, defaultValue) {
+  (0,external_React_.useDebugValue)(token);
+  var context = (0,external_React_.useContext)(SystemContext);
+  return context[token] != null ? context[token] : defaultValue;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit-system/es/useProps.js
+
+
+
+
+/**
+ * React custom hook that returns the props returned by a given
+ * `use${name}Props` in the SystemContext.
+ *
+ * @example
+ * import { SystemProvider, useProps } from "reakit-system";
+ *
+ * const system = {
+ *   useAProps(options, htmlProps) {
+ *     return {
+ *       ...htmlProps,
+ *       href: options.url,
+ *     };
+ *   },
+ * };
+ *
+ * function A({ url, ...htmlProps }) {
+ *   const props = useProps("A", { url }, htmlProps);
+ *   return <a {...props} />;
+ * }
+ *
+ * function App() {
+ *   return (
+ *     <SystemProvider unstable_system={system}>
+ *       <A url="url">It will convert url into href in useAProps</A>
+ *     </SystemProvider>
+ *   );
+ * }
+ */
+
+function useProps(name, options, htmlProps) {
+  if (options === void 0) {
+    options = {};
+  }
+
+  if (htmlProps === void 0) {
+    htmlProps = {};
+  }
+
+  var hookName = "use" + name + "Props";
+  (0,external_React_.useDebugValue)(hookName);
+  var useHook = useToken(hookName);
+
+  if (useHook) {
+    return useHook(options, htmlProps);
+  }
+
+  return htmlProps;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit-system/es/useOptions.js
+
+
+
+
+
+/**
+ * React custom hook that returns the options returned by a given
+ * `use${name}Options` in the SystemContext.
+ *
+ * @example
+ * import React from "react";
+ * import { SystemProvider, useOptions } from "reakit-system";
+ *
+ * const system = {
+ *   useAOptions(options, htmlProps) {
+ *     return {
+ *       ...options,
+ *       url: htmlProps.href,
+ *     };
+ *   },
+ * };
+ *
+ * function A({ url, ...htmlProps }) {
+ *   const options = useOptions("A", { url }, htmlProps);
+ *   return <a href={options.url} {...htmlProps} />;
+ * }
+ *
+ * function App() {
+ *   return (
+ *     <SystemProvider unstable_system={system}>
+ *       <A href="url">
+ *         It will convert href into url in useAOptions and then url into href in A
+ *       </A>
+ *     </SystemProvider>
+ *   );
+ * }
+ */
+
+function useOptions(name, options, htmlProps) {
+  if (options === void 0) {
+    options = {};
+  }
+
+  if (htmlProps === void 0) {
+    htmlProps = {};
+  }
+
+  var hookName = "use" + name + "Options";
+  (0,external_React_.useDebugValue)(hookName);
+  var useHook = useToken(hookName);
+
+  if (useHook) {
+    return _rollupPluginBabelHelpers_0c84a174_objectSpread2(_rollupPluginBabelHelpers_0c84a174_objectSpread2({}, options), useHook(options, htmlProps));
+  }
+
+  return options;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit-utils/es/toArray.js
+/**
+ * Transforms `arg` into an array if it's not already.
+ *
+ * @example
+ * import { toArray } from "reakit-utils";
+ *
+ * toArray("a"); // ["a"]
+ * toArray(["a"]); // ["a"]
+ */
+function toArray(arg) {
+  if (Array.isArray(arg)) {
+    return arg;
+  }
+
+  return typeof arg !== "undefined" ? [arg] : [];
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit-system/es/createHook.js
+
+
+
+
+
+
+
+
+
+/**
+ * Creates a React custom hook that will return component props.
+ *
+ * @example
+ * import { createHook } from "reakit-system";
+ *
+ * const useA = createHook({
+ *   name: "A",
+ *   keys: ["url"], // custom props/options keys
+ *   useProps(options, htmlProps) {
+ *     return {
+ *       ...htmlProps,
+ *       href: options.url,
+ *     };
+ *   },
+ * });
+ *
+ * function A({ url, ...htmlProps }) {
+ *   const props = useA({ url }, htmlProps);
+ *   return <a {...props} />;
+ * }
+ *
+ * @param options
+ */
+function createHook(options) {
+  var _options$useState, _composedHooks$;
+
+  var composedHooks = toArray(options.compose);
+
+  var __useOptions = function __useOptions(hookOptions, htmlProps) {
+    // Call the current hook's useOptions first
+    if (options.useOptions) {
+      hookOptions = options.useOptions(hookOptions, htmlProps);
+    } // If there's name, call useOptions from the system context
+
+
+    if (options.name) {
+      hookOptions = useOptions(options.name, hookOptions, htmlProps);
+    } // Run composed hooks useOptions
+
+
+    if (options.compose) {
+      for (var _iterator = _rollupPluginBabelHelpers_0c84a174_createForOfIteratorHelperLoose(composedHooks), _step; !(_step = _iterator()).done;) {
+        var hook = _step.value;
+        hookOptions = hook.__useOptions(hookOptions, htmlProps);
+      }
+    }
+
+    return hookOptions;
+  };
+
+  var useHook = function useHook(hookOptions, htmlProps, unstable_ignoreUseOptions) {
+    if (hookOptions === void 0) {
+      hookOptions = {};
+    }
+
+    if (htmlProps === void 0) {
+      htmlProps = {};
+    }
+
+    if (unstable_ignoreUseOptions === void 0) {
+      unstable_ignoreUseOptions = false;
+    }
+
+    // This won't execute when useHook was called from within another useHook
+    if (!unstable_ignoreUseOptions) {
+      hookOptions = __useOptions(hookOptions, htmlProps);
+    } // Call the current hook's useProps
+
+
+    if (options.useProps) {
+      htmlProps = options.useProps(hookOptions, htmlProps);
+    } // If there's name, call useProps from the system context
+
+
+    if (options.name) {
+      htmlProps = useProps(options.name, hookOptions, htmlProps);
+    }
+
+    if (options.compose) {
+      if (options.useComposeOptions) {
+        hookOptions = options.useComposeOptions(hookOptions, htmlProps);
+      }
+
+      if (options.useComposeProps) {
+        htmlProps = options.useComposeProps(hookOptions, htmlProps);
+      } else {
+        for (var _iterator2 = _rollupPluginBabelHelpers_0c84a174_createForOfIteratorHelperLoose(composedHooks), _step2; !(_step2 = _iterator2()).done;) {
+          var hook = _step2.value;
+          htmlProps = hook(hookOptions, htmlProps, true);
+        }
+      }
+    } // Remove undefined values from htmlProps
+
+
+    var finalHTMLProps = {};
+    var definedHTMLProps = htmlProps || {};
+
+    for (var prop in definedHTMLProps) {
+      if (definedHTMLProps[prop] !== undefined) {
+        finalHTMLProps[prop] = definedHTMLProps[prop];
+      }
+    }
+
+    return finalHTMLProps;
+  };
+
+  useHook.__useOptions = __useOptions;
+  var composedKeys = composedHooks.reduce(function (keys, hook) {
+    keys.push.apply(keys, hook.__keys || []);
+    return keys;
+  }, []); // It's used by createComponent to split option props (keys) and html props
+
+  useHook.__keys = [].concat(composedKeys, ((_options$useState = options.useState) === null || _options$useState === void 0 ? void 0 : _options$useState.__keys) || [], options.keys || []);
+  useHook.unstable_propsAreEqual = options.propsAreEqual || ((_composedHooks$ = composedHooks[0]) === null || _composedHooks$ === void 0 ? void 0 : _composedHooks$.unstable_propsAreEqual) || shallowEqual;
+
+  if (false) {}
+
+  return useHook;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit-utils/es/useForkRef.js
+
+
+// https://github.com/mui-org/material-ui/blob/2bcc874cf07b81202968f769cb9c2398c7c11311/packages/material-ui/src/utils/useForkRef.js
+
+function setRef(ref, value) {
+  if (value === void 0) {
+    value = null;
+  }
+
+  if (!ref) return;
+
+  if (typeof ref === "function") {
+    ref(value);
+  } else {
+    ref.current = value;
+  }
+}
+/**
+ * Merges up to two React Refs into a single memoized function React Ref so you
+ * can pass it to an element.
+ *
+ * @example
+ * import React from "react";
+ * import { useForkRef } from "reakit-utils";
+ *
+ * const Component = React.forwardRef((props, ref) => {
+ *   const internalRef = React.useRef();
+ *   return <div {...props} ref={useForkRef(internalRef, ref)} />;
+ * });
+ */
+
+
+function useForkRef(refA, refB) {
+  return (0,external_React_.useMemo)(function () {
+    if (refA == null && refB == null) {
+      return null;
+    }
+
+    return function (value) {
+      setRef(refA, value);
+      setRef(refB, value);
+    };
+  }, [refA, refB]);
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit-warning/es/useWarning.js
+
+
+
+
+
+function isRefObject(ref) {
+  return isObject(ref) && "current" in ref;
+}
+/**
+ * Logs `messages` to the console using `console.warn` based on a `condition`.
+ * This should be used inside components.
+ */
+
+
+function useWarning(condition) {
+  for (var _len = arguments.length, messages = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
+    messages[_key - 1] = arguments[_key];
+  }
+
+  if (false) {}
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit-warning/es/index.js
+
+
+
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit-utils/es/getDocument.js
+/**
+ * Returns `element.ownerDocument || document`.
+ */
+function getDocument(element) {
+  return element ? element.ownerDocument || element : document;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit-utils/es/getWindow.js
+
+
+// Thanks to Fluent UI for doing the [research on IE11 memory leak](https://github.com/microsoft/fluentui/pull/9010#issuecomment-490768427)
+
+var _window; // Note: Accessing "window" in IE11 is somewhat expensive, and calling "typeof window"
+// hits a memory leak, whereas aliasing it and calling "typeof _window" does not.
+// Caching the window value at the file scope lets us minimize the impact.
+
 
 try {
-	// This works if eval is allowed (see CSP)
-	g = g || new Function("return this")();
+  _window = window;
 } catch (e) {
-	// This works if the window reference is available
-	if (typeof window === "object") g = window;
-}
-
-// g can still be undefined, but nothing to do about it...
-// We return undefined, instead of nothing here, so it's
-// easier to handle this case. if(!global) { ...}
-
-module.exports = g;
-
-
-/***/ }),
-
-/***/ "yLpt":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var implementation = __webpack_require__("FufO");
-
-var lacksProperEnumerationOrder = function () {
-	if (!Object.assign) {
-		return false;
-	}
-	/*
-	 * v8, specifically in node 4.x, has a bug with incorrect property enumeration order
-	 * note: this does not detect the bug unless there's 20 characters
-	 */
-	var str = 'abcdefghijklmnopqrst';
-	var letters = str.split('');
-	var map = {};
-	for (var i = 0; i < letters.length; ++i) {
-		map[letters[i]] = letters[i];
-	}
-	var obj = Object.assign({}, map);
-	var actual = '';
-	for (var k in obj) {
-		actual += k;
-	}
-	return str !== actual;
-};
-
-var assignHasPendingExceptions = function () {
-	if (!Object.assign || !Object.preventExtensions) {
-		return false;
-	}
-	/*
-	 * Firefox 37 still has "pending exception" logic in its Object.assign implementation,
-	 * which is 72% slower than our shim, and Firefox 40's native implementation.
-	 */
-	var thrower = Object.preventExtensions({ 1: 2 });
-	try {
-		Object.assign(thrower, 'xy');
-	} catch (e) {
-		return thrower[1] === 'y';
-	}
-	return false;
-};
-
-module.exports = function getPolyfill() {
-	if (!Object.assign) {
-		return implementation;
-	}
-	if (lacksProperEnumerationOrder()) {
-		return implementation;
-	}
-	if (assignHasPendingExceptions()) {
-		return implementation;
-	}
-	return Object.assign;
-};
-
-
-/***/ }),
-
-/***/ "yN6O":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var ArraySpeciesCreate = __webpack_require__("7Ji+");
-var FlattenIntoArray = __webpack_require__("iz0l");
-var Get = __webpack_require__("3aeR");
-var ToInteger = __webpack_require__("ddK1");
-var ToLength = __webpack_require__("w3Ut");
-var ToObject = __webpack_require__("sA9S");
-
-module.exports = function flat() {
-	var O = ToObject(this);
-	var sourceLen = ToLength(Get(O, 'length'));
-
-	var depthNum = 1;
-	if (arguments.length > 0 && typeof arguments[0] !== 'undefined') {
-		depthNum = ToInteger(arguments[0]);
-	}
-
-	var A = ArraySpeciesCreate(O, 0);
-	FlattenIntoArray(A, O, sourceLen, 0, depthNum);
-	return A;
-};
-
-
-/***/ }),
-
-/***/ "yc2e":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports['default'] = getPhrasePropTypes;
-
-var _object = __webpack_require__("Koq/");
-
-var _object2 = _interopRequireDefault(_object);
-
-var _propTypes = __webpack_require__("17x9");
-
-var _propTypes2 = _interopRequireDefault(_propTypes);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
-
-function getPhrasePropTypes(defaultPhrases) {
-  return Object.keys(defaultPhrases).reduce(function (phrases, key) {
-    return (0, _object2['default'])({}, phrases, _defineProperty({}, key, _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].func, _propTypes2['default'].node])));
-  }, {});
-}
-
-/***/ }),
-
-/***/ "ym77":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* unused harmony export unstable_Id */
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return unstable_useId; });
-/* harmony import */ var _rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("BZp5");
-/* harmony import */ var reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("hE48");
-/* harmony import */ var reakit_system_createHook__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("qdes");
-/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("cDcd");
-/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);
-/* harmony import */ var _IdProvider_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("KCH1");
+  /* no-op */
+}
+/**
+ * Returns `element.ownerDocument.defaultView || window`.
+ */
+
+
+function getWindow(element) {
+  if (!element) {
+    return _window;
+  }
+
+  return getDocument(element).defaultView || _window;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit-utils/es/canUseDOM.js
+
+
+
+function checkIsBrowser() {
+  var _window = getWindow();
+
+  return Boolean(typeof _window !== "undefined" && _window.document && _window.document.createElement);
+}
+/**
+ * It's `true` if it is running in a browser environment or `false` if it is not (SSR).
+ *
+ * @example
+ * import { canUseDOM } from "reakit-utils";
+ *
+ * const title = canUseDOM ? document.title : "";
+ */
+
+
+var canUseDOM = checkIsBrowser();
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit-utils/es/useIsomorphicEffect.js
+
+
+
+
+
+/**
+ * `React.useLayoutEffect` that fallbacks to `React.useEffect` on server side
+ * rendering.
+ */
+
+var useIsomorphicEffect = !canUseDOM ? external_React_.useEffect : external_React_.useLayoutEffect;
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit-utils/es/useLiveRef.js
+
+
+
+
+
+
+/**
+ * A `React.Ref` that keeps track of the passed `value`.
+ */
+
+function useLiveRef(value) {
+  var ref = (0,external_React_.useRef)(value);
+  useIsomorphicEffect(function () {
+    ref.current = value;
+  });
+  return ref;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit-utils/es/isSelfTarget.js
+/**
+ * Returns `true` if `event.target` and `event.currentTarget` are the same.
+ */
+function isSelfTarget(event) {
+  return event.target === event.currentTarget;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit-utils/es/getActiveElement.js
+
+
+/**
+ * Returns `element.ownerDocument.activeElement`.
+ */
+
+function getActiveElement_getActiveElement(element) {
+  var _getDocument = getDocument(element),
+      activeElement = _getDocument.activeElement;
+
+  if (!(activeElement !== null && activeElement !== void 0 && activeElement.nodeName)) {
+    // In IE11, activeElement might be an empty object if we're interacting
+    // with elements inside of an iframe.
+    return null;
+  }
+
+  return activeElement;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit-utils/es/contains.js
+/**
+ * Similar to `Element.prototype.contains`, but a little bit faster when
+ * `element` is the same as `child`.
+ *
+ * @example
+ * import { contains } from "reakit-utils";
+ *
+ * contains(document.getElementById("parent"), document.getElementById("child"));
+ */
+function contains(parent, child) {
+  return parent === child || parent.contains(child);
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit-utils/es/hasFocusWithin.js
+
+
+
+
+/**
+ * Checks if `element` has focus within. Elements that are referenced by
+ * `aria-activedescendant` are also considered.
+ *
+ * @example
+ * import { hasFocusWithin } from "reakit-utils";
+ *
+ * hasFocusWithin(document.getElementById("id"));
+ */
+
+function hasFocusWithin(element) {
+  var activeElement = getActiveElement_getActiveElement(element);
+  if (!activeElement) return false;
+  if (contains(element, activeElement)) return true;
+  var activeDescendant = activeElement.getAttribute("aria-activedescendant");
+  if (!activeDescendant) return false;
+  if (activeDescendant === element.id) return true;
+  return !!element.querySelector("#" + activeDescendant);
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit-utils/es/isPortalEvent.js
+
+
+/**
+ * Returns `true` if `event` has been fired within a React Portal element.
+ */
+
+function isPortalEvent(event) {
+  return !contains(event.currentTarget, event.target);
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit-utils/es/isButton.js
+var buttonInputTypes = ["button", "color", "file", "image", "reset", "submit"];
+/**
+ * Checks whether `element` is a native HTML button element.
+ *
+ * @example
+ * import { isButton } from "reakit-utils";
+ *
+ * isButton(document.querySelector("button")); // true
+ * isButton(document.querySelector("input[type='button']")); // true
+ * isButton(document.querySelector("div")); // false
+ * isButton(document.querySelector("input[type='text']")); // false
+ * isButton(document.querySelector("div[role='button']")); // false
+ *
+ * @returns {boolean}
+ */
+
+function isButton(element) {
+  if (element.tagName === "BUTTON") return true;
+
+  if (element.tagName === "INPUT") {
+    var input = element;
+    return buttonInputTypes.indexOf(input.type) !== -1;
+  }
+
+  return false;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit-utils/es/dom.js
+
+
+
+
+/**
+ * Checks if a given string exists in the user agent string.
+ */
+
+function isUA(string) {
+  if (!canUseDOM) return false;
+  return window.navigator.userAgent.indexOf(string) !== -1;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit-utils/es/matches.js
+/**
+ * Ponyfill for `Element.prototype.matches`
+ *
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/matches
+ */
+function matches(element, selectors) {
+  if ("matches" in element) {
+    return element.matches(selectors);
+  }
+
+  if ("msMatchesSelector" in element) {
+    return element.msMatchesSelector(selectors);
+  }
+
+  return element.webkitMatchesSelector(selectors);
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit-utils/es/tabbable.js
+
+
+
+
+
+/** @module tabbable */
+var selector = "input:not([type='hidden']):not([disabled]), select:not([disabled]), " + "textarea:not([disabled]), a[href], button:not([disabled]), [tabindex], " + "iframe, object, embed, area[href], audio[controls], video[controls], " + "[contenteditable]:not([contenteditable='false'])";
+
+function isVisible(element) {
+  var htmlElement = element;
+  return htmlElement.offsetWidth > 0 || htmlElement.offsetHeight > 0 || element.getClientRects().length > 0;
+}
+
+function hasNegativeTabIndex(element) {
+  var tabIndex = parseInt(element.getAttribute("tabindex") || "0", 10);
+  return tabIndex < 0;
+}
+/**
+ * Checks whether `element` is focusable or not.
+ *
+ * @memberof tabbable
+ *
+ * @example
+ * import { isFocusable } from "reakit-utils";
+ *
+ * isFocusable(document.querySelector("input")); // true
+ * isFocusable(document.querySelector("input[tabindex='-1']")); // true
+ * isFocusable(document.querySelector("input[hidden]")); // false
+ * isFocusable(document.querySelector("input:disabled")); // false
+ */
+
+
+function isFocusable(element) {
+  return matches(element, selector) && isVisible(element);
+}
+/**
+ * Checks whether `element` is tabbable or not.
+ *
+ * @memberof tabbable
+ *
+ * @example
+ * import { isTabbable } from "reakit-utils";
+ *
+ * isTabbable(document.querySelector("input")); // true
+ * isTabbable(document.querySelector("input[tabindex='-1']")); // false
+ * isTabbable(document.querySelector("input[hidden]")); // false
+ * isTabbable(document.querySelector("input:disabled")); // false
+ */
+
+function isTabbable(element) {
+  return isFocusable(element) && !hasNegativeTabIndex(element);
+}
+/**
+ * Returns all the focusable elements in `container`.
+ *
+ * @memberof tabbable
+ *
+ * @param {Element} container
+ *
+ * @returns {Element[]}
+ */
+
+function getAllFocusableIn(container) {
+  var allFocusable = Array.from(container.querySelectorAll(selector));
+  allFocusable.unshift(container);
+  return allFocusable.filter(isFocusable);
+}
+/**
+ * Returns the first focusable element in `container`.
+ *
+ * @memberof tabbable
+ *
+ * @param {Element} container
+ *
+ * @returns {Element|null}
+ */
+
+function getFirstFocusableIn(container) {
+  var _getAllFocusableIn = getAllFocusableIn(container),
+      first = _getAllFocusableIn[0];
+
+  return first || null;
+}
+/**
+ * Returns all the tabbable elements in `container`, including the container
+ * itself.
+ *
+ * @memberof tabbable
+ *
+ * @param {Element} container
+ * @param fallbackToFocusable If `true`, it'll return focusable elements if there are no tabbable ones.
+ *
+ * @returns {Element[]}
+ */
+
+function getAllTabbableIn(container, fallbackToFocusable) {
+  var allFocusable = Array.from(container.querySelectorAll(selector));
+  var allTabbable = allFocusable.filter(isTabbable);
+
+  if (isTabbable(container)) {
+    allTabbable.unshift(container);
+  }
+
+  if (!allTabbable.length && fallbackToFocusable) {
+    return allFocusable;
+  }
+
+  return allTabbable;
+}
+/**
+ * Returns the first tabbable element in `container`, including the container
+ * itself if it's tabbable.
+ *
+ * @memberof tabbable
+ *
+ * @param {Element} container
+ * @param fallbackToFocusable If `true`, it'll return the first focusable element if there are no tabbable ones.
+ *
+ * @returns {Element|null}
+ */
+
+function getFirstTabbableIn(container, fallbackToFocusable) {
+  var _getAllTabbableIn = getAllTabbableIn(container, fallbackToFocusable),
+      first = _getAllTabbableIn[0];
+
+  return first || null;
+}
+/**
+ * Returns the last tabbable element in `container`, including the container
+ * itself if it's tabbable.
+ *
+ * @memberof tabbable
+ *
+ * @param {Element} container
+ * @param fallbackToFocusable If `true`, it'll return the last focusable element if there are no tabbable ones.
+ *
+ * @returns {Element|null}
+ */
+
+function getLastTabbableIn(container, fallbackToFocusable) {
+  var allTabbable = getAllTabbableIn(container, fallbackToFocusable);
+  return allTabbable[allTabbable.length - 1] || null;
+}
+/**
+ * Returns the next tabbable element in `container`.
+ *
+ * @memberof tabbable
+ *
+ * @param {Element} container
+ * @param fallbackToFocusable If `true`, it'll return the next focusable element if there are no tabbable ones.
+ *
+ * @returns {Element|null}
+ */
+
+function getNextTabbableIn(container, fallbackToFocusable) {
+  var activeElement = getActiveElement(container);
+  var allFocusable = getAllFocusableIn(container);
+  var index = allFocusable.indexOf(activeElement);
+  var slice = allFocusable.slice(index + 1);
+  return slice.find(isTabbable) || allFocusable.find(isTabbable) || (fallbackToFocusable ? slice[0] : null);
+}
+/**
+ * Returns the previous tabbable element in `container`.
+ *
+ * @memberof tabbable
+ *
+ * @param {Element} container
+ * @param fallbackToFocusable If `true`, it'll return the previous focusable element if there are no tabbable ones.
+ *
+ * @returns {Element|null}
+ */
+
+function getPreviousTabbableIn(container, fallbackToFocusable) {
+  var activeElement = getActiveElement(container);
+  var allFocusable = getAllFocusableIn(container).reverse();
+  var index = allFocusable.indexOf(activeElement);
+  var slice = allFocusable.slice(index + 1);
+  return slice.find(isTabbable) || allFocusable.find(isTabbable) || (fallbackToFocusable ? slice[0] : null);
+}
+/**
+ * Returns the closest focusable element.
+ *
+ * @memberof tabbable
+ *
+ * @param {Element} container
+ *
+ * @returns {Element|null}
+ */
+
+function getClosestFocusable(element) {
+  while (element && !isFocusable(element)) {
+    element = closest(element, selector);
+  }
+
+  return element;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit/es/Role/Role.js
+
+
+
+
+
+// Automatically generated
+var ROLE_KEYS = ["unstable_system"];
+
+var useRole = createHook({
+  name: "Role",
+  keys: ROLE_KEYS,
+  propsAreEqual: function propsAreEqual(prev, next) {
+    var prevSystem = prev.unstable_system,
+        prevProps = _objectWithoutPropertiesLoose(prev, ["unstable_system"]);
+
+    var nextSystem = next.unstable_system,
+        nextProps = _objectWithoutPropertiesLoose(next, ["unstable_system"]);
+
+    if (prevSystem !== nextSystem && !shallowEqual(prevSystem, nextSystem)) {
+      return false;
+    }
+
+    return shallowEqual(prevProps, nextProps);
+  }
+});
+var Role = createComponent({
+  as: "div",
+  useHook: useRole
+});
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit/es/Tabbable/Tabbable.js
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+// Automatically generated
+var TABBABLE_KEYS = ["disabled", "focusable"];
+
+var isSafariOrFirefoxOnMac = isUA("Mac") && !isUA("Chrome") && (isUA("Safari") || isUA("Firefox"));
+
+function focusIfNeeded(element) {
+  if (!hasFocusWithin(element) && isFocusable(element)) {
+    element.focus();
+  }
+}
+
+function isNativeTabbable(element) {
+  return ["BUTTON", "INPUT", "SELECT", "TEXTAREA", "A"].includes(element.tagName);
+}
+
+function supportsDisabledAttribute(element) {
+  return ["BUTTON", "INPUT", "SELECT", "TEXTAREA"].includes(element.tagName);
+}
+
+function getTabIndex(trulyDisabled, nativeTabbable, supportsDisabled, htmlTabIndex) {
+  if (trulyDisabled) {
+    if (nativeTabbable && !supportsDisabled) {
+      // Anchor, audio and video tags don't support the `disabled` attribute.
+      // We must pass tabIndex={-1} so they don't receive focus on tab.
+      return -1;
+    } // Elements that support the `disabled` attribute don't need tabIndex.
+
+
+    return undefined;
+  }
+
+  if (nativeTabbable) {
+    // If the element is enabled and it's natively tabbable, we don't need to
+    // specify a tabIndex attribute unless it's explicitly set by the user.
+    return htmlTabIndex;
+  } // If the element is enabled and is not natively tabbable, we have to
+  // fallback tabIndex={0}.
+
+
+  return htmlTabIndex || 0;
+}
+
+function useDisableEvent(htmlEventRef, disabled) {
+  return (0,external_React_.useCallback)(function (event) {
+    var _htmlEventRef$current;
+
+    (_htmlEventRef$current = htmlEventRef.current) === null || _htmlEventRef$current === void 0 ? void 0 : _htmlEventRef$current.call(htmlEventRef, event);
+    if (event.defaultPrevented) return;
+
+    if (disabled) {
+      event.stopPropagation();
+      event.preventDefault();
+    }
+  }, [htmlEventRef, disabled]);
+}
+
+var useTabbable = createHook({
+  name: "Tabbable",
+  compose: useRole,
+  keys: TABBABLE_KEYS,
+  useOptions: function useOptions(options, _ref) {
+    var disabled = _ref.disabled;
+    return _objectSpread2({
+      disabled: disabled
+    }, options);
+  },
+  useProps: function useProps(options, _ref2) {
+    var htmlRef = _ref2.ref,
+        htmlTabIndex = _ref2.tabIndex,
+        htmlOnClickCapture = _ref2.onClickCapture,
+        htmlOnMouseDownCapture = _ref2.onMouseDownCapture,
+        htmlOnMouseDown = _ref2.onMouseDown,
+        htmlOnKeyPressCapture = _ref2.onKeyPressCapture,
+        htmlStyle = _ref2.style,
+        htmlProps = _objectWithoutPropertiesLoose(_ref2, ["ref", "tabIndex", "onClickCapture", "onMouseDownCapture", "onMouseDown", "onKeyPressCapture", "style"]);
+
+    var ref = (0,external_React_.useRef)(null);
+    var onClickCaptureRef = useLiveRef(htmlOnClickCapture);
+    var onMouseDownCaptureRef = useLiveRef(htmlOnMouseDownCapture);
+    var onMouseDownRef = useLiveRef(htmlOnMouseDown);
+    var onKeyPressCaptureRef = useLiveRef(htmlOnKeyPressCapture);
+    var trulyDisabled = !!options.disabled && !options.focusable;
+
+    var _React$useState = (0,external_React_.useState)(true),
+        nativeTabbable = _React$useState[0],
+        setNativeTabbable = _React$useState[1];
+
+    var _React$useState2 = (0,external_React_.useState)(true),
+        supportsDisabled = _React$useState2[0],
+        setSupportsDisabled = _React$useState2[1];
+
+    var style = options.disabled ? _objectSpread2({
+      pointerEvents: "none"
+    }, htmlStyle) : htmlStyle;
+    useIsomorphicEffect(function () {
+      var tabbable = ref.current;
+
+      if (!tabbable) {
+         false ? 0 : void 0;
+        return;
+      }
+
+      if (!isNativeTabbable(tabbable)) {
+        setNativeTabbable(false);
+      }
+
+      if (!supportsDisabledAttribute(tabbable)) {
+        setSupportsDisabled(false);
+      }
+    }, []);
+    var onClickCapture = useDisableEvent(onClickCaptureRef, options.disabled);
+    var onMouseDownCapture = useDisableEvent(onMouseDownCaptureRef, options.disabled);
+    var onKeyPressCapture = useDisableEvent(onKeyPressCaptureRef, options.disabled);
+    var onMouseDown = (0,external_React_.useCallback)(function (event) {
+      var _onMouseDownRef$curre;
+
+      (_onMouseDownRef$curre = onMouseDownRef.current) === null || _onMouseDownRef$curre === void 0 ? void 0 : _onMouseDownRef$curre.call(onMouseDownRef, event);
+      var element = event.currentTarget;
+      if (event.defaultPrevented) return; // Safari and Firefox on MacOS don't focus on buttons on mouse down
+      // like other browsers/platforms. Instead, they focus on the closest
+      // focusable ancestor element, which is ultimately the body element. So
+      // we make sure to give focus to the tabbable element on mouse down so
+      // it works consistently across browsers.
+
+      if (!isSafariOrFirefoxOnMac) return;
+      if (isPortalEvent(event)) return;
+      if (!isButton(element)) return; // We can't focus right away after on mouse down, otherwise it would
+      // prevent drag events from happening. So we schedule the focus to the
+      // next animation frame.
+
+      var raf = requestAnimationFrame(function () {
+        element.removeEventListener("mouseup", focusImmediately, true);
+        focusIfNeeded(element);
+      }); // If mouseUp happens before the next animation frame (which is common
+      // on touch screens or by just tapping the trackpad on MacBook's), we
+      // cancel the animation frame and immediately focus on the element.
+
+      var focusImmediately = function focusImmediately() {
+        cancelAnimationFrame(raf);
+        focusIfNeeded(element);
+      }; // By listening to the event in the capture phase, we make sure the
+      // focus event is fired before the onMouseUp and onMouseUpCapture React
+      // events, which is aligned with the default browser behavior.
+
+
+      element.addEventListener("mouseup", focusImmediately, {
+        once: true,
+        capture: true
+      });
+    }, []);
+    return _objectSpread2({
+      ref: useForkRef(ref, htmlRef),
+      style: style,
+      tabIndex: getTabIndex(trulyDisabled, nativeTabbable, supportsDisabled, htmlTabIndex),
+      disabled: trulyDisabled && supportsDisabled ? true : undefined,
+      "aria-disabled": options.disabled ? true : undefined,
+      onClickCapture: onClickCapture,
+      onMouseDownCapture: onMouseDownCapture,
+      onMouseDown: onMouseDown,
+      onKeyPressCapture: onKeyPressCapture
+    }, htmlProps);
+  }
+});
+var Tabbable = createComponent({
+  as: "div",
+  useHook: useTabbable
+});
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit/es/Clickable/Clickable.js
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+// Automatically generated
+var CLICKABLE_KEYS = ["unstable_clickOnEnter", "unstable_clickOnSpace"];
+
+function isNativeClick(event) {
+  var element = event.currentTarget;
+  if (!event.isTrusted) return false; // istanbul ignore next: can't test trusted events yet
+
+  return isButton(element) || element.tagName === "INPUT" || element.tagName === "TEXTAREA" || element.tagName === "A" || element.tagName === "SELECT";
+}
+
+var useClickable = createHook({
+  name: "Clickable",
+  compose: useTabbable,
+  keys: CLICKABLE_KEYS,
+  useOptions: function useOptions(_ref) {
+    var _ref$unstable_clickOn = _ref.unstable_clickOnEnter,
+        unstable_clickOnEnter = _ref$unstable_clickOn === void 0 ? true : _ref$unstable_clickOn,
+        _ref$unstable_clickOn2 = _ref.unstable_clickOnSpace,
+        unstable_clickOnSpace = _ref$unstable_clickOn2 === void 0 ? true : _ref$unstable_clickOn2,
+        options = _objectWithoutPropertiesLoose(_ref, ["unstable_clickOnEnter", "unstable_clickOnSpace"]);
+
+    return _objectSpread2({
+      unstable_clickOnEnter: unstable_clickOnEnter,
+      unstable_clickOnSpace: unstable_clickOnSpace
+    }, options);
+  },
+  useProps: function useProps(options, _ref2) {
+    var htmlOnKeyDown = _ref2.onKeyDown,
+        htmlOnKeyUp = _ref2.onKeyUp,
+        htmlProps = _objectWithoutPropertiesLoose(_ref2, ["onKeyDown", "onKeyUp"]);
+
+    var _React$useState = (0,external_React_.useState)(false),
+        active = _React$useState[0],
+        setActive = _React$useState[1];
+
+    var onKeyDownRef = useLiveRef(htmlOnKeyDown);
+    var onKeyUpRef = useLiveRef(htmlOnKeyUp);
+    var onKeyDown = (0,external_React_.useCallback)(function (event) {
+      var _onKeyDownRef$current;
+
+      (_onKeyDownRef$current = onKeyDownRef.current) === null || _onKeyDownRef$current === void 0 ? void 0 : _onKeyDownRef$current.call(onKeyDownRef, event);
+      if (event.defaultPrevented) return;
+      if (options.disabled) return;
+      if (event.metaKey) return;
+      if (!isSelfTarget(event)) return;
+      var isEnter = options.unstable_clickOnEnter && event.key === "Enter";
+      var isSpace = options.unstable_clickOnSpace && event.key === " ";
+
+      if (isEnter || isSpace) {
+        if (isNativeClick(event)) return;
+        event.preventDefault();
+
+        if (isEnter) {
+          event.currentTarget.click();
+        } else if (isSpace) {
+          setActive(true);
+        }
+      }
+    }, [options.disabled, options.unstable_clickOnEnter, options.unstable_clickOnSpace]);
+    var onKeyUp = (0,external_React_.useCallback)(function (event) {
+      var _onKeyUpRef$current;
+
+      (_onKeyUpRef$current = onKeyUpRef.current) === null || _onKeyUpRef$current === void 0 ? void 0 : _onKeyUpRef$current.call(onKeyUpRef, event);
+      if (event.defaultPrevented) return;
+      if (options.disabled) return;
+      if (event.metaKey) return;
+      var isSpace = options.unstable_clickOnSpace && event.key === " ";
+
+      if (active && isSpace) {
+        setActive(false);
+        event.currentTarget.click();
+      }
+    }, [options.disabled, options.unstable_clickOnSpace, active]);
+    return _objectSpread2({
+      "data-active": active || undefined,
+      onKeyDown: onKeyDown,
+      onKeyUp: onKeyUp
+    }, htmlProps);
+  }
+});
+var Clickable = createComponent({
+  as: "button",
+  memo: true,
+  useHook: useClickable
+});
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit/es/getCurrentId-5aa9849e.js
+function findFirstEnabledItem(items, excludeId) {
+  if (excludeId) {
+    return items.find(function (item) {
+      return !item.disabled && item.id !== excludeId;
+    });
+  }
+
+  return items.find(function (item) {
+    return !item.disabled;
+  });
+}
+
+function getCurrentId(options, passedId) {
+  var _findFirstEnabledItem;
+
+  if (passedId || passedId === null) {
+    return passedId;
+  }
+
+  if (options.currentId || options.currentId === null) {
+    return options.currentId;
+  }
+
+  return (_findFirstEnabledItem = findFirstEnabledItem(options.items || [])) === null || _findFirstEnabledItem === void 0 ? void 0 : _findFirstEnabledItem.id;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit/es/__keys-6742f591.js
+// Automatically generated
+var COMPOSITE_STATE_KEYS = ["baseId", "unstable_idCountRef", "setBaseId", "unstable_virtual", "rtl", "orientation", "items", "groups", "currentId", "loop", "wrap", "shift", "unstable_moves", "unstable_hasActiveWidget", "unstable_includesBaseElement", "registerItem", "unregisterItem", "registerGroup", "unregisterGroup", "move", "next", "previous", "up", "down", "first", "last", "sort", "unstable_setVirtual", "setRTL", "setOrientation", "setCurrentId", "setLoop", "setWrap", "setShift", "reset", "unstable_setIncludesBaseElement", "unstable_setHasActiveWidget"];
+var COMPOSITE_KEYS = COMPOSITE_STATE_KEYS;
+var COMPOSITE_GROUP_KEYS = COMPOSITE_KEYS;
+var COMPOSITE_ITEM_KEYS = COMPOSITE_GROUP_KEYS;
+var COMPOSITE_ITEM_WIDGET_KEYS = (/* unused pure expression or super */ null && (COMPOSITE_ITEM_KEYS));
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit/es/userFocus-e16425e3.js
+function userFocus(element) {
+  element.userFocus = true;
+  element.focus();
+  element.userFocus = false;
+}
+function hasUserFocus(element) {
+  return !!element.userFocus;
+}
+function setUserFocus(element, value) {
+  element.userFocus = value;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit-utils/es/isTextField.js
+/**
+ * Check whether the given element is a text field, where text field is defined
+ * by the ability to select within the input, or that it is contenteditable.
+ *
+ * @example
+ * import { isTextField } from "reakit-utils";
+ *
+ * isTextField(document.querySelector("div")); // false
+ * isTextField(document.querySelector("input")); // true
+ * isTextField(document.querySelector("input[type='button']")); // false
+ * isTextField(document.querySelector("textarea")); // true
+ * isTextField(document.querySelector("div[contenteditable='true']")); // true
+ */
+function isTextField(element) {
+  try {
+    var isTextInput = element instanceof HTMLInputElement && element.selectionStart !== null;
+    var isTextArea = element.tagName === "TEXTAREA";
+    var isContentEditable = element.contentEditable === "true";
+    return isTextInput || isTextArea || isContentEditable || false;
+  } catch (error) {
+    // Safari throws an exception when trying to get `selectionStart`
+    // on non-text <input> elements (which, understandably, don't
+    // have the text selection API). We catch this via a try/catch
+    // block, as opposed to a more explicit check of the element's
+    // input types, because of Safari's non-standard behavior. This
+    // also means we don't have to worry about the list of input
+    // types that support `selectionStart` changing as the HTML spec
+    // evolves over time.
+    return false;
+  }
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit-utils/es/hasFocus.js
+
+
+
+/**
+ * Checks if `element` has focus. Elements that are referenced by
+ * `aria-activedescendant` are also considered.
+ *
+ * @example
+ * import { hasFocus } from "reakit-utils";
+ *
+ * hasFocus(document.getElementById("id"));
+ */
+
+function hasFocus(element) {
+  var activeElement = getActiveElement_getActiveElement(element);
+  if (!activeElement) return false;
+  if (activeElement === element) return true;
+  var activeDescendant = activeElement.getAttribute("aria-activedescendant");
+  if (!activeDescendant) return false;
+  return activeDescendant === element.id;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit-utils/es/ensureFocus.js
+
+
+
+
+/**
+ * Ensures `element` will receive focus if it's not already.
+ *
+ * @example
+ * import { ensureFocus } from "reakit-utils";
+ *
+ * ensureFocus(document.activeElement); // does nothing
+ *
+ * const element = document.querySelector("input");
+ *
+ * ensureFocus(element); // focuses element
+ * ensureFocus(element, { preventScroll: true }); // focuses element preventing scroll jump
+ *
+ * function isActive(el) {
+ *   return el.dataset.active === "true";
+ * }
+ *
+ * ensureFocus(document.querySelector("[data-active='true']"), { isActive }); // does nothing
+ *
+ * @returns {number} `requestAnimationFrame` call ID so it can be passed to `cancelAnimationFrame` if needed.
+ */
+function ensureFocus(element, _temp) {
+  var _ref = _temp === void 0 ? {} : _temp,
+      preventScroll = _ref.preventScroll,
+      _ref$isActive = _ref.isActive,
+      isActive = _ref$isActive === void 0 ? hasFocus : _ref$isActive;
+
+  if (isActive(element)) return -1;
+  element.focus({
+    preventScroll: preventScroll
+  });
+  if (isActive(element)) return -1;
+  return requestAnimationFrame(function () {
+    element.focus({
+      preventScroll: preventScroll
+    });
+  });
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit/es/Id/IdProvider.js
+
+
+var defaultPrefix = "id";
+function generateRandomString(prefix) {
+  if (prefix === void 0) {
+    prefix = defaultPrefix;
+  }
+
+  return "" + (prefix ? prefix + "-" : "") + Math.random().toString(32).substr(2, 6);
+}
+
+var unstable_IdContext = /*#__PURE__*/(0,external_React_.createContext)(generateRandomString);
+function unstable_IdProvider(_ref) {
+  var children = _ref.children,
+      _ref$prefix = _ref.prefix,
+      prefix = _ref$prefix === void 0 ? defaultPrefix : _ref$prefix;
+  var count = useRef(0);
+  var generateId = useCallback(function (localPrefix) {
+    if (localPrefix === void 0) {
+      localPrefix = prefix;
+    }
+
+    return "" + (localPrefix ? localPrefix + "-" : "") + ++count.current;
+  }, [prefix]);
+  return /*#__PURE__*/createElement(unstable_IdContext.Provider, {
+    value: generateId
+  }, children);
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit/es/Id/Id.js
 
 
 
@@ -59398,12 +18525,12 @@
 var ID_STATE_KEYS = ["baseId", "unstable_idCountRef", "setBaseId"];
 var ID_KEYS = [].concat(ID_STATE_KEYS, ["id"]);
 
-var unstable_useId = Object(reakit_system_createHook__WEBPACK_IMPORTED_MODULE_2__[/* createHook */ "a"])({
+var unstable_useId = createHook({
   keys: ID_KEYS,
   useOptions: function useOptions(options, htmlProps) {
-    var generateId = Object(react__WEBPACK_IMPORTED_MODULE_3__["useContext"])(_IdProvider_js__WEBPACK_IMPORTED_MODULE_4__[/* unstable_IdContext */ "a"]);
-
-    var _React$useState = Object(react__WEBPACK_IMPORTED_MODULE_3__["useState"])(function () {
+    var generateId = (0,external_React_.useContext)(unstable_IdContext);
+
+    var _React$useState = (0,external_React_.useState)(function () {
       // This comes from useIdState
       if (options.unstable_idCountRef) {
         options.unstable_idCountRef.current += 1;
@@ -59424,114 +18551,1035 @@
     // or a random string (without Provider).
 
 
-    var baseId = Object(react__WEBPACK_IMPORTED_MODULE_3__["useMemo"])(function () {
+    var baseId = (0,external_React_.useMemo)(function () {
       return options.baseId || generateId();
     }, [options.baseId, generateId]);
     var id = htmlProps.id || options.id || "" + baseId + suffix;
-    return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, options), {}, {
+    return _objectSpread2(_objectSpread2({}, options), {}, {
       id: id
     });
   },
   useProps: function useProps(options, htmlProps) {
-    return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({
+    return _objectSpread2({
       id: options.id
     }, htmlProps);
   }
 });
-var unstable_Id = Object(reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_1__[/* createComponent */ "a"])({
+var unstable_Id = createComponent({
   as: "div",
   useHook: unstable_useId
 });
 
 
 
-
-/***/ }),
-
-/***/ "yy3d":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var GetIntrinsic = __webpack_require__("rZ7t");
-
-var $match = GetIntrinsic('%Symbol.match%', true);
-
-var hasRegExpMatcher = __webpack_require__("SegQ");
-
-var ToBoolean = __webpack_require__("kvlw");
-
-// https://ecma-international.org/ecma-262/6.0/#sec-isregexp
-
-module.exports = function IsRegExp(argument) {
-	if (!argument || typeof argument !== 'object') {
-		return false;
-	}
-	if ($match) {
-		var isRegExp = argument[$match];
-		if (typeof isRegExp !== 'undefined') {
-			return ToBoolean(isRegExp);
-		}
-	}
-	return hasRegExpMatcher(argument);
-};
-
-
-/***/ }),
-
-/***/ "yyeE":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var GetIntrinsic = __webpack_require__("rZ7t");
-
-var $Math = GetIntrinsic('%Math%');
-var $Number = GetIntrinsic('%Number%');
-
-module.exports = $Number.MAX_SAFE_INTEGER || $Math.pow(2, 53) - 1;
-
-
-/***/ }),
-
-/***/ "z3X9":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var has = __webpack_require__("oNNP");
-
-var assertRecord = __webpack_require__("10Kj");
-
-var Type = __webpack_require__("V1cy");
-
-// https://ecma-international.org/ecma-262/6.0/#sec-isaccessordescriptor
-
-module.exports = function IsAccessorDescriptor(Desc) {
-	if (typeof Desc === 'undefined') {
-		return false;
-	}
-
-	assertRecord(Type, 'Property Descriptor', 'Desc', Desc);
-
-	if (!has(Desc, '[[Get]]') && !has(Desc, '[[Set]]')) {
-		return false;
-	}
-
-	return true;
-};
-
-
-/***/ }),
-
-/***/ "z9I/":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return StyleSheet; });
+;// CONCATENATED MODULE: ./node_modules/reakit-utils/es/createEvent.js
+
+
+/**
+ * Creates an `Event` in a way that also works on IE 11.
+ *
+ * @example
+ * import { createEvent } from "reakit-utils";
+ *
+ * const el = document.getElementById("id");
+ * el.dispatchEvent(createEvent(el, "blur", { bubbles: false }));
+ */
+
+function createEvent(element, type, eventInit) {
+  if (typeof Event === "function") {
+    return new Event(type, eventInit);
+  } // IE 11 doesn't support Event constructors
+
+
+  var event = getDocument(element).createEvent("Event");
+  event.initEvent(type, eventInit === null || eventInit === void 0 ? void 0 : eventInit.bubbles, eventInit === null || eventInit === void 0 ? void 0 : eventInit.cancelable);
+  return event;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit-utils/es/fireEvent.js
+
+
+
+/**
+ * Creates and dispatches `Event` in a way that also works on IE 11.
+ *
+ * @example
+ * import { fireEvent } from "reakit-utils";
+ *
+ * fireEvent(document.getElementById("id"), "blur", {
+ *   bubbles: true,
+ *   cancelable: true,
+ * });
+ */
+
+function fireEvent(element, type, eventInit) {
+  return element.dispatchEvent(createEvent(element, type, eventInit));
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit/es/setTextFieldValue-0a221f4e.js
+
+
+function setTextFieldValue(element, value) {
+  if (element instanceof HTMLInputElement || element instanceof HTMLTextAreaElement) {
+    var _Object$getOwnPropert;
+
+    var proto = Object.getPrototypeOf(element);
+    var setValue = (_Object$getOwnPropert = Object.getOwnPropertyDescriptor(proto, "value")) === null || _Object$getOwnPropert === void 0 ? void 0 : _Object$getOwnPropert.set;
+
+    if (setValue) {
+      setValue.call(element, value);
+      fireEvent(element, "input", {
+        bubbles: true
+      });
+    }
+  }
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit/es/Composite/CompositeItem.js
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+function getWidget(itemElement) {
+  return itemElement.querySelector("[data-composite-item-widget]");
+}
+
+function useItem(options) {
+  return (0,external_React_.useMemo)(function () {
+    var _options$items;
+
+    return (_options$items = options.items) === null || _options$items === void 0 ? void 0 : _options$items.find(function (item) {
+      return options.id && item.id === options.id;
+    });
+  }, [options.items, options.id]);
+}
+
+function targetIsAnotherItem(event, items) {
+  if (isSelfTarget(event)) return false;
+
+  for (var _iterator = _createForOfIteratorHelperLoose(items), _step; !(_step = _iterator()).done;) {
+    var item = _step.value;
+
+    if (item.ref.current === event.target) {
+      return true;
+    }
+  }
+
+  return false;
+}
+
+var useCompositeItem = createHook({
+  name: "CompositeItem",
+  compose: [useClickable, unstable_useId],
+  keys: COMPOSITE_ITEM_KEYS,
+  propsAreEqual: function propsAreEqual(prev, next) {
+    if (!next.id || prev.id !== next.id) {
+      return useClickable.unstable_propsAreEqual(prev, next);
+    }
+
+    var prevCurrentId = prev.currentId,
+        prevMoves = prev.unstable_moves,
+        prevProps = _objectWithoutPropertiesLoose(prev, ["currentId", "unstable_moves"]);
+
+    var nextCurrentId = next.currentId,
+        nextMoves = next.unstable_moves,
+        nextProps = _objectWithoutPropertiesLoose(next, ["currentId", "unstable_moves"]);
+
+    if (nextCurrentId !== prevCurrentId) {
+      if (next.id === nextCurrentId || next.id === prevCurrentId) {
+        return false;
+      }
+    } else if (prevMoves !== nextMoves) {
+      return false;
+    }
+
+    return useClickable.unstable_propsAreEqual(prevProps, nextProps);
+  },
+  useOptions: function useOptions(options) {
+    return _objectSpread2(_objectSpread2({}, options), {}, {
+      id: options.id,
+      currentId: getCurrentId(options),
+      unstable_clickOnSpace: options.unstable_hasActiveWidget ? false : options.unstable_clickOnSpace
+    });
+  },
+  useProps: function useProps(options, _ref) {
+    var _options$items2;
+
+    var htmlRef = _ref.ref,
+        _ref$tabIndex = _ref.tabIndex,
+        htmlTabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex,
+        htmlOnMouseDown = _ref.onMouseDown,
+        htmlOnFocus = _ref.onFocus,
+        htmlOnBlurCapture = _ref.onBlurCapture,
+        htmlOnKeyDown = _ref.onKeyDown,
+        htmlOnClick = _ref.onClick,
+        htmlProps = _objectWithoutPropertiesLoose(_ref, ["ref", "tabIndex", "onMouseDown", "onFocus", "onBlurCapture", "onKeyDown", "onClick"]);
+
+    var ref = (0,external_React_.useRef)(null);
+    var id = options.id;
+    var trulyDisabled = options.disabled && !options.focusable;
+    var isCurrentItem = options.currentId === id;
+    var isCurrentItemRef = useLiveRef(isCurrentItem);
+    var hasFocusedComposite = (0,external_React_.useRef)(false);
+    var item = useItem(options);
+    var onMouseDownRef = useLiveRef(htmlOnMouseDown);
+    var onFocusRef = useLiveRef(htmlOnFocus);
+    var onBlurCaptureRef = useLiveRef(htmlOnBlurCapture);
+    var onKeyDownRef = useLiveRef(htmlOnKeyDown);
+    var onClickRef = useLiveRef(htmlOnClick);
+    var shouldTabIndex = !options.unstable_virtual && !options.unstable_hasActiveWidget && isCurrentItem || // We don't want to set tabIndex="-1" when using CompositeItem as a
+    // standalone component, without state props.
+    !((_options$items2 = options.items) !== null && _options$items2 !== void 0 && _options$items2.length);
+    (0,external_React_.useEffect)(function () {
+      var _options$registerItem;
+
+      if (!id) return undefined;
+      (_options$registerItem = options.registerItem) === null || _options$registerItem === void 0 ? void 0 : _options$registerItem.call(options, {
+        id: id,
+        ref: ref,
+        disabled: !!trulyDisabled
+      });
+      return function () {
+        var _options$unregisterIt;
+
+        (_options$unregisterIt = options.unregisterItem) === null || _options$unregisterIt === void 0 ? void 0 : _options$unregisterIt.call(options, id);
+      };
+    }, [id, trulyDisabled, options.registerItem, options.unregisterItem]);
+    (0,external_React_.useEffect)(function () {
+      var element = ref.current;
+
+      if (!element) {
+         false ? 0 : void 0;
+        return;
+      } // `moves` will be incremented whenever next, previous, up, down, first,
+      // last or move have been called. This means that the composite item will
+      // be focused whenever some of these functions are called. We're using
+      // isCurrentItemRef instead of isCurrentItem because we don't want to
+      // focus the item if isCurrentItem changes (and options.moves doesn't).
+
+
+      if (options.unstable_moves && isCurrentItemRef.current) {
+        userFocus(element);
+      }
+    }, [options.unstable_moves]);
+    var onMouseDown = (0,external_React_.useCallback)(function (event) {
+      var _onMouseDownRef$curre;
+
+      (_onMouseDownRef$curre = onMouseDownRef.current) === null || _onMouseDownRef$curre === void 0 ? void 0 : _onMouseDownRef$curre.call(onMouseDownRef, event);
+      setUserFocus(event.currentTarget, true);
+    }, []);
+    var onFocus = (0,external_React_.useCallback)(function (event) {
+      var _onFocusRef$current, _options$setCurrentId;
+
+      var shouldFocusComposite = hasUserFocus(event.currentTarget);
+      setUserFocus(event.currentTarget, false);
+      (_onFocusRef$current = onFocusRef.current) === null || _onFocusRef$current === void 0 ? void 0 : _onFocusRef$current.call(onFocusRef, event);
+      if (event.defaultPrevented) return;
+      if (isPortalEvent(event)) return;
+      if (!id) return;
+      if (targetIsAnotherItem(event, options.items)) return;
+      (_options$setCurrentId = options.setCurrentId) === null || _options$setCurrentId === void 0 ? void 0 : _options$setCurrentId.call(options, id); // When using aria-activedescendant, we want to make sure that the
+      // composite container receives focus, not the composite item.
+      // But we don't want to do this if the target is another focusable
+      // element inside the composite item, such as CompositeItemWidget.
+
+      if (shouldFocusComposite && options.unstable_virtual && options.baseId && isSelfTarget(event)) {
+        var target = event.target;
+        var composite = getDocument(target).getElementById(options.baseId);
+
+        if (composite) {
+          hasFocusedComposite.current = true;
+          ensureFocus(composite);
+        }
+      }
+    }, [id, options.items, options.setCurrentId, options.unstable_virtual, options.baseId]);
+    var onBlurCapture = (0,external_React_.useCallback)(function (event) {
+      var _onBlurCaptureRef$cur;
+
+      (_onBlurCaptureRef$cur = onBlurCaptureRef.current) === null || _onBlurCaptureRef$cur === void 0 ? void 0 : _onBlurCaptureRef$cur.call(onBlurCaptureRef, event);
+      if (event.defaultPrevented) return;
+
+      if (options.unstable_virtual && hasFocusedComposite.current) {
+        // When hasFocusedComposite is true, composite has been focused right
+        // after focusing this item. This is an intermediate blur event, so
+        // we ignore it.
+        hasFocusedComposite.current = false;
+        event.preventDefault();
+        event.stopPropagation();
+      }
+    }, [options.unstable_virtual]);
+    var onKeyDown = (0,external_React_.useCallback)(function (event) {
+      var _onKeyDownRef$current;
+
+      if (!isSelfTarget(event)) return;
+      var isVertical = options.orientation !== "horizontal";
+      var isHorizontal = options.orientation !== "vertical";
+      var isGrid = !!(item !== null && item !== void 0 && item.groupId);
+      var keyMap = {
+        ArrowUp: (isGrid || isVertical) && options.up,
+        ArrowRight: (isGrid || isHorizontal) && options.next,
+        ArrowDown: (isGrid || isVertical) && options.down,
+        ArrowLeft: (isGrid || isHorizontal) && options.previous,
+        Home: function Home() {
+          if (!isGrid || event.ctrlKey) {
+            var _options$first;
+
+            (_options$first = options.first) === null || _options$first === void 0 ? void 0 : _options$first.call(options);
+          } else {
+            var _options$previous;
+
+            (_options$previous = options.previous) === null || _options$previous === void 0 ? void 0 : _options$previous.call(options, true);
+          }
+        },
+        End: function End() {
+          if (!isGrid || event.ctrlKey) {
+            var _options$last;
+
+            (_options$last = options.last) === null || _options$last === void 0 ? void 0 : _options$last.call(options);
+          } else {
+            var _options$next;
+
+            (_options$next = options.next) === null || _options$next === void 0 ? void 0 : _options$next.call(options, true);
+          }
+        },
+        PageUp: function PageUp() {
+          if (isGrid) {
+            var _options$up;
+
+            (_options$up = options.up) === null || _options$up === void 0 ? void 0 : _options$up.call(options, true);
+          } else {
+            var _options$first2;
+
+            (_options$first2 = options.first) === null || _options$first2 === void 0 ? void 0 : _options$first2.call(options);
+          }
+        },
+        PageDown: function PageDown() {
+          if (isGrid) {
+            var _options$down;
+
+            (_options$down = options.down) === null || _options$down === void 0 ? void 0 : _options$down.call(options, true);
+          } else {
+            var _options$last2;
+
+            (_options$last2 = options.last) === null || _options$last2 === void 0 ? void 0 : _options$last2.call(options);
+          }
+        }
+      };
+      var action = keyMap[event.key];
+
+      if (action) {
+        event.preventDefault();
+        action();
+        return;
+      }
+
+      (_onKeyDownRef$current = onKeyDownRef.current) === null || _onKeyDownRef$current === void 0 ? void 0 : _onKeyDownRef$current.call(onKeyDownRef, event);
+      if (event.defaultPrevented) return;
+
+      if (event.key.length === 1 && event.key !== " ") {
+        var widget = getWidget(event.currentTarget);
+
+        if (widget && isTextField(widget)) {
+          widget.focus();
+          setTextFieldValue(widget, "");
+        }
+      } else if (event.key === "Delete" || event.key === "Backspace") {
+        var _widget = getWidget(event.currentTarget);
+
+        if (_widget && isTextField(_widget)) {
+          event.preventDefault();
+          setTextFieldValue(_widget, "");
+        }
+      }
+    }, [options.orientation, item, options.up, options.next, options.down, options.previous, options.first, options.last]);
+    var onClick = (0,external_React_.useCallback)(function (event) {
+      var _onClickRef$current;
+
+      (_onClickRef$current = onClickRef.current) === null || _onClickRef$current === void 0 ? void 0 : _onClickRef$current.call(onClickRef, event);
+      if (event.defaultPrevented) return;
+      var element = event.currentTarget;
+      var widget = getWidget(element);
+
+      if (widget && !hasFocusWithin(widget)) {
+        // If there's a widget inside the composite item, we make sure it's
+        // focused when pressing enter, space or clicking on the composite item.
+        widget.focus();
+      }
+    }, []);
+    return _objectSpread2({
+      ref: useForkRef(ref, htmlRef),
+      id: id,
+      tabIndex: shouldTabIndex ? htmlTabIndex : -1,
+      "aria-selected": options.unstable_virtual && isCurrentItem ? true : undefined,
+      onMouseDown: onMouseDown,
+      onFocus: onFocus,
+      onBlurCapture: onBlurCapture,
+      onKeyDown: onKeyDown,
+      onClick: onClick
+    }, htmlProps);
+  }
+});
+var CompositeItem = createComponent({
+  as: "button",
+  memo: true,
+  useHook: useCompositeItem
+});
+
+
+
+;// CONCATENATED MODULE: external ["wp","dom"]
+var external_wp_dom_namespaceObject = window["wp"]["dom"];
+;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/close.js
+
+
+/**
+ * WordPress dependencies
+ */
+
+const close_close = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
+  xmlns: "http://www.w3.org/2000/svg",
+  viewBox: "0 0 24 24"
+}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
+  d: "M13 11.8l6.1-6.3-1-1-6.1 6.2-6.1-6.2-1 1 6.1 6.3-6.5 6.7 1 1 6.5-6.6 6.5 6.6 1-1z"
+}));
+/* harmony default export */ var library_close = (close_close);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/popover/utils.js
+// @ts-nocheck
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Module constants
+ */
+
+const HEIGHT_OFFSET = 10; // Used by the arrow and a bit of empty space.
+
+/**
+ * Utility used to compute the popover position over the xAxis
+ *
+ * @param {Object}  anchorRect            Anchor Rect.
+ * @param {Object}  contentSize           Content Size.
+ * @param {string}  xAxis                 Desired xAxis.
+ * @param {string}  corner                Desired corner.
+ * @param {boolean} stickyBoundaryElement The boundary element to use when
+ *                                        switching between sticky and normal
+ *                                        position.
+ * @param {string}  chosenYAxis           yAxis to be used.
+ * @param {Element} boundaryElement       Boundary element.
+ * @param {boolean} forcePosition         Don't adjust position based on anchor.
+ * @param {boolean} forceXAlignment       Don't adjust alignment based on YAxis
+ *
+ * @return {Object} Popover xAxis position and constraints.
+ */
+
+function computePopoverXAxisPosition(anchorRect, contentSize, xAxis, corner, stickyBoundaryElement, chosenYAxis, boundaryElement, forcePosition, forceXAlignment) {
+  const {
+    width
+  } = contentSize; // Correct xAxis for RTL support.
+
+  if (xAxis === 'left' && (0,external_wp_i18n_namespaceObject.isRTL)()) {
+    xAxis = 'right';
+  } else if (xAxis === 'right' && (0,external_wp_i18n_namespaceObject.isRTL)()) {
+    xAxis = 'left';
+  }
+
+  if (corner === 'left' && (0,external_wp_i18n_namespaceObject.isRTL)()) {
+    corner = 'right';
+  } else if (corner === 'right' && (0,external_wp_i18n_namespaceObject.isRTL)()) {
+    corner = 'left';
+  } // X axis alignment choices.
+
+
+  const anchorMidPoint = Math.round(anchorRect.left + anchorRect.width / 2);
+  const centerAlignment = {
+    popoverLeft: anchorMidPoint,
+    contentWidth: (anchorMidPoint - width / 2 > 0 ? width / 2 : anchorMidPoint) + (anchorMidPoint + width / 2 > window.innerWidth ? window.innerWidth - anchorMidPoint : width / 2)
+  };
+  let leftAlignmentX = anchorRect.left;
+
+  if (corner === 'right') {
+    leftAlignmentX = anchorRect.right;
+  } else if (chosenYAxis !== 'middle' && !forceXAlignment) {
+    leftAlignmentX = anchorMidPoint;
+  }
+
+  let rightAlignmentX = anchorRect.right;
+
+  if (corner === 'left') {
+    rightAlignmentX = anchorRect.left;
+  } else if (chosenYAxis !== 'middle' && !forceXAlignment) {
+    rightAlignmentX = anchorMidPoint;
+  }
+
+  const leftAlignment = {
+    popoverLeft: leftAlignmentX,
+    contentWidth: leftAlignmentX - width > 0 ? width : leftAlignmentX
+  };
+  const rightAlignment = {
+    popoverLeft: rightAlignmentX,
+    contentWidth: rightAlignmentX + width > window.innerWidth ? window.innerWidth - rightAlignmentX : width
+  }; // Choosing the x axis.
+
+  let chosenXAxis = xAxis;
+  let contentWidth = null;
+
+  if (!stickyBoundaryElement && !forcePosition) {
+    if (xAxis === 'center' && centerAlignment.contentWidth === width) {
+      chosenXAxis = 'center';
+    } else if (xAxis === 'left' && leftAlignment.contentWidth === width) {
+      chosenXAxis = 'left';
+    } else if (xAxis === 'right' && rightAlignment.contentWidth === width) {
+      chosenXAxis = 'right';
+    } else {
+      chosenXAxis = leftAlignment.contentWidth > rightAlignment.contentWidth ? 'left' : 'right';
+      const chosenWidth = chosenXAxis === 'left' ? leftAlignment.contentWidth : rightAlignment.contentWidth; // Limit width of the content to the viewport width
+
+      if (width > window.innerWidth) {
+        contentWidth = window.innerWidth;
+      } // If we can't find any alignment options that could fit
+      // our content, then let's fallback to the center of the viewport.
+
+
+      if (chosenWidth !== width) {
+        chosenXAxis = 'center';
+        centerAlignment.popoverLeft = window.innerWidth / 2;
+      }
+    }
+  }
+
+  let popoverLeft;
+
+  if (chosenXAxis === 'center') {
+    popoverLeft = centerAlignment.popoverLeft;
+  } else if (chosenXAxis === 'left') {
+    popoverLeft = leftAlignment.popoverLeft;
+  } else {
+    popoverLeft = rightAlignment.popoverLeft;
+  }
+
+  if (boundaryElement) {
+    popoverLeft = Math.min(popoverLeft, boundaryElement.offsetLeft + boundaryElement.offsetWidth - width); // Avoid the popover being position beyond the left boundary if the
+    // direction is left to right.
+
+    if (!(0,external_wp_i18n_namespaceObject.isRTL)()) {
+      popoverLeft = Math.max(popoverLeft, 0);
+    }
+  }
+
+  return {
+    xAxis: chosenXAxis,
+    popoverLeft,
+    contentWidth
+  };
+}
+/**
+ * Utility used to compute the popover position over the yAxis
+ *
+ * @param {Object}       anchorRect            Anchor Rect.
+ * @param {Object}       contentSize           Content Size.
+ * @param {string}       yAxis                 Desired yAxis.
+ * @param {string}       corner                Desired corner.
+ * @param {boolean}      stickyBoundaryElement The boundary element to use when switching between sticky
+ *                                             and normal position.
+ * @param {Element}      anchorRef             The anchor element.
+ * @param {Element}      relativeOffsetTop     If applicable, top offset of the relative positioned
+ *                                             parent container.
+ * @param {boolean}      forcePosition         Don't adjust position based on anchor.
+ * @param {Element|null} editorWrapper         Element that wraps the editor content. Used to access
+ *                                             scroll position to determine sticky behavior.
+ * @return {Object} Popover xAxis position and constraints.
+ */
+
+function computePopoverYAxisPosition(anchorRect, contentSize, yAxis, corner, stickyBoundaryElement, anchorRef, relativeOffsetTop, forcePosition, editorWrapper) {
+  const {
+    height
+  } = contentSize;
+
+  if (stickyBoundaryElement) {
+    const stickyRect = stickyBoundaryElement.getBoundingClientRect();
+    const stickyPositionTop = stickyRect.top + height - relativeOffsetTop;
+    const stickyPositionBottom = stickyRect.bottom - height - relativeOffsetTop;
+
+    if (anchorRect.top <= stickyPositionTop) {
+      if (editorWrapper) {
+        // If a popover cannot be positioned above the anchor, even after scrolling, we must
+        // ensure we use the bottom position instead of the popover slot.  This prevents the
+        // popover from always restricting block content and interaction while selected if the
+        // block is near the top of the site editor.
+        const isRoomAboveInCanvas = height + HEIGHT_OFFSET < editorWrapper.scrollTop + anchorRect.top;
+
+        if (!isRoomAboveInCanvas) {
+          return {
+            yAxis: 'bottom',
+            // If the bottom of the block is also below the bottom sticky position (ex -
+            // block is also taller than the editor window), return the bottom sticky
+            // position instead.  We do this instead of the top sticky position both to
+            // allow a smooth transition and more importantly to ensure every section of
+            // the block can be free from popover obscuration at some point in the
+            // scroll position.
+            popoverTop: Math.min(anchorRect.bottom, stickyPositionBottom)
+          };
+        }
+      } // Default sticky behavior.
+
+
+      return {
+        yAxis,
+        popoverTop: Math.min(anchorRect.bottom, stickyPositionTop)
+      };
+    }
+  } // Y axis alignment choices.
+
+
+  let anchorMidPoint = anchorRect.top + anchorRect.height / 2;
+
+  if (corner === 'bottom') {
+    anchorMidPoint = anchorRect.bottom;
+  } else if (corner === 'top') {
+    anchorMidPoint = anchorRect.top;
+  }
+
+  const middleAlignment = {
+    popoverTop: anchorMidPoint,
+    contentHeight: (anchorMidPoint - height / 2 > 0 ? height / 2 : anchorMidPoint) + (anchorMidPoint + height / 2 > window.innerHeight ? window.innerHeight - anchorMidPoint : height / 2)
+  };
+  const topAlignment = {
+    popoverTop: anchorRect.top,
+    contentHeight: anchorRect.top - HEIGHT_OFFSET - height > 0 ? height : anchorRect.top - HEIGHT_OFFSET
+  };
+  const bottomAlignment = {
+    popoverTop: anchorRect.bottom,
+    contentHeight: anchorRect.bottom + HEIGHT_OFFSET + height > window.innerHeight ? window.innerHeight - HEIGHT_OFFSET - anchorRect.bottom : height
+  }; // Choosing the y axis.
+
+  let chosenYAxis = yAxis;
+  let contentHeight = null;
+
+  if (!stickyBoundaryElement && !forcePosition) {
+    if (yAxis === 'middle' && middleAlignment.contentHeight === height) {
+      chosenYAxis = 'middle';
+    } else if (yAxis === 'top' && topAlignment.contentHeight === height) {
+      chosenYAxis = 'top';
+    } else if (yAxis === 'bottom' && bottomAlignment.contentHeight === height) {
+      chosenYAxis = 'bottom';
+    } else {
+      chosenYAxis = topAlignment.contentHeight > bottomAlignment.contentHeight ? 'top' : 'bottom';
+      const chosenHeight = chosenYAxis === 'top' ? topAlignment.contentHeight : bottomAlignment.contentHeight;
+      contentHeight = chosenHeight !== height ? chosenHeight : null;
+    }
+  }
+
+  let popoverTop;
+
+  if (chosenYAxis === 'middle') {
+    popoverTop = middleAlignment.popoverTop;
+  } else if (chosenYAxis === 'top') {
+    popoverTop = topAlignment.popoverTop;
+  } else {
+    popoverTop = bottomAlignment.popoverTop;
+  }
+
+  return {
+    yAxis: chosenYAxis,
+    popoverTop,
+    contentHeight
+  };
+}
+/**
+ * Utility used to compute the popover position and the content max width/height for a popover given
+ * its anchor rect and its content size.
+ *
+ * @param {Object}       anchorRect            Anchor Rect.
+ * @param {Object}       contentSize           Content Size.
+ * @param {string}       position              Position.
+ * @param {boolean}      stickyBoundaryElement The boundary element to use when switching between
+ *                                             sticky and normal position.
+ * @param {Element}      anchorRef             The anchor element.
+ * @param {number}       relativeOffsetTop     If applicable, top offset of the relative positioned
+ *                                             parent container.
+ * @param {Element}      boundaryElement       Boundary element.
+ * @param {boolean}      forcePosition         Don't adjust position based on anchor.
+ * @param {boolean}      forceXAlignment       Don't adjust alignment based on YAxis
+ * @param {Element|null} editorWrapper         Element that wraps the editor content. Used to access
+ *                                             scroll position to determine sticky behavior.
+ * @return {Object} Popover position and constraints.
+ */
+
+function computePopoverPosition(anchorRect, contentSize) {
+  let position = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'top';
+  let stickyBoundaryElement = arguments.length > 3 ? arguments[3] : undefined;
+  let anchorRef = arguments.length > 4 ? arguments[4] : undefined;
+  let relativeOffsetTop = arguments.length > 5 ? arguments[5] : undefined;
+  let boundaryElement = arguments.length > 6 ? arguments[6] : undefined;
+  let forcePosition = arguments.length > 7 ? arguments[7] : undefined;
+  let forceXAlignment = arguments.length > 8 ? arguments[8] : undefined;
+  let editorWrapper = arguments.length > 9 ? arguments[9] : undefined;
+  const [yAxis, xAxis = 'center', corner] = position.split(' ');
+  const yAxisPosition = computePopoverYAxisPosition(anchorRect, contentSize, yAxis, corner, stickyBoundaryElement, anchorRef, relativeOffsetTop, forcePosition, editorWrapper);
+  const xAxisPosition = computePopoverXAxisPosition(anchorRect, contentSize, xAxis, corner, stickyBoundaryElement, yAxisPosition.yAxis, boundaryElement, forcePosition, forceXAlignment);
+  return { ...xAxisPosition,
+    ...yAxisPosition
+  };
+}
+/**
+ * Offsets the given rect by the position of the iframe that contains the
+ * element. If the owner document is not in an iframe then it returns with the
+ * original rect. If the popover container document and the anchor document are
+ * the same, the original rect will also be returned.
+ *
+ * @param {DOMRect}  rect          bounds of the element
+ * @param {Document} ownerDocument document of the element
+ * @param {Element}  container     The popover container to position.
+ *
+ * @return {DOMRect} offsetted bounds
+ */
+
+function offsetIframe(rect, ownerDocument, container) {
+  const {
+    defaultView
+  } = ownerDocument;
+  const {
+    frameElement
+  } = defaultView;
+
+  if (!frameElement || ownerDocument === container.ownerDocument) {
+    return rect;
+  }
+
+  const iframeRect = frameElement.getBoundingClientRect();
+  return new defaultView.DOMRect(rect.left + iframeRect.left, rect.top + iframeRect.top, rect.width, rect.height);
+}
+
+;// CONCATENATED MODULE: external ["wp","deprecated"]
+var external_wp_deprecated_namespaceObject = window["wp"]["deprecated"];
+var external_wp_deprecated_default = /*#__PURE__*/__webpack_require__.n(external_wp_deprecated_namespaceObject);
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/dashicon/index.js
+
+
+
+/**
+ * @typedef OwnProps
+ *
+ * @property {import('./types').IconKey} icon        Icon name
+ * @property {string}                    [className] Class name
+ */
+
+/** @typedef {import('react').ComponentPropsWithoutRef<'span'> & OwnProps} Props */
+
+/**
+ * @param {Props} props
+ * @return {JSX.Element} Element
+ */
+function Dashicon(_ref) {
+  let {
+    icon,
+    className,
+    ...extraProps
+  } = _ref;
+  const iconClass = ['dashicon', 'dashicons', 'dashicons-' + icon, className].filter(Boolean).join(' ');
+  return (0,external_wp_element_namespaceObject.createElement)("span", extends_extends({
+    className: iconClass
+  }, extraProps));
+}
+
+/* harmony default export */ var dashicon = (Dashicon);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/icon/index.js
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+function Icon(_ref) {
+  let {
+    icon = null,
+    size = 24,
+    ...additionalProps
+  } = _ref;
+
+  if ('string' === typeof icon) {
+    return (0,external_wp_element_namespaceObject.createElement)(dashicon, extends_extends({
+      icon: icon
+    }, additionalProps));
+  }
+
+  if ((0,external_wp_element_namespaceObject.isValidElement)(icon) && dashicon === icon.type) {
+    return (0,external_wp_element_namespaceObject.cloneElement)(icon, { ...additionalProps
+    });
+  }
+
+  if ('function' === typeof icon) {
+    if (icon.prototype instanceof external_wp_element_namespaceObject.Component) {
+      return (0,external_wp_element_namespaceObject.createElement)(icon, {
+        size,
+        ...additionalProps
+      });
+    }
+
+    return icon({
+      size,
+      ...additionalProps
+    });
+  }
+
+  if (icon && (icon.type === 'svg' || icon.type === external_wp_primitives_namespaceObject.SVG)) {
+    const appliedProps = {
+      width: size,
+      height: size,
+      ...icon.props,
+      ...additionalProps
+    };
+    return (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, appliedProps);
+  }
+
+  if ((0,external_wp_element_namespaceObject.isValidElement)(icon)) {
+    return (0,external_wp_element_namespaceObject.cloneElement)(icon, {
+      // @ts-ignore Just forwarding the size prop along
+      size,
+      ...additionalProps
+    });
+  }
+
+  return icon;
+}
+
+/* harmony default export */ var build_module_icon = (Icon);
+
+;// CONCATENATED MODULE: external ["wp","warning"]
+var external_wp_warning_namespaceObject = window["wp"]["warning"];
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/ui/context/context-system-provider.js
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+const ComponentsContext = (0,external_wp_element_namespaceObject.createContext)(
+/** @type {Record<string, any>} */
+{});
+const useComponentsContext = () => (0,external_wp_element_namespaceObject.useContext)(ComponentsContext);
+/**
+ * Runs an effect only on update (i.e., ignores the first render)
+ *
+ * @param {import('react').EffectCallback} effect
+ * @param {import('react').DependencyList} deps
+ */
+
+function useUpdateEffect(effect, deps) {
+  const mounted = (0,external_wp_element_namespaceObject.useRef)(false);
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    if (mounted.current) {
+      return effect();
+    }
+
+    mounted.current = true;
+    return undefined;
+  }, deps);
+}
+/**
+ * Consolidates incoming ContextSystem values with a (potential) parent ContextSystem value.
+ *
+ * Note: This function will warn if it detects an un-memoized `value`
+ *
+ * @param {Object}              props
+ * @param {Record<string, any>} props.value
+ * @return {Record<string, any>} The consolidated value.
+ */
+
+
+function useContextSystemBridge(_ref) {
+  let {
+    value
+  } = _ref;
+  const parentContext = useComponentsContext();
+  const valueRef = (0,external_wp_element_namespaceObject.useRef)(value);
+  useUpdateEffect(() => {
+    if ( // Objects are equivalent.
+    (0,external_lodash_namespaceObject.isEqual)(valueRef.current, value) && // But not the same reference.
+    valueRef.current !== value) {
+      typeof process !== "undefined" && process.env && "production" !== "production" ? 0 : void 0;
+    }
+  }, [value]); // `parentContext` will always be memoized (i.e., the result of this hook itself)
+  // or the default value from when the `ComponentsContext` was originally
+  // initialized (which will never change, it's a static variable)
+  // so this memoization will prevent `merge` and `cloneDeep` from rerunning unless
+  // the references to `value` change OR the `parentContext` has an actual material change
+  // (because again, it's guaranteed to be memoized or a static reference to the empty object
+  // so we know that the only changes for `parentContext` are material ones... i.e., why we
+  // don't have to warn in the `useUpdateEffect` hook above for `parentContext` and we only
+  // need to bother with the `value`). The `useUpdateEffect` above will ensure that we are
+  // correctly warning when the `value` isn't being properly memoized. All of that to say
+  // that this should be super safe to assume that `useMemo` will only run on actual
+  // changes to the two dependencies, therefore saving us calls to `merge` and `cloneDeep`!
+
+  const config = (0,external_wp_element_namespaceObject.useMemo)(() => {
+    return (0,external_lodash_namespaceObject.merge)((0,external_lodash_namespaceObject.cloneDeep)(parentContext), value);
+  }, [parentContext, value]);
+  return config;
+}
+/**
+ * A Provider component that can modify props for connected components within
+ * the Context system.
+ *
+ * @example
+ * ```jsx
+ * <ContextSystemProvider value={{ Button: { size: 'small' }}}>
+ *   <Button>...</Button>
+ * </ContextSystemProvider>
+ * ```
+ *
+ * @template {Record<string, any>} T
+ * @param {Object}                    options
+ * @param {import('react').ReactNode} options.children Children to render.
+ * @param {T}                         options.value    Props to render into connected components.
+ * @return {JSX.Element} A Provider wrapped component.
+ */
+
+
+const BaseContextSystemProvider = _ref2 => {
+  let {
+    children,
+    value
+  } = _ref2;
+  const contextValue = useContextSystemBridge({
+    value
+  });
+  return (0,external_wp_element_namespaceObject.createElement)(ComponentsContext.Provider, {
+    value: contextValue
+  }, children);
+};
+
+const ContextSystemProvider = (0,external_wp_element_namespaceObject.memo)(BaseContextSystemProvider);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/ui/context/constants.js
+const REACT_TYPEOF_KEY = '$$typeof';
+const COMPONENT_NAMESPACE = 'data-wp-component';
+const CONNECTED_NAMESPACE = 'data-wp-c16t';
+const CONTEXT_COMPONENT_NAMESPACE = 'data-wp-c5tc8t';
+/**
+ * Special key where the connected namespaces are stored.
+ * This is attached to Context connected components as a static property.
+ */
+
+const CONNECT_STATIC_NAMESPACE = '__contextSystemKey__';
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/ui/context/utils.js
+/**
+ * Internal dependencies
+ */
+
+/**
+ * Creates a dedicated context namespace HTML attribute for components.
+ * ns is short for "namespace"
+ *
+ * @example
+ * ```jsx
+ * <div {...ns('Container')} />
+ * ```
+ *
+ * @param {string} componentName The name for the component.
+ * @return {Record<string, any>} A props object with the namespaced HTML attribute.
+ */
+
+function getNamespace(componentName) {
+  return {
+    [COMPONENT_NAMESPACE]: componentName
+  };
+}
+/**
+ * Creates a dedicated connected context namespace HTML attribute for components.
+ * ns is short for "namespace"
+ *
+ * @example
+ * ```jsx
+ * <div {...cns()} />
+ * ```
+ *
+ * @return {Record<string, any>} A props object with the namespaced HTML attribute.
+ */
+
+function getConnectedNamespace() {
+  return {
+    [CONNECTED_NAMESPACE]: true
+  };
+}
+
+// EXTERNAL MODULE: ./node_modules/memize/index.js
+var memize = __webpack_require__(9756);
+var memize_default = /*#__PURE__*/__webpack_require__.n(memize);
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/ui/context/get-styled-class-name-from-key.js
+/**
+ * External dependencies
+ */
+
+
+/**
+ * Generates the connected component CSS className based on the namespace.
+ *
+ * @param  namespace The name of the connected component.
+ * @return The generated CSS className.
+ */
+
+function getStyledClassName(namespace) {
+  const kebab = (0,external_lodash_namespaceObject.kebabCase)(namespace);
+  return `components-${kebab}`;
+}
+
+const getStyledClassNameFromKey = memize_default()(getStyledClassName);
+
+;// CONCATENATED MODULE: ./node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js
 /*
 
 Based off glamor's StyleSheet, thanks Sunil ❤️
@@ -59581,13 +19629,35 @@
   }
 
   tag.appendChild(document.createTextNode(''));
+  tag.setAttribute('data-s', '');
   return tag;
 }
 
-var StyleSheet =
-/*#__PURE__*/
-function () {
+var StyleSheet = /*#__PURE__*/function () {
+  // Using Node instead of HTMLElement since container may be a ShadowRoot
   function StyleSheet(options) {
+    var _this = this;
+
+    this._insertTag = function (tag) {
+      var before;
+
+      if (_this.tags.length === 0) {
+        if (_this.insertionPoint) {
+          before = _this.insertionPoint.nextSibling;
+        } else if (_this.prepend) {
+          before = _this.container.firstChild;
+        } else {
+          before = _this.before;
+        }
+      } else {
+        before = _this.tags[_this.tags.length - 1].nextSibling;
+      }
+
+      _this.container.insertBefore(tag, before);
+
+      _this.tags.push(tag);
+    };
+
     this.isSpeedy = options.speedy === undefined ? "production" === 'production' : options.speedy;
     this.tags = [];
     this.ctr = 0;
@@ -59595,53 +19665,36 @@
 
     this.key = options.key;
     this.container = options.container;
+    this.prepend = options.prepend;
+    this.insertionPoint = options.insertionPoint;
     this.before = null;
   }
 
   var _proto = StyleSheet.prototype;
 
+  _proto.hydrate = function hydrate(nodes) {
+    nodes.forEach(this._insertTag);
+  };
+
   _proto.insert = function insert(rule) {
     // the max length is how many rules we have per style tag, it's 65000 in speedy mode
     // it's 1 in dev because we insert source maps that map a single rule to a location
     // and you can only have one source map per style tag
     if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {
-      var _tag = createStyleElement(this);
-
-      var before;
-
-      if (this.tags.length === 0) {
-        before = this.before;
-      } else {
-        before = this.tags[this.tags.length - 1].nextSibling;
-      }
-
-      this.container.insertBefore(_tag, before);
-      this.tags.push(_tag);
+      this._insertTag(createStyleElement(this));
     }
 
     var tag = this.tags[this.tags.length - 1];
 
+    if (false) { var isImportRule; }
+
     if (this.isSpeedy) {
       var sheet = sheetForTag(tag);
 
       try {
-        // this is a really hot path
-        // we check the second character first because having "i"
-        // as the second character will happen less often than
-        // having "@" as the first character
-        var isImportRule = rule.charCodeAt(1) === 105 && rule.charCodeAt(0) === 64; // this is the ultrafast version, works across browsers
+        // this is the ultrafast version, works across browsers
         // the big drawback is that the css won't be editable in devtools
-
-        sheet.insertRule(rule, // we need to insert @import rules before anything else
-        // otherwise there will be an error
-        // technically this means that the @import rules will
-        // _usually_(not always since there could be multiple style tags)
-        // be the first ones in prod and generally later in dev
-        // this shouldn't really matter in the real world though
-        // @import is generally only used for font faces from google fonts and etc.
-        // so while this could be technically correct then it would be slower and larger
-        // for a tiny bit of correctness that won't matter in the real world
-        isImportRule ? 0 : sheet.cssRules.length);
+        sheet.insertRule(rule, sheet.cssRules.length);
       } catch (e) {
         if (false) {}
       }
@@ -59655,10 +19708,12 @@
   _proto.flush = function flush() {
     // $FlowFixMe
     this.tags.forEach(function (tag) {
-      return tag.parentNode.removeChild(tag);
+      return tag.parentNode && tag.parentNode.removeChild(tag);
     });
     this.tags = [];
     this.ctr = 0;
+
+    if (false) {}
   };
 
   return StyleSheet;
@@ -59666,220 +19721,52846 @@
 
 
 
-
-/***/ }),
-
-/***/ "zGFp":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* unused harmony export Role */
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return useRole; });
-/* harmony import */ var _rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("BZp5");
-/* harmony import */ var reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("hE48");
-/* harmony import */ var reakit_system_createHook__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("qdes");
-/* harmony import */ var reakit_utils_shallowEqual__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("uqqE");
+;// CONCATENATED MODULE: ./node_modules/stylis/src/Utility.js
+/**
+ * @param {number}
+ * @return {number}
+ */
+var abs = Math.abs
+
+/**
+ * @param {number}
+ * @return {string}
+ */
+var Utility_from = String.fromCharCode
+
+/**
+ * @param {object}
+ * @return {object}
+ */
+var Utility_assign = Object.assign
+
+/**
+ * @param {string} value
+ * @param {number} length
+ * @return {number}
+ */
+function hash (value, length) {
+	return (((((((length << 2) ^ Utility_charat(value, 0)) << 2) ^ Utility_charat(value, 1)) << 2) ^ Utility_charat(value, 2)) << 2) ^ Utility_charat(value, 3)
+}
+
+/**
+ * @param {string} value
+ * @return {string}
+ */
+function trim (value) {
+	return value.trim()
+}
+
+/**
+ * @param {string} value
+ * @param {RegExp} pattern
+ * @return {string?}
+ */
+function match (value, pattern) {
+	return (value = pattern.exec(value)) ? value[0] : value
+}
+
+/**
+ * @param {string} value
+ * @param {(string|RegExp)} pattern
+ * @param {string} replacement
+ * @return {string}
+ */
+function replace (value, pattern, replacement) {
+	return value.replace(pattern, replacement)
+}
+
+/**
+ * @param {string} value
+ * @param {string} search
+ * @return {number}
+ */
+function indexof (value, search) {
+	return value.indexOf(search)
+}
+
+/**
+ * @param {string} value
+ * @param {number} index
+ * @return {number}
+ */
+function Utility_charat (value, index) {
+	return value.charCodeAt(index) | 0
+}
+
+/**
+ * @param {string} value
+ * @param {number} begin
+ * @param {number} end
+ * @return {string}
+ */
+function Utility_substr (value, begin, end) {
+	return value.slice(begin, end)
+}
+
+/**
+ * @param {string} value
+ * @return {number}
+ */
+function Utility_strlen (value) {
+	return value.length
+}
+
+/**
+ * @param {any[]} value
+ * @return {number}
+ */
+function Utility_sizeof (value) {
+	return value.length
+}
+
+/**
+ * @param {any} value
+ * @param {any[]} array
+ * @return {any}
+ */
+function Utility_append (value, array) {
+	return array.push(value), value
+}
+
+/**
+ * @param {string[]} array
+ * @param {function} callback
+ * @return {string}
+ */
+function Utility_combine (array, callback) {
+	return array.map(callback).join('')
+}
+
+;// CONCATENATED MODULE: ./node_modules/stylis/src/Tokenizer.js
+
+
+var line = 1
+var column = 1
+var Tokenizer_length = 0
+var position = 0
+var character = 0
+var characters = ''
+
+/**
+ * @param {string} value
+ * @param {object | null} root
+ * @param {object | null} parent
+ * @param {string} type
+ * @param {string[] | string} props
+ * @param {object[] | string} children
+ * @param {number} length
+ */
+function node (value, root, parent, type, props, children, length) {
+	return {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}
+}
+
+/**
+ * @param {object} root
+ * @param {object} props
+ * @return {object}
+ */
+function copy (root, props) {
+	return Utility_assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)
+}
+
+/**
+ * @return {number}
+ */
+function Tokenizer_char () {
+	return character
+}
+
+/**
+ * @return {number}
+ */
+function prev () {
+	character = position > 0 ? Utility_charat(characters, --position) : 0
+
+	if (column--, character === 10)
+		column = 1, line--
+
+	return character
+}
+
+/**
+ * @return {number}
+ */
+function next () {
+	character = position < Tokenizer_length ? Utility_charat(characters, position++) : 0
+
+	if (column++, character === 10)
+		column = 1, line++
+
+	return character
+}
+
+/**
+ * @return {number}
+ */
+function peek () {
+	return Utility_charat(characters, position)
+}
+
+/**
+ * @return {number}
+ */
+function caret () {
+	return position
+}
+
+/**
+ * @param {number} begin
+ * @param {number} end
+ * @return {string}
+ */
+function slice (begin, end) {
+	return Utility_substr(characters, begin, end)
+}
+
+/**
+ * @param {number} type
+ * @return {number}
+ */
+function token (type) {
+	switch (type) {
+		// \0 \t \n \r \s whitespace token
+		case 0: case 9: case 10: case 13: case 32:
+			return 5
+		// ! + , / > @ ~ isolate token
+		case 33: case 43: case 44: case 47: case 62: case 64: case 126:
+		// ; { } breakpoint token
+		case 59: case 123: case 125:
+			return 4
+		// : accompanied token
+		case 58:
+			return 3
+		// " ' ( [ opening delimit token
+		case 34: case 39: case 40: case 91:
+			return 2
+		// ) ] closing delimit token
+		case 41: case 93:
+			return 1
+	}
+
+	return 0
+}
+
+/**
+ * @param {string} value
+ * @return {any[]}
+ */
+function alloc (value) {
+	return line = column = 1, Tokenizer_length = Utility_strlen(characters = value), position = 0, []
+}
+
+/**
+ * @param {any} value
+ * @return {any}
+ */
+function dealloc (value) {
+	return characters = '', value
+}
+
+/**
+ * @param {number} type
+ * @return {string}
+ */
+function delimit (type) {
+	return trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))
+}
+
+/**
+ * @param {string} value
+ * @return {string[]}
+ */
+function Tokenizer_tokenize (value) {
+	return dealloc(tokenizer(alloc(value)))
+}
+
+/**
+ * @param {number} type
+ * @return {string}
+ */
+function whitespace (type) {
+	while (character = peek())
+		if (character < 33)
+			next()
+		else
+			break
+
+	return token(type) > 2 || token(character) > 3 ? '' : ' '
+}
+
+/**
+ * @param {string[]} children
+ * @return {string[]}
+ */
+function tokenizer (children) {
+	while (next())
+		switch (token(character)) {
+			case 0: append(identifier(position - 1), children)
+				break
+			case 2: append(delimit(character), children)
+				break
+			default: append(from(character), children)
+		}
+
+	return children
+}
+
+/**
+ * @param {number} index
+ * @param {number} count
+ * @return {string}
+ */
+function escaping (index, count) {
+	while (--count && next())
+		// not 0-9 A-F a-f
+		if (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))
+			break
+
+	return slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))
+}
+
+/**
+ * @param {number} type
+ * @return {number}
+ */
+function delimiter (type) {
+	while (next())
+		switch (character) {
+			// ] ) " '
+			case type:
+				return position
+			// " '
+			case 34: case 39:
+				if (type !== 34 && type !== 39)
+					delimiter(character)
+				break
+			// (
+			case 40:
+				if (type === 41)
+					delimiter(type)
+				break
+			// \
+			case 92:
+				next()
+				break
+		}
+
+	return position
+}
+
+/**
+ * @param {number} type
+ * @param {number} index
+ * @return {number}
+ */
+function commenter (type, index) {
+	while (next())
+		// //
+		if (type + character === 47 + 10)
+			break
+		// /*
+		else if (type + character === 42 + 42 && peek() === 47)
+			break
+
+	return '/*' + slice(index, position - 1) + '*' + Utility_from(type === 47 ? type : next())
+}
+
+/**
+ * @param {number} index
+ * @return {string}
+ */
+function identifier (index) {
+	while (!token(peek()))
+		next()
+
+	return slice(index, position)
+}
+
+;// CONCATENATED MODULE: ./node_modules/stylis/src/Enum.js
+var MS = '-ms-'
+var MOZ = '-moz-'
+var WEBKIT = '-webkit-'
+
+var COMMENT = 'comm'
+var Enum_RULESET = 'rule'
+var DECLARATION = 'decl'
+
+var PAGE = '@page'
+var MEDIA = '@media'
+var IMPORT = '@import'
+var CHARSET = '@charset'
+var VIEWPORT = '@viewport'
+var SUPPORTS = '@supports'
+var DOCUMENT = '@document'
+var NAMESPACE = '@namespace'
+var KEYFRAMES = '@keyframes'
+var FONT_FACE = '@font-face'
+var COUNTER_STYLE = '@counter-style'
+var FONT_FEATURE_VALUES = '@font-feature-values'
+
+;// CONCATENATED MODULE: ./node_modules/stylis/src/Serializer.js
+
+
+
+/**
+ * @param {object[]} children
+ * @param {function} callback
+ * @return {string}
+ */
+function serialize (children, callback) {
+	var output = ''
+	var length = Utility_sizeof(children)
+
+	for (var i = 0; i < length; i++)
+		output += callback(children[i], i, children, callback) || ''
+
+	return output
+}
+
+/**
+ * @param {object} element
+ * @param {number} index
+ * @param {object[]} children
+ * @param {function} callback
+ * @return {string}
+ */
+function stringify (element, index, children, callback) {
+	switch (element.type) {
+		case IMPORT: case DECLARATION: return element.return = element.return || element.value
+		case COMMENT: return ''
+		case KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'
+		case Enum_RULESET: element.value = element.props.join(',')
+	}
+
+	return Utility_strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''
+}
+
+;// CONCATENATED MODULE: ./node_modules/stylis/src/Prefixer.js
+
+
+
+/**
+ * @param {string} value
+ * @param {number} length
+ * @return {string}
+ */
+function prefix (value, length) {
+	switch (hash(value, length)) {
+		// color-adjust
+		case 5103:
+			return WEBKIT + 'print-' + value + value
+		// animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)
+		case 5737: case 4201: case 3177: case 3433: case 1641: case 4457: case 2921:
+		// text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break
+		case 5572: case 6356: case 5844: case 3191: case 6645: case 3005:
+		// mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,
+		case 6391: case 5879: case 5623: case 6135: case 4599: case 4855:
+		// background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)
+		case 4215: case 6389: case 5109: case 5365: case 5621: case 3829:
+			return WEBKIT + value + value
+		// appearance, user-select, transform, hyphens, text-size-adjust
+		case 5349: case 4246: case 4810: case 6968: case 2756:
+			return WEBKIT + value + MOZ + value + MS + value + value
+		// flex, flex-direction
+		case 6828: case 4268:
+			return WEBKIT + value + MS + value + value
+		// order
+		case 6165:
+			return WEBKIT + value + MS + 'flex-' + value + value
+		// align-items
+		case 5187:
+			return WEBKIT + value + replace(value, /(\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value
+		// align-self
+		case 5443:
+			return WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value
+		// align-content
+		case 4675:
+			return WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value
+		// flex-shrink
+		case 5548:
+			return WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value
+		// flex-basis
+		case 5292:
+			return WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value
+		// flex-grow
+		case 6060:
+			return WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value
+		// transition
+		case 4554:
+			return WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value
+		// cursor
+		case 6187:
+			return replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value
+		// background, background-image
+		case 5495: case 3959:
+			return replace(value, /(image-set\([^]*)/, WEBKIT + '$1' + '$`$1')
+		// justify-content
+		case 4968:
+			return replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value
+		// (margin|padding)-inline-(start|end)
+		case 4095: case 3583: case 4068: case 2532:
+			return replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value
+		// (min|max)?(width|height|inline-size|block-size)
+		case 8116: case 7059: case 5753: case 5535:
+		case 5445: case 5701: case 4933: case 4677:
+		case 5533: case 5789: case 5021: case 4765:
+			// stretch, max-content, min-content, fill-available
+			if (Utility_strlen(value) - 1 - length > 6)
+				switch (Utility_charat(value, length + 1)) {
+					// (m)ax-content, (m)in-content
+					case 109:
+						// -
+						if (Utility_charat(value, length + 4) !== 45)
+							break
+					// (f)ill-available, (f)it-content
+					case 102:
+						return replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (Utility_charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value
+					// (s)tretch
+					case 115:
+						return ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value
+				}
+			break
+		// position: sticky
+		case 4949:
+			// (s)ticky?
+			if (Utility_charat(value, length + 1) !== 115)
+				break
+		// display: (flex|inline-flex)
+		case 6444:
+			switch (Utility_charat(value, Utility_strlen(value) - 3 - (~indexof(value, '!important') && 10))) {
+				// stic(k)y
+				case 107:
+					return replace(value, ':', ':' + WEBKIT) + value
+				// (inline-)?fl(e)x
+				case 101:
+					return replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (Utility_charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value
+			}
+			break
+		// writing-mode
+		case 5936:
+			switch (Utility_charat(value, length + 11)) {
+				// vertical-l(r)
+				case 114:
+					return WEBKIT + value + MS + replace(value, /[svh]\w+-[tblr]{2}/, 'tb') + value
+				// vertical-r(l)
+				case 108:
+					return WEBKIT + value + MS + replace(value, /[svh]\w+-[tblr]{2}/, 'tb-rl') + value
+				// horizontal(-)tb
+				case 45:
+					return WEBKIT + value + MS + replace(value, /[svh]\w+-[tblr]{2}/, 'lr') + value
+			}
+
+			return WEBKIT + value + MS + value + value
+	}
+
+	return value
+}
+
+;// CONCATENATED MODULE: ./node_modules/stylis/src/Middleware.js
+
+
+
+
+
+
+/**
+ * @param {function[]} collection
+ * @return {function}
+ */
+function middleware (collection) {
+	var length = Utility_sizeof(collection)
+
+	return function (element, index, children, callback) {
+		var output = ''
+
+		for (var i = 0; i < length; i++)
+			output += collection[i](element, index, children, callback) || ''
+
+		return output
+	}
+}
+
+/**
+ * @param {function} callback
+ * @return {function}
+ */
+function rulesheet (callback) {
+	return function (element) {
+		if (!element.root)
+			if (element = element.return)
+				callback(element)
+	}
+}
+
+/**
+ * @param {object} element
+ * @param {number} index
+ * @param {object[]} children
+ * @param {function} callback
+ */
+function prefixer (element, index, children, callback) {
+	if (element.length > -1)
+		if (!element.return)
+			switch (element.type) {
+				case DECLARATION: element.return = prefix(element.value, element.length)
+					break
+				case KEYFRAMES:
+					return serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)
+				case Enum_RULESET:
+					if (element.length)
+						return Utility_combine(element.props, function (value) {
+							switch (match(value, /(::plac\w+|:read-\w+)/)) {
+								// :read-(only|write)
+								case ':read-only': case ':read-write':
+									return serialize([copy(element, {props: [replace(value, /:(read-\w+)/, ':' + MOZ + '$1')]})], callback)
+								// :placeholder
+								case '::placeholder':
+									return serialize([
+										copy(element, {props: [replace(value, /:(plac\w+)/, ':' + WEBKIT + 'input-$1')]}),
+										copy(element, {props: [replace(value, /:(plac\w+)/, ':' + MOZ + '$1')]}),
+										copy(element, {props: [replace(value, /:(plac\w+)/, MS + 'input-$1')]})
+									], callback)
+							}
+
+							return ''
+						})
+			}
+}
+
+/**
+ * @param {object} element
+ * @param {number} index
+ * @param {object[]} children
+ */
+function namespace (element) {
+	switch (element.type) {
+		case RULESET:
+			element.props = element.props.map(function (value) {
+				return combine(tokenize(value), function (value, index, children) {
+					switch (charat(value, 0)) {
+						// \f
+						case 12:
+							return substr(value, 1, strlen(value))
+						// \0 ( + > ~
+						case 0: case 40: case 43: case 62: case 126:
+							return value
+						// :
+						case 58:
+							if (children[++index] === 'global')
+								children[index] = '', children[++index] = '\f' + substr(children[index], index = 1, -1)
+						// \s
+						case 32:
+							return index === 1 ? '' : value
+						default:
+							switch (index) {
+								case 0: element = value
+									return sizeof(children) > 1 ? '' : value
+								case index = sizeof(children) - 1: case 2:
+									return index === 2 ? value + element + element : value + element
+								default:
+									return value
+							}
+					}
+				})
+			})
+	}
+}
+
+;// CONCATENATED MODULE: ./node_modules/stylis/src/Parser.js
+
+
+
+
+/**
+ * @param {string} value
+ * @return {object[]}
+ */
+function compile (value) {
+	return dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))
+}
+
+/**
+ * @param {string} value
+ * @param {object} root
+ * @param {object?} parent
+ * @param {string[]} rule
+ * @param {string[]} rules
+ * @param {string[]} rulesets
+ * @param {number[]} pseudo
+ * @param {number[]} points
+ * @param {string[]} declarations
+ * @return {object}
+ */
+function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {
+	var index = 0
+	var offset = 0
+	var length = pseudo
+	var atrule = 0
+	var property = 0
+	var previous = 0
+	var variable = 1
+	var scanning = 1
+	var ampersand = 1
+	var character = 0
+	var type = ''
+	var props = rules
+	var children = rulesets
+	var reference = rule
+	var characters = type
+
+	while (scanning)
+		switch (previous = character, character = next()) {
+			// (
+			case 40:
+				if (previous != 108 && characters.charCodeAt(length - 1) == 58) {
+					if (indexof(characters += replace(delimit(character), '&', '&\f'), '&\f') != -1)
+						ampersand = -1
+					break
+				}
+			// " ' [
+			case 34: case 39: case 91:
+				characters += delimit(character)
+				break
+			// \t \n \r \s
+			case 9: case 10: case 13: case 32:
+				characters += whitespace(previous)
+				break
+			// \
+			case 92:
+				characters += escaping(caret() - 1, 7)
+				continue
+			// /
+			case 47:
+				switch (peek()) {
+					case 42: case 47:
+						Utility_append(comment(commenter(next(), caret()), root, parent), declarations)
+						break
+					default:
+						characters += '/'
+				}
+				break
+			// {
+			case 123 * variable:
+				points[index++] = Utility_strlen(characters) * ampersand
+			// } ; \0
+			case 125 * variable: case 59: case 0:
+				switch (character) {
+					// \0 }
+					case 0: case 125: scanning = 0
+					// ;
+					case 59 + offset:
+						if (property > 0 && (Utility_strlen(characters) - length))
+							Utility_append(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)
+						break
+					// @ ;
+					case 59: characters += ';'
+					// { rule/at-rule
+					default:
+						Utility_append(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)
+
+						if (character === 123)
+							if (offset === 0)
+								parse(characters, root, reference, reference, props, rulesets, length, points, children)
+							else
+								switch (atrule) {
+									// d m s
+									case 100: case 109: case 115:
+										parse(value, reference, reference, rule && Utility_append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)
+										break
+									default:
+										parse(characters, reference, reference, reference, [''], children, 0, points, children)
+								}
+				}
+
+				index = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo
+				break
+			// :
+			case 58:
+				length = 1 + Utility_strlen(characters), property = previous
+			default:
+				if (variable < 1)
+					if (character == 123)
+						--variable
+					else if (character == 125 && variable++ == 0 && prev() == 125)
+						continue
+
+				switch (characters += Utility_from(character), character * variable) {
+					// &
+					case 38:
+						ampersand = offset > 0 ? 1 : (characters += '\f', -1)
+						break
+					// ,
+					case 44:
+						points[index++] = (Utility_strlen(characters) - 1) * ampersand, ampersand = 1
+						break
+					// @
+					case 64:
+						// -
+						if (peek() === 45)
+							characters += delimit(next())
+
+						atrule = peek(), offset = length = Utility_strlen(type = characters += identifier(caret())), character++
+						break
+					// -
+					case 45:
+						if (previous === 45 && Utility_strlen(characters) == 2)
+							variable = 0
+				}
+		}
+
+	return rulesets
+}
+
+/**
+ * @param {string} value
+ * @param {object} root
+ * @param {object?} parent
+ * @param {number} index
+ * @param {number} offset
+ * @param {string[]} rules
+ * @param {number[]} points
+ * @param {string} type
+ * @param {string[]} props
+ * @param {string[]} children
+ * @param {number} length
+ * @return {object}
+ */
+function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {
+	var post = offset - 1
+	var rule = offset === 0 ? rules : ['']
+	var size = Utility_sizeof(rule)
+
+	for (var i = 0, j = 0, k = 0; i < index; ++i)
+		for (var x = 0, y = Utility_substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)
+			if (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\f/g, rule[x])))
+				props[k++] = z
+
+	return node(value, root, parent, offset === 0 ? Enum_RULESET : type, props, children, length)
+}
+
+/**
+ * @param {number} value
+ * @param {object} root
+ * @param {object?} parent
+ * @return {object}
+ */
+function comment (value, root, parent) {
+	return node(value, root, parent, COMMENT, Utility_from(Tokenizer_char()), Utility_substr(value, 2, -2), 0)
+}
+
+/**
+ * @param {string} value
+ * @param {object} root
+ * @param {object?} parent
+ * @param {number} length
+ * @return {object}
+ */
+function declaration (value, root, parent, length) {
+	return node(value, root, parent, DECLARATION, Utility_substr(value, 0, length), Utility_substr(value, length + 1, -1), length)
+}
+
+;// CONCATENATED MODULE: ./node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js
+
+
+
+
+
+var identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {
+  var previous = 0;
+  var character = 0;
+
+  while (true) {
+    previous = character;
+    character = peek(); // &\f
+
+    if (previous === 38 && character === 12) {
+      points[index] = 1;
+    }
+
+    if (token(character)) {
+      break;
+    }
+
+    next();
+  }
+
+  return slice(begin, position);
+};
+
+var toRules = function toRules(parsed, points) {
+  // pretend we've started with a comma
+  var index = -1;
+  var character = 44;
+
+  do {
+    switch (token(character)) {
+      case 0:
+        // &\f
+        if (character === 38 && peek() === 12) {
+          // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings
+          // stylis inserts \f after & to know when & where it should replace this sequence with the context selector
+          // and when it should just concatenate the outer and inner selectors
+          // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here
+          points[index] = 1;
+        }
+
+        parsed[index] += identifierWithPointTracking(position - 1, points, index);
+        break;
+
+      case 2:
+        parsed[index] += delimit(character);
+        break;
+
+      case 4:
+        // comma
+        if (character === 44) {
+          // colon
+          parsed[++index] = peek() === 58 ? '&\f' : '';
+          points[index] = parsed[index].length;
+          break;
+        }
+
+      // fallthrough
+
+      default:
+        parsed[index] += Utility_from(character);
+    }
+  } while (character = next());
+
+  return parsed;
+};
+
+var getRules = function getRules(value, points) {
+  return dealloc(toRules(alloc(value), points));
+}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11
+
+
+var fixedElements = /* #__PURE__ */new WeakMap();
+var compat = function compat(element) {
+  if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo
+  // negative .length indicates that this rule has been already prefixed
+  element.length < 1) {
+    return;
+  }
+
+  var value = element.value,
+      parent = element.parent;
+  var isImplicitRule = element.column === parent.column && element.line === parent.line;
+
+  while (parent.type !== 'rule') {
+    parent = parent.parent;
+    if (!parent) return;
+  } // short-circuit for the simplest case
+
+
+  if (element.props.length === 1 && value.charCodeAt(0) !== 58
+  /* colon */
+  && !fixedElements.get(parent)) {
+    return;
+  } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)
+  // then the props has already been manipulated beforehand as they that array is shared between it and its "rule parent"
+
+
+  if (isImplicitRule) {
+    return;
+  }
+
+  fixedElements.set(element, true);
+  var points = [];
+  var rules = getRules(value, points);
+  var parentRules = parent.props;
+
+  for (var i = 0, k = 0; i < rules.length; i++) {
+    for (var j = 0; j < parentRules.length; j++, k++) {
+      element.props[k] = points[i] ? rules[i].replace(/&\f/g, parentRules[j]) : parentRules[j] + " " + rules[i];
+    }
+  }
+};
+var removeLabel = function removeLabel(element) {
+  if (element.type === 'decl') {
+    var value = element.value;
+
+    if ( // charcode for l
+    value.charCodeAt(0) === 108 && // charcode for b
+    value.charCodeAt(2) === 98) {
+      // this ignores label
+      element["return"] = '';
+      element.value = '';
+    }
+  }
+};
+var ignoreFlag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason';
+
+var isIgnoringComment = function isIgnoringComment(element) {
+  return element.type === 'comm' && element.children.indexOf(ignoreFlag) > -1;
+};
+
+var createUnsafeSelectorsAlarm = function createUnsafeSelectorsAlarm(cache) {
+  return function (element, index, children) {
+    if (element.type !== 'rule' || cache.compat) return;
+    var unsafePseudoClasses = element.value.match(/(:first|:nth|:nth-last)-child/g);
+
+    if (unsafePseudoClasses) {
+      var isNested = element.parent === children[0]; // in nested rules comments become children of the "auto-inserted" rule
+      //
+      // considering this input:
+      // .a {
+      //   .b /* comm */ {}
+      //   color: hotpink;
+      // }
+      // we get output corresponding to this:
+      // .a {
+      //   & {
+      //     /* comm */
+      //     color: hotpink;
+      //   }
+      //   .b {}
+      // }
+
+      var commentContainer = isNested ? children[0].children : // global rule at the root level
+      children;
+
+      for (var i = 0; i < commentContainer.length; i++) {
+        var node = commentContainer[i];
+
+        if (node.line > element.line) {
+          break;
+        } // it is quite weird but comments are *usually* put at `column: element.column - 1`
+        // so we seek for the node that is later than the rule's `element` and check the previous element
+        // this will also match inputs like this:
+        // .a {
+        //   /* comm */
+        //   .b {}
+        // }
+        //
+        // but that is fine
+        //
+        // it would be the easiest to change the placement of the comment to be the first child of the rule:
+        // .a {
+        //   .b { /* comm */ }
+        // }
+        // with such inputs we wouldn't have to search for the comment at all
+        // TODO: consider changing this comment placement in the next major version
+
+
+        if (node.column > element.column) {
+          var previousNode = commentContainer[i - 1];
+
+          if (isIgnoringComment(previousNode)) {
+            return;
+          }
+
+          break;
+        }
+      }
+
+      unsafePseudoClasses.forEach(function (unsafePseudoClass) {
+        console.error("The pseudo class \"" + unsafePseudoClass + "\" is potentially unsafe when doing server-side rendering. Try changing it to \"" + unsafePseudoClass.split('-child')[0] + "-of-type\".");
+      });
+    }
+  };
+};
+
+var isImportRule = function isImportRule(element) {
+  return element.type.charCodeAt(1) === 105 && element.type.charCodeAt(0) === 64;
+};
+
+var isPrependedWithRegularRules = function isPrependedWithRegularRules(index, children) {
+  for (var i = index - 1; i >= 0; i--) {
+    if (!isImportRule(children[i])) {
+      return true;
+    }
+  }
+
+  return false;
+}; // use this to remove incorrect elements from further processing
+// so they don't get handed to the `sheet` (or anything else)
+// as that could potentially lead to additional logs which in turn could be overhelming to the user
+
+
+var nullifyElement = function nullifyElement(element) {
+  element.type = '';
+  element.value = '';
+  element["return"] = '';
+  element.children = '';
+  element.props = '';
+};
+
+var incorrectImportAlarm = function incorrectImportAlarm(element, index, children) {
+  if (!isImportRule(element)) {
+    return;
+  }
+
+  if (element.parent) {
+    console.error("`@import` rules can't be nested inside other rules. Please move it to the top level and put it before regular rules. Keep in mind that they can only be used within global styles.");
+    nullifyElement(element);
+  } else if (isPrependedWithRegularRules(index, children)) {
+    console.error("`@import` rules can't be after other rules. Please put your `@import` rules before your other rules.");
+    nullifyElement(element);
+  }
+};
+
+var defaultStylisPlugins = [prefixer];
+
+var createCache = function createCache(options) {
+  var key = options.key;
+
+  if (false) {}
+
+  if ( key === 'css') {
+    var ssrStyles = document.querySelectorAll("style[data-emotion]:not([data-s])"); // get SSRed styles out of the way of React's hydration
+    // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)
+    // note this very very intentionally targets all style elements regardless of the key to ensure
+    // that creating a cache works inside of render of a React component
+
+    Array.prototype.forEach.call(ssrStyles, function (node) {
+      // we want to only move elements which have a space in the data-emotion attribute value
+      // because that indicates that it is an Emotion 11 server-side rendered style elements
+      // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector
+      // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)
+      // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles
+      // will not result in the Emotion 10 styles being destroyed
+      var dataEmotionAttribute = node.getAttribute('data-emotion');
+
+      if (dataEmotionAttribute.indexOf(' ') === -1) {
+        return;
+      }
+      document.head.appendChild(node);
+      node.setAttribute('data-s', '');
+    });
+  }
+
+  var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;
+
+  if (false) {}
+
+  var inserted = {};
+  var container;
+  var nodesToHydrate = [];
+
+  {
+    container = options.container || document.head;
+    Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which
+    // means that the style elements we're looking at are only Emotion 11 server-rendered style elements
+    document.querySelectorAll("style[data-emotion^=\"" + key + " \"]"), function (node) {
+      var attrib = node.getAttribute("data-emotion").split(' '); // $FlowFixMe
+
+      for (var i = 1; i < attrib.length; i++) {
+        inserted[attrib[i]] = true;
+      }
+
+      nodesToHydrate.push(node);
+    });
+  }
+
+  var _insert;
+
+  var omnipresentPlugins = [compat, removeLabel];
+
+  if (false) {}
+
+  {
+    var currentSheet;
+    var finalizingPlugins = [stringify,  false ? 0 : rulesheet(function (rule) {
+      currentSheet.insert(rule);
+    })];
+    var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));
+
+    var stylis = function stylis(styles) {
+      return serialize(compile(styles), serializer);
+    };
+
+    _insert = function insert(selector, serialized, sheet, shouldCache) {
+      currentSheet = sheet;
+
+      if (false) {}
+
+      stylis(selector ? selector + "{" + serialized.styles + "}" : serialized.styles);
+
+      if (shouldCache) {
+        cache.inserted[serialized.name] = true;
+      }
+    };
+  }
+
+  var cache = {
+    key: key,
+    sheet: new StyleSheet({
+      key: key,
+      container: container,
+      nonce: options.nonce,
+      speedy: options.speedy,
+      prepend: options.prepend,
+      insertionPoint: options.insertionPoint
+    }),
+    nonce: options.nonce,
+    inserted: inserted,
+    registered: {},
+    insert: _insert
+  };
+  cache.sheet.hydrate(nodesToHydrate);
+  return cache;
+};
+
+/* harmony default export */ var emotion_cache_browser_esm = (createCache);
+
+;// CONCATENATED MODULE: ./node_modules/@emotion/hash/dist/emotion-hash.esm.js
+/* eslint-disable */
+// Inspired by https://github.com/garycourt/murmurhash-js
+// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86
+function murmur2(str) {
+  // 'm' and 'r' are mixing constants generated offline.
+  // They're not really 'magic', they just happen to work well.
+  // const m = 0x5bd1e995;
+  // const r = 24;
+  // Initialize the hash
+  var h = 0; // Mix 4 bytes at a time into the hash
+
+  var k,
+      i = 0,
+      len = str.length;
+
+  for (; len >= 4; ++i, len -= 4) {
+    k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;
+    k =
+    /* Math.imul(k, m): */
+    (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);
+    k ^=
+    /* k >>> r: */
+    k >>> 24;
+    h =
+    /* Math.imul(k, m): */
+    (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^
+    /* Math.imul(h, m): */
+    (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);
+  } // Handle the last few bytes of the input array
+
+
+  switch (len) {
+    case 3:
+      h ^= (str.charCodeAt(i + 2) & 0xff) << 16;
+
+    case 2:
+      h ^= (str.charCodeAt(i + 1) & 0xff) << 8;
+
+    case 1:
+      h ^= str.charCodeAt(i) & 0xff;
+      h =
+      /* Math.imul(h, m): */
+      (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);
+  } // Do a few final mixes of the hash to ensure the last few
+  // bytes are well-incorporated.
+
+
+  h ^= h >>> 13;
+  h =
+  /* Math.imul(h, m): */
+  (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);
+  return ((h ^ h >>> 15) >>> 0).toString(36);
+}
+
+/* harmony default export */ var emotion_hash_esm = (murmur2);
+
+;// CONCATENATED MODULE: ./node_modules/@emotion/unitless/dist/emotion-unitless.esm.js
+var unitlessKeys = {
+  animationIterationCount: 1,
+  borderImageOutset: 1,
+  borderImageSlice: 1,
+  borderImageWidth: 1,
+  boxFlex: 1,
+  boxFlexGroup: 1,
+  boxOrdinalGroup: 1,
+  columnCount: 1,
+  columns: 1,
+  flex: 1,
+  flexGrow: 1,
+  flexPositive: 1,
+  flexShrink: 1,
+  flexNegative: 1,
+  flexOrder: 1,
+  gridRow: 1,
+  gridRowEnd: 1,
+  gridRowSpan: 1,
+  gridRowStart: 1,
+  gridColumn: 1,
+  gridColumnEnd: 1,
+  gridColumnSpan: 1,
+  gridColumnStart: 1,
+  msGridRow: 1,
+  msGridRowSpan: 1,
+  msGridColumn: 1,
+  msGridColumnSpan: 1,
+  fontWeight: 1,
+  lineHeight: 1,
+  opacity: 1,
+  order: 1,
+  orphans: 1,
+  tabSize: 1,
+  widows: 1,
+  zIndex: 1,
+  zoom: 1,
+  WebkitLineClamp: 1,
+  // SVG-related properties
+  fillOpacity: 1,
+  floodOpacity: 1,
+  stopOpacity: 1,
+  strokeDasharray: 1,
+  strokeDashoffset: 1,
+  strokeMiterlimit: 1,
+  strokeOpacity: 1,
+  strokeWidth: 1
+};
+
+/* harmony default export */ var emotion_unitless_esm = (unitlessKeys);
+
+;// CONCATENATED MODULE: ./node_modules/@emotion/memoize/dist/emotion-memoize.esm.js
+function memoize(fn) {
+  var cache = Object.create(null);
+  return function (arg) {
+    if (cache[arg] === undefined) cache[arg] = fn(arg);
+    return cache[arg];
+  };
+}
+
+/* harmony default export */ var emotion_memoize_esm = (memoize);
+
+;// CONCATENATED MODULE: ./node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js
+
+
+
+
+var ILLEGAL_ESCAPE_SEQUENCE_ERROR = "You have illegal escape sequence in your template literal, most likely inside content's property value.\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \"content: '\\00d7';\" should become \"content: '\\\\00d7';\".\nYou can read more about this here:\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences";
+var UNDEFINED_AS_OBJECT_KEY_ERROR = "You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).";
+var hyphenateRegex = /[A-Z]|^ms/g;
+var animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;
+
+var isCustomProperty = function isCustomProperty(property) {
+  return property.charCodeAt(1) === 45;
+};
+
+var isProcessableValue = function isProcessableValue(value) {
+  return value != null && typeof value !== 'boolean';
+};
+
+var processStyleName = /* #__PURE__ */emotion_memoize_esm(function (styleName) {
+  return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();
+});
+
+var processStyleValue = function processStyleValue(key, value) {
+  switch (key) {
+    case 'animation':
+    case 'animationName':
+      {
+        if (typeof value === 'string') {
+          return value.replace(animationRegex, function (match, p1, p2) {
+            cursor = {
+              name: p1,
+              styles: p2,
+              next: cursor
+            };
+            return p1;
+          });
+        }
+      }
+  }
+
+  if (emotion_unitless_esm[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {
+    return value + 'px';
+  }
+
+  return value;
+};
+
+if (false) { var hyphenatedCache, hyphenPattern, msPattern, oldProcessStyleValue, contentValues, contentValuePattern; }
+
+var noComponentSelectorMessage = (/* unused pure expression or super */ null && ('Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.'));
+
+function handleInterpolation(mergedProps, registered, interpolation) {
+  if (interpolation == null) {
+    return '';
+  }
+
+  if (interpolation.__emotion_styles !== undefined) {
+    if (false) {}
+
+    return interpolation;
+  }
+
+  switch (typeof interpolation) {
+    case 'boolean':
+      {
+        return '';
+      }
+
+    case 'object':
+      {
+        if (interpolation.anim === 1) {
+          cursor = {
+            name: interpolation.name,
+            styles: interpolation.styles,
+            next: cursor
+          };
+          return interpolation.name;
+        }
+
+        if (interpolation.styles !== undefined) {
+          var next = interpolation.next;
+
+          if (next !== undefined) {
+            // not the most efficient thing ever but this is a pretty rare case
+            // and there will be very few iterations of this generally
+            while (next !== undefined) {
+              cursor = {
+                name: next.name,
+                styles: next.styles,
+                next: cursor
+              };
+              next = next.next;
+            }
+          }
+
+          var styles = interpolation.styles + ";";
+
+          if (false) {}
+
+          return styles;
+        }
+
+        return createStringFromObject(mergedProps, registered, interpolation);
+      }
+
+    case 'function':
+      {
+        if (mergedProps !== undefined) {
+          var previousCursor = cursor;
+          var result = interpolation(mergedProps);
+          cursor = previousCursor;
+          return handleInterpolation(mergedProps, registered, result);
+        } else if (false) {}
+
+        break;
+      }
+
+    case 'string':
+      if (false) { var replaced, matched; }
+
+      break;
+  } // finalize string values (regular strings and functions interpolated into css calls)
+
+
+  if (registered == null) {
+    return interpolation;
+  }
+
+  var cached = registered[interpolation];
+  return cached !== undefined ? cached : interpolation;
+}
+
+function createStringFromObject(mergedProps, registered, obj) {
+  var string = '';
+
+  if (Array.isArray(obj)) {
+    for (var i = 0; i < obj.length; i++) {
+      string += handleInterpolation(mergedProps, registered, obj[i]) + ";";
+    }
+  } else {
+    for (var _key in obj) {
+      var value = obj[_key];
+
+      if (typeof value !== 'object') {
+        if (registered != null && registered[value] !== undefined) {
+          string += _key + "{" + registered[value] + "}";
+        } else if (isProcessableValue(value)) {
+          string += processStyleName(_key) + ":" + processStyleValue(_key, value) + ";";
+        }
+      } else {
+        if (_key === 'NO_COMPONENT_SELECTOR' && "production" !== 'production') {}
+
+        if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {
+          for (var _i = 0; _i < value.length; _i++) {
+            if (isProcessableValue(value[_i])) {
+              string += processStyleName(_key) + ":" + processStyleValue(_key, value[_i]) + ";";
+            }
+          }
+        } else {
+          var interpolated = handleInterpolation(mergedProps, registered, value);
+
+          switch (_key) {
+            case 'animation':
+            case 'animationName':
+              {
+                string += processStyleName(_key) + ":" + interpolated + ";";
+                break;
+              }
+
+            default:
+              {
+                if (false) {}
+
+                string += _key + "{" + interpolated + "}";
+              }
+          }
+        }
+      }
+    }
+  }
+
+  return string;
+}
+
+var labelPattern = /label:\s*([^\s;\n{]+)\s*(;|$)/g;
+var sourceMapPattern;
+
+if (false) {} // this is the cursor for keyframes
+// keyframes are stored on the SerializedStyles object as a linked list
+
+
+var cursor;
+var emotion_serialize_browser_esm_serializeStyles = function serializeStyles(args, registered, mergedProps) {
+  if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {
+    return args[0];
+  }
+
+  var stringMode = true;
+  var styles = '';
+  cursor = undefined;
+  var strings = args[0];
+
+  if (strings == null || strings.raw === undefined) {
+    stringMode = false;
+    styles += handleInterpolation(mergedProps, registered, strings);
+  } else {
+    if (false) {}
+
+    styles += strings[0];
+  } // we start at 1 since we've already handled the first arg
+
+
+  for (var i = 1; i < args.length; i++) {
+    styles += handleInterpolation(mergedProps, registered, args[i]);
+
+    if (stringMode) {
+      if (false) {}
+
+      styles += strings[i];
+    }
+  }
+
+  var sourceMap;
+
+  if (false) {} // using a global regex with .exec is stateful so lastIndex has to be reset each time
+
+
+  labelPattern.lastIndex = 0;
+  var identifierName = '';
+  var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5
+
+  while ((match = labelPattern.exec(styles)) !== null) {
+    identifierName += '-' + // $FlowFixMe we know it's not null
+    match[1];
+  }
+
+  var name = emotion_hash_esm(styles) + identifierName;
+
+  if (false) {}
+
+  return {
+    name: name,
+    styles: styles,
+    next: cursor
+  };
+};
+
+
+
+;// CONCATENATED MODULE: ./node_modules/@emotion/react/dist/emotion-element-cbed451f.browser.esm.js
+
+
+
+
+
+
+
+
+
+var emotion_element_cbed451f_browser_esm_hasOwnProperty = {}.hasOwnProperty;
+
+var EmotionCacheContext = /* #__PURE__ */(0,external_React_.createContext)( // we're doing this to avoid preconstruct's dead code elimination in this one case
+// because this module is primarily intended for the browser and node
+// but it's also required in react native and similar environments sometimes
+// and we could have a special build just for that
+// but this is much easier and the native packages
+// might use a different theme context in the future anyway
+typeof HTMLElement !== 'undefined' ? /* #__PURE__ */emotion_cache_browser_esm({
+  key: 'css'
+}) : null);
+
+if (false) {}
+
+var CacheProvider = EmotionCacheContext.Provider;
+var __unsafe_useEmotionCache = function useEmotionCache() {
+  return (0,external_React_.useContext)(EmotionCacheContext);
+};
+
+var emotion_element_cbed451f_browser_esm_withEmotionCache = function withEmotionCache(func) {
+  // $FlowFixMe
+  return /*#__PURE__*/(0,external_React_.forwardRef)(function (props, ref) {
+    // the cache will never be null in the browser
+    var cache = (0,external_React_.useContext)(EmotionCacheContext);
+    return func(props, cache, ref);
+  });
+};
+
+var emotion_element_cbed451f_browser_esm_ThemeContext = /* #__PURE__ */(0,external_React_.createContext)({});
+
+if (false) {}
+
+var useTheme = function useTheme() {
+  return useContext(emotion_element_cbed451f_browser_esm_ThemeContext);
+};
+
+var getTheme = function getTheme(outerTheme, theme) {
+  if (typeof theme === 'function') {
+    var mergedTheme = theme(outerTheme);
+
+    if (false) {}
+
+    return mergedTheme;
+  }
+
+  if (false) {}
+
+  return _extends({}, outerTheme, theme);
+};
+
+var createCacheWithTheme = /* #__PURE__ */(/* unused pure expression or super */ null && (weakMemoize(function (outerTheme) {
+  return weakMemoize(function (theme) {
+    return getTheme(outerTheme, theme);
+  });
+})));
+var ThemeProvider = function ThemeProvider(props) {
+  var theme = useContext(emotion_element_cbed451f_browser_esm_ThemeContext);
+
+  if (props.theme !== theme) {
+    theme = createCacheWithTheme(theme)(props.theme);
+  }
+
+  return /*#__PURE__*/createElement(emotion_element_cbed451f_browser_esm_ThemeContext.Provider, {
+    value: theme
+  }, props.children);
+};
+function withTheme(Component) {
+  var componentName = Component.displayName || Component.name || 'Component';
+
+  var render = function render(props, ref) {
+    var theme = useContext(emotion_element_cbed451f_browser_esm_ThemeContext);
+    return /*#__PURE__*/createElement(Component, _extends({
+      theme: theme,
+      ref: ref
+    }, props));
+  }; // $FlowFixMe
+
+
+  var WithTheme = /*#__PURE__*/forwardRef(render);
+  WithTheme.displayName = "WithTheme(" + componentName + ")";
+  return hoistNonReactStatics(WithTheme, Component);
+}
+
+var getLastPart = function getLastPart(functionName) {
+  // The match may be something like 'Object.createEmotionProps' or
+  // 'Loader.prototype.render'
+  var parts = functionName.split('.');
+  return parts[parts.length - 1];
+};
+
+var getFunctionNameFromStackTraceLine = function getFunctionNameFromStackTraceLine(line) {
+  // V8
+  var match = /^\s+at\s+([A-Za-z0-9$.]+)\s/.exec(line);
+  if (match) return getLastPart(match[1]); // Safari / Firefox
+
+  match = /^([A-Za-z0-9$.]+)@/.exec(line);
+  if (match) return getLastPart(match[1]);
+  return undefined;
+};
+
+var internalReactFunctionNames = /* #__PURE__ */new Set(['renderWithHooks', 'processChild', 'finishClassComponent', 'renderToString']); // These identifiers come from error stacks, so they have to be valid JS
+// identifiers, thus we only need to replace what is a valid character for JS,
+// but not for CSS.
+
+var sanitizeIdentifier = function sanitizeIdentifier(identifier) {
+  return identifier.replace(/\$/g, '-');
+};
+
+var getLabelFromStackTrace = function getLabelFromStackTrace(stackTrace) {
+  if (!stackTrace) return undefined;
+  var lines = stackTrace.split('\n');
+
+  for (var i = 0; i < lines.length; i++) {
+    var functionName = getFunctionNameFromStackTraceLine(lines[i]); // The first line of V8 stack traces is just "Error"
+
+    if (!functionName) continue; // If we reach one of these, we have gone too far and should quit
+
+    if (internalReactFunctionNames.has(functionName)) break; // The component name is the first function in the stack that starts with an
+    // uppercase letter
+
+    if (/^[A-Z]/.test(functionName)) return sanitizeIdentifier(functionName);
+  }
+
+  return undefined;
+};
+
+var useInsertionEffect = external_React_['useInsertion' + 'Effect'] ? external_React_['useInsertion' + 'Effect'] : function useInsertionEffect(create) {
+  create();
+};
+function emotion_element_cbed451f_browser_esm_useInsertionEffectMaybe(create) {
+
+  useInsertionEffect(create);
+}
+
+var typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';
+var labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__';
+var emotion_element_cbed451f_browser_esm_createEmotionProps = function createEmotionProps(type, props) {
+  if (false) {}
+
+  var newProps = {};
+
+  for (var key in props) {
+    if (emotion_element_cbed451f_browser_esm_hasOwnProperty.call(props, key)) {
+      newProps[key] = props[key];
+    }
+  }
+
+  newProps[typePropName] = type; // For performance, only call getLabelFromStackTrace in development and when
+  // the label hasn't already been computed
+
+  if (false) { var label; }
+
+  return newProps;
+};
+
+var Insertion = function Insertion(_ref) {
+  var cache = _ref.cache,
+      serialized = _ref.serialized,
+      isStringTag = _ref.isStringTag;
+  registerStyles(cache, serialized, isStringTag);
+  var rules = emotion_element_cbed451f_browser_esm_useInsertionEffectMaybe(function () {
+    return insertStyles(cache, serialized, isStringTag);
+  });
+
+  return null;
+};
+
+var emotion_element_cbed451f_browser_esm_Emotion = /* #__PURE__ */(/* unused pure expression or super */ null && (emotion_element_cbed451f_browser_esm_withEmotionCache(function (props, cache, ref) {
+  var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works
+  // not passing the registered cache to serializeStyles because it would
+  // make certain babel optimisations not possible
+
+  if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {
+    cssProp = cache.registered[cssProp];
+  }
+
+  var WrappedComponent = props[typePropName];
+  var registeredStyles = [cssProp];
+  var className = '';
+
+  if (typeof props.className === 'string') {
+    className = getRegisteredStyles(cache.registered, registeredStyles, props.className);
+  } else if (props.className != null) {
+    className = props.className + " ";
+  }
+
+  var serialized = serializeStyles(registeredStyles, undefined, useContext(emotion_element_cbed451f_browser_esm_ThemeContext));
+
+  if (false) { var labelFromStack; }
+
+  className += cache.key + "-" + serialized.name;
+  var newProps = {};
+
+  for (var key in props) {
+    if (emotion_element_cbed451f_browser_esm_hasOwnProperty.call(props, key) && key !== 'css' && key !== typePropName && ( true || 0)) {
+      newProps[key] = props[key];
+    }
+  }
+
+  newProps.ref = ref;
+  newProps.className = className;
+  return /*#__PURE__*/createElement(Fragment, null, /*#__PURE__*/createElement(Insertion, {
+    cache: cache,
+    serialized: serialized,
+    isStringTag: typeof WrappedComponent === 'string'
+  }), /*#__PURE__*/createElement(WrappedComponent, newProps));
+})));
+
+if (false) {}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js
+var isBrowser = "object" !== 'undefined';
+function emotion_utils_browser_esm_getRegisteredStyles(registered, registeredStyles, classNames) {
+  var rawClassName = '';
+  classNames.split(' ').forEach(function (className) {
+    if (registered[className] !== undefined) {
+      registeredStyles.push(registered[className] + ";");
+    } else {
+      rawClassName += className + " ";
+    }
+  });
+  return rawClassName;
+}
+var emotion_utils_browser_esm_insertStyles = function insertStyles(cache, serialized, isStringTag) {
+  var className = cache.key + "-" + serialized.name;
+
+  if ( // we only need to add the styles to the registered cache if the
+  // class name could be used further down
+  // the tree but if it's a string tag, we know it won't
+  // so we don't have to add it to registered cache.
+  // this improves memory usage since we can avoid storing the whole style string
+  (isStringTag === false || // we need to always store it if we're in compat mode and
+  // in node since emotion-server relies on whether a style is in
+  // the registered cache to know whether a style is global or not
+  // also, note that this check will be dead code eliminated in the browser
+  isBrowser === false ) && cache.registered[className] === undefined) {
+    cache.registered[className] = serialized.styles;
+  }
+
+  if (cache.inserted[serialized.name] === undefined) {
+    var current = serialized;
+
+    do {
+      var maybeStyles = cache.insert(serialized === current ? "." + className : '', current, cache.sheet, true);
+
+      current = current.next;
+    } while (current !== undefined);
+  }
+};
+
+
+
+;// CONCATENATED MODULE: ./node_modules/@emotion/css/node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js
+var emotion_utils_browser_esm_isBrowser = "object" !== 'undefined';
+function dist_emotion_utils_browser_esm_getRegisteredStyles(registered, registeredStyles, classNames) {
+  var rawClassName = '';
+  classNames.split(' ').forEach(function (className) {
+    if (registered[className] !== undefined) {
+      registeredStyles.push(registered[className] + ";");
+    } else {
+      rawClassName += className + " ";
+    }
+  });
+  return rawClassName;
+}
+var emotion_utils_browser_esm_registerStyles = function registerStyles(cache, serialized, isStringTag) {
+  var className = cache.key + "-" + serialized.name;
+
+  if ( // we only need to add the styles to the registered cache if the
+  // class name could be used further down
+  // the tree but if it's a string tag, we know it won't
+  // so we don't have to add it to registered cache.
+  // this improves memory usage since we can avoid storing the whole style string
+  (isStringTag === false || // we need to always store it if we're in compat mode and
+  // in node since emotion-server relies on whether a style is in
+  // the registered cache to know whether a style is global or not
+  // also, note that this check will be dead code eliminated in the browser
+  emotion_utils_browser_esm_isBrowser === false ) && cache.registered[className] === undefined) {
+    cache.registered[className] = serialized.styles;
+  }
+};
+var dist_emotion_utils_browser_esm_insertStyles = function insertStyles(cache, serialized, isStringTag) {
+  emotion_utils_browser_esm_registerStyles(cache, serialized, isStringTag);
+  var className = cache.key + "-" + serialized.name;
+
+  if (cache.inserted[serialized.name] === undefined) {
+    var current = serialized;
+
+    do {
+      var maybeStyles = cache.insert(serialized === current ? "." + className : '', current, cache.sheet, true);
+
+      current = current.next;
+    } while (current !== undefined);
+  }
+};
+
+
+
+;// CONCATENATED MODULE: ./node_modules/@emotion/css/create-instance/dist/emotion-css-create-instance.esm.js
+
+
+
+
+function insertWithoutScoping(cache, serialized) {
+  if (cache.inserted[serialized.name] === undefined) {
+    return cache.insert('', serialized, cache.sheet, true);
+  }
+}
+
+function merge(registered, css, className) {
+  var registeredStyles = [];
+  var rawClassName = dist_emotion_utils_browser_esm_getRegisteredStyles(registered, registeredStyles, className);
+
+  if (registeredStyles.length < 2) {
+    return className;
+  }
+
+  return rawClassName + css(registeredStyles);
+}
+
+var createEmotion = function createEmotion(options) {
+  var cache = emotion_cache_browser_esm(options); // $FlowFixMe
+
+  cache.sheet.speedy = function (value) {
+    if (false) {}
+
+    this.isSpeedy = value;
+  };
+
+  cache.compat = true;
+
+  var css = function css() {
+    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
+      args[_key] = arguments[_key];
+    }
+
+    var serialized = emotion_serialize_browser_esm_serializeStyles(args, cache.registered, undefined);
+    dist_emotion_utils_browser_esm_insertStyles(cache, serialized, false);
+    return cache.key + "-" + serialized.name;
+  };
+
+  var keyframes = function keyframes() {
+    for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
+      args[_key2] = arguments[_key2];
+    }
+
+    var serialized = emotion_serialize_browser_esm_serializeStyles(args, cache.registered);
+    var animation = "animation-" + serialized.name;
+    insertWithoutScoping(cache, {
+      name: serialized.name,
+      styles: "@keyframes " + animation + "{" + serialized.styles + "}"
+    });
+    return animation;
+  };
+
+  var injectGlobal = function injectGlobal() {
+    for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
+      args[_key3] = arguments[_key3];
+    }
+
+    var serialized = emotion_serialize_browser_esm_serializeStyles(args, cache.registered);
+    insertWithoutScoping(cache, serialized);
+  };
+
+  var cx = function cx() {
+    for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
+      args[_key4] = arguments[_key4];
+    }
+
+    return merge(cache.registered, css, emotion_css_create_instance_esm_classnames(args));
+  };
+
+  return {
+    css: css,
+    cx: cx,
+    injectGlobal: injectGlobal,
+    keyframes: keyframes,
+    hydrate: function hydrate(ids) {
+      ids.forEach(function (key) {
+        cache.inserted[key] = true;
+      });
+    },
+    flush: function flush() {
+      cache.registered = {};
+      cache.inserted = {};
+      cache.sheet.flush();
+    },
+    // $FlowFixMe
+    sheet: cache.sheet,
+    cache: cache,
+    getRegisteredStyles: dist_emotion_utils_browser_esm_getRegisteredStyles.bind(null, cache.registered),
+    merge: merge.bind(null, cache.registered, css)
+  };
+};
+
+var emotion_css_create_instance_esm_classnames = function classnames(args) {
+  var cls = '';
+
+  for (var i = 0; i < args.length; i++) {
+    var arg = args[i];
+    if (arg == null) continue;
+    var toAdd = void 0;
+
+    switch (typeof arg) {
+      case 'boolean':
+        break;
+
+      case 'object':
+        {
+          if (Array.isArray(arg)) {
+            toAdd = classnames(arg);
+          } else {
+            toAdd = '';
+
+            for (var k in arg) {
+              if (arg[k] && k) {
+                toAdd && (toAdd += ' ');
+                toAdd += k;
+              }
+            }
+          }
+
+          break;
+        }
+
+      default:
+        {
+          toAdd = arg;
+        }
+    }
+
+    if (toAdd) {
+      cls && (cls += ' ');
+      cls += toAdd;
+    }
+  }
+
+  return cls;
+};
+
+/* harmony default export */ var emotion_css_create_instance_esm = (createEmotion);
+
+;// CONCATENATED MODULE: ./node_modules/@emotion/css/dist/emotion-css.esm.js
+
+
+
+
+
+var _createEmotion = emotion_css_create_instance_esm({
+  key: 'css'
+}),
+    flush = _createEmotion.flush,
+    hydrate = _createEmotion.hydrate,
+    emotion_css_esm_cx = _createEmotion.cx,
+    emotion_css_esm_merge = _createEmotion.merge,
+    emotion_css_esm_getRegisteredStyles = _createEmotion.getRegisteredStyles,
+    injectGlobal = _createEmotion.injectGlobal,
+    keyframes = _createEmotion.keyframes,
+    css = _createEmotion.css,
+    sheet = _createEmotion.sheet,
+    cache = _createEmotion.cache;
+
+
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/hooks/use-cx.js
+/**
+ * External dependencies
+ */
+
+ // eslint-disable-next-line no-restricted-imports
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+const isSerializedStyles = o => typeof o !== 'undefined' && o !== null && ['name', 'styles'].every(p => typeof o[p] !== 'undefined');
+/**
+ * Retrieve a `cx` function that knows how to handle `SerializedStyles`
+ * returned by the `@emotion/react` `css` function in addition to what
+ * `cx` normally knows how to handle. It also hooks into the Emotion
+ * Cache, allowing `css` calls to work inside iframes.
+ *
+ * @example
+ * import { css } from '@emotion/react';
+ *
+ * const styles = css`
+ * 	color: red
+ * `;
+ *
+ * function RedText( { className, ...props } ) {
+ * 	const cx = useCx();
+ *
+ * 	const classes = cx(styles, className);
+ *
+ * 	return <span className={classes} {...props} />;
+ * }
+ */
+
+
+const useCx = () => {
+  const cache = __unsafe_useEmotionCache();
+  const cx = (0,external_wp_element_namespaceObject.useCallback)(function () {
+    if (cache === null) {
+      throw new Error('The `useCx` hook should be only used within a valid Emotion Cache Context');
+    }
+
+    for (var _len = arguments.length, classNames = new Array(_len), _key = 0; _key < _len; _key++) {
+      classNames[_key] = arguments[_key];
+    }
+
+    return emotion_css_esm_cx(...classNames.map(arg => {
+      if (isSerializedStyles(arg)) {
+        emotion_utils_browser_esm_insertStyles(cache, arg, false);
+        return `${cache.key}-${arg.name}`;
+      }
+
+      return arg;
+    }));
+  }, [cache]);
+  return cx;
+};
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/ui/context/use-context-system.js
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+/**
+ * @template TProps
+ * @typedef {TProps & { className: string }} ConnectedProps
+ */
+
+/**
+ * Custom hook that derives registered props from the Context system.
+ * These derived props are then consolidated with incoming component props.
+ *
+ * @template {{ className?: string }} P
+ * @param {P}      props     Incoming props from the component.
+ * @param {string} namespace The namespace to register and to derive context props from.
+ * @return {ConnectedProps<P>} The connected props.
+ */
+
+function useContextSystem(props, namespace) {
+  const contextSystemProps = useComponentsContext();
+
+  if (typeof namespace === 'undefined') {
+    typeof process !== "undefined" && process.env && "production" !== "production" ? 0 : void 0;
+  }
+
+  const contextProps = (contextSystemProps === null || contextSystemProps === void 0 ? void 0 : contextSystemProps[namespace]) || {};
+  /* eslint-disable jsdoc/no-undefined-types */
+
+  /** @type {ConnectedProps<P>} */
+  // @ts-ignore We fill in the missing properties below
+
+  const finalComponentProps = { ...getConnectedNamespace(),
+    ...getNamespace(namespace)
+  };
+  /* eslint-enable jsdoc/no-undefined-types */
+
+  const {
+    _overrides: overrideProps,
+    ...otherContextProps
+  } = contextProps;
+  const initialMergedProps = Object.entries(otherContextProps).length ? Object.assign({}, otherContextProps, props) : props;
+  const cx = useCx();
+  const classes = cx(getStyledClassNameFromKey(namespace), props.className); // Provides the ability to customize the render of the component.
+
+  const rendered = typeof initialMergedProps.renderChildren === 'function' ? initialMergedProps.renderChildren(initialMergedProps) : initialMergedProps.children;
+
+  for (const key in initialMergedProps) {
+    // @ts-ignore filling in missing props
+    finalComponentProps[key] = initialMergedProps[key];
+  }
+
+  for (const key in overrideProps) {
+    // @ts-ignore filling in missing props
+    finalComponentProps[key] = overrideProps[key];
+  } // @ts-ignore
+
+
+  finalComponentProps.children = rendered;
+  finalComponentProps.className = classes;
+  return finalComponentProps;
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/ui/context/context-connect.js
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+/**
+ * Forwards ref (React.ForwardRef) and "Connects" (or registers) a component
+ * within the Context system under a specified namespace.
+ *
+ * This is an (experimental) evolution of the initial connect() HOC.
+ * The hope is that we can improve render performance by removing functional
+ * component wrappers.
+ *
+ * @param  Component The component to register into the Context system.
+ * @param  namespace The namespace to register the component under.
+ * @param  options
+ * @return The connected WordPressComponent
+ */
+function contextConnect(Component, namespace) {
+  let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
+  const {
+    memo: memoProp = false
+  } = options;
+  let WrappedComponent = (0,external_wp_element_namespaceObject.forwardRef)(Component);
+
+  if (memoProp) {
+    // @ts-ignore
+    WrappedComponent = (0,external_wp_element_namespaceObject.memo)(WrappedComponent);
+  }
+
+  if (typeof namespace === 'undefined') {
+    typeof process !== "undefined" && process.env && "production" !== "production" ? 0 : void 0;
+  } // @ts-ignore internal property
+
+
+  let mergedNamespace = WrappedComponent[CONNECT_STATIC_NAMESPACE] || [namespace];
+  /**
+   * Consolidate (merge) namespaces before attaching it to the WrappedComponent.
+   */
+
+  if (Array.isArray(namespace)) {
+    mergedNamespace = [...mergedNamespace, ...namespace];
+  }
+
+  if (typeof namespace === 'string') {
+    mergedNamespace = [...mergedNamespace, namespace];
+  }
+
+  WrappedComponent.displayName = namespace; // @ts-ignore internal property
+
+  WrappedComponent[CONNECT_STATIC_NAMESPACE] = (0,external_lodash_namespaceObject.uniq)(mergedNamespace); // @ts-ignore WordPressComponent property
+
+  WrappedComponent.selector = `.${getStyledClassNameFromKey(namespace)}`; // @ts-ignore
+
+  return WrappedComponent;
+}
+/**
+ * Attempts to retrieve the connected namespace from a component.
+ *
+ * @param  Component The component to retrieve a namespace from.
+ * @return The connected namespaces.
+ */
+
+function getConnectNamespace(Component) {
+  if (!Component) return [];
+  let namespaces = []; // @ts-ignore internal property
+
+  if (Component[CONNECT_STATIC_NAMESPACE]) {
+    // @ts-ignore internal property
+    namespaces = Component[CONNECT_STATIC_NAMESPACE];
+  } // @ts-ignore
+
+
+  if (Component.type && Component.type[CONNECT_STATIC_NAMESPACE]) {
+    // @ts-ignore
+    namespaces = Component.type[CONNECT_STATIC_NAMESPACE];
+  }
+
+  return namespaces;
+}
+/**
+ * Checks to see if a component is connected within the Context system.
+ *
+ * @param  Component The component to retrieve a namespace from.
+ * @param  match     The namespace to check.
+ */
+
+function hasConnectNamespace(Component, match) {
+  if (!Component) return false;
+
+  if (typeof match === 'string') {
+    return getConnectNamespace(Component).includes(match);
+  }
+
+  if (Array.isArray(match)) {
+    return match.some(result => getConnectNamespace(Component).includes(result));
+  }
+
+  return false;
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/visually-hidden/styles.js
+/** @type {import('react').CSSProperties} */
+const visuallyHidden = {
+  border: 0,
+  clip: 'rect(1px, 1px, 1px, 1px)',
+  WebkitClipPath: 'inset( 50% )',
+  clipPath: 'inset( 50% )',
+  height: '1px',
+  margin: '-1px',
+  overflow: 'hidden',
+  padding: 0,
+  position: 'absolute',
+  width: '1px',
+  wordWrap: 'normal'
+};
+
+;// CONCATENATED MODULE: ./node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js
+
+
+var reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23
+
+var isPropValid = /* #__PURE__ */emotion_memoize_esm(function (prop) {
+  return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111
+  /* o */
+  && prop.charCodeAt(1) === 110
+  /* n */
+  && prop.charCodeAt(2) < 91;
+}
+/* Z+1 */
+);
+
+/* harmony default export */ var emotion_is_prop_valid_esm = (isPropValid);
+
+;// CONCATENATED MODULE: ./node_modules/@emotion/styled/node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js
+var dist_emotion_utils_browser_esm_isBrowser = "object" !== 'undefined';
+function utils_dist_emotion_utils_browser_esm_getRegisteredStyles(registered, registeredStyles, classNames) {
+  var rawClassName = '';
+  classNames.split(' ').forEach(function (className) {
+    if (registered[className] !== undefined) {
+      registeredStyles.push(registered[className] + ";");
+    } else {
+      rawClassName += className + " ";
+    }
+  });
+  return rawClassName;
+}
+var dist_emotion_utils_browser_esm_registerStyles = function registerStyles(cache, serialized, isStringTag) {
+  var className = cache.key + "-" + serialized.name;
+
+  if ( // we only need to add the styles to the registered cache if the
+  // class name could be used further down
+  // the tree but if it's a string tag, we know it won't
+  // so we don't have to add it to registered cache.
+  // this improves memory usage since we can avoid storing the whole style string
+  (isStringTag === false || // we need to always store it if we're in compat mode and
+  // in node since emotion-server relies on whether a style is in
+  // the registered cache to know whether a style is global or not
+  // also, note that this check will be dead code eliminated in the browser
+  dist_emotion_utils_browser_esm_isBrowser === false ) && cache.registered[className] === undefined) {
+    cache.registered[className] = serialized.styles;
+  }
+};
+var utils_dist_emotion_utils_browser_esm_insertStyles = function insertStyles(cache, serialized, isStringTag) {
+  dist_emotion_utils_browser_esm_registerStyles(cache, serialized, isStringTag);
+  var className = cache.key + "-" + serialized.name;
+
+  if (cache.inserted[serialized.name] === undefined) {
+    var current = serialized;
+
+    do {
+      var maybeStyles = cache.insert(serialized === current ? "." + className : '', current, cache.sheet, true);
+
+      current = current.next;
+    } while (current !== undefined);
+  }
+};
+
+
+
+;// CONCATENATED MODULE: ./node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js
+
+
+
+
+
+
+
+
+var testOmitPropsOnStringTag = emotion_is_prop_valid_esm;
+
+var testOmitPropsOnComponent = function testOmitPropsOnComponent(key) {
+  return key !== 'theme';
+};
+
+var getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag) {
+  return typeof tag === 'string' && // 96 is one less than the char code
+  // for "a" so this is checking that
+  // it's a lowercase character
+  tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent;
+};
+var composeShouldForwardProps = function composeShouldForwardProps(tag, options, isReal) {
+  var shouldForwardProp;
+
+  if (options) {
+    var optionsShouldForwardProp = options.shouldForwardProp;
+    shouldForwardProp = tag.__emotion_forwardProp && optionsShouldForwardProp ? function (propName) {
+      return tag.__emotion_forwardProp(propName) && optionsShouldForwardProp(propName);
+    } : optionsShouldForwardProp;
+  }
+
+  if (typeof shouldForwardProp !== 'function' && isReal) {
+    shouldForwardProp = tag.__emotion_forwardProp;
+  }
+
+  return shouldForwardProp;
+};
+
+var emotion_styled_base_browser_esm_useInsertionEffect = external_React_['useInsertion' + 'Effect'] ? external_React_['useInsertion' + 'Effect'] : function useInsertionEffect(create) {
+  create();
+};
+function emotion_styled_base_browser_esm_useInsertionEffectMaybe(create) {
+
+  emotion_styled_base_browser_esm_useInsertionEffect(create);
+}
+
+var emotion_styled_base_browser_esm_ILLEGAL_ESCAPE_SEQUENCE_ERROR = "You have illegal escape sequence in your template literal, most likely inside content's property value.\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \"content: '\\00d7';\" should become \"content: '\\\\00d7';\".\nYou can read more about this here:\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences";
+
+var emotion_styled_base_browser_esm_Insertion = function Insertion(_ref) {
+  var cache = _ref.cache,
+      serialized = _ref.serialized,
+      isStringTag = _ref.isStringTag;
+  dist_emotion_utils_browser_esm_registerStyles(cache, serialized, isStringTag);
+  var rules = emotion_styled_base_browser_esm_useInsertionEffectMaybe(function () {
+    return utils_dist_emotion_utils_browser_esm_insertStyles(cache, serialized, isStringTag);
+  });
+
+  return null;
+};
+
+var createStyled = function createStyled(tag, options) {
+  if (false) {}
+
+  var isReal = tag.__emotion_real === tag;
+  var baseTag = isReal && tag.__emotion_base || tag;
+  var identifierName;
+  var targetClassName;
+
+  if (options !== undefined) {
+    identifierName = options.label;
+    targetClassName = options.target;
+  }
+
+  var shouldForwardProp = composeShouldForwardProps(tag, options, isReal);
+  var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag);
+  var shouldUseAs = !defaultShouldForwardProp('as');
+  return function () {
+    var args = arguments;
+    var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : [];
+
+    if (identifierName !== undefined) {
+      styles.push("label:" + identifierName + ";");
+    }
+
+    if (args[0] == null || args[0].raw === undefined) {
+      styles.push.apply(styles, args);
+    } else {
+      if (false) {}
+
+      styles.push(args[0][0]);
+      var len = args.length;
+      var i = 1;
+
+      for (; i < len; i++) {
+        if (false) {}
+
+        styles.push(args[i], args[0][i]);
+      }
+    } // $FlowFixMe: we need to cast StatelessFunctionalComponent to our PrivateStyledComponent class
+
+
+    var Styled = emotion_element_cbed451f_browser_esm_withEmotionCache(function (props, cache, ref) {
+      var FinalTag = shouldUseAs && props.as || baseTag;
+      var className = '';
+      var classInterpolations = [];
+      var mergedProps = props;
+
+      if (props.theme == null) {
+        mergedProps = {};
+
+        for (var key in props) {
+          mergedProps[key] = props[key];
+        }
+
+        mergedProps.theme = (0,external_React_.useContext)(emotion_element_cbed451f_browser_esm_ThemeContext);
+      }
+
+      if (typeof props.className === 'string') {
+        className = utils_dist_emotion_utils_browser_esm_getRegisteredStyles(cache.registered, classInterpolations, props.className);
+      } else if (props.className != null) {
+        className = props.className + " ";
+      }
+
+      var serialized = emotion_serialize_browser_esm_serializeStyles(styles.concat(classInterpolations), cache.registered, mergedProps);
+      className += cache.key + "-" + serialized.name;
+
+      if (targetClassName !== undefined) {
+        className += " " + targetClassName;
+      }
+
+      var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(FinalTag) : defaultShouldForwardProp;
+      var newProps = {};
+
+      for (var _key in props) {
+        if (shouldUseAs && _key === 'as') continue;
+
+        if ( // $FlowFixMe
+        finalShouldForwardProp(_key)) {
+          newProps[_key] = props[_key];
+        }
+      }
+
+      newProps.className = className;
+      newProps.ref = ref;
+      return /*#__PURE__*/(0,external_React_.createElement)(external_React_.Fragment, null, /*#__PURE__*/(0,external_React_.createElement)(emotion_styled_base_browser_esm_Insertion, {
+        cache: cache,
+        serialized: serialized,
+        isStringTag: typeof FinalTag === 'string'
+      }), /*#__PURE__*/(0,external_React_.createElement)(FinalTag, newProps));
+    });
+    Styled.displayName = identifierName !== undefined ? identifierName : "Styled(" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + ")";
+    Styled.defaultProps = tag.defaultProps;
+    Styled.__emotion_real = Styled;
+    Styled.__emotion_base = baseTag;
+    Styled.__emotion_styles = styles;
+    Styled.__emotion_forwardProp = shouldForwardProp;
+    Object.defineProperty(Styled, 'toString', {
+      value: function value() {
+        if (targetClassName === undefined && "production" !== 'production') {} // $FlowFixMe: coerce undefined to string
+
+
+        return "." + targetClassName;
+      }
+    });
+
+    Styled.withComponent = function (nextTag, nextOptions) {
+      return createStyled(nextTag, extends_extends({}, options, nextOptions, {
+        shouldForwardProp: composeShouldForwardProps(Styled, nextOptions, true)
+      })).apply(void 0, styles);
+    };
+
+    return Styled;
+  };
+};
+
+/* harmony default export */ var emotion_styled_base_browser_esm = (createStyled);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/view/component.js
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * `View` is a core component that renders everything in the library.
+ * It is the principle component in the entire library.
+ *
+ * @example
+ * ```jsx
+ * import { View } from `@wordpress/components`;
+ *
+ * function Example() {
+ * 	return (
+ * 		<View>
+ * 			 Code is Poetry
+ * 		</View>
+ * 	);
+ * }
+ * ```
+ *
+ * @type {import('../ui/context').WordPressComponent<'div', { children?: import('react').ReactNode }, true>}
+ */
+// @ts-ignore
+const View = emotion_styled_base_browser_esm("div",  true ? {
+  target: "em57xhy0"
+} : 0)( true ? "" : 0);
+
+View.selector = '.components-view';
+View.displayName = 'View';
+/* harmony default export */ var component = (View);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/visually-hidden/component.js
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+/**
+ * @param {import('../ui/context').WordPressComponentProps<{ children: import('react').ReactNode }, 'div'>} props
+ * @param {import('react').ForwardedRef<any>}                                                               forwardedRef
+ */
+
+function VisuallyHidden(props, forwardedRef) {
+  const {
+    style: styleProp,
+    ...contextProps
+  } = useContextSystem(props, 'VisuallyHidden');
+  return (0,external_wp_element_namespaceObject.createElement)(component, extends_extends({
+    ref: forwardedRef
+  }, contextProps, {
+    style: { ...visuallyHidden,
+      ...(styleProp || {})
+    }
+  }));
+}
+/**
+ * `VisuallyHidden` is a component used to render text intended to be visually
+ * hidden, but will show for alternate devices, for example a screen reader.
+ *
+ * @example
+ * ```jsx
+ * import { VisuallyHidden } from `@wordpress/components`;
+ *
+ * function Example() {
+ * 	return (
+ * 		<VisuallyHidden>
+ * 			<label>Code is Poetry</label>
+ * 		</VisuallyHidden>
+ * 	);
+ * }
+ * ```
+ */
+
+
+const ConnectedVisuallyHidden = contextConnect(VisuallyHidden, 'VisuallyHidden');
+/* harmony default export */ var visually_hidden_component = (ConnectedVisuallyHidden);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/button/index.js
+
+
+// @ts-nocheck
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+const disabledEventsOnDisabledButton = ['onMouseDown', 'onClick'];
+
+function useDeprecatedProps(_ref) {
+  let {
+    isDefault,
+    isPrimary,
+    isSecondary,
+    isTertiary,
+    isLink,
+    variant,
+    ...otherProps
+  } = _ref;
+  let computedVariant = variant;
+
+  if (isPrimary) {
+    var _computedVariant;
+
+    (_computedVariant = computedVariant) !== null && _computedVariant !== void 0 ? _computedVariant : computedVariant = 'primary';
+  }
+
+  if (isTertiary) {
+    var _computedVariant2;
+
+    (_computedVariant2 = computedVariant) !== null && _computedVariant2 !== void 0 ? _computedVariant2 : computedVariant = 'tertiary';
+  }
+
+  if (isSecondary) {
+    var _computedVariant3;
+
+    (_computedVariant3 = computedVariant) !== null && _computedVariant3 !== void 0 ? _computedVariant3 : computedVariant = 'secondary';
+  }
+
+  if (isDefault) {
+    var _computedVariant4;
+
+    external_wp_deprecated_default()('Button isDefault prop', {
+      since: '5.4',
+      alternative: 'variant="secondary"',
+      version: '6.2'
+    });
+    (_computedVariant4 = computedVariant) !== null && _computedVariant4 !== void 0 ? _computedVariant4 : computedVariant = 'secondary';
+  }
+
+  if (isLink) {
+    var _computedVariant5;
+
+    (_computedVariant5 = computedVariant) !== null && _computedVariant5 !== void 0 ? _computedVariant5 : computedVariant = 'link';
+  }
+
+  return { ...otherProps,
+    variant: computedVariant
+  };
+}
+
+function Button(props, ref) {
+  const {
+    href,
+    target,
+    isSmall,
+    isPressed,
+    isBusy,
+    isDestructive,
+    className,
+    disabled,
+    icon,
+    iconPosition = 'left',
+    iconSize,
+    showTooltip,
+    tooltipPosition,
+    shortcut,
+    label,
+    children,
+    text,
+    variant,
+    __experimentalIsFocusable: isFocusable,
+    describedBy,
+    ...additionalProps
+  } = useDeprecatedProps(props);
+  const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(Button, 'components-button__description');
+  const classes = classnames_default()('components-button', className, {
+    'is-secondary': variant === 'secondary',
+    'is-primary': variant === 'primary',
+    'is-small': isSmall,
+    'is-tertiary': variant === 'tertiary',
+    'is-pressed': isPressed,
+    'is-busy': isBusy,
+    'is-link': variant === 'link',
+    'is-destructive': isDestructive,
+    'has-text': !!icon && !!children,
+    'has-icon': !!icon
+  });
+  const trulyDisabled = disabled && !isFocusable;
+  const Tag = href !== undefined && !trulyDisabled ? 'a' : 'button';
+  const tagProps = Tag === 'a' ? {
+    href,
+    target
+  } : {
+    type: 'button',
+    disabled: trulyDisabled,
+    'aria-pressed': isPressed
+  };
+
+  if (disabled && isFocusable) {
+    // In this case, the button will be disabled, but still focusable and
+    // perceivable by screen reader users.
+    tagProps['aria-disabled'] = true;
+
+    for (const disabledEvent of disabledEventsOnDisabledButton) {
+      additionalProps[disabledEvent] = event => {
+        event.stopPropagation();
+        event.preventDefault();
+      };
+    }
+  } // Should show the tooltip if...
+
+
+  const shouldShowTooltip = !trulyDisabled && ( // An explicit tooltip is passed or...
+  showTooltip && label || // There's a shortcut or...
+  shortcut || // There's a label and...
+  !!label && ( // The children are empty and...
+  !children || (0,external_lodash_namespaceObject.isArray)(children) && !children.length) && // The tooltip is not explicitly disabled.
+  false !== showTooltip);
+  const descriptionId = describedBy ? instanceId : null;
+  const describedById = additionalProps['aria-describedby'] || descriptionId;
+  const element = (0,external_wp_element_namespaceObject.createElement)(Tag, extends_extends({}, tagProps, additionalProps, {
+    className: classes,
+    "aria-label": additionalProps['aria-label'] || label,
+    "aria-describedby": describedById,
+    ref: ref
+  }), icon && iconPosition === 'left' && (0,external_wp_element_namespaceObject.createElement)(build_module_icon, {
+    icon: icon,
+    size: iconSize
+  }), text && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, text), icon && iconPosition === 'right' && (0,external_wp_element_namespaceObject.createElement)(build_module_icon, {
+    icon: icon,
+    size: iconSize
+  }), children);
+
+  if (!shouldShowTooltip) {
+    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, element, describedBy && (0,external_wp_element_namespaceObject.createElement)(visually_hidden_component, null, (0,external_wp_element_namespaceObject.createElement)("span", {
+      id: descriptionId
+    }, describedBy)));
+  }
+
+  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(tooltip, {
+    text: describedBy ? describedBy : label,
+    shortcut: shortcut,
+    position: tooltipPosition
+  }, element), describedBy && (0,external_wp_element_namespaceObject.createElement)(visually_hidden_component, null, (0,external_wp_element_namespaceObject.createElement)("span", {
+    id: descriptionId
+  }, describedBy)));
+}
+/* harmony default export */ var build_module_button = ((0,external_wp_element_namespaceObject.forwardRef)(Button));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/scroll-lock/index.js
+/**
+ * WordPress dependencies
+ */
+
+/*
+ * Setting `overflow: hidden` on html and body elements resets body scroll in iOS.
+ * Save scroll top so we can restore it after locking scroll.
+ *
+ * NOTE: It would be cleaner and possibly safer to find a localized solution such
+ * as preventing default on certain touchmove events.
+ */
+
+let previousScrollTop = 0;
+/**
+ * @param {boolean} locked
+ */
+
+function setLocked(locked) {
+  const scrollingElement = document.scrollingElement || document.body;
+
+  if (locked) {
+    previousScrollTop = scrollingElement.scrollTop;
+  }
+
+  const methodName = locked ? 'add' : 'remove';
+  scrollingElement.classList[methodName]('lockscroll'); // Adding the class to the document element seems to be necessary in iOS.
+
+  document.documentElement.classList[methodName]('lockscroll');
+
+  if (!locked) {
+    scrollingElement.scrollTop = previousScrollTop;
+  }
+}
+
+let lockCounter = 0;
+/**
+ * A component that will lock scrolling when it is mounted and unlock scrolling when it is unmounted.
+ *
+ * @return {null} Render nothing.
+ */
+
+function ScrollLock() {
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    if (lockCounter === 0) {
+      setLocked(true);
+    }
+
+    ++lockCounter;
+    return () => {
+      if (lockCounter === 1) {
+        setLocked(false);
+      }
+
+      --lockCounter;
+    };
+  }, []);
+  return null;
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/context.js
+// @ts-nocheck
+
+/**
+ * WordPress dependencies
+ */
+
+const SlotFillContext = (0,external_wp_element_namespaceObject.createContext)({
+  registerSlot: () => {},
+  unregisterSlot: () => {},
+  registerFill: () => {},
+  unregisterFill: () => {},
+  getSlot: () => {},
+  getFills: () => {},
+  subscribe: () => {}
+});
+/* harmony default export */ var context = (SlotFillContext);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/use-slot.js
+// @ts-nocheck
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+/**
+ * React hook returning the active slot given a name.
+ *
+ * @param {string} name Slot name.
+ * @return {Object} Slot object.
+ */
+
+const useSlot = name => {
+  const {
+    getSlot,
+    subscribe
+  } = (0,external_wp_element_namespaceObject.useContext)(context);
+  const [slot, setSlot] = (0,external_wp_element_namespaceObject.useState)(getSlot(name));
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    setSlot(getSlot(name));
+    const unsubscribe = subscribe(() => {
+      setSlot(getSlot(name));
+    });
+    return unsubscribe;
+  }, [name]);
+  return slot;
+};
+
+/* harmony default export */ var use_slot = (useSlot);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/fill.js
+
+
+// @ts-nocheck
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+function FillComponent(_ref) {
+  let {
+    name,
+    children,
+    registerFill,
+    unregisterFill
+  } = _ref;
+  const slot = use_slot(name);
+  const ref = (0,external_wp_element_namespaceObject.useRef)({
+    name,
+    children
+  });
+  (0,external_wp_element_namespaceObject.useLayoutEffect)(() => {
+    registerFill(name, ref.current);
+    return () => unregisterFill(name, ref.current);
+  }, []);
+  (0,external_wp_element_namespaceObject.useLayoutEffect)(() => {
+    ref.current.children = children;
+
+    if (slot) {
+      slot.forceUpdate();
+    }
+  }, [children]);
+  (0,external_wp_element_namespaceObject.useLayoutEffect)(() => {
+    if (name === ref.current.name) {
+      // Ignore initial effect.
+      return;
+    }
+
+    unregisterFill(ref.current.name, ref.current);
+    ref.current.name = name;
+    registerFill(name, ref.current);
+  }, [name]);
+
+  if (!slot || !slot.node) {
+    return null;
+  } // If a function is passed as a child, provide it with the fillProps.
+
+
+  if ((0,external_lodash_namespaceObject.isFunction)(children)) {
+    children = children(slot.props.fillProps);
+  }
+
+  return (0,external_wp_element_namespaceObject.createPortal)(children, slot.node);
+}
+
+const Fill = props => (0,external_wp_element_namespaceObject.createElement)(context.Consumer, null, _ref2 => {
+  let {
+    registerFill,
+    unregisterFill
+  } = _ref2;
+  return (0,external_wp_element_namespaceObject.createElement)(FillComponent, extends_extends({}, props, {
+    registerFill: registerFill,
+    unregisterFill: unregisterFill
+  }));
+});
+
+/* harmony default export */ var fill = (Fill);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/slot.js
+
+
+// @ts-nocheck
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+class SlotComponent extends external_wp_element_namespaceObject.Component {
+  constructor() {
+    super(...arguments);
+    this.isUnmounted = false;
+    this.bindNode = this.bindNode.bind(this);
+  }
+
+  componentDidMount() {
+    const {
+      registerSlot
+    } = this.props;
+    registerSlot(this.props.name, this);
+  }
+
+  componentWillUnmount() {
+    const {
+      unregisterSlot
+    } = this.props;
+    this.isUnmounted = true;
+    unregisterSlot(this.props.name, this);
+  }
+
+  componentDidUpdate(prevProps) {
+    const {
+      name,
+      unregisterSlot,
+      registerSlot
+    } = this.props;
+
+    if (prevProps.name !== name) {
+      unregisterSlot(prevProps.name);
+      registerSlot(name, this);
+    }
+  }
+
+  bindNode(node) {
+    this.node = node;
+  }
+
+  forceUpdate() {
+    if (this.isUnmounted) {
+      return;
+    }
+
+    super.forceUpdate();
+  }
+
+  render() {
+    const {
+      children,
+      name,
+      fillProps = {},
+      getFills
+    } = this.props;
+    const fills = (0,external_lodash_namespaceObject.map)(getFills(name, this), fill => {
+      const fillChildren = (0,external_lodash_namespaceObject.isFunction)(fill.children) ? fill.children(fillProps) : fill.children;
+      return external_wp_element_namespaceObject.Children.map(fillChildren, (child, childIndex) => {
+        if (!child || (0,external_lodash_namespaceObject.isString)(child)) {
+          return child;
+        }
+
+        const childKey = child.key || childIndex;
+        return (0,external_wp_element_namespaceObject.cloneElement)(child, {
+          key: childKey
+        });
+      });
+    }).filter( // In some cases fills are rendered only when some conditions apply.
+    // This ensures that we only use non-empty fills when rendering, i.e.,
+    // it allows us to render wrappers only when the fills are actually present.
+    (0,external_lodash_namespaceObject.negate)(external_wp_element_namespaceObject.isEmptyElement));
+    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_lodash_namespaceObject.isFunction)(children) ? children(fills) : fills);
+  }
+
+}
+
+const Slot = props => (0,external_wp_element_namespaceObject.createElement)(context.Consumer, null, _ref => {
+  let {
+    registerSlot,
+    unregisterSlot,
+    getFills
+  } = _ref;
+  return (0,external_wp_element_namespaceObject.createElement)(SlotComponent, extends_extends({}, props, {
+    registerSlot: registerSlot,
+    unregisterSlot: unregisterSlot,
+    getFills: getFills
+  }));
+});
+
+/* harmony default export */ var slot = (Slot);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/bubbles-virtually/slot-fill-context.js
+// @ts-nocheck
+
+/**
+ * WordPress dependencies
+ */
+
+
+const slot_fill_context_SlotFillContext = (0,external_wp_element_namespaceObject.createContext)({
+  slots: {},
+  fills: {},
+  registerSlot: () => {
+    typeof process !== "undefined" && process.env && "production" !== "production" ? 0 : void 0;
+  },
+  updateSlot: () => {},
+  unregisterSlot: () => {},
+  registerFill: () => {},
+  unregisterFill: () => {}
+});
+/* harmony default export */ var slot_fill_context = (slot_fill_context_SlotFillContext);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/bubbles-virtually/use-slot.js
+// @ts-nocheck
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+function use_slot_useSlot(name) {
+  const registry = (0,external_wp_element_namespaceObject.useContext)(slot_fill_context);
+  const slot = registry.slots[name] || {};
+  const slotFills = registry.fills[name];
+  const fills = (0,external_wp_element_namespaceObject.useMemo)(() => slotFills || [], [slotFills]);
+  const updateSlot = (0,external_wp_element_namespaceObject.useCallback)(fillProps => {
+    registry.updateSlot(name, fillProps);
+  }, [name, registry.updateSlot]);
+  const unregisterSlot = (0,external_wp_element_namespaceObject.useCallback)(slotRef => {
+    registry.unregisterSlot(name, slotRef);
+  }, [name, registry.unregisterSlot]);
+  const registerFill = (0,external_wp_element_namespaceObject.useCallback)(fillRef => {
+    registry.registerFill(name, fillRef);
+  }, [name, registry.registerFill]);
+  const unregisterFill = (0,external_wp_element_namespaceObject.useCallback)(fillRef => {
+    registry.unregisterFill(name, fillRef);
+  }, [name, registry.unregisterFill]);
+  return { ...slot,
+    updateSlot,
+    unregisterSlot,
+    fills,
+    registerFill,
+    unregisterFill
+  };
+}
+
+;// CONCATENATED MODULE: ./node_modules/uuid/dist/esm-browser/rng.js
+// Unique ID creation requires a high quality random # generator. In the browser we therefore
+// require the crypto API and do not support built-in fallback to lower quality random number
+// generators (like Math.random()).
+var getRandomValues;
+var rnds8 = new Uint8Array(16);
+function rng() {
+  // lazy load so that environments that need to polyfill have a chance to do so
+  if (!getRandomValues) {
+    // getRandomValues needs to be invoked in a context where "this" is a Crypto implementation. Also,
+    // find the complete implementation of crypto (msCrypto) on IE11.
+    getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);
+
+    if (!getRandomValues) {
+      throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');
+    }
+  }
+
+  return getRandomValues(rnds8);
+}
+;// CONCATENATED MODULE: ./node_modules/uuid/dist/esm-browser/regex.js
+/* harmony default export */ var regex = (/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i);
+;// CONCATENATED MODULE: ./node_modules/uuid/dist/esm-browser/validate.js
+
+
+function validate(uuid) {
+  return typeof uuid === 'string' && regex.test(uuid);
+}
+
+/* harmony default export */ var esm_browser_validate = (validate);
+;// CONCATENATED MODULE: ./node_modules/uuid/dist/esm-browser/stringify.js
+
+/**
+ * Convert array of 16 byte values to UUID string format of the form:
+ * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
+ */
+
+var byteToHex = [];
+
+for (var i = 0; i < 256; ++i) {
+  byteToHex.push((i + 0x100).toString(16).substr(1));
+}
+
+function stringify_stringify(arr) {
+  var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
+  // Note: Be careful editing this code!  It's been tuned for performance
+  // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434
+  var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID.  If this throws, it's likely due to one
+  // of the following:
+  // - One or more input array values don't map to a hex octet (leading to
+  // "undefined" in the uuid)
+  // - Invalid input values for the RFC `version` or `variant` fields
+
+  if (!esm_browser_validate(uuid)) {
+    throw TypeError('Stringified UUID is invalid');
+  }
+
+  return uuid;
+}
+
+/* harmony default export */ var esm_browser_stringify = (stringify_stringify);
+;// CONCATENATED MODULE: ./node_modules/uuid/dist/esm-browser/v4.js
+
+
+
+function v4(options, buf, offset) {
+  options = options || {};
+  var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
+
+  rnds[6] = rnds[6] & 0x0f | 0x40;
+  rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided
+
+  if (buf) {
+    offset = offset || 0;
+
+    for (var i = 0; i < 16; ++i) {
+      buf[offset + i] = rnds[i];
+    }
+
+    return buf;
+  }
+
+  return esm_browser_stringify(rnds);
+}
+
+/* harmony default export */ var esm_browser_v4 = (v4);
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/style-provider/index.js
+
+// @ts-nocheck
+
+/**
+ * External dependencies
+ */
+
+
+
+
+const uuidCache = new Set();
+const memoizedCreateCacheWithContainer = memize_default()(container => {
+  // Emotion only accepts alphabetical and hyphenated keys so we just strip the numbers from the UUID. It _should_ be fine.
+  let key = esm_browser_v4().replace(/[0-9]/g, '');
+
+  while (uuidCache.has(key)) {
+    key = esm_browser_v4().replace(/[0-9]/g, '');
+  }
+
+  uuidCache.add(key);
+  return emotion_cache_browser_esm({
+    container,
+    key
+  });
+});
+function StyleProvider(_ref) {
+  let {
+    children,
+    document
+  } = _ref;
+
+  if (!document) {
+    return null;
+  }
+
+  const cache = memoizedCreateCacheWithContainer(document.head);
+  return (0,external_wp_element_namespaceObject.createElement)(CacheProvider, {
+    value: cache
+  }, children);
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/bubbles-virtually/fill.js
+
+// @ts-nocheck
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+function useForceUpdate() {
+  const [, setState] = (0,external_wp_element_namespaceObject.useState)({});
+  const mounted = (0,external_wp_element_namespaceObject.useRef)(true);
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    return () => {
+      mounted.current = false;
+    };
+  }, []);
+  return () => {
+    if (mounted.current) {
+      setState({});
+    }
+  };
+}
+
+function fill_Fill(_ref) {
+  let {
+    name,
+    children
+  } = _ref;
+  const slot = use_slot_useSlot(name);
+  const ref = (0,external_wp_element_namespaceObject.useRef)({
+    rerender: useForceUpdate()
+  });
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    // We register fills so we can keep track of their existance.
+    // Some Slot implementations need to know if there're already fills
+    // registered so they can choose to render themselves or not.
+    slot.registerFill(ref);
+    return () => {
+      slot.unregisterFill(ref);
+    };
+  }, [slot.registerFill, slot.unregisterFill]);
+
+  if (!slot.ref || !slot.ref.current) {
+    return null;
+  }
+
+  if (typeof children === 'function') {
+    children = children(slot.fillProps);
+  } // When using a `Fill`, the `children` will be rendered in the document of the
+  // `Slot`. This means that we need to wrap the `children` in a `StyleProvider`
+  // to make sure we're referencing the right document/iframe (instead of the
+  // context of the `Fill`'s parent).
+
+
+  const wrappedChildren = (0,external_wp_element_namespaceObject.createElement)(StyleProvider, {
+    document: slot.ref.current.ownerDocument
+  }, children);
+  return (0,external_wp_element_namespaceObject.createPortal)(wrappedChildren, slot.ref.current);
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/bubbles-virtually/slot.js
+
+
+// @ts-nocheck
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+function slot_Slot(_ref, forwardedRef) {
+  let {
+    name,
+    fillProps = {},
+    as: Component = 'div',
+    ...props
+  } = _ref;
+  const registry = (0,external_wp_element_namespaceObject.useContext)(slot_fill_context);
+  const ref = (0,external_wp_element_namespaceObject.useRef)();
+  (0,external_wp_element_namespaceObject.useLayoutEffect)(() => {
+    registry.registerSlot(name, ref, fillProps);
+    return () => {
+      registry.unregisterSlot(name, ref);
+    }; // We are not including fillProps in the deps because we don't want to
+    // unregister and register the slot whenever fillProps change, which would
+    // cause the fill to be re-mounted. We are only considering the initial value
+    // of fillProps.
+  }, [registry.registerSlot, registry.unregisterSlot, name]); // fillProps may be an update that interacts with the layout, so we
+  // useLayoutEffect.
+
+  (0,external_wp_element_namespaceObject.useLayoutEffect)(() => {
+    registry.updateSlot(name, fillProps);
+  });
+  return (0,external_wp_element_namespaceObject.createElement)(Component, extends_extends({
+    ref: (0,external_wp_compose_namespaceObject.useMergeRefs)([forwardedRef, ref])
+  }, props));
+}
+
+/* harmony default export */ var bubbles_virtually_slot = ((0,external_wp_element_namespaceObject.forwardRef)(slot_Slot));
+
+;// CONCATENATED MODULE: external ["wp","isShallowEqual"]
+var external_wp_isShallowEqual_namespaceObject = window["wp"]["isShallowEqual"];
+var external_wp_isShallowEqual_default = /*#__PURE__*/__webpack_require__.n(external_wp_isShallowEqual_namespaceObject);
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/bubbles-virtually/slot-fill-provider.js
+
+// @ts-nocheck
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+function useSlotRegistry() {
+  const [slots, setSlots] = (0,external_wp_element_namespaceObject.useState)({});
+  const [fills, setFills] = (0,external_wp_element_namespaceObject.useState)({});
+  const registerSlot = (0,external_wp_element_namespaceObject.useCallback)((name, ref, fillProps) => {
+    setSlots(prevSlots => {
+      const slot = prevSlots[name] || {};
+      return { ...prevSlots,
+        [name]: { ...slot,
+          ref: ref || slot.ref,
+          fillProps: fillProps || slot.fillProps || {}
+        }
+      };
+    });
+  }, []);
+  const unregisterSlot = (0,external_wp_element_namespaceObject.useCallback)((name, ref) => {
+    setSlots(prevSlots => {
+      const {
+        [name]: slot,
+        ...nextSlots
+      } = prevSlots; // Make sure we're not unregistering a slot registered by another element
+      // See https://github.com/WordPress/gutenberg/pull/19242#issuecomment-590295412
+
+      if ((slot === null || slot === void 0 ? void 0 : slot.ref) === ref) {
+        return nextSlots;
+      }
+
+      return prevSlots;
+    });
+  }, []);
+  const updateSlot = (0,external_wp_element_namespaceObject.useCallback)((name, fillProps) => {
+    const slot = slots[name];
+
+    if (!slot) {
+      return;
+    }
+
+    if (!external_wp_isShallowEqual_default()(slot.fillProps, fillProps)) {
+      slot.fillProps = fillProps;
+      const slotFills = fills[name];
+
+      if (slotFills) {
+        // Force update fills.
+        slotFills.map(fill => fill.current.rerender());
+      }
+    }
+  }, [slots, fills]);
+  const registerFill = (0,external_wp_element_namespaceObject.useCallback)((name, ref) => {
+    setFills(prevFills => ({ ...prevFills,
+      [name]: [...(prevFills[name] || []), ref]
+    }));
+  }, []);
+  const unregisterFill = (0,external_wp_element_namespaceObject.useCallback)((name, ref) => {
+    setFills(prevFills => {
+      if (prevFills[name]) {
+        return { ...prevFills,
+          [name]: prevFills[name].filter(fillRef => fillRef !== ref)
+        };
+      }
+
+      return prevFills;
+    });
+  }, []); // Memoizing the return value so it can be directly passed to Provider value
+
+  const registry = (0,external_wp_element_namespaceObject.useMemo)(() => ({
+    slots,
+    fills,
+    registerSlot,
+    updateSlot,
+    unregisterSlot,
+    registerFill,
+    unregisterFill
+  }), [slots, fills, registerSlot, updateSlot, unregisterSlot, registerFill, unregisterFill]);
+  return registry;
+}
+
+function SlotFillProvider(_ref) {
+  let {
+    children
+  } = _ref;
+  const registry = useSlotRegistry();
+  return (0,external_wp_element_namespaceObject.createElement)(slot_fill_context.Provider, {
+    value: registry
+  }, children);
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/provider.js
+
+// @ts-nocheck
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+class provider_SlotFillProvider extends external_wp_element_namespaceObject.Component {
+  constructor() {
+    super(...arguments);
+    this.registerSlot = this.registerSlot.bind(this);
+    this.registerFill = this.registerFill.bind(this);
+    this.unregisterSlot = this.unregisterSlot.bind(this);
+    this.unregisterFill = this.unregisterFill.bind(this);
+    this.getSlot = this.getSlot.bind(this);
+    this.getFills = this.getFills.bind(this);
+    this.hasFills = this.hasFills.bind(this);
+    this.subscribe = this.subscribe.bind(this);
+    this.slots = {};
+    this.fills = {};
+    this.listeners = [];
+    this.contextValue = {
+      registerSlot: this.registerSlot,
+      unregisterSlot: this.unregisterSlot,
+      registerFill: this.registerFill,
+      unregisterFill: this.unregisterFill,
+      getSlot: this.getSlot,
+      getFills: this.getFills,
+      hasFills: this.hasFills,
+      subscribe: this.subscribe
+    };
+  }
+
+  registerSlot(name, slot) {
+    const previousSlot = this.slots[name];
+    this.slots[name] = slot;
+    this.triggerListeners(); // Sometimes the fills are registered after the initial render of slot
+    // But before the registerSlot call, we need to rerender the slot.
+
+    this.forceUpdateSlot(name); // If a new instance of a slot is being mounted while another with the
+    // same name exists, force its update _after_ the new slot has been
+    // assigned into the instance, such that its own rendering of children
+    // will be empty (the new Slot will subsume all fills for this name).
+
+    if (previousSlot) {
+      previousSlot.forceUpdate();
+    }
+  }
+
+  registerFill(name, instance) {
+    this.fills[name] = [...(this.fills[name] || []), instance];
+    this.forceUpdateSlot(name);
+  }
+
+  unregisterSlot(name, instance) {
+    // If a previous instance of a Slot by this name unmounts, do nothing,
+    // as the slot and its fills should only be removed for the current
+    // known instance.
+    if (this.slots[name] !== instance) {
+      return;
+    }
+
+    delete this.slots[name];
+    this.triggerListeners();
+  }
+
+  unregisterFill(name, instance) {
+    this.fills[name] = (0,external_lodash_namespaceObject.without)(this.fills[name], instance);
+    this.forceUpdateSlot(name);
+  }
+
+  getSlot(name) {
+    return this.slots[name];
+  }
+
+  getFills(name, slotInstance) {
+    // Fills should only be returned for the current instance of the slot
+    // in which they occupy.
+    if (this.slots[name] !== slotInstance) {
+      return [];
+    }
+
+    return this.fills[name];
+  }
+
+  hasFills(name) {
+    return this.fills[name] && !!this.fills[name].length;
+  }
+
+  forceUpdateSlot(name) {
+    const slot = this.getSlot(name);
+
+    if (slot) {
+      slot.forceUpdate();
+    }
+  }
+
+  triggerListeners() {
+    this.listeners.forEach(listener => listener());
+  }
+
+  subscribe(listener) {
+    this.listeners.push(listener);
+    return () => {
+      this.listeners = (0,external_lodash_namespaceObject.without)(this.listeners, listener);
+    };
+  }
+
+  render() {
+    return (0,external_wp_element_namespaceObject.createElement)(context.Provider, {
+      value: this.contextValue
+    }, this.props.children);
+  }
+
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/index.js
+
+
+// @ts-nocheck
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+
+
+function slot_fill_Fill(props) {
+  // We're adding both Fills here so they can register themselves before
+  // their respective slot has been registered. Only the Fill that has a slot
+  // will render. The other one will return null.
+  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(fill, props), (0,external_wp_element_namespaceObject.createElement)(fill_Fill, props));
+}
+const slot_fill_Slot = (0,external_wp_element_namespaceObject.forwardRef)((_ref, ref) => {
+  let {
+    bubblesVirtually,
+    ...props
+  } = _ref;
+
+  if (bubblesVirtually) {
+    return (0,external_wp_element_namespaceObject.createElement)(bubbles_virtually_slot, extends_extends({}, props, {
+      ref: ref
+    }));
+  }
+
+  return (0,external_wp_element_namespaceObject.createElement)(slot, props);
+});
+function Provider(_ref2) {
+  let {
+    children,
+    ...props
+  } = _ref2;
+  return (0,external_wp_element_namespaceObject.createElement)(provider_SlotFillProvider, props, (0,external_wp_element_namespaceObject.createElement)(SlotFillProvider, null, children));
+}
+function createSlotFill(name) {
+  const FillComponent = props => (0,external_wp_element_namespaceObject.createElement)(slot_fill_Fill, extends_extends({
+    name: name
+  }, props));
+
+  FillComponent.displayName = name + 'Fill';
+
+  const SlotComponent = props => (0,external_wp_element_namespaceObject.createElement)(slot_fill_Slot, extends_extends({
+    name: name
+  }, props));
+
+  SlotComponent.displayName = name + 'Slot';
+  SlotComponent.__unstableName = name;
+  return {
+    Fill: FillComponent,
+    Slot: SlotComponent
+  };
+}
+
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/animate/index.js
+/**
+ * External dependencies
+ */
+
+/**
+ * @typedef {'top' | 'top left' | 'top right' | 'middle' | 'middle left' | 'middle right' | 'bottom' | 'bottom left' | 'bottom right'} AppearOrigin
+ * @typedef {'left' | 'right'} SlideInOrigin
+ * @typedef {{ type: 'appear'; origin?: AppearOrigin }} AppearOptions
+ * @typedef {{ type: 'slide-in'; origin?: SlideInOrigin }} SlideInOptions
+ * @typedef {{ type: 'loading' }} LoadingOptions
+ * @typedef {AppearOptions | SlideInOptions | LoadingOptions} GetAnimateOptions
+ */
+
+/* eslint-disable jsdoc/valid-types */
+
+/**
+ * @param {GetAnimateOptions['type']} type The animation type
+ * @return {'top' | 'left'} Default origin
+ */
+
+function getDefaultOrigin(type) {
+  return type === 'appear' ? 'top' : 'left';
+}
+/* eslint-enable jsdoc/valid-types */
+
+/**
+ * @param {GetAnimateOptions} options
+ *
+ * @return {string | void} ClassName that applies the animations
+ */
+
+
+function getAnimateClassName(options) {
+  if (options.type === 'loading') {
+    return classnames_default()('components-animate__loading');
+  }
+
+  const {
+    type,
+    origin = getDefaultOrigin(type)
+  } = options;
+
+  if (type === 'appear') {
+    const [yAxis, xAxis = 'center'] = origin.split(' ');
+    return classnames_default()('components-animate__appear', {
+      ['is-from-' + xAxis]: xAxis !== 'center',
+      ['is-from-' + yAxis]: yAxis !== 'middle'
+    });
+  }
+
+  if (type === 'slide-in') {
+    return classnames_default()('components-animate__slide-in', 'is-from-' + origin);
+  }
+} // @ts-ignore Reason: Planned for deprecation
+
+function Animate(_ref) {
+  let {
+    type,
+    options = {},
+    children
+  } = _ref;
+  return children({
+    className: getAnimateClassName({
+      type,
+      ...options
+    })
+  });
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/popover/index.js
+
+
+// @ts-nocheck
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+/**
+ * Name of slot in which popover should fill.
+ *
+ * @type {string}
+ */
+
+const SLOT_NAME = 'Popover';
+const slotNameContext = (0,external_wp_element_namespaceObject.createContext)();
+
+function computeAnchorRect(anchorRefFallback, anchorRect, getAnchorRect) {
+  let anchorRef = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
+  let shouldAnchorIncludePadding = arguments.length > 4 ? arguments[4] : undefined;
+  let container = arguments.length > 5 ? arguments[5] : undefined;
+
+  if (anchorRect) {
+    return anchorRect;
+  }
+
+  if (getAnchorRect) {
+    if (!anchorRefFallback.current) {
+      return;
+    }
+
+    const rect = getAnchorRect(anchorRefFallback.current);
+    return offsetIframe(rect, rect.ownerDocument || anchorRefFallback.current.ownerDocument, container);
+  }
+
+  if (anchorRef !== false) {
+    if (!anchorRef || !window.Range || !window.Element || !window.DOMRect) {
+      return;
+    } // Duck-type to check if `anchorRef` is an instance of Range
+    // `anchorRef instanceof window.Range` checks will break across document boundaries
+    // such as in an iframe.
+
+
+    if (typeof (anchorRef === null || anchorRef === void 0 ? void 0 : anchorRef.cloneRange) === 'function') {
+      return offsetIframe((0,external_wp_dom_namespaceObject.getRectangleFromRange)(anchorRef), anchorRef.endContainer.ownerDocument, container);
+    } // Duck-type to check if `anchorRef` is an instance of Element
+    // `anchorRef instanceof window.Element` checks will break across document boundaries
+    // such as in an iframe.
+
+
+    if (typeof (anchorRef === null || anchorRef === void 0 ? void 0 : anchorRef.getBoundingClientRect) === 'function') {
+      const rect = offsetIframe(anchorRef.getBoundingClientRect(), anchorRef.ownerDocument, container);
+
+      if (shouldAnchorIncludePadding) {
+        return rect;
+      }
+
+      return withoutPadding(rect, anchorRef);
+    }
+
+    const {
+      top,
+      bottom
+    } = anchorRef;
+    const topRect = top.getBoundingClientRect();
+    const bottomRect = bottom.getBoundingClientRect();
+    const rect = offsetIframe(new window.DOMRect(topRect.left, topRect.top, topRect.width, bottomRect.bottom - topRect.top), top.ownerDocument, container);
+
+    if (shouldAnchorIncludePadding) {
+      return rect;
+    }
+
+    return withoutPadding(rect, anchorRef);
+  }
+
+  if (!anchorRefFallback.current) {
+    return;
+  }
+
+  const {
+    parentNode
+  } = anchorRefFallback.current;
+  const rect = offsetIframe(parentNode.getBoundingClientRect(), parentNode.ownerDocument, container);
+
+  if (shouldAnchorIncludePadding) {
+    return rect;
+  }
+
+  return withoutPadding(rect, parentNode);
+}
+
+function popover_getComputedStyle(node) {
+  return node.ownerDocument.defaultView.getComputedStyle(node);
+}
+
+function withoutPadding(rect, element) {
+  const {
+    paddingTop,
+    paddingBottom,
+    paddingLeft,
+    paddingRight
+  } = popover_getComputedStyle(element);
+  const top = paddingTop ? parseInt(paddingTop, 10) : 0;
+  const bottom = paddingBottom ? parseInt(paddingBottom, 10) : 0;
+  const left = paddingLeft ? parseInt(paddingLeft, 10) : 0;
+  const right = paddingRight ? parseInt(paddingRight, 10) : 0;
+  return {
+    x: rect.left + left,
+    y: rect.top + top,
+    width: rect.width - left - right,
+    height: rect.height - top - bottom,
+    left: rect.left + left,
+    right: rect.right - right,
+    top: rect.top + top,
+    bottom: rect.bottom - bottom
+  };
+}
+/**
+ * Sets or removes an element attribute.
+ *
+ * @param {Element} element The element to modify.
+ * @param {string}  name    The attribute name to set or remove.
+ * @param {?string} value   The value to set. A falsy value will remove the
+ *                          attribute.
+ */
+
+
+function setAttribute(element, name, value) {
+  if (!value) {
+    if (element.hasAttribute(name)) {
+      element.removeAttribute(name);
+    }
+  } else if (element.getAttribute(name) !== value) {
+    element.setAttribute(name, value);
+  }
+}
+/**
+ * Sets or removes an element style property.
+ *
+ * @param {Element} element  The element to modify.
+ * @param {string}  property The property to set or remove.
+ * @param {?string} value    The value to set. A falsy value will remove the
+ *                           property.
+ */
+
+
+function setStyle(element, property) {
+  let value = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
+
+  if (element.style[property] !== value) {
+    element.style[property] = value;
+  }
+}
+/**
+ * Sets or removes an element class.
+ *
+ * @param {Element} element The element to modify.
+ * @param {string}  name    The class to set or remove.
+ * @param {boolean} toggle  True to set the class, false to remove.
+ */
+
+
+function setClass(element, name, toggle) {
+  if (toggle) {
+    if (!element.classList.contains(name)) {
+      element.classList.add(name);
+    }
+  } else if (element.classList.contains(name)) {
+    element.classList.remove(name);
+  }
+}
+
+function getAnchorDocument(anchor) {
+  if (!anchor) {
+    return;
+  }
+
+  if (anchor.endContainer) {
+    return anchor.endContainer.ownerDocument;
+  }
+
+  if (anchor.top) {
+    return anchor.top.ownerDocument;
+  }
+
+  return anchor.ownerDocument;
+}
+
+const Popover = (_ref, ref) => {
+  let {
+    headerTitle,
+    onClose,
+    children,
+    className,
+    noArrow = true,
+    isAlternate,
+    // Disable reason: We generate the `...contentProps` rest as remainder
+    // of props which aren't explicitly handled by this component.
+
+    /* eslint-disable no-unused-vars */
+    position = 'bottom right',
+    range,
+    focusOnMount = 'firstElement',
+    anchorRef,
+    shouldAnchorIncludePadding,
+    anchorRect,
+    getAnchorRect,
+    expandOnMobile,
+    animate = true,
+    onFocusOutside,
+    __unstableStickyBoundaryElement,
+    __unstableSlotName = SLOT_NAME,
+    __unstableObserveElement,
+    __unstableBoundaryParent,
+    __unstableForcePosition,
+    __unstableForceXAlignment,
+    __unstableEditorCanvasWrapper,
+
+    /* eslint-enable no-unused-vars */
+    ...contentProps
+  } = _ref;
+  const anchorRefFallback = (0,external_wp_element_namespaceObject.useRef)(null);
+  const contentRef = (0,external_wp_element_namespaceObject.useRef)(null);
+  const containerRef = (0,external_wp_element_namespaceObject.useRef)();
+  const isMobileViewport = (0,external_wp_compose_namespaceObject.useViewportMatch)('medium', '<');
+  const [animateOrigin, setAnimateOrigin] = (0,external_wp_element_namespaceObject.useState)();
+
+  const slotName = (0,external_wp_element_namespaceObject.useContext)(slotNameContext) || __unstableSlotName;
+
+  const slot = use_slot_useSlot(slotName);
+  const isExpanded = expandOnMobile && isMobileViewport;
+  const [containerResizeListener, contentSize] = (0,external_wp_compose_namespaceObject.useResizeObserver)();
+  noArrow = isExpanded || noArrow;
+  (0,external_wp_element_namespaceObject.useLayoutEffect)(() => {
+    if (isExpanded) {
+      setClass(containerRef.current, 'is-without-arrow', noArrow);
+      setClass(containerRef.current, 'is-alternate', isAlternate);
+      setAttribute(containerRef.current, 'data-x-axis');
+      setAttribute(containerRef.current, 'data-y-axis');
+      setStyle(containerRef.current, 'top');
+      setStyle(containerRef.current, 'left');
+      setStyle(contentRef.current, 'maxHeight');
+      setStyle(contentRef.current, 'maxWidth');
+      return;
+    }
+
+    const refresh = () => {
+      if (!containerRef.current || !contentRef.current) {
+        return;
+      }
+
+      let anchor = computeAnchorRect(anchorRefFallback, anchorRect, getAnchorRect, anchorRef, shouldAnchorIncludePadding, containerRef.current);
+
+      if (!anchor) {
+        return;
+      }
+
+      const {
+        offsetParent,
+        ownerDocument
+      } = containerRef.current;
+      let relativeOffsetTop = 0; // If there is a positioned ancestor element that is not the body,
+      // subtract the position from the anchor rect. If the position of
+      // the popover is fixed, the offset parent is null or the body
+      // element, in which case the position is relative to the viewport.
+      // See https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetParent
+
+      if (offsetParent && offsetParent !== ownerDocument.body) {
+        const offsetParentRect = offsetParent.getBoundingClientRect();
+        relativeOffsetTop = offsetParentRect.top;
+        anchor = new window.DOMRect(anchor.left - offsetParentRect.left, anchor.top - offsetParentRect.top, anchor.width, anchor.height);
+      }
+
+      let boundaryElement;
+
+      if (__unstableBoundaryParent) {
+        boundaryElement = containerRef.current.parentElement;
+      }
+
+      const usedContentSize = !contentSize.height ? contentRef.current.getBoundingClientRect() : contentSize;
+      const {
+        popoverTop,
+        popoverLeft,
+        xAxis,
+        yAxis,
+        contentHeight,
+        contentWidth
+      } = computePopoverPosition(anchor, usedContentSize, position, __unstableStickyBoundaryElement, containerRef.current, relativeOffsetTop, boundaryElement, __unstableForcePosition, __unstableForceXAlignment, __unstableEditorCanvasWrapper);
+
+      if (typeof popoverTop === 'number' && typeof popoverLeft === 'number') {
+        setStyle(containerRef.current, 'top', popoverTop + 'px');
+        setStyle(containerRef.current, 'left', popoverLeft + 'px');
+      }
+
+      setClass(containerRef.current, 'is-without-arrow', noArrow || xAxis === 'center' && yAxis === 'middle');
+      setClass(containerRef.current, 'is-alternate', isAlternate);
+      setAttribute(containerRef.current, 'data-x-axis', xAxis);
+      setAttribute(containerRef.current, 'data-y-axis', yAxis);
+      setStyle(contentRef.current, 'maxHeight', typeof contentHeight === 'number' ? contentHeight + 'px' : '');
+      setStyle(contentRef.current, 'maxWidth', typeof contentWidth === 'number' ? contentWidth + 'px' : ''); // Compute the animation position.
+
+      const yAxisMapping = {
+        top: 'bottom',
+        bottom: 'top'
+      };
+      const xAxisMapping = {
+        left: 'right',
+        right: 'left'
+      };
+      const animateYAxis = yAxisMapping[yAxis] || 'middle';
+      const animateXAxis = xAxisMapping[xAxis] || 'center';
+      setAnimateOrigin(animateXAxis + ' ' + animateYAxis);
+    };
+
+    refresh();
+    const {
+      ownerDocument
+    } = containerRef.current;
+    const {
+      defaultView
+    } = ownerDocument;
+    /*
+     * There are sometimes we need to reposition or resize the popover that
+     * are not handled by the resize/scroll window events (i.e. CSS changes
+     * in the layout that changes the position of the anchor).
+     *
+     * For these situations, we refresh the popover every 0.5s
+     */
+
+    const intervalHandle = defaultView.setInterval(refresh, 500);
+    let rafId;
+
+    const refreshOnAnimationFrame = () => {
+      defaultView.cancelAnimationFrame(rafId);
+      rafId = defaultView.requestAnimationFrame(refresh);
+    }; // Sometimes a click trigger a layout change that affects the popover
+    // position. This is an opportunity to immediately refresh rather than
+    // at the interval.
+
+
+    defaultView.addEventListener('click', refreshOnAnimationFrame);
+    defaultView.addEventListener('resize', refresh);
+    defaultView.addEventListener('scroll', refresh, true);
+    const anchorDocument = getAnchorDocument(anchorRef); // If the anchor is within an iframe, the popover position also needs
+    // to refrest when the iframe content is scrolled or resized.
+
+    if (anchorDocument && anchorDocument !== ownerDocument) {
+      anchorDocument.defaultView.addEventListener('resize', refresh);
+      anchorDocument.defaultView.addEventListener('scroll', refresh, true);
+    }
+
+    let observer;
+
+    if (__unstableObserveElement) {
+      observer = new defaultView.MutationObserver(refresh);
+      observer.observe(__unstableObserveElement, {
+        attributes: true
+      });
+    }
+
+    return () => {
+      defaultView.clearInterval(intervalHandle);
+      defaultView.removeEventListener('resize', refresh);
+      defaultView.removeEventListener('scroll', refresh, true);
+      defaultView.removeEventListener('click', refreshOnAnimationFrame);
+      defaultView.cancelAnimationFrame(rafId);
+
+      if (anchorDocument && anchorDocument !== ownerDocument) {
+        var _anchorDocument$defau, _anchorDocument$defau2;
+
+        (_anchorDocument$defau = anchorDocument.defaultView) === null || _anchorDocument$defau === void 0 ? void 0 : _anchorDocument$defau.removeEventListener('resize', refresh);
+        (_anchorDocument$defau2 = anchorDocument.defaultView) === null || _anchorDocument$defau2 === void 0 ? void 0 : _anchorDocument$defau2.removeEventListener('scroll', refresh, true);
+      }
+
+      if (observer) {
+        observer.disconnect();
+      }
+    };
+  }, [isExpanded, anchorRect, getAnchorRect, anchorRef, shouldAnchorIncludePadding, position, contentSize, __unstableStickyBoundaryElement, __unstableObserveElement, __unstableBoundaryParent]);
+
+  const onDialogClose = (type, event) => {
+    // Ideally the popover should have just a single onClose prop and
+    // not three props that potentially do the same thing.
+    if (type === 'focus-outside' && onFocusOutside) {
+      onFocusOutside(event);
+    } else if (onClose) {
+      onClose();
+    }
+  };
+
+  const [dialogRef, dialogProps] = (0,external_wp_compose_namespaceObject.__experimentalUseDialog)({
+    focusOnMount,
+    __unstableOnClose: onDialogClose,
+    onClose: onDialogClose
+  });
+  const mergedRefs = (0,external_wp_compose_namespaceObject.useMergeRefs)([containerRef, dialogRef, ref]);
+  /** @type {false | string} */
+
+  const animateClassName = Boolean(animate && animateOrigin) && getAnimateClassName({
+    type: 'appear',
+    origin: animateOrigin
+  }); // Disable reason: We care to capture the _bubbled_ events from inputs
+  // within popover as inferring close intent.
+
+  let content = // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions
+  // eslint-disable-next-line jsx-a11y/no-static-element-interactions
+  (0,external_wp_element_namespaceObject.createElement)("div", extends_extends({
+    className: classnames_default()('components-popover', className, animateClassName, {
+      'is-expanded': isExpanded,
+      'is-without-arrow': noArrow,
+      'is-alternate': isAlternate
+    })
+  }, contentProps, {
+    ref: mergedRefs
+  }, dialogProps, {
+    tabIndex: "-1"
+  }), isExpanded && (0,external_wp_element_namespaceObject.createElement)(ScrollLock, null), isExpanded && (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: "components-popover__header"
+  }, (0,external_wp_element_namespaceObject.createElement)("span", {
+    className: "components-popover__header-title"
+  }, headerTitle), (0,external_wp_element_namespaceObject.createElement)(build_module_button, {
+    className: "components-popover__close",
+    icon: library_close,
+    onClick: onClose
+  })), (0,external_wp_element_namespaceObject.createElement)("div", {
+    ref: contentRef,
+    className: "components-popover__content"
+  }, (0,external_wp_element_namespaceObject.createElement)("div", {
+    style: {
+      position: 'relative'
+    }
+  }, containerResizeListener, children)));
+
+  if (slot.ref) {
+    content = (0,external_wp_element_namespaceObject.createElement)(slot_fill_Fill, {
+      name: slotName
+    }, content);
+  }
+
+  if (anchorRef || anchorRect) {
+    return content;
+  }
+
+  return (0,external_wp_element_namespaceObject.createElement)("span", {
+    ref: anchorRefFallback
+  }, content);
+};
+
+const PopoverContainer = (0,external_wp_element_namespaceObject.forwardRef)(Popover);
+
+function PopoverSlot(_ref2, ref) {
+  let {
+    name = SLOT_NAME
+  } = _ref2;
+  return (0,external_wp_element_namespaceObject.createElement)(slot_fill_Slot, {
+    bubblesVirtually: true,
+    name: name,
+    className: "popover-slot",
+    ref: ref
+  });
+}
+
+PopoverContainer.Slot = (0,external_wp_element_namespaceObject.forwardRef)(PopoverSlot);
+PopoverContainer.__unstableSlotNameProvider = slotNameContext.Provider;
+/* harmony default export */ var popover = (PopoverContainer);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/shortcut/index.js
+
+
+/**
+ * External dependencies
+ */
+
+/** @typedef {string | { display: string, ariaLabel: string }} Shortcut */
+
+/**
+ * @typedef Props
+ * @property {Shortcut} shortcut    Shortcut configuration
+ * @property {string}   [className] Classname
+ */
+
+/**
+ * @param {Props} props Props
+ * @return {JSX.Element | null} Element
+ */
+
+function Shortcut(_ref) {
+  let {
+    shortcut,
+    className
+  } = _ref;
+
+  if (!shortcut) {
+    return null;
+  }
+
+  let displayText;
+  let ariaLabel;
+
+  if ((0,external_lodash_namespaceObject.isString)(shortcut)) {
+    displayText = shortcut;
+  }
+
+  if ((0,external_lodash_namespaceObject.isObject)(shortcut)) {
+    displayText = shortcut.display;
+    ariaLabel = shortcut.ariaLabel;
+  }
+
+  return (0,external_wp_element_namespaceObject.createElement)("span", {
+    className: className,
+    "aria-label": ariaLabel
+  }, displayText);
+}
+
+/* harmony default export */ var build_module_shortcut = (Shortcut);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/tooltip/index.js
+
+// @ts-nocheck
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+/**
+ * Time over children to wait before showing tooltip
+ *
+ * @type {number}
+ */
+
+const TOOLTIP_DELAY = 700;
+const eventCatcher = (0,external_wp_element_namespaceObject.createElement)("div", {
+  className: "event-catcher"
+});
+
+const getDisabledElement = _ref => {
+  let {
+    eventHandlers,
+    child,
+    childrenWithPopover
+  } = _ref;
+  return (0,external_wp_element_namespaceObject.cloneElement)((0,external_wp_element_namespaceObject.createElement)("span", {
+    className: "disabled-element-wrapper"
+  }, (0,external_wp_element_namespaceObject.cloneElement)(eventCatcher, eventHandlers), (0,external_wp_element_namespaceObject.cloneElement)(child, {
+    children: childrenWithPopover
+  })), eventHandlers);
+};
+
+const getRegularElement = _ref2 => {
+  let {
+    child,
+    eventHandlers,
+    childrenWithPopover
+  } = _ref2;
+  return (0,external_wp_element_namespaceObject.cloneElement)(child, { ...eventHandlers,
+    children: childrenWithPopover
+  });
+};
+
+const addPopoverToGrandchildren = _ref3 => {
+  let {
+    grandchildren,
+    isOver,
+    position,
+    text,
+    shortcut
+  } = _ref3;
+  return (0,external_wp_element_namespaceObject.concatChildren)(grandchildren, isOver && (0,external_wp_element_namespaceObject.createElement)(popover, {
+    focusOnMount: false,
+    position: position,
+    className: "components-tooltip",
+    "aria-hidden": "true",
+    animate: false,
+    noArrow: true
+  }, text, (0,external_wp_element_namespaceObject.createElement)(build_module_shortcut, {
+    className: "components-tooltip__shortcut",
+    shortcut: shortcut
+  })));
+};
+
+const emitToChild = (children, eventName, event) => {
+  if (external_wp_element_namespaceObject.Children.count(children) !== 1) {
+    return;
+  }
+
+  const child = external_wp_element_namespaceObject.Children.only(children); // If the underlying element is disabled, do not emit the event.
+
+  if (child.props.disabled) {
+    return;
+  }
+
+  if (typeof child.props[eventName] === 'function') {
+    child.props[eventName](event);
+  }
+};
+
+function Tooltip(props) {
+  const {
+    children,
+    position,
+    text,
+    shortcut,
+    delay = TOOLTIP_DELAY
+  } = props;
+  /**
+   * Whether a mouse is currently pressed, used in determining whether
+   * to handle a focus event as displaying the tooltip immediately.
+   *
+   * @type {boolean}
+   */
+
+  const [isMouseDown, setIsMouseDown] = (0,external_wp_element_namespaceObject.useState)(false);
+  const [isOver, setIsOver] = (0,external_wp_element_namespaceObject.useState)(false);
+  const delayedSetIsOver = (0,external_wp_compose_namespaceObject.useDebounce)(setIsOver, delay);
+
+  const createMouseDown = event => {
+    // Preserve original child callback behavior.
+    emitToChild(children, 'onMouseDown', event); // On mouse down, the next `mouseup` should revert the value of the
+    // instance property and remove its own event handler. The bind is
+    // made on the document since the `mouseup` might not occur within
+    // the bounds of the element.
+
+    document.addEventListener('mouseup', cancelIsMouseDown);
+    setIsMouseDown(true);
+  };
+
+  const createMouseUp = event => {
+    emitToChild(children, 'onMouseUp', event);
+    document.removeEventListener('mouseup', cancelIsMouseDown);
+    setIsMouseDown(false);
+  };
+
+  const createMouseEvent = type => {
+    if (type === 'mouseUp') return createMouseUp;
+    if (type === 'mouseDown') return createMouseDown;
+  };
+  /**
+   * Prebound `isInMouseDown` handler, created as a constant reference to
+   * assure ability to remove in component unmount.
+   *
+   * @type {Function}
+   */
+
+
+  const cancelIsMouseDown = createMouseEvent('mouseUp');
+
+  const createToggleIsOver = (eventName, isDelayed) => {
+    return event => {
+      // Preserve original child callback behavior.
+      emitToChild(children, eventName, event); // Mouse events behave unreliably in React for disabled elements,
+      // firing on mouseenter but not mouseleave.  Further, the default
+      // behavior for disabled elements in some browsers is to ignore
+      // mouse events. Don't bother trying to to handle them.
+      //
+      // See: https://github.com/facebook/react/issues/4251
+
+      if (event.currentTarget.disabled) {
+        return;
+      } // A focus event will occur as a result of a mouse click, but it
+      // should be disambiguated between interacting with the button and
+      // using an explicit focus shift as a cue to display the tooltip.
+
+
+      if ('focus' === event.type && isMouseDown) {
+        return;
+      } // Needed in case unsetting is over while delayed set pending, i.e.
+      // quickly blur/mouseleave before delayedSetIsOver is called.
+
+
+      delayedSetIsOver.cancel();
+
+      const _isOver = (0,external_lodash_namespaceObject.includes)(['focus', 'mouseenter'], event.type);
+
+      if (_isOver === isOver) {
+        return;
+      }
+
+      if (isDelayed) {
+        delayedSetIsOver(_isOver);
+      } else {
+        setIsOver(_isOver);
+      }
+    };
+  };
+
+  const clearOnUnmount = () => {
+    delayedSetIsOver.cancel();
+    document.removeEventListener('mouseup', cancelIsMouseDown);
+  };
+
+  (0,external_wp_element_namespaceObject.useEffect)(() => clearOnUnmount, []);
+
+  if (external_wp_element_namespaceObject.Children.count(children) !== 1) {
+    if (false) {}
+
+    return children;
+  }
+
+  const eventHandlers = {
+    onMouseEnter: createToggleIsOver('onMouseEnter', true),
+    onMouseLeave: createToggleIsOver('onMouseLeave'),
+    onClick: createToggleIsOver('onClick'),
+    onFocus: createToggleIsOver('onFocus'),
+    onBlur: createToggleIsOver('onBlur'),
+    onMouseDown: createMouseEvent('mouseDown')
+  };
+  const child = external_wp_element_namespaceObject.Children.only(children);
+  const {
+    children: grandchildren,
+    disabled
+  } = child.props;
+  const getElementWithPopover = disabled ? getDisabledElement : getRegularElement;
+  const popoverData = {
+    isOver,
+    position,
+    text,
+    shortcut
+  };
+  const childrenWithPopover = addPopoverToGrandchildren({
+    grandchildren,
+    ...popoverData
+  });
+  return getElementWithPopover({
+    child,
+    eventHandlers,
+    childrenWithPopover
+  });
+}
+
+/* harmony default export */ var tooltip = (Tooltip);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/alignment-matrix-control/utils.js
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+const GRID = [['top left', 'top center', 'top right'], ['center left', 'center center', 'center right'], ['bottom left', 'bottom center', 'bottom right']]; // Stored as map as i18n __() only accepts strings (not variables)
+
+const ALIGNMENT_LABEL = {
+  'top left': (0,external_wp_i18n_namespaceObject.__)('Top Left'),
+  'top center': (0,external_wp_i18n_namespaceObject.__)('Top Center'),
+  'top right': (0,external_wp_i18n_namespaceObject.__)('Top Right'),
+  'center left': (0,external_wp_i18n_namespaceObject.__)('Center Left'),
+  'center center': (0,external_wp_i18n_namespaceObject.__)('Center Center'),
+  'center right': (0,external_wp_i18n_namespaceObject.__)('Center Right'),
+  'bottom left': (0,external_wp_i18n_namespaceObject.__)('Bottom Left'),
+  'bottom center': (0,external_wp_i18n_namespaceObject.__)('Bottom Center'),
+  'bottom right': (0,external_wp_i18n_namespaceObject.__)('Bottom Right')
+}; // Transforms GRID into a flat Array of values.
+
+const ALIGNMENTS = (0,external_lodash_namespaceObject.flattenDeep)(GRID);
+/**
+ * Parses and transforms an incoming value to better match the alignment values
+ *
+ * @param {string} value An alignment value to parse.
+ *
+ * @return {string} The parsed value.
+ */
+
+function transformValue(value) {
+  const nextValue = value === 'center' ? 'center center' : value;
+  return nextValue.replace('-', ' ');
+}
+/**
+ * Creates an item ID based on a prefix ID and an alignment value.
+ *
+ * @param {string} prefixId An ID to prefix.
+ * @param {string} value    An alignment value.
+ *
+ * @return {string} The item id.
+ */
+
+function getItemId(prefixId, value) {
+  const valueId = transformValue(value).replace(' ', '-');
+  return `${prefixId}-${valueId}`;
+}
+/**
+ * Retrieves the alignment index from a value.
+ *
+ * @param {string} alignment Value to check.
+ *
+ * @return {number} The index of a matching alignment.
+ */
+
+function getAlignmentIndex() {
+  let alignment = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'center';
+  const item = transformValue(alignment).replace('-', ' ');
+  const index = ALIGNMENTS.indexOf(item);
+  return index > -1 ? index : undefined;
+}
+
+// EXTERNAL MODULE: ./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js
+var hoist_non_react_statics_cjs = __webpack_require__(1281);
+;// CONCATENATED MODULE: ./node_modules/@emotion/react/dist/emotion-react.browser.esm.js
+
+
+
+
+
+
+
+
+
+
+
+
+var pkg = {
+	name: "@emotion/react",
+	version: "11.10.0",
+	main: "dist/emotion-react.cjs.js",
+	module: "dist/emotion-react.esm.js",
+	browser: {
+		"./dist/emotion-react.esm.js": "./dist/emotion-react.browser.esm.js"
+	},
+	exports: {
+		".": {
+			module: {
+				worker: "./dist/emotion-react.worker.esm.js",
+				browser: "./dist/emotion-react.browser.esm.js",
+				"default": "./dist/emotion-react.esm.js"
+			},
+			"default": "./dist/emotion-react.cjs.js"
+		},
+		"./jsx-runtime": {
+			module: {
+				worker: "./jsx-runtime/dist/emotion-react-jsx-runtime.worker.esm.js",
+				browser: "./jsx-runtime/dist/emotion-react-jsx-runtime.browser.esm.js",
+				"default": "./jsx-runtime/dist/emotion-react-jsx-runtime.esm.js"
+			},
+			"default": "./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.js"
+		},
+		"./_isolated-hnrs": {
+			module: {
+				worker: "./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.worker.esm.js",
+				browser: "./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js",
+				"default": "./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.esm.js"
+			},
+			"default": "./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.js"
+		},
+		"./jsx-dev-runtime": {
+			module: {
+				worker: "./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.worker.esm.js",
+				browser: "./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.browser.esm.js",
+				"default": "./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.esm.js"
+			},
+			"default": "./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.js"
+		},
+		"./package.json": "./package.json",
+		"./types/css-prop": "./types/css-prop.d.ts",
+		"./macro": "./macro.js"
+	},
+	types: "types/index.d.ts",
+	files: [
+		"src",
+		"dist",
+		"jsx-runtime",
+		"jsx-dev-runtime",
+		"_isolated-hnrs",
+		"types/*.d.ts",
+		"macro.js",
+		"macro.d.ts",
+		"macro.js.flow"
+	],
+	sideEffects: false,
+	author: "Emotion Contributors",
+	license: "MIT",
+	scripts: {
+		"test:typescript": "dtslint types"
+	},
+	dependencies: {
+		"@babel/runtime": "^7.18.3",
+		"@emotion/babel-plugin": "^11.10.0",
+		"@emotion/cache": "^11.10.0",
+		"@emotion/serialize": "^1.1.0",
+		"@emotion/utils": "^1.2.0",
+		"@emotion/weak-memoize": "^0.3.0",
+		"hoist-non-react-statics": "^3.3.1"
+	},
+	peerDependencies: {
+		"@babel/core": "^7.0.0",
+		react: ">=16.8.0"
+	},
+	peerDependenciesMeta: {
+		"@babel/core": {
+			optional: true
+		},
+		"@types/react": {
+			optional: true
+		}
+	},
+	devDependencies: {
+		"@babel/core": "^7.18.5",
+		"@definitelytyped/dtslint": "0.0.112",
+		"@emotion/css": "11.10.0",
+		"@emotion/css-prettifier": "1.1.0",
+		"@emotion/server": "11.10.0",
+		"@emotion/styled": "11.10.0",
+		"html-tag-names": "^1.1.2",
+		react: "16.14.0",
+		"svg-tag-names": "^1.1.1",
+		typescript: "^4.5.5"
+	},
+	repository: "https://github.com/emotion-js/emotion/tree/main/packages/react",
+	publishConfig: {
+		access: "public"
+	},
+	"umd:main": "dist/emotion-react.umd.min.js",
+	preconstruct: {
+		entrypoints: [
+			"./index.js",
+			"./jsx-runtime.js",
+			"./jsx-dev-runtime.js",
+			"./_isolated-hnrs.js"
+		],
+		umdName: "emotionReact",
+		exports: {
+			envConditions: [
+				"browser",
+				"worker"
+			],
+			extra: {
+				"./types/css-prop": "./types/css-prop.d.ts",
+				"./macro": "./macro.js"
+			}
+		}
+	}
+};
+
+var jsx = function jsx(type, props) {
+  var args = arguments;
+
+  if (props == null || !hasOwnProperty.call(props, 'css')) {
+    // $FlowFixMe
+    return createElement.apply(undefined, args);
+  }
+
+  var argsLength = args.length;
+  var createElementArgArray = new Array(argsLength);
+  createElementArgArray[0] = Emotion;
+  createElementArgArray[1] = createEmotionProps(type, props);
+
+  for (var i = 2; i < argsLength; i++) {
+    createElementArgArray[i] = args[i];
+  } // $FlowFixMe
+
+
+  return createElement.apply(null, createElementArgArray);
+};
+
+var emotion_react_browser_esm_useInsertionEffect = external_React_['useInsertion' + 'Effect'] ? external_React_['useInsertion' + 'Effect'] : external_React_.useLayoutEffect;
+var warnedAboutCssPropForGlobal = false; // maintain place over rerenders.
+// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild
+// initial client-side render from SSR, use place of hydrating tag
+
+var Global = /* #__PURE__ */(/* unused pure expression or super */ null && (withEmotionCache(function (props, cache) {
+  if (false) {}
+
+  var styles = props.styles;
+  var serialized = serializeStyles([styles], undefined, useContext(ThemeContext));
+  // but it is based on a constant that will never change at runtime
+  // it's effectively like having two implementations and switching them out
+  // so it's not actually breaking anything
+
+
+  var sheetRef = useRef();
+  emotion_react_browser_esm_useInsertionEffect(function () {
+    var key = cache.key + "-global"; // use case of https://github.com/emotion-js/emotion/issues/2675
+
+    var sheet = new cache.sheet.constructor({
+      key: key,
+      nonce: cache.sheet.nonce,
+      container: cache.sheet.container,
+      speedy: cache.sheet.isSpeedy
+    });
+    var rehydrating = false; // $FlowFixMe
+
+    var node = document.querySelector("style[data-emotion=\"" + key + " " + serialized.name + "\"]");
+
+    if (cache.sheet.tags.length) {
+      sheet.before = cache.sheet.tags[0];
+    }
+
+    if (node !== null) {
+      rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other <Global/>s
+
+      node.setAttribute('data-emotion', key);
+      sheet.hydrate([node]);
+    }
+
+    sheetRef.current = [sheet, rehydrating];
+    return function () {
+      sheet.flush();
+    };
+  }, [cache]);
+  emotion_react_browser_esm_useInsertionEffect(function () {
+    var sheetRefCurrent = sheetRef.current;
+    var sheet = sheetRefCurrent[0],
+        rehydrating = sheetRefCurrent[1];
+
+    if (rehydrating) {
+      sheetRefCurrent[1] = false;
+      return;
+    }
+
+    if (serialized.next !== undefined) {
+      // insert keyframes
+      insertStyles(cache, serialized.next, true);
+    }
+
+    if (sheet.tags.length) {
+      // if this doesn't exist then it will be null so the style element will be appended
+      var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;
+      sheet.before = element;
+      sheet.flush();
+    }
+
+    cache.insert("", serialized, sheet, false);
+  }, [cache, serialized.name]);
+  return null;
+})));
+
+if (false) {}
+
+function emotion_react_browser_esm_css() {
+  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
+    args[_key] = arguments[_key];
+  }
+
+  return emotion_serialize_browser_esm_serializeStyles(args);
+}
+
+var emotion_react_browser_esm_keyframes = function keyframes() {
+  var insertable = emotion_react_browser_esm_css.apply(void 0, arguments);
+  var name = "animation-" + insertable.name; // $FlowFixMe
+
+  return {
+    name: name,
+    styles: "@keyframes " + name + "{" + insertable.styles + "}",
+    anim: 1,
+    toString: function toString() {
+      return "_EMO_" + this.name + "_" + this.styles + "_EMO_";
+    }
+  };
+};
+
+var emotion_react_browser_esm_classnames = function classnames(args) {
+  var len = args.length;
+  var i = 0;
+  var cls = '';
+
+  for (; i < len; i++) {
+    var arg = args[i];
+    if (arg == null) continue;
+    var toAdd = void 0;
+
+    switch (typeof arg) {
+      case 'boolean':
+        break;
+
+      case 'object':
+        {
+          if (Array.isArray(arg)) {
+            toAdd = classnames(arg);
+          } else {
+            if (false) {}
+
+            toAdd = '';
+
+            for (var k in arg) {
+              if (arg[k] && k) {
+                toAdd && (toAdd += ' ');
+                toAdd += k;
+              }
+            }
+          }
+
+          break;
+        }
+
+      default:
+        {
+          toAdd = arg;
+        }
+    }
+
+    if (toAdd) {
+      cls && (cls += ' ');
+      cls += toAdd;
+    }
+  }
+
+  return cls;
+};
+
+function emotion_react_browser_esm_merge(registered, css, className) {
+  var registeredStyles = [];
+  var rawClassName = getRegisteredStyles(registered, registeredStyles, className);
+
+  if (registeredStyles.length < 2) {
+    return className;
+  }
+
+  return rawClassName + css(registeredStyles);
+}
+
+var emotion_react_browser_esm_Insertion = function Insertion(_ref) {
+  var cache = _ref.cache,
+      serializedArr = _ref.serializedArr;
+  var rules = useInsertionEffectMaybe(function () {
+
+    for (var i = 0; i < serializedArr.length; i++) {
+      var res = insertStyles(cache, serializedArr[i], false);
+    }
+  });
+
+  return null;
+};
+
+var ClassNames = /* #__PURE__ */(/* unused pure expression or super */ null && (withEmotionCache(function (props, cache) {
+  var hasRendered = false;
+  var serializedArr = [];
+
+  var css = function css() {
+    if (hasRendered && "production" !== 'production') {}
+
+    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
+      args[_key] = arguments[_key];
+    }
+
+    var serialized = serializeStyles(args, cache.registered);
+    serializedArr.push(serialized); // registration has to happen here as the result of this might get consumed by `cx`
+
+    registerStyles(cache, serialized, false);
+    return cache.key + "-" + serialized.name;
+  };
+
+  var cx = function cx() {
+    if (hasRendered && "production" !== 'production') {}
+
+    for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
+      args[_key2] = arguments[_key2];
+    }
+
+    return emotion_react_browser_esm_merge(cache.registered, css, emotion_react_browser_esm_classnames(args));
+  };
+
+  var content = {
+    css: css,
+    cx: cx,
+    theme: useContext(ThemeContext)
+  };
+  var ele = props.children(content);
+  hasRendered = true;
+  return /*#__PURE__*/createElement(Fragment, null, /*#__PURE__*/createElement(emotion_react_browser_esm_Insertion, {
+    cache: cache,
+    serializedArr: serializedArr
+  }), ele);
+})));
+
+if (false) {}
+
+if (false) { var globalKey, globalContext, isJest, emotion_react_browser_esm_isBrowser; }
+
+
+
+;// CONCATENATED MODULE: ./node_modules/colord/index.mjs
+var r={grad:.9,turn:360,rad:360/(2*Math.PI)},t=function(r){return"string"==typeof r?r.length>0:"number"==typeof r},colord_n=function(r,t,n){return void 0===t&&(t=0),void 0===n&&(n=Math.pow(10,t)),Math.round(n*r)/n+0},colord_e=function(r,t,n){return void 0===t&&(t=0),void 0===n&&(n=1),r>n?n:r>t?r:t},u=function(r){return(r=isFinite(r)?r%360:0)>0?r:r+360},colord_a=function(r){return{r:colord_e(r.r,0,255),g:colord_e(r.g,0,255),b:colord_e(r.b,0,255),a:colord_e(r.a)}},colord_o=function(r){return{r:colord_n(r.r),g:colord_n(r.g),b:colord_n(r.b),a:colord_n(r.a,3)}},colord_i=/^#([0-9a-f]{3,8})$/i,s=function(r){var t=r.toString(16);return t.length<2?"0"+t:t},h=function(r){var t=r.r,n=r.g,e=r.b,u=r.a,a=Math.max(t,n,e),o=a-Math.min(t,n,e),i=o?a===t?(n-e)/o:a===n?2+(e-t)/o:4+(t-n)/o:0;return{h:60*(i<0?i+6:i),s:a?o/a*100:0,v:a/255*100,a:u}},b=function(r){var t=r.h,n=r.s,e=r.v,u=r.a;t=t/360*6,n/=100,e/=100;var a=Math.floor(t),o=e*(1-n),i=e*(1-(t-a)*n),s=e*(1-(1-t+a)*n),h=a%6;return{r:255*[e,i,o,o,s,e][h],g:255*[s,e,e,i,o,o][h],b:255*[o,o,s,e,e,i][h],a:u}},g=function(r){return{h:u(r.h),s:colord_e(r.s,0,100),l:colord_e(r.l,0,100),a:colord_e(r.a)}},d=function(r){return{h:colord_n(r.h),s:colord_n(r.s),l:colord_n(r.l),a:colord_n(r.a,3)}},f=function(r){return b((n=(t=r).s,{h:t.h,s:(n*=((e=t.l)<50?e:100-e)/100)>0?2*n/(e+n)*100:0,v:e+n,a:t.a}));var t,n,e},c=function(r){return{h:(t=h(r)).h,s:(u=(200-(n=t.s))*(e=t.v)/100)>0&&u<200?n*e/100/(u<=100?u:200-u)*100:0,l:u/2,a:t.a};var t,n,e,u},l=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,p=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,v=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,m=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,y={string:[[function(r){var t=colord_i.exec(r);return t?(r=t[1]).length<=4?{r:parseInt(r[0]+r[0],16),g:parseInt(r[1]+r[1],16),b:parseInt(r[2]+r[2],16),a:4===r.length?colord_n(parseInt(r[3]+r[3],16)/255,2):1}:6===r.length||8===r.length?{r:parseInt(r.substr(0,2),16),g:parseInt(r.substr(2,2),16),b:parseInt(r.substr(4,2),16),a:8===r.length?colord_n(parseInt(r.substr(6,2),16)/255,2):1}:null:null},"hex"],[function(r){var t=v.exec(r)||m.exec(r);return t?t[2]!==t[4]||t[4]!==t[6]?null:colord_a({r:Number(t[1])/(t[2]?100/255:1),g:Number(t[3])/(t[4]?100/255:1),b:Number(t[5])/(t[6]?100/255:1),a:void 0===t[7]?1:Number(t[7])/(t[8]?100:1)}):null},"rgb"],[function(t){var n=l.exec(t)||p.exec(t);if(!n)return null;var e,u,a=g({h:(e=n[1],u=n[2],void 0===u&&(u="deg"),Number(e)*(r[u]||1)),s:Number(n[3]),l:Number(n[4]),a:void 0===n[5]?1:Number(n[5])/(n[6]?100:1)});return f(a)},"hsl"]],object:[[function(r){var n=r.r,e=r.g,u=r.b,o=r.a,i=void 0===o?1:o;return t(n)&&t(e)&&t(u)?colord_a({r:Number(n),g:Number(e),b:Number(u),a:Number(i)}):null},"rgb"],[function(r){var n=r.h,e=r.s,u=r.l,a=r.a,o=void 0===a?1:a;if(!t(n)||!t(e)||!t(u))return null;var i=g({h:Number(n),s:Number(e),l:Number(u),a:Number(o)});return f(i)},"hsl"],[function(r){var n=r.h,a=r.s,o=r.v,i=r.a,s=void 0===i?1:i;if(!t(n)||!t(a)||!t(o))return null;var h=function(r){return{h:u(r.h),s:colord_e(r.s,0,100),v:colord_e(r.v,0,100),a:colord_e(r.a)}}({h:Number(n),s:Number(a),v:Number(o),a:Number(s)});return b(h)},"hsv"]]},N=function(r,t){for(var n=0;n<t.length;n++){var e=t[n][0](r);if(e)return[e,t[n][1]]}return[null,void 0]},x=function(r){return"string"==typeof r?N(r.trim(),y.string):"object"==typeof r&&null!==r?N(r,y.object):[null,void 0]},I=function(r){return x(r)[1]},M=function(r,t){var n=c(r);return{h:n.h,s:colord_e(n.s+100*t,0,100),l:n.l,a:n.a}},H=function(r){return(299*r.r+587*r.g+114*r.b)/1e3/255},$=function(r,t){var n=c(r);return{h:n.h,s:n.s,l:colord_e(n.l+100*t,0,100),a:n.a}},j=function(){function r(r){this.parsed=x(r)[0],this.rgba=this.parsed||{r:0,g:0,b:0,a:1}}return r.prototype.isValid=function(){return null!==this.parsed},r.prototype.brightness=function(){return colord_n(H(this.rgba),2)},r.prototype.isDark=function(){return H(this.rgba)<.5},r.prototype.isLight=function(){return H(this.rgba)>=.5},r.prototype.toHex=function(){return r=colord_o(this.rgba),t=r.r,e=r.g,u=r.b,i=(a=r.a)<1?s(colord_n(255*a)):"","#"+s(t)+s(e)+s(u)+i;var r,t,e,u,a,i},r.prototype.toRgb=function(){return colord_o(this.rgba)},r.prototype.toRgbString=function(){return r=colord_o(this.rgba),t=r.r,n=r.g,e=r.b,(u=r.a)<1?"rgba("+t+", "+n+", "+e+", "+u+")":"rgb("+t+", "+n+", "+e+")";var r,t,n,e,u},r.prototype.toHsl=function(){return d(c(this.rgba))},r.prototype.toHslString=function(){return r=d(c(this.rgba)),t=r.h,n=r.s,e=r.l,(u=r.a)<1?"hsla("+t+", "+n+"%, "+e+"%, "+u+")":"hsl("+t+", "+n+"%, "+e+"%)";var r,t,n,e,u},r.prototype.toHsv=function(){return r=h(this.rgba),{h:colord_n(r.h),s:colord_n(r.s),v:colord_n(r.v),a:colord_n(r.a,3)};var r},r.prototype.invert=function(){return w({r:255-(r=this.rgba).r,g:255-r.g,b:255-r.b,a:r.a});var r},r.prototype.saturate=function(r){return void 0===r&&(r=.1),w(M(this.rgba,r))},r.prototype.desaturate=function(r){return void 0===r&&(r=.1),w(M(this.rgba,-r))},r.prototype.grayscale=function(){return w(M(this.rgba,-1))},r.prototype.lighten=function(r){return void 0===r&&(r=.1),w($(this.rgba,r))},r.prototype.darken=function(r){return void 0===r&&(r=.1),w($(this.rgba,-r))},r.prototype.rotate=function(r){return void 0===r&&(r=15),this.hue(this.hue()+r)},r.prototype.alpha=function(r){return"number"==typeof r?w({r:(t=this.rgba).r,g:t.g,b:t.b,a:r}):colord_n(this.rgba.a,3);var t},r.prototype.hue=function(r){var t=c(this.rgba);return"number"==typeof r?w({h:r,s:t.s,l:t.l,a:t.a}):colord_n(t.h)},r.prototype.isEqual=function(r){return this.toHex()===w(r).toHex()},r}(),w=function(r){return r instanceof j?r:new j(r)},S=[],k=function(r){r.forEach(function(r){S.indexOf(r)<0&&(r(j,y),S.push(r))})},E=function(){return new j({r:255*Math.random(),g:255*Math.random(),b:255*Math.random()})};
+
+;// CONCATENATED MODULE: ./node_modules/colord/plugins/names.mjs
+/* harmony default export */ function names(e,f){var a={white:"#ffffff",bisque:"#ffe4c4",blue:"#0000ff",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",antiquewhite:"#faebd7",aqua:"#00ffff",azure:"#f0ffff",whitesmoke:"#f5f5f5",papayawhip:"#ffefd5",plum:"#dda0dd",blanchedalmond:"#ffebcd",black:"#000000",gold:"#ffd700",goldenrod:"#daa520",gainsboro:"#dcdcdc",cornsilk:"#fff8dc",cornflowerblue:"#6495ed",burlywood:"#deb887",aquamarine:"#7fffd4",beige:"#f5f5dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkkhaki:"#bdb76b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",peachpuff:"#ffdab9",darkmagenta:"#8b008b",darkred:"#8b0000",darkorchid:"#9932cc",darkorange:"#ff8c00",darkslateblue:"#483d8b",gray:"#808080",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",deeppink:"#ff1493",deepskyblue:"#00bfff",wheat:"#f5deb3",firebrick:"#b22222",floralwhite:"#fffaf0",ghostwhite:"#f8f8ff",darkviolet:"#9400d3",magenta:"#ff00ff",green:"#008000",dodgerblue:"#1e90ff",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",blueviolet:"#8a2be2",forestgreen:"#228b22",lawngreen:"#7cfc00",indianred:"#cd5c5c",indigo:"#4b0082",fuchsia:"#ff00ff",brown:"#a52a2a",maroon:"#800000",mediumblue:"#0000cd",lightcoral:"#f08080",darkturquoise:"#00ced1",lightcyan:"#e0ffff",ivory:"#fffff0",lightyellow:"#ffffe0",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",linen:"#faf0e6",mediumaquamarine:"#66cdaa",lemonchiffon:"#fffacd",lime:"#00ff00",khaki:"#f0e68c",mediumseagreen:"#3cb371",limegreen:"#32cd32",mediumspringgreen:"#00fa9a",lightskyblue:"#87cefa",lightblue:"#add8e6",midnightblue:"#191970",lightpink:"#ffb6c1",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",mintcream:"#f5fffa",lightslategray:"#778899",lightslategrey:"#778899",navajowhite:"#ffdead",navy:"#000080",mediumvioletred:"#c71585",powderblue:"#b0e0e6",palegoldenrod:"#eee8aa",oldlace:"#fdf5e6",paleturquoise:"#afeeee",mediumturquoise:"#48d1cc",mediumorchid:"#ba55d3",rebeccapurple:"#663399",lightsteelblue:"#b0c4de",mediumslateblue:"#7b68ee",thistle:"#d8bfd8",tan:"#d2b48c",orchid:"#da70d6",mediumpurple:"#9370db",purple:"#800080",pink:"#ffc0cb",skyblue:"#87ceeb",springgreen:"#00ff7f",palegreen:"#98fb98",red:"#ff0000",yellow:"#ffff00",slateblue:"#6a5acd",lavenderblush:"#fff0f5",peru:"#cd853f",palevioletred:"#db7093",violet:"#ee82ee",teal:"#008080",slategray:"#708090",slategrey:"#708090",aliceblue:"#f0f8ff",darkseagreen:"#8fbc8f",darkolivegreen:"#556b2f",greenyellow:"#adff2f",seagreen:"#2e8b57",seashell:"#fff5ee",tomato:"#ff6347",silver:"#c0c0c0",sienna:"#a0522d",lavender:"#e6e6fa",lightgreen:"#90ee90",orange:"#ffa500",orangered:"#ff4500",steelblue:"#4682b4",royalblue:"#4169e1",turquoise:"#40e0d0",yellowgreen:"#9acd32",salmon:"#fa8072",saddlebrown:"#8b4513",sandybrown:"#f4a460",rosybrown:"#bc8f8f",darksalmon:"#e9967a",lightgoldenrodyellow:"#fafad2",snow:"#fffafa",lightgrey:"#d3d3d3",lightgray:"#d3d3d3",dimgray:"#696969",dimgrey:"#696969",olivedrab:"#6b8e23",olive:"#808000"},r={};for(var d in a)r[a[d]]=d;var l={};e.prototype.toName=function(f){if(!(this.rgba.a||this.rgba.r||this.rgba.g||this.rgba.b))return"transparent";var d,i,n=r[this.toHex()];if(n)return n;if(null==f?void 0:f.closest){var o=this.toRgb(),t=1/0,b="black";if(!l.length)for(var c in a)l[c]=new e(a[c]).toRgb();for(var g in a){var u=(d=o,i=l[g],Math.pow(d.r-i.r,2)+Math.pow(d.g-i.g,2)+Math.pow(d.b-i.b,2));u<t&&(t=u,b=g)}return b}};f.string.push([function(f){var r=f.toLowerCase(),d="transparent"===r?"#0000":a[r];return d?new e(d).toRgb():null},"name"])}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/colors.js
+/**
+ * External dependencies
+ */
+
+
+k([names]);
+/**
+ * Generating a CSS compliant rgba() color value.
+ *
+ * @param {string} hexValue The hex value to convert to rgba().
+ * @param {number} alpha    The alpha value for opacity.
+ * @return {string} The converted rgba() color value.
+ *
+ * @example
+ * rgba( '#000000', 0.5 )
+ * // rgba(0, 0, 0, 0.5)
+ */
+
+function rgba() {
+  let hexValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
+  let alpha = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
+  return w(hexValue).alpha(alpha).toRgbString();
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/colors-values.js
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+const BASE = {
+  black: '#000',
+  white: '#fff'
+};
+/**
+ * TODO: Continue to update values as "G2" design evolves.
+ *
+ * "G2" refers to the movement to advance the interface of the block editor.
+ * https://github.com/WordPress/gutenberg/issues/18667
+ */
+
+const G2 = {
+  blue: {
+    medium: {
+      focus: '#007cba',
+      focusDark: '#fff'
+    }
+  },
+  gray: {
+    900: '#1e1e1e',
+    700: '#757575',
+    // Meets 4.6:1 text contrast against white.
+    600: '#949494',
+    // Meets 3:1 UI or large text contrast against white.
+    400: '#ccc',
+    300: '#ddd',
+    // Used for most borders.
+    200: '#e0e0e0',
+    // Used sparingly for light borders.
+    100: '#f0f0f0' // Used for light gray backgrounds.
+
+  },
+  darkGray: {
+    primary: '#1e1e1e',
+    heading: '#050505'
+  },
+  mediumGray: {
+    text: '#757575'
+  },
+  lightGray: {
+    ui: '#949494',
+    secondary: '#ccc',
+    tertiary: '#e7e8e9'
+  }
+};
+const DARK_GRAY = {
+  900: '#191e23',
+  800: '#23282d',
+  700: '#32373c',
+  600: '#40464d',
+  500: '#555d66',
+  // Use this most of the time for dark items.
+  400: '#606a73',
+  300: '#6c7781',
+  // Lightest gray that can be used for AA text contrast.
+  200: '#7e8993',
+  150: '#8d96a0',
+  // Lightest gray that can be used for AA non-text contrast.
+  100: '#8f98a1',
+  placeholder: rgba(G2.gray[900], 0.62)
+};
+const DARK_OPACITY = {
+  900: rgba('#000510', 0.9),
+  800: rgba('#00000a', 0.85),
+  700: rgba('#06060b', 0.8),
+  600: rgba('#000913', 0.75),
+  500: rgba('#0a1829', 0.7),
+  400: rgba('#0a1829', 0.65),
+  300: rgba('#0e1c2e', 0.62),
+  200: rgba('#162435', 0.55),
+  100: rgba('#223443', 0.5),
+  backgroundFill: rgba(DARK_GRAY[700], 0.7)
+};
+const DARK_OPACITY_LIGHT = {
+  900: rgba('#304455', 0.45),
+  800: rgba('#425863', 0.4),
+  700: rgba('#667886', 0.35),
+  600: rgba('#7b86a2', 0.3),
+  500: rgba('#9197a2', 0.25),
+  400: rgba('#95959c', 0.2),
+  300: rgba('#829493', 0.15),
+  200: rgba('#8b8b96', 0.1),
+  100: rgba('#747474', 0.05)
+};
+const LIGHT_GRAY = {
+  900: '#a2aab2',
+  800: '#b5bcc2',
+  700: '#ccd0d4',
+  600: '#d7dade',
+  500: '#e2e4e7',
+  // Good for "grayed" items and borders.
+  400: '#e8eaeb',
+  // Good for "readonly" input fields and special text selection.
+  300: '#edeff0',
+  200: '#f3f4f5',
+  100: '#f8f9f9',
+  placeholder: rgba(BASE.white, 0.65)
+};
+const LIGHT_OPACITY_LIGHT = {
+  900: rgba(BASE.white, 0.5),
+  800: rgba(BASE.white, 0.45),
+  700: rgba(BASE.white, 0.4),
+  600: rgba(BASE.white, 0.35),
+  500: rgba(BASE.white, 0.3),
+  400: rgba(BASE.white, 0.25),
+  300: rgba(BASE.white, 0.2),
+  200: rgba(BASE.white, 0.15),
+  100: rgba(BASE.white, 0.1),
+  backgroundFill: rgba(LIGHT_GRAY[300], 0.8)
+}; // Additional colors.
+// Some are from https://make.wordpress.org/design/handbook/foundations/colors/.
+
+const BLUE = {
+  wordpress: {
+    700: '#00669b'
+  },
+  dark: {
+    900: '#0071a1'
+  },
+  medium: {
+    900: '#006589',
+    800: '#00739c',
+    700: '#007fac',
+    600: '#008dbe',
+    500: '#00a0d2',
+    400: '#33b3db',
+    300: '#66c6e4',
+    200: '#bfe7f3',
+    100: '#e5f5fa',
+    highlight: '#b3e7fe',
+    focus: '#007cba'
+  }
+};
+const ALERT = {
+  yellow: '#f0b849',
+  red: '#d94f4f',
+  green: '#4ab866'
+};
+const ADMIN = {
+  theme: `var( --wp-admin-theme-color, ${BLUE.wordpress[700]})`,
+  themeDark10: `var( --wp-admin-theme-color-darker-10, ${BLUE.medium.focus})`
+}; // Namespaced values for raw colors hex codes.
+
+const UI = {
+  theme: ADMIN.theme,
+  background: BASE.white,
+  backgroundDisabled: LIGHT_GRAY[200],
+  border: G2.gray[700],
+  borderHover: G2.gray[700],
+  borderFocus: ADMIN.themeDark10,
+  borderDisabled: G2.gray[400],
+  borderLight: G2.gray[300],
+  label: DARK_GRAY[500],
+  textDisabled: DARK_GRAY[150],
+  textDark: BASE.white,
+  textLight: BASE.black
+}; // Using Object.assign instead of { ...spread } syntax helps TypeScript
+// to extract the correct type defs here.
+
+const COLORS = Object.assign({}, BASE, {
+  darkGray: (0,external_lodash_namespaceObject.merge)({}, DARK_GRAY, G2.darkGray),
+  darkOpacity: DARK_OPACITY,
+  darkOpacityLight: DARK_OPACITY_LIGHT,
+  mediumGray: G2.mediumGray,
+  gray: G2.gray,
+  lightGray: (0,external_lodash_namespaceObject.merge)({}, LIGHT_GRAY, G2.lightGray),
+  lightGrayLight: LIGHT_OPACITY_LIGHT,
+  blue: (0,external_lodash_namespaceObject.merge)({}, BLUE, G2.blue),
+  alert: ALERT,
+  admin: ADMIN,
+  ui: UI
+});
+/* harmony default export */ var colors_values = ((/* unused pure expression or super */ null && (COLORS)));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/reduce-motion.js
+/**
+ * Allows users to opt-out of animations via OS-level preferences.
+ *
+ * @param {'transition' | 'animation' | string} [prop='transition'] CSS Property name
+ * @return {string} Generated CSS code for the reduced style
+ */
+function reduceMotion() {
+  let prop = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'transition';
+  let style;
+
+  switch (prop) {
+    case 'transition':
+      style = 'transition-duration: 0ms;';
+      break;
+
+    case 'animation':
+      style = 'animation-duration: 1ms;';
+      break;
+
+    default:
+      style = `
+				animation-duration: 1ms;
+				transition-duration: 0ms;
+			`;
+  }
+
+  return `
+		@media ( prefers-reduced-motion: reduce ) {
+			${style};
+		}
+	`;
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/alignment-matrix-control/styles/alignment-matrix-control-styles.js
+
+
+function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+var _ref =  true ? {
+  name: "lp9rn7",
+  styles: "border-radius:2px;box-sizing:border-box;display:grid;grid-template-columns:repeat( 3, 1fr );outline:none"
+} : 0;
+
+const rootBase = () => {
+  return _ref;
+};
+
+const rootSize = _ref2 => {
+  let {
+    size = 92
+  } = _ref2;
+  return /*#__PURE__*/emotion_react_browser_esm_css("grid-template-rows:repeat( 3, calc( ", size, "px / 3 ) );width:", size, "px;" + ( true ? "" : 0),  true ? "" : 0);
+};
+
+const Root = emotion_styled_base_browser_esm("div",  true ? {
+  target: "e1od1u4s3"
+} : 0)(rootBase, ";border:1px solid transparent;cursor:pointer;grid-template-columns:auto;", rootSize, ";" + ( true ? "" : 0));
+const Row = emotion_styled_base_browser_esm("div",  true ? {
+  target: "e1od1u4s2"
+} : 0)( true ? {
+  name: "1x5gbbj",
+  styles: "box-sizing:border-box;display:grid;grid-template-columns:repeat( 3, 1fr )"
+} : 0);
+
+const pointActive = _ref3 => {
+  let {
+    isActive
+  } = _ref3;
+  const boxShadow = isActive ? `0 0 0 2px ${COLORS.black}` : null;
+  const pointColor = isActive ? COLORS.black : COLORS.lightGray[800];
+  const pointColorHover = isActive ? COLORS.black : COLORS.blue.medium.focus;
+  return /*#__PURE__*/emotion_react_browser_esm_css("box-shadow:", boxShadow, ";color:", pointColor, ";*:hover>&{color:", pointColorHover, ";}" + ( true ? "" : 0),  true ? "" : 0);
+};
+
+const pointBase = props => {
+  return /*#__PURE__*/emotion_react_browser_esm_css("background:currentColor;box-sizing:border-box;display:grid;margin:auto;transition:all 120ms linear;", reduceMotion('transition'), " ", pointActive(props), ";" + ( true ? "" : 0),  true ? "" : 0);
+};
+const Point = emotion_styled_base_browser_esm("span",  true ? {
+  target: "e1od1u4s1"
+} : 0)("height:6px;width:6px;", pointBase, ";" + ( true ? "" : 0));
+const Cell = emotion_styled_base_browser_esm("span",  true ? {
+  target: "e1od1u4s0"
+} : 0)( true ? {
+  name: "rjf3ub",
+  styles: "appearance:none;border:none;box-sizing:border-box;margin:0;display:flex;position:relative;outline:none;align-items:center;justify-content:center;padding:0"
+} : 0);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/alignment-matrix-control/cell.js
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+function cell_Cell(_ref) {
+  let {
+    isActive = false,
+    value,
+    ...props
+  } = _ref;
+  const tooltipText = ALIGNMENT_LABEL[value];
+  return (0,external_wp_element_namespaceObject.createElement)(tooltip, {
+    text: tooltipText
+  }, (0,external_wp_element_namespaceObject.createElement)(CompositeItem, extends_extends({
+    as: Cell,
+    role: "gridcell"
+  }, props), (0,external_wp_element_namespaceObject.createElement)(visually_hidden_component, null, value), (0,external_wp_element_namespaceObject.createElement)(Point, {
+    isActive: isActive,
+    role: "presentation"
+  })));
+}
+
+;// CONCATENATED MODULE: ./node_modules/reakit-utils/es/useSealedState.js
+
+
+/**
+ * React custom hook that returns the very first value passed to `initialState`,
+ * even if it changes between re-renders.
+ */
+function useSealedState(initialState) {
+  var _React$useState = (0,external_React_.useState)(initialState),
+      sealed = _React$useState[0];
+
+  return sealed;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit/es/reverse-30eaa122.js
+
+
+function groupItems(items) {
+  var groups = [[]];
+
+  var _loop = function _loop() {
+    var item = _step.value;
+    var group = groups.find(function (g) {
+      return !g[0] || g[0].groupId === item.groupId;
+    });
+
+    if (group) {
+      group.push(item);
+    } else {
+      groups.push([item]);
+    }
+  };
+
+  for (var _iterator = _createForOfIteratorHelperLoose(items), _step; !(_step = _iterator()).done;) {
+    _loop();
+  }
+
+  return groups;
+}
+
+function flatten(grid) {
+  var flattened = [];
+
+  for (var _iterator = _createForOfIteratorHelperLoose(grid), _step; !(_step = _iterator()).done;) {
+    var row = _step.value;
+    flattened.push.apply(flattened, row);
+  }
+
+  return flattened;
+}
+
+function reverse(array) {
+  return array.slice().reverse();
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit/es/findEnabledItemById-8ddca752.js
+function findEnabledItemById(items, id) {
+  if (!id) return undefined;
+  return items === null || items === void 0 ? void 0 : items.find(function (item) {
+    return item.id === id && !item.disabled;
+  });
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit-utils/es/applyState.js
+function isUpdater(argument) {
+  return typeof argument === "function";
+}
+/**
+ * Receives a `setState` argument and calls it with `currentValue` if it's a
+ * function. Otherwise return the argument as the new value.
+ *
+ * @example
+ * import { applyState } from "reakit-utils";
+ *
+ * applyState((value) => value + 1, 1); // 2
+ * applyState(2, 1); // 2
+ */
+
+
+function applyState(argument, currentValue) {
+  if (isUpdater(argument)) {
+    return argument(currentValue);
+  }
+
+  return argument;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit/es/Id/IdState.js
+
+
+
+
+function unstable_useIdState(initialState) {
+  if (initialState === void 0) {
+    initialState = {};
+  }
+
+  var _useSealedState = useSealedState(initialState),
+      initialBaseId = _useSealedState.baseId;
+
+  var generateId = (0,external_React_.useContext)(unstable_IdContext);
+  var idCountRef = (0,external_React_.useRef)(0);
+
+  var _React$useState = (0,external_React_.useState)(function () {
+    return initialBaseId || generateId();
+  }),
+      baseId = _React$useState[0],
+      setBaseId = _React$useState[1];
+
+  return {
+    baseId: baseId,
+    setBaseId: setBaseId,
+    unstable_idCountRef: idCountRef
+  };
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit/es/Composite/CompositeState.js
+
+
+
+
+
+
+
+
+
+
+
+
+function isElementPreceding(element1, element2) {
+  return Boolean(element2.compareDocumentPosition(element1) & Node.DOCUMENT_POSITION_PRECEDING);
+}
+
+function findDOMIndex(items, item) {
+  return items.findIndex(function (currentItem) {
+    if (!currentItem.ref.current || !item.ref.current) {
+      return false;
+    }
+
+    return isElementPreceding(item.ref.current, currentItem.ref.current);
+  });
+}
+
+function getMaxLength(rows) {
+  var maxLength = 0;
+
+  for (var _iterator = _createForOfIteratorHelperLoose(rows), _step; !(_step = _iterator()).done;) {
+    var length = _step.value.length;
+
+    if (length > maxLength) {
+      maxLength = length;
+    }
+  }
+
+  return maxLength;
+}
+
+/**
+ * Turns [row1, row1, row2, row2] into [row1, row2, row1, row2]
+ */
+
+function verticalizeItems(items) {
+  var groups = groupItems(items);
+  var maxLength = getMaxLength(groups);
+  var verticalized = [];
+
+  for (var i = 0; i < maxLength; i += 1) {
+    for (var _iterator = _createForOfIteratorHelperLoose(groups), _step; !(_step = _iterator()).done;) {
+      var group = _step.value;
+
+      if (group[i]) {
+        verticalized.push(_objectSpread2(_objectSpread2({}, group[i]), {}, {
+          // If there's no groupId, it means that it's not a grid composite,
+          // but a single row instead. So, instead of verticalizing it, that
+          // is, assigning a different groupId based on the column index, we
+          // keep it undefined so they will be part of the same group.
+          // It's useful when using up/down on one-dimensional composites.
+          groupId: group[i].groupId ? "" + i : undefined
+        }));
+      }
+    }
+  }
+
+  return verticalized;
+}
+
+function createEmptyItem(groupId) {
+  return {
+    id: "__EMPTY_ITEM__",
+    disabled: true,
+    ref: {
+      current: null
+    },
+    groupId: groupId
+  };
+}
+/**
+ * Turns [[row1, row1], [row2]] into [[row1, row1], [row2, row2]]
+ */
+
+
+function fillGroups(groups, currentId, shift) {
+  var maxLength = getMaxLength(groups);
+
+  for (var _iterator = _createForOfIteratorHelperLoose(groups), _step; !(_step = _iterator()).done;) {
+    var group = _step.value;
+
+    for (var i = 0; i < maxLength; i += 1) {
+      var item = group[i];
+
+      if (!item || shift && item.disabled) {
+        var isFrist = i === 0;
+        var previousItem = isFrist && shift ? findFirstEnabledItem(group) : group[i - 1];
+        group[i] = previousItem && currentId !== (previousItem === null || previousItem === void 0 ? void 0 : previousItem.id) && shift ? previousItem : createEmptyItem(previousItem === null || previousItem === void 0 ? void 0 : previousItem.groupId);
+      }
+    }
+  }
+
+  return groups;
+}
+
+var nullItem = {
+  id: null,
+  ref: {
+    current: null
+  }
+};
+function placeItemsAfter(items, id, shouldInsertNullItem) {
+  var index = items.findIndex(function (item) {
+    return item.id === id;
+  });
+  return [].concat(items.slice(index + 1), shouldInsertNullItem ? [nullItem] : [], items.slice(0, index));
+}
+
+function getItemsInGroup(items, groupId) {
+  return items.filter(function (item) {
+    return item.groupId === groupId;
+  });
+}
+
+var map = {
+  horizontal: "vertical",
+  vertical: "horizontal"
+};
+function getOppositeOrientation(orientation) {
+  return orientation && map[orientation];
+}
+
+function addItemAtIndex(array, item, index) {
+  if (!(index in array)) {
+    return [].concat(array, [item]);
+  }
+
+  return [].concat(array.slice(0, index), [item], array.slice(index));
+}
+
+function sortBasedOnDOMPosition(items) {
+  var pairs = items.map(function (item, index) {
+    return [index, item];
+  });
+  var isOrderDifferent = false;
+  pairs.sort(function (_ref, _ref2) {
+    var indexA = _ref[0],
+        a = _ref[1];
+    var indexB = _ref2[0],
+        b = _ref2[1];
+    var elementA = a.ref.current;
+    var elementB = b.ref.current;
+    if (!elementA || !elementB) return 0; // a before b
+
+    if (isElementPreceding(elementA, elementB)) {
+      if (indexA > indexB) {
+        isOrderDifferent = true;
+      }
+
+      return -1;
+    } // a after b
+
+
+    if (indexA < indexB) {
+      isOrderDifferent = true;
+    }
+
+    return 1;
+  });
+
+  if (isOrderDifferent) {
+    return pairs.map(function (_ref3) {
+      var _ = _ref3[0],
+          item = _ref3[1];
+      return item;
+    });
+  }
+
+  return items;
+}
+
+function setItemsBasedOnDOMPosition(items, setItems) {
+  var sortedItems = sortBasedOnDOMPosition(items);
+
+  if (items !== sortedItems) {
+    setItems(sortedItems);
+  }
+}
+
+function getCommonParent(items) {
+  var _firstItem$ref$curren;
+
+  var firstItem = items[0],
+      nextItems = items.slice(1);
+  var parentElement = firstItem === null || firstItem === void 0 ? void 0 : (_firstItem$ref$curren = firstItem.ref.current) === null || _firstItem$ref$curren === void 0 ? void 0 : _firstItem$ref$curren.parentElement;
+
+  var _loop = function _loop() {
+    var parent = parentElement;
+
+    if (nextItems.every(function (item) {
+      return parent.contains(item.ref.current);
+    })) {
+      return {
+        v: parentElement
+      };
+    }
+
+    parentElement = parentElement.parentElement;
+  };
+
+  while (parentElement) {
+    var _ret = _loop();
+
+    if (typeof _ret === "object") return _ret.v;
+  }
+
+  return getDocument(parentElement).body;
+} // istanbul ignore next: JSDOM doesn't support IntersectionObverser
+// See https://github.com/jsdom/jsdom/issues/2032
+
+
+function useIntersectionObserver(items, setItems) {
+  var previousItems = (0,external_React_.useRef)([]);
+  (0,external_React_.useEffect)(function () {
+    var callback = function callback() {
+      var hasPreviousItems = !!previousItems.current.length; // We don't want to sort items if items have been just registered.
+
+      if (hasPreviousItems) {
+        setItemsBasedOnDOMPosition(items, setItems);
+      }
+
+      previousItems.current = items;
+    };
+
+    var root = getCommonParent(items);
+    var observer = new IntersectionObserver(callback, {
+      root: root
+    });
+
+    for (var _iterator = _createForOfIteratorHelperLoose(items), _step; !(_step = _iterator()).done;) {
+      var item = _step.value;
+
+      if (item.ref.current) {
+        observer.observe(item.ref.current);
+      }
+    }
+
+    return function () {
+      observer.disconnect();
+    };
+  }, [items]);
+}
+
+function useTimeoutObserver(items, setItems) {
+  (0,external_React_.useEffect)(function () {
+    var callback = function callback() {
+      return setItemsBasedOnDOMPosition(items, setItems);
+    };
+
+    var timeout = setTimeout(callback, 250);
+    return function () {
+      return clearTimeout(timeout);
+    };
+  });
+}
+
+function useSortBasedOnDOMPosition(items, setItems) {
+  if (typeof IntersectionObserver === "function") {
+    useIntersectionObserver(items, setItems);
+  } else {
+    useTimeoutObserver(items, setItems);
+  }
+}
+
+function reducer(state, action) {
+  var virtual = state.unstable_virtual,
+      rtl = state.rtl,
+      orientation = state.orientation,
+      items = state.items,
+      groups = state.groups,
+      currentId = state.currentId,
+      loop = state.loop,
+      wrap = state.wrap,
+      pastIds = state.pastIds,
+      shift = state.shift,
+      moves = state.unstable_moves,
+      includesBaseElement = state.unstable_includesBaseElement,
+      initialVirtual = state.initialVirtual,
+      initialRTL = state.initialRTL,
+      initialOrientation = state.initialOrientation,
+      initialCurrentId = state.initialCurrentId,
+      initialLoop = state.initialLoop,
+      initialWrap = state.initialWrap,
+      initialShift = state.initialShift,
+      hasSetCurrentId = state.hasSetCurrentId;
+
+  switch (action.type) {
+    case "registerGroup":
+      {
+        var _group = action.group; // If there are no groups yet, just add it as the first one
+
+        if (groups.length === 0) {
+          return _objectSpread2(_objectSpread2({}, state), {}, {
+            groups: [_group]
+          });
+        } // Finds the group index based on DOM position
+
+
+        var index = findDOMIndex(groups, _group);
+        return _objectSpread2(_objectSpread2({}, state), {}, {
+          groups: addItemAtIndex(groups, _group, index)
+        });
+      }
+
+    case "unregisterGroup":
+      {
+        var _id = action.id;
+        var nextGroups = groups.filter(function (group) {
+          return group.id !== _id;
+        }); // The group isn't registered, so do nothing
+
+        if (nextGroups.length === groups.length) {
+          return state;
+        }
+
+        return _objectSpread2(_objectSpread2({}, state), {}, {
+          groups: nextGroups
+        });
+      }
+
+    case "registerItem":
+      {
+        var _item = action.item; // Finds the item group based on the DOM hierarchy
+
+        var _group2 = groups.find(function (r) {
+          var _r$ref$current;
+
+          return (_r$ref$current = r.ref.current) === null || _r$ref$current === void 0 ? void 0 : _r$ref$current.contains(_item.ref.current);
+        }); // Group will be null if it's a one-dimensional composite
+
+
+        var nextItem = _objectSpread2({
+          groupId: _group2 === null || _group2 === void 0 ? void 0 : _group2.id
+        }, _item);
+
+        var _index = findDOMIndex(items, nextItem);
+
+        var nextState = _objectSpread2(_objectSpread2({}, state), {}, {
+          items: addItemAtIndex(items, nextItem, _index)
+        });
+
+        if (!hasSetCurrentId && !moves && initialCurrentId === undefined) {
+          var _findFirstEnabledItem;
+
+          // Sets currentId to the first enabled item. This runs whenever an item
+          // is registered because the first enabled item may be registered
+          // asynchronously.
+          return _objectSpread2(_objectSpread2({}, nextState), {}, {
+            currentId: (_findFirstEnabledItem = findFirstEnabledItem(nextState.items)) === null || _findFirstEnabledItem === void 0 ? void 0 : _findFirstEnabledItem.id
+          });
+        }
+
+        return nextState;
+      }
+
+    case "unregisterItem":
+      {
+        var _id2 = action.id;
+        var nextItems = items.filter(function (item) {
+          return item.id !== _id2;
+        }); // The item isn't registered, so do nothing
+
+        if (nextItems.length === items.length) {
+          return state;
+        } // Filters out the item that is being removed from the pastIds list
+
+
+        var nextPastIds = pastIds.filter(function (pastId) {
+          return pastId !== _id2;
+        });
+
+        var _nextState = _objectSpread2(_objectSpread2({}, state), {}, {
+          pastIds: nextPastIds,
+          items: nextItems
+        }); // If the current item is the item that is being removed, focus pastId
+
+
+        if (currentId && currentId === _id2) {
+          var nextId = includesBaseElement ? null : getCurrentId(_objectSpread2(_objectSpread2({}, _nextState), {}, {
+            currentId: nextPastIds[0]
+          }));
+          return _objectSpread2(_objectSpread2({}, _nextState), {}, {
+            currentId: nextId
+          });
+        }
+
+        return _nextState;
+      }
+
+    case "move":
+      {
+        var _id3 = action.id; // move() does nothing
+
+        if (_id3 === undefined) {
+          return state;
+        } // Removes the current item and the item that is receiving focus from the
+        // pastIds list
+
+
+        var filteredPastIds = pastIds.filter(function (pastId) {
+          return pastId !== currentId && pastId !== _id3;
+        }); // If there's a currentId, add it to the pastIds list so it can be focused
+        // if the new item gets removed or disabled
+
+        var _nextPastIds = currentId ? [currentId].concat(filteredPastIds) : filteredPastIds;
+
+        var _nextState2 = _objectSpread2(_objectSpread2({}, state), {}, {
+          pastIds: _nextPastIds
+        }); // move(null) will focus the composite element itself, not an item
+
+
+        if (_id3 === null) {
+          return _objectSpread2(_objectSpread2({}, _nextState2), {}, {
+            unstable_moves: moves + 1,
+            currentId: getCurrentId(_nextState2, _id3)
+          });
+        }
+
+        var _item2 = findEnabledItemById(items, _id3);
+
+        return _objectSpread2(_objectSpread2({}, _nextState2), {}, {
+          unstable_moves: _item2 ? moves + 1 : moves,
+          currentId: getCurrentId(_nextState2, _item2 === null || _item2 === void 0 ? void 0 : _item2.id)
+        });
+      }
+
+    case "next":
+      {
+        // If there's no item focused, we just move the first one
+        if (currentId == null) {
+          return reducer(state, _objectSpread2(_objectSpread2({}, action), {}, {
+            type: "first"
+          }));
+        } // RTL doesn't make sense on vertical navigation
+
+
+        var isHorizontal = orientation !== "vertical";
+        var isRTL = rtl && isHorizontal;
+        var allItems = isRTL ? reverse(items) : items;
+        var currentItem = allItems.find(function (item) {
+          return item.id === currentId;
+        }); // If there's no item focused, we just move the first one
+
+        if (!currentItem) {
+          return reducer(state, _objectSpread2(_objectSpread2({}, action), {}, {
+            type: "first"
+          }));
+        }
+
+        var isGrid = !!currentItem.groupId;
+        var currentIndex = allItems.indexOf(currentItem);
+
+        var _nextItems = allItems.slice(currentIndex + 1);
+
+        var nextItemsInGroup = getItemsInGroup(_nextItems, currentItem.groupId); // Home, End
+
+        if (action.allTheWay) {
+          // We reverse so we can get the last enabled item in the group. If it's
+          // RTL, nextItems and nextItemsInGroup are already reversed and don't
+          // have the items before the current one anymore. So we have to get
+          // items in group again with allItems.
+          var _nextItem2 = findFirstEnabledItem(isRTL ? getItemsInGroup(allItems, currentItem.groupId) : reverse(nextItemsInGroup));
+
+          return reducer(state, _objectSpread2(_objectSpread2({}, action), {}, {
+            type: "move",
+            id: _nextItem2 === null || _nextItem2 === void 0 ? void 0 : _nextItem2.id
+          }));
+        }
+
+        var oppositeOrientation = getOppositeOrientation( // If it's a grid and orientation is not set, it's a next/previous
+        // call, which is inherently horizontal. up/down will call next with
+        // orientation set to vertical by default (see below on up/down cases).
+        isGrid ? orientation || "horizontal" : orientation);
+        var canLoop = loop && loop !== oppositeOrientation;
+        var canWrap = isGrid && wrap && wrap !== oppositeOrientation;
+        var hasNullItem = // `previous` and `up` will set action.hasNullItem, but when calling
+        // next directly, hasNullItem will only be true if it's not a grid and
+        // loop is set to true, which means that pressing right or down keys on
+        // grids will never focus the composite element. On one-dimensional
+        // composites that don't loop, pressing right or down keys also doesn't
+        // focus the composite element.
+        action.hasNullItem || !isGrid && canLoop && includesBaseElement;
+
+        if (canLoop) {
+          var loopItems = canWrap && !hasNullItem ? allItems : getItemsInGroup(allItems, currentItem.groupId); // Turns [0, 1, current, 3, 4] into [3, 4, 0, 1]
+
+          var sortedItems = placeItemsAfter(loopItems, currentId, hasNullItem);
+
+          var _nextItem3 = findFirstEnabledItem(sortedItems, currentId);
+
+          return reducer(state, _objectSpread2(_objectSpread2({}, action), {}, {
+            type: "move",
+            id: _nextItem3 === null || _nextItem3 === void 0 ? void 0 : _nextItem3.id
+          }));
+        }
+
+        if (canWrap) {
+          var _nextItem4 = findFirstEnabledItem( // We can use nextItems, which contains all the next items, including
+          // items from other groups, to wrap between groups. However, if there
+          // is a null item (the composite element), we'll only use the next
+          // items in the group. So moving next from the last item will focus
+          // the composite element (null). On grid composites, horizontal
+          // navigation never focuses the composite element, only vertical.
+          hasNullItem ? nextItemsInGroup : _nextItems, currentId);
+
+          var _nextId = hasNullItem ? (_nextItem4 === null || _nextItem4 === void 0 ? void 0 : _nextItem4.id) || null : _nextItem4 === null || _nextItem4 === void 0 ? void 0 : _nextItem4.id;
+
+          return reducer(state, _objectSpread2(_objectSpread2({}, action), {}, {
+            type: "move",
+            id: _nextId
+          }));
+        }
+
+        var _nextItem = findFirstEnabledItem(nextItemsInGroup, currentId);
+
+        if (!_nextItem && hasNullItem) {
+          return reducer(state, _objectSpread2(_objectSpread2({}, action), {}, {
+            type: "move",
+            id: null
+          }));
+        }
+
+        return reducer(state, _objectSpread2(_objectSpread2({}, action), {}, {
+          type: "move",
+          id: _nextItem === null || _nextItem === void 0 ? void 0 : _nextItem.id
+        }));
+      }
+
+    case "previous":
+      {
+        // If currentId is initially set to null, the composite element will be
+        // focusable while navigating with arrow keys. But, if it's a grid, we
+        // don't want to focus the composite element with horizontal navigation.
+        var _isGrid = !!groups.length;
+
+        var _hasNullItem = !_isGrid && includesBaseElement;
+
+        var _nextState3 = reducer(_objectSpread2(_objectSpread2({}, state), {}, {
+          items: reverse(items)
+        }), _objectSpread2(_objectSpread2({}, action), {}, {
+          type: "next",
+          hasNullItem: _hasNullItem
+        }));
+
+        return _objectSpread2(_objectSpread2({}, _nextState3), {}, {
+          items: items
+        });
+      }
+
+    case "down":
+      {
+        var shouldShift = shift && !action.allTheWay; // First, we make sure groups have the same number of items by filling it
+        // with disabled fake items. Then, we reorganize the items list so
+        // [1-1, 1-2, 2-1, 2-2] becomes [1-1, 2-1, 1-2, 2-2].
+
+        var verticalItems = verticalizeItems(flatten(fillGroups(groupItems(items), currentId, shouldShift)));
+
+        var _canLoop = loop && loop !== "horizontal"; // Pressing down arrow key will only focus the composite element if loop
+        // is true or vertical.
+
+
+        var _hasNullItem2 = _canLoop && includesBaseElement;
+
+        var _nextState4 = reducer(_objectSpread2(_objectSpread2({}, state), {}, {
+          orientation: "vertical",
+          items: verticalItems
+        }), _objectSpread2(_objectSpread2({}, action), {}, {
+          type: "next",
+          hasNullItem: _hasNullItem2
+        }));
+
+        return _objectSpread2(_objectSpread2({}, _nextState4), {}, {
+          orientation: orientation,
+          items: items
+        });
+      }
+
+    case "up":
+      {
+        var _shouldShift = shift && !action.allTheWay;
+
+        var _verticalItems = verticalizeItems(reverse(flatten(fillGroups(groupItems(items), currentId, _shouldShift)))); // If currentId is initially set to null, we'll always focus the
+        // composite element when the up arrow key is pressed in the first row.
+
+
+        var _hasNullItem3 = includesBaseElement;
+
+        var _nextState5 = reducer(_objectSpread2(_objectSpread2({}, state), {}, {
+          orientation: "vertical",
+          items: _verticalItems
+        }), _objectSpread2(_objectSpread2({}, action), {}, {
+          type: "next",
+          hasNullItem: _hasNullItem3
+        }));
+
+        return _objectSpread2(_objectSpread2({}, _nextState5), {}, {
+          orientation: orientation,
+          items: items
+        });
+      }
+
+    case "first":
+      {
+        var firstItem = findFirstEnabledItem(items);
+        return reducer(state, _objectSpread2(_objectSpread2({}, action), {}, {
+          type: "move",
+          id: firstItem === null || firstItem === void 0 ? void 0 : firstItem.id
+        }));
+      }
+
+    case "last":
+      {
+        var _nextState6 = reducer(_objectSpread2(_objectSpread2({}, state), {}, {
+          items: reverse(items)
+        }), _objectSpread2(_objectSpread2({}, action), {}, {
+          type: "first"
+        }));
+
+        return _objectSpread2(_objectSpread2({}, _nextState6), {}, {
+          items: items
+        });
+      }
+
+    case "sort":
+      {
+        return _objectSpread2(_objectSpread2({}, state), {}, {
+          items: sortBasedOnDOMPosition(items),
+          groups: sortBasedOnDOMPosition(groups)
+        });
+      }
+
+    case "setVirtual":
+      return _objectSpread2(_objectSpread2({}, state), {}, {
+        unstable_virtual: applyState(action.virtual, virtual)
+      });
+
+    case "setRTL":
+      return _objectSpread2(_objectSpread2({}, state), {}, {
+        rtl: applyState(action.rtl, rtl)
+      });
+
+    case "setOrientation":
+      return _objectSpread2(_objectSpread2({}, state), {}, {
+        orientation: applyState(action.orientation, orientation)
+      });
+
+    case "setCurrentId":
+      {
+        var nextCurrentId = getCurrentId(_objectSpread2(_objectSpread2({}, state), {}, {
+          currentId: applyState(action.currentId, currentId)
+        }));
+        return _objectSpread2(_objectSpread2({}, state), {}, {
+          currentId: nextCurrentId,
+          hasSetCurrentId: true
+        });
+      }
+
+    case "setLoop":
+      return _objectSpread2(_objectSpread2({}, state), {}, {
+        loop: applyState(action.loop, loop)
+      });
+
+    case "setWrap":
+      return _objectSpread2(_objectSpread2({}, state), {}, {
+        wrap: applyState(action.wrap, wrap)
+      });
+
+    case "setShift":
+      return _objectSpread2(_objectSpread2({}, state), {}, {
+        shift: applyState(action.shift, shift)
+      });
+
+    case "setIncludesBaseElement":
+      {
+        return _objectSpread2(_objectSpread2({}, state), {}, {
+          unstable_includesBaseElement: applyState(action.includesBaseElement, includesBaseElement)
+        });
+      }
+
+    case "reset":
+      return _objectSpread2(_objectSpread2({}, state), {}, {
+        unstable_virtual: initialVirtual,
+        rtl: initialRTL,
+        orientation: initialOrientation,
+        currentId: getCurrentId(_objectSpread2(_objectSpread2({}, state), {}, {
+          currentId: initialCurrentId
+        })),
+        loop: initialLoop,
+        wrap: initialWrap,
+        shift: initialShift,
+        unstable_moves: 0,
+        pastIds: []
+      });
+
+    case "setItems":
+      {
+        return _objectSpread2(_objectSpread2({}, state), {}, {
+          items: action.items
+        });
+      }
+
+    default:
+      throw new Error();
+  }
+}
+
+function useAction(fn) {
+  return (0,external_React_.useCallback)(fn, []);
+}
+
+function useIsUnmountedRef() {
+  var isUnmountedRef = (0,external_React_.useRef)(false);
+  useIsomorphicEffect(function () {
+    return function () {
+      isUnmountedRef.current = true;
+    };
+  }, []);
+  return isUnmountedRef;
+}
+
+function useCompositeState(initialState) {
+  if (initialState === void 0) {
+    initialState = {};
+  }
+
+  var _useSealedState = useSealedState(initialState),
+      _useSealedState$unsta = _useSealedState.unstable_virtual,
+      virtual = _useSealedState$unsta === void 0 ? false : _useSealedState$unsta,
+      _useSealedState$rtl = _useSealedState.rtl,
+      rtl = _useSealedState$rtl === void 0 ? false : _useSealedState$rtl,
+      orientation = _useSealedState.orientation,
+      currentId = _useSealedState.currentId,
+      _useSealedState$loop = _useSealedState.loop,
+      loop = _useSealedState$loop === void 0 ? false : _useSealedState$loop,
+      _useSealedState$wrap = _useSealedState.wrap,
+      wrap = _useSealedState$wrap === void 0 ? false : _useSealedState$wrap,
+      _useSealedState$shift = _useSealedState.shift,
+      shift = _useSealedState$shift === void 0 ? false : _useSealedState$shift,
+      unstable_includesBaseElement = _useSealedState.unstable_includesBaseElement,
+      sealed = _objectWithoutPropertiesLoose(_useSealedState, ["unstable_virtual", "rtl", "orientation", "currentId", "loop", "wrap", "shift", "unstable_includesBaseElement"]);
+
+  var idState = unstable_useIdState(sealed);
+
+  var _React$useReducer = (0,external_React_.useReducer)(reducer, {
+    unstable_virtual: virtual,
+    rtl: rtl,
+    orientation: orientation,
+    items: [],
+    groups: [],
+    currentId: currentId,
+    loop: loop,
+    wrap: wrap,
+    shift: shift,
+    unstable_moves: 0,
+    pastIds: [],
+    unstable_includesBaseElement: unstable_includesBaseElement != null ? unstable_includesBaseElement : currentId === null,
+    initialVirtual: virtual,
+    initialRTL: rtl,
+    initialOrientation: orientation,
+    initialCurrentId: currentId,
+    initialLoop: loop,
+    initialWrap: wrap,
+    initialShift: shift
+  }),
+      _React$useReducer$ = _React$useReducer[0],
+      pastIds = _React$useReducer$.pastIds,
+      initialVirtual = _React$useReducer$.initialVirtual,
+      initialRTL = _React$useReducer$.initialRTL,
+      initialOrientation = _React$useReducer$.initialOrientation,
+      initialCurrentId = _React$useReducer$.initialCurrentId,
+      initialLoop = _React$useReducer$.initialLoop,
+      initialWrap = _React$useReducer$.initialWrap,
+      initialShift = _React$useReducer$.initialShift,
+      hasSetCurrentId = _React$useReducer$.hasSetCurrentId,
+      state = _objectWithoutPropertiesLoose(_React$useReducer$, ["pastIds", "initialVirtual", "initialRTL", "initialOrientation", "initialCurrentId", "initialLoop", "initialWrap", "initialShift", "hasSetCurrentId"]),
+      dispatch = _React$useReducer[1];
+
+  var _React$useState = (0,external_React_.useState)(false),
+      hasActiveWidget = _React$useState[0],
+      setHasActiveWidget = _React$useState[1]; // register/unregister may be called when this component is unmounted. We
+  // store the unmounted state here so we don't update the state if it's true.
+  // This only happens in a very specific situation.
+  // See https://github.com/reakit/reakit/issues/650
+
+
+  var isUnmountedRef = useIsUnmountedRef();
+  var setItems = (0,external_React_.useCallback)(function (items) {
+    return dispatch({
+      type: "setItems",
+      items: items
+    });
+  }, []);
+  useSortBasedOnDOMPosition(state.items, setItems);
+  return _objectSpread2(_objectSpread2(_objectSpread2({}, idState), state), {}, {
+    unstable_hasActiveWidget: hasActiveWidget,
+    unstable_setHasActiveWidget: setHasActiveWidget,
+    registerItem: useAction(function (item) {
+      if (isUnmountedRef.current) return;
+      dispatch({
+        type: "registerItem",
+        item: item
+      });
+    }),
+    unregisterItem: useAction(function (id) {
+      if (isUnmountedRef.current) return;
+      dispatch({
+        type: "unregisterItem",
+        id: id
+      });
+    }),
+    registerGroup: useAction(function (group) {
+      if (isUnmountedRef.current) return;
+      dispatch({
+        type: "registerGroup",
+        group: group
+      });
+    }),
+    unregisterGroup: useAction(function (id) {
+      if (isUnmountedRef.current) return;
+      dispatch({
+        type: "unregisterGroup",
+        id: id
+      });
+    }),
+    move: useAction(function (id) {
+      return dispatch({
+        type: "move",
+        id: id
+      });
+    }),
+    next: useAction(function (allTheWay) {
+      return dispatch({
+        type: "next",
+        allTheWay: allTheWay
+      });
+    }),
+    previous: useAction(function (allTheWay) {
+      return dispatch({
+        type: "previous",
+        allTheWay: allTheWay
+      });
+    }),
+    up: useAction(function (allTheWay) {
+      return dispatch({
+        type: "up",
+        allTheWay: allTheWay
+      });
+    }),
+    down: useAction(function (allTheWay) {
+      return dispatch({
+        type: "down",
+        allTheWay: allTheWay
+      });
+    }),
+    first: useAction(function () {
+      return dispatch({
+        type: "first"
+      });
+    }),
+    last: useAction(function () {
+      return dispatch({
+        type: "last"
+      });
+    }),
+    sort: useAction(function () {
+      return dispatch({
+        type: "sort"
+      });
+    }),
+    unstable_setVirtual: useAction(function (value) {
+      return dispatch({
+        type: "setVirtual",
+        virtual: value
+      });
+    }),
+    setRTL: useAction(function (value) {
+      return dispatch({
+        type: "setRTL",
+        rtl: value
+      });
+    }),
+    setOrientation: useAction(function (value) {
+      return dispatch({
+        type: "setOrientation",
+        orientation: value
+      });
+    }),
+    setCurrentId: useAction(function (value) {
+      return dispatch({
+        type: "setCurrentId",
+        currentId: value
+      });
+    }),
+    setLoop: useAction(function (value) {
+      return dispatch({
+        type: "setLoop",
+        loop: value
+      });
+    }),
+    setWrap: useAction(function (value) {
+      return dispatch({
+        type: "setWrap",
+        wrap: value
+      });
+    }),
+    setShift: useAction(function (value) {
+      return dispatch({
+        type: "setShift",
+        shift: value
+      });
+    }),
+    unstable_setIncludesBaseElement: useAction(function (value) {
+      return dispatch({
+        type: "setIncludesBaseElement",
+        includesBaseElement: value
+      });
+    }),
+    reset: useAction(function () {
+      return dispatch({
+        type: "reset"
+      });
+    })
+  });
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit-utils/es/fireBlurEvent.js
+
+
+
+
+function createFocusEvent(element, type, eventInit) {
+  if (eventInit === void 0) {
+    eventInit = {};
+  }
+
+  if (typeof FocusEvent === "function") {
+    return new FocusEvent(type, eventInit);
+  }
+
+  return createEvent(element, type, eventInit);
+}
+/**
+ * Creates and dispatches a blur event in a way that also works on IE 11.
+ *
+ * @example
+ * import { fireBlurEvent } from "reakit-utils";
+ *
+ * fireBlurEvent(document.getElementById("id"));
+ */
+
+
+function fireBlurEvent(element, eventInit) {
+  var event = createFocusEvent(element, "blur", eventInit);
+  var defaultAllowed = element.dispatchEvent(event);
+
+  var bubbleInit = _rollupPluginBabelHelpers_1f0bf8c2_objectSpread2(_rollupPluginBabelHelpers_1f0bf8c2_objectSpread2({}, eventInit), {}, {
+    bubbles: true
+  });
+
+  element.dispatchEvent(createFocusEvent(element, "focusout", bubbleInit));
+  return defaultAllowed;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit-utils/es/fireKeyboardEvent.js
+
+
+
+function createKeyboardEvent(element, type, eventInit) {
+  if (eventInit === void 0) {
+    eventInit = {};
+  }
+
+  if (typeof KeyboardEvent === "function") {
+    return new KeyboardEvent(type, eventInit);
+  } // IE 11 doesn't support Event constructors
+
+
+  var event = getDocument(element).createEvent("KeyboardEvent");
+  event.initKeyboardEvent(type, eventInit.bubbles, eventInit.cancelable, getWindow(element), eventInit.key, eventInit.location, eventInit.ctrlKey, eventInit.altKey, eventInit.shiftKey, eventInit.metaKey);
+  return event;
+}
+/**
+ * Creates and dispatches `KeyboardEvent` in a way that also works on IE 11.
+ *
+ * @example
+ * import { fireKeyboardEvent } from "reakit-utils";
+ *
+ * fireKeyboardEvent(document.getElementById("id"), "keydown", {
+ *   key: "ArrowDown",
+ *   shiftKey: true,
+ * });
+ */
+
+
+function fireKeyboardEvent(element, type, eventInit) {
+  return element.dispatchEvent(createKeyboardEvent(element, type, eventInit));
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit-utils/es/getNextActiveElementOnBlur.js
+
+
+
+
+
+var isIE11 = canUseDOM && "msCrypto" in window;
+/**
+ * Cross-browser method that returns the next active element (the element that
+ * is receiving focus) after a blur event is dispatched. It receives the blur
+ * event object as the argument.
+ *
+ * @example
+ * import { getNextActiveElementOnBlur } from "reakit-utils";
+ *
+ * const element = document.getElementById("id");
+ * element.addEventListener("blur", (event) => {
+ *   const nextActiveElement = getNextActiveElementOnBlur(event);
+ * });
+ */
+
+function getNextActiveElementOnBlur(event) {
+  // IE 11 doesn't support event.relatedTarget on blur.
+  // document.activeElement points the the next active element.
+  // On modern browsers, document.activeElement points to the current target.
+  if (isIE11) {
+    var activeElement = getActiveElement_getActiveElement(event.currentTarget);
+    return activeElement;
+  }
+
+  return event.relatedTarget;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit/es/Composite/Composite.js
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+var Composite_isIE11 = canUseDOM && "msCrypto" in window;
+
+function canProxyKeyboardEvent(event) {
+  if (!isSelfTarget(event)) return false;
+  if (event.metaKey) return false;
+  if (event.key === "Tab") return false;
+  return true;
+}
+
+function useKeyboardEventProxy(virtual, currentItem, htmlEventHandler) {
+  var eventHandlerRef = useLiveRef(htmlEventHandler);
+  return (0,external_React_.useCallback)(function (event) {
+    var _eventHandlerRef$curr;
+
+    (_eventHandlerRef$curr = eventHandlerRef.current) === null || _eventHandlerRef$curr === void 0 ? void 0 : _eventHandlerRef$curr.call(eventHandlerRef, event);
+    if (event.defaultPrevented) return;
+
+    if (virtual && canProxyKeyboardEvent(event)) {
+      var currentElement = currentItem === null || currentItem === void 0 ? void 0 : currentItem.ref.current;
+
+      if (currentElement) {
+        if (!fireKeyboardEvent(currentElement, event.type, event)) {
+          event.preventDefault();
+        } // The event will be triggered on the composite item and then
+        // propagated up to this composite element again, so we can pretend
+        // that it wasn't called on this component in the first place.
+
+
+        if (event.currentTarget.contains(currentElement)) {
+          event.stopPropagation();
+        }
+      }
+    }
+  }, [virtual, currentItem]);
+} // istanbul ignore next
+
+
+function useActiveElementRef(elementRef) {
+  var activeElementRef = (0,external_React_.useRef)(null);
+  (0,external_React_.useEffect)(function () {
+    var document = getDocument(elementRef.current);
+
+    var onFocus = function onFocus(event) {
+      var target = event.target;
+      activeElementRef.current = target;
+    };
+
+    document.addEventListener("focus", onFocus, true);
+    return function () {
+      document.removeEventListener("focus", onFocus, true);
+    };
+  }, []);
+  return activeElementRef;
+}
+
+function findFirstEnabledItemInTheLastRow(items) {
+  return findFirstEnabledItem(flatten(reverse(groupItems(items))));
+}
+
+function isItem(items, element) {
+  return items === null || items === void 0 ? void 0 : items.some(function (item) {
+    return !!element && item.ref.current === element;
+  });
+}
+
+function useScheduleUserFocus(currentItem) {
+  var currentItemRef = useLiveRef(currentItem);
+
+  var _React$useReducer = (0,external_React_.useReducer)(function (n) {
+    return n + 1;
+  }, 0),
+      scheduled = _React$useReducer[0],
+      schedule = _React$useReducer[1];
+
+  (0,external_React_.useEffect)(function () {
+    var _currentItemRef$curre;
+
+    var currentElement = (_currentItemRef$curre = currentItemRef.current) === null || _currentItemRef$curre === void 0 ? void 0 : _currentItemRef$curre.ref.current;
+
+    if (scheduled && currentElement) {
+      userFocus(currentElement);
+    }
+  }, [scheduled]);
+  return schedule;
+}
+
+var useComposite = createHook({
+  name: "Composite",
+  compose: [useTabbable],
+  keys: COMPOSITE_KEYS,
+  useOptions: function useOptions(options) {
+    return _objectSpread2(_objectSpread2({}, options), {}, {
+      currentId: getCurrentId(options)
+    });
+  },
+  useProps: function useProps(options, _ref) {
+    var htmlRef = _ref.ref,
+        htmlOnFocusCapture = _ref.onFocusCapture,
+        htmlOnFocus = _ref.onFocus,
+        htmlOnBlurCapture = _ref.onBlurCapture,
+        htmlOnKeyDown = _ref.onKeyDown,
+        htmlOnKeyDownCapture = _ref.onKeyDownCapture,
+        htmlOnKeyUpCapture = _ref.onKeyUpCapture,
+        htmlProps = _objectWithoutPropertiesLoose(_ref, ["ref", "onFocusCapture", "onFocus", "onBlurCapture", "onKeyDown", "onKeyDownCapture", "onKeyUpCapture"]);
+
+    var ref = (0,external_React_.useRef)(null);
+    var currentItem = findEnabledItemById(options.items, options.currentId);
+    var previousElementRef = (0,external_React_.useRef)(null);
+    var onFocusCaptureRef = useLiveRef(htmlOnFocusCapture);
+    var onFocusRef = useLiveRef(htmlOnFocus);
+    var onBlurCaptureRef = useLiveRef(htmlOnBlurCapture);
+    var onKeyDownRef = useLiveRef(htmlOnKeyDown);
+    var scheduleUserFocus = useScheduleUserFocus(currentItem); // IE 11 doesn't support event.relatedTarget, so we use the active element
+    // ref instead.
+
+    var activeElementRef = Composite_isIE11 ? useActiveElementRef(ref) : undefined;
+    (0,external_React_.useEffect)(function () {
+      var element = ref.current;
+
+      if (options.unstable_moves && !currentItem) {
+         false ? 0 : void 0; // If composite.move(null) has been called, the composite container
+        // will receive focus.
+
+        element === null || element === void 0 ? void 0 : element.focus();
+      }
+    }, [options.unstable_moves, currentItem]);
+    var onKeyDownCapture = useKeyboardEventProxy(options.unstable_virtual, currentItem, htmlOnKeyDownCapture);
+    var onKeyUpCapture = useKeyboardEventProxy(options.unstable_virtual, currentItem, htmlOnKeyUpCapture);
+    var onFocusCapture = (0,external_React_.useCallback)(function (event) {
+      var _onFocusCaptureRef$cu;
+
+      (_onFocusCaptureRef$cu = onFocusCaptureRef.current) === null || _onFocusCaptureRef$cu === void 0 ? void 0 : _onFocusCaptureRef$cu.call(onFocusCaptureRef, event);
+      if (event.defaultPrevented) return;
+      if (!options.unstable_virtual) return; // IE11 doesn't support event.relatedTarget, so we use the active
+      // element ref instead.
+
+      var previousActiveElement = (activeElementRef === null || activeElementRef === void 0 ? void 0 : activeElementRef.current) || event.relatedTarget;
+      var previousActiveElementWasItem = isItem(options.items, previousActiveElement);
+
+      if (isSelfTarget(event) && previousActiveElementWasItem) {
+        // Composite has been focused as a result of an item receiving focus.
+        // The composite item will move focus back to the composite
+        // container. In this case, we don't want to propagate this
+        // additional event nor call the onFocus handler passed to
+        // <Composite onFocus={...} />.
+        event.stopPropagation(); // We keep track of the previous active item element so we can
+        // manually fire a blur event on it later when the focus is moved to
+        // another item on the onBlurCapture event below.
+
+        previousElementRef.current = previousActiveElement;
+      }
+    }, [options.unstable_virtual, options.items]);
+    var onFocus = (0,external_React_.useCallback)(function (event) {
+      var _onFocusRef$current;
+
+      (_onFocusRef$current = onFocusRef.current) === null || _onFocusRef$current === void 0 ? void 0 : _onFocusRef$current.call(onFocusRef, event);
+      if (event.defaultPrevented) return;
+
+      if (options.unstable_virtual) {
+        if (isSelfTarget(event)) {
+          // This means that the composite element has been focused while the
+          // composite item has not. For example, by clicking on the
+          // composite element without touching any item, or by tabbing into
+          // the composite element. In this case, we want to trigger focus on
+          // the item, just like it would happen with roving tabindex.
+          // When it receives focus, the composite item will put focus back
+          // on the composite element, in which case hasItemWithFocus will be
+          // true.
+          scheduleUserFocus();
+        }
+      } else if (isSelfTarget(event)) {
+        var _options$setCurrentId;
+
+        // When the roving tabindex composite gets intentionally focused (for
+        // example, by clicking directly on it, and not on an item), we make
+        // sure to set the current id to null (which means the composite
+        // itself is focused).
+        (_options$setCurrentId = options.setCurrentId) === null || _options$setCurrentId === void 0 ? void 0 : _options$setCurrentId.call(options, null);
+      }
+    }, [options.unstable_virtual, options.setCurrentId]);
+    var onBlurCapture = (0,external_React_.useCallback)(function (event) {
+      var _onBlurCaptureRef$cur;
+
+      (_onBlurCaptureRef$cur = onBlurCaptureRef.current) === null || _onBlurCaptureRef$cur === void 0 ? void 0 : _onBlurCaptureRef$cur.call(onBlurCaptureRef, event);
+      if (event.defaultPrevented) return;
+      if (!options.unstable_virtual) return; // When virtual is set to true, we move focus from the composite
+      // container (this component) to the composite item that is being
+      // selected. Then we move focus back to the composite container. This
+      // is so we can provide the same API as the roving tabindex method,
+      // which means people can attach onFocus/onBlur handlers on the
+      // CompositeItem component regardless of whether it's virtual or not.
+      // This sequence of blurring and focusing items and composite may be
+      // confusing, so we ignore intermediate focus and blurs by stopping its
+      // propagation and not calling the passed onBlur handler (htmlOnBlur).
+
+      var currentElement = (currentItem === null || currentItem === void 0 ? void 0 : currentItem.ref.current) || null;
+      var nextActiveElement = getNextActiveElementOnBlur(event);
+      var nextActiveElementIsItem = isItem(options.items, nextActiveElement);
+
+      if (isSelfTarget(event) && nextActiveElementIsItem) {
+        // This is an intermediate blur event: blurring the composite
+        // container to focus an item (nextActiveElement).
+        if (nextActiveElement === currentElement) {
+          // The next active element will be the same as the current item in
+          // the state in two scenarios:
+          //   - Moving focus with keyboard: the state is updated before the
+          // blur event is triggered, so here the current item is already
+          // pointing to the next active element.
+          //   - Clicking on the current active item with a pointer: this
+          // will trigger blur on the composite element and then the next
+          // active element will be the same as the current item. Clicking on
+          // an item other than the current one doesn't end up here as the
+          // currentItem state will be updated only after it.
+          if (previousElementRef.current && previousElementRef.current !== nextActiveElement) {
+            // If there's a previous active item and it's not a click action,
+            // then we fire a blur event on it so it will work just like if
+            // it had DOM focus before (like when using roving tabindex).
+            fireBlurEvent(previousElementRef.current, event);
+          }
+        } else if (currentElement) {
+          // This will be true when the next active element is not the
+          // current element, but there's a current item. This will only
+          // happen when clicking with a pointer on a different item, when
+          // there's already an item selected, in which case currentElement
+          // is the item that is getting blurred, and nextActiveElement is
+          // the item that is being clicked.
+          fireBlurEvent(currentElement, event);
+        } // We want to ignore intermediate blur events, so we stop its
+        // propagation and return early so onFocus will not be called.
+
+
+        event.stopPropagation();
+      } else {
+        var targetIsItem = isItem(options.items, event.target);
+
+        if (!targetIsItem && currentElement) {
+          // If target is not a composite item, it may be the composite
+          // element itself (isSelfTarget) or a tabbable element inside the
+          // composite widget. This may be triggered by clicking outside the
+          // composite widget or by tabbing out of it. In either cases we
+          // want to fire a blur event on the current item.
+          fireBlurEvent(currentElement, event);
+        }
+      }
+    }, [options.unstable_virtual, options.items, currentItem]);
+    var onKeyDown = (0,external_React_.useCallback)(function (event) {
+      var _onKeyDownRef$current, _options$groups;
+
+      (_onKeyDownRef$current = onKeyDownRef.current) === null || _onKeyDownRef$current === void 0 ? void 0 : _onKeyDownRef$current.call(onKeyDownRef, event);
+      if (event.defaultPrevented) return;
+      if (options.currentId !== null) return;
+      if (!isSelfTarget(event)) return;
+      var isVertical = options.orientation !== "horizontal";
+      var isHorizontal = options.orientation !== "vertical";
+      var isGrid = !!((_options$groups = options.groups) !== null && _options$groups !== void 0 && _options$groups.length);
+
+      var up = function up() {
+        if (isGrid) {
+          var item = findFirstEnabledItemInTheLastRow(options.items);
+
+          if (item !== null && item !== void 0 && item.id) {
+            var _options$move;
+
+            (_options$move = options.move) === null || _options$move === void 0 ? void 0 : _options$move.call(options, item.id);
+          }
+        } else {
+          var _options$last;
+
+          (_options$last = options.last) === null || _options$last === void 0 ? void 0 : _options$last.call(options);
+        }
+      };
+
+      var keyMap = {
+        ArrowUp: (isGrid || isVertical) && up,
+        ArrowRight: (isGrid || isHorizontal) && options.first,
+        ArrowDown: (isGrid || isVertical) && options.first,
+        ArrowLeft: (isGrid || isHorizontal) && options.last,
+        Home: options.first,
+        End: options.last,
+        PageUp: options.first,
+        PageDown: options.last
+      };
+      var action = keyMap[event.key];
+
+      if (action) {
+        event.preventDefault();
+        action();
+      }
+    }, [options.currentId, options.orientation, options.groups, options.items, options.move, options.last, options.first]);
+    return _objectSpread2({
+      ref: useForkRef(ref, htmlRef),
+      id: options.baseId,
+      onFocus: onFocus,
+      onFocusCapture: onFocusCapture,
+      onBlurCapture: onBlurCapture,
+      onKeyDownCapture: onKeyDownCapture,
+      onKeyDown: onKeyDown,
+      onKeyUpCapture: onKeyUpCapture,
+      "aria-activedescendant": options.unstable_virtual ? (currentItem === null || currentItem === void 0 ? void 0 : currentItem.id) || undefined : undefined
+    }, htmlProps);
+  },
+  useComposeProps: function useComposeProps(options, htmlProps) {
+    htmlProps = useRole(options, htmlProps, true);
+    var tabbableHTMLProps = useTabbable(options, htmlProps, true);
+
+    if (options.unstable_virtual || options.currentId === null) {
+      // Composite will only be tabbable by default if the focus is managed
+      // using aria-activedescendant, which requires DOM focus on the container
+      // element (the composite)
+      return _objectSpread2({
+        tabIndex: 0
+      }, tabbableHTMLProps);
+    }
+
+    return _objectSpread2(_objectSpread2({}, htmlProps), {}, {
+      ref: tabbableHTMLProps.ref
+    });
+  }
+});
+var Composite = createComponent({
+  as: "div",
+  useHook: useComposite,
+  useCreateElement: function useCreateElement$1(type, props, children) {
+     false ? 0 : void 0;
+    return useCreateElement(type, props, children);
+  }
+});
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit/es/Group/Group.js
+
 
 
 
 
 
 // Automatically generated
-var ROLE_KEYS = ["unstable_system"];
-
-var useRole = Object(reakit_system_createHook__WEBPACK_IMPORTED_MODULE_2__[/* createHook */ "a"])({
-  name: "Role",
-  keys: ROLE_KEYS,
+var GROUP_KEYS = [];
+
+var useGroup = createHook({
+  name: "Group",
+  compose: useRole,
+  keys: GROUP_KEYS,
+  useProps: function useProps(_, htmlProps) {
+    return _objectSpread2({
+      role: "group"
+    }, htmlProps);
+  }
+});
+var Group = createComponent({
+  as: "div",
+  useHook: useGroup
+});
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit/es/Composite/CompositeGroup.js
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+var useCompositeGroup = createHook({
+  name: "CompositeGroup",
+  compose: [useGroup, unstable_useId],
+  keys: COMPOSITE_GROUP_KEYS,
   propsAreEqual: function propsAreEqual(prev, next) {
-    var prevSystem = prev.unstable_system,
-        prevProps = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* _ */ "a"])(prev, ["unstable_system"]);
-
-    var nextSystem = next.unstable_system,
-        nextProps = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* _ */ "a"])(next, ["unstable_system"]);
-
-    if (prevSystem !== nextSystem && !Object(reakit_utils_shallowEqual__WEBPACK_IMPORTED_MODULE_3__[/* shallowEqual */ "a"])(prevSystem, nextSystem)) {
-      return false;
-    }
-
-    return Object(reakit_utils_shallowEqual__WEBPACK_IMPORTED_MODULE_3__[/* shallowEqual */ "a"])(prevProps, nextProps);
-  }
-});
-var Role = Object(reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_1__[/* createComponent */ "a"])({
+    if (!next.id || prev.id !== next.id) {
+      return useGroup.unstable_propsAreEqual(prev, next);
+    }
+
+    var prevCurrentId = prev.currentId,
+        prevMoves = prev.unstable_moves,
+        prevProps = _objectWithoutPropertiesLoose(prev, ["currentId", "unstable_moves"]);
+
+    var nextCurrentId = next.currentId,
+        nextMoves = next.unstable_moves,
+        nextProps = _objectWithoutPropertiesLoose(next, ["currentId", "unstable_moves"]);
+
+    if (prev.items && next.items) {
+      var prevCurrentItem = findEnabledItemById(prev.items, prevCurrentId);
+      var nextCurrentItem = findEnabledItemById(next.items, nextCurrentId);
+      var prevGroupId = prevCurrentItem === null || prevCurrentItem === void 0 ? void 0 : prevCurrentItem.groupId;
+      var nextGroupId = nextCurrentItem === null || nextCurrentItem === void 0 ? void 0 : nextCurrentItem.groupId;
+
+      if (next.id === nextGroupId || next.id === prevGroupId) {
+        return false;
+      }
+    }
+
+    return useGroup.unstable_propsAreEqual(prevProps, nextProps);
+  },
+  useProps: function useProps(options, _ref) {
+    var htmlRef = _ref.ref,
+        htmlProps = _objectWithoutPropertiesLoose(_ref, ["ref"]);
+
+    var ref = (0,external_React_.useRef)(null);
+    var id = options.id; // We need this to be called before CompositeItems' register
+
+    useIsomorphicEffect(function () {
+      var _options$registerGrou;
+
+      if (!id) return undefined;
+      (_options$registerGrou = options.registerGroup) === null || _options$registerGrou === void 0 ? void 0 : _options$registerGrou.call(options, {
+        id: id,
+        ref: ref
+      });
+      return function () {
+        var _options$unregisterGr;
+
+        (_options$unregisterGr = options.unregisterGroup) === null || _options$unregisterGr === void 0 ? void 0 : _options$unregisterGr.call(options, id);
+      };
+    }, [id, options.registerGroup, options.unregisterGroup]);
+    return _objectSpread2({
+      ref: useForkRef(ref, htmlRef)
+    }, htmlProps);
+  }
+});
+var CompositeGroup = createComponent({
   as: "div",
-  useHook: useRole
-});
-
-
-
-
-/***/ }),
-
-/***/ "zN8g":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _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; };
-
-var _object = __webpack_require__("Koq/");
-
-var _object2 = _interopRequireDefault(_object);
-
-var _react = __webpack_require__("cDcd");
-
-var _react2 = _interopRequireDefault(_react);
-
-var _propTypes = __webpack_require__("17x9");
-
-var _propTypes2 = _interopRequireDefault(_propTypes);
-
-var _airbnbPropTypes = __webpack_require__("Hsqg");
-
-var _reactWithStyles = __webpack_require__("TG4+");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-var propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, {
-  unicode: _propTypes2['default'].string.isRequired,
-  label: _propTypes2['default'].string.isRequired,
-  action: _propTypes2['default'].string.isRequired,
-  block: _propTypes2['default'].bool
-}));
-
-var defaultProps = {
-  block: false
-};
-
-function KeyboardShortcutRow(_ref) {
-  var unicode = _ref.unicode,
-      label = _ref.label,
-      action = _ref.action,
-      block = _ref.block,
-      styles = _ref.styles;
-
-  return _react2['default'].createElement(
-    'li',
-    (0, _reactWithStyles.css)(styles.KeyboardShortcutRow, block && styles.KeyboardShortcutRow__block),
-    _react2['default'].createElement(
-      'div',
-      (0, _reactWithStyles.css)(styles.KeyboardShortcutRow_keyContainer, block && styles.KeyboardShortcutRow_keyContainer__block),
-      _react2['default'].createElement(
-        'span',
-        _extends({}, (0, _reactWithStyles.css)(styles.KeyboardShortcutRow_key), {
-          role: 'img',
-          'aria-label': String(label) + ',' // add comma so screen readers will pause before reading action
-        }),
-        unicode
-      )
-    ),
-    _react2['default'].createElement(
-      'div',
-      (0, _reactWithStyles.css)(styles.KeyboardShortcutRow_action),
-      action
-    )
+  useHook: useCompositeGroup
+});
+
+
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.js
+
+
+function alignment_matrix_control_icon_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+const alignment_matrix_control_icon_styles_rootSize = () => {
+  const padding = 1.5;
+  const size = 24;
+  return /*#__PURE__*/emotion_react_browser_esm_css({
+    gridTemplateRows: `repeat( 3, calc( ${size - padding * 2}px / 3))`,
+    padding,
+    maxHeight: size,
+    maxWidth: size
+  },  true ? "" : 0,  true ? "" : 0);
+};
+
+const rootPointerEvents = _ref => {
+  let {
+    disablePointerEvents
+  } = _ref;
+  return /*#__PURE__*/emotion_react_browser_esm_css({
+    pointerEvents: disablePointerEvents ? 'none' : null
+  },  true ? "" : 0,  true ? "" : 0);
+};
+
+const Wrapper = emotion_styled_base_browser_esm("div",  true ? {
+  target: "elqsdmc2"
+} : 0)( true ? {
+  name: "ogl07i",
+  styles: "box-sizing:border-box;padding:2px"
+} : 0);
+const alignment_matrix_control_icon_styles_Root = emotion_styled_base_browser_esm("div",  true ? {
+  target: "elqsdmc1"
+} : 0)("transform-origin:top left;height:100%;width:100%;", rootBase, ";", alignment_matrix_control_icon_styles_rootSize, ";", rootPointerEvents, ";" + ( true ? "" : 0));
+
+const alignment_matrix_control_icon_styles_pointActive = _ref2 => {
+  let {
+    isActive
+  } = _ref2;
+  const boxShadow = isActive ? `0 0 0 1px currentColor` : null;
+  return /*#__PURE__*/emotion_react_browser_esm_css("box-shadow:", boxShadow, ";color:currentColor;*:hover>&{color:currentColor;}" + ( true ? "" : 0),  true ? "" : 0);
+};
+
+const alignment_matrix_control_icon_styles_Point = emotion_styled_base_browser_esm("span",  true ? {
+  target: "elqsdmc0"
+} : 0)("height:2px;width:2px;", pointBase, ";", alignment_matrix_control_icon_styles_pointActive, ";" + ( true ? "" : 0));
+const alignment_matrix_control_icon_styles_Cell = Cell;
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/alignment-matrix-control/icon.js
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+const BASE_SIZE = 24;
+function AlignmentMatrixControlIcon(_ref) {
+  let {
+    className,
+    disablePointerEvents = true,
+    size = BASE_SIZE,
+    style = {},
+    value = 'center',
+    ...props
+  } = _ref;
+  const alignIndex = getAlignmentIndex(value);
+  const scale = (size / BASE_SIZE).toFixed(2);
+  const classes = classnames_default()('component-alignment-matrix-control-icon', className);
+  const styles = { ...style,
+    transform: `scale(${scale})`
+  };
+  return (0,external_wp_element_namespaceObject.createElement)(alignment_matrix_control_icon_styles_Root, extends_extends({}, props, {
+    className: classes,
+    disablePointerEvents: disablePointerEvents,
+    role: "presentation",
+    size: size,
+    style: styles
+  }), ALIGNMENTS.map((align, index) => {
+    const isActive = alignIndex === index;
+    return (0,external_wp_element_namespaceObject.createElement)(alignment_matrix_control_icon_styles_Cell, {
+      key: align
+    }, (0,external_wp_element_namespaceObject.createElement)(alignment_matrix_control_icon_styles_Point, {
+      isActive: isActive
+    }));
+  }));
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/alignment-matrix-control/index.js
+
+
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+
+function useBaseId(id) {
+  const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(AlignmentMatrixControl, 'alignment-matrix-control');
+  return id || instanceId;
+}
+
+function AlignmentMatrixControl(_ref) {
+  let {
+    className,
+    id,
+    label = (0,external_wp_i18n_namespaceObject.__)('Alignment Matrix Control'),
+    defaultValue = 'center center',
+    value,
+    onChange = external_lodash_namespaceObject.noop,
+    width = 92,
+    ...props
+  } = _ref;
+  const [immutableDefaultValue] = (0,external_wp_element_namespaceObject.useState)(value !== null && value !== void 0 ? value : defaultValue);
+  const baseId = useBaseId(id);
+  const initialCurrentId = getItemId(baseId, immutableDefaultValue);
+  const composite = useCompositeState({
+    baseId,
+    currentId: initialCurrentId,
+    rtl: (0,external_wp_i18n_namespaceObject.isRTL)()
+  });
+
+  const handleOnChange = nextValue => {
+    onChange(nextValue);
+  };
+
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    if (typeof value !== 'undefined') {
+      composite.setCurrentId(getItemId(baseId, value));
+    }
+  }, [value, composite.setCurrentId]);
+  const classes = classnames_default()('component-alignment-matrix-control', className);
+  return (0,external_wp_element_namespaceObject.createElement)(Composite, extends_extends({}, props, composite, {
+    "aria-label": label,
+    as: Root,
+    className: classes,
+    role: "grid",
+    width: width
+  }), GRID.map((cells, index) => (0,external_wp_element_namespaceObject.createElement)(CompositeGroup, extends_extends({}, composite, {
+    as: Row,
+    role: "row",
+    key: index
+  }), cells.map(cell => {
+    const cellId = getItemId(baseId, cell);
+    const isActive = composite.currentId === cellId;
+    return (0,external_wp_element_namespaceObject.createElement)(cell_Cell, extends_extends({}, composite, {
+      id: cellId,
+      isActive: isActive,
+      key: cell,
+      value: cell,
+      onFocus: () => handleOnChange(cell),
+      tabIndex: isActive ? 0 : -1
+    }));
+  }))));
+}
+AlignmentMatrixControl.Icon = AlignmentMatrixControlIcon;
+
+;// CONCATENATED MODULE: ./node_modules/tslib/tslib.es6.js
+/*! *****************************************************************************
+Copyright (c) Microsoft Corporation.
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+***************************************************************************** */
+/* global Reflect, Promise */
+
+var extendStatics = function(d, b) {
+    extendStatics = Object.setPrototypeOf ||
+        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+        function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
+    return extendStatics(d, b);
+};
+
+function __extends(d, b) {
+    if (typeof b !== "function" && b !== null)
+        throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+    extendStatics(d, b);
+    function __() { this.constructor = d; }
+    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+}
+
+var __assign = function() {
+    __assign = Object.assign || function __assign(t) {
+        for (var s, i = 1, n = arguments.length; i < n; i++) {
+            s = arguments[i];
+            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
+        }
+        return t;
+    }
+    return __assign.apply(this, arguments);
+}
+
+function __rest(s, e) {
+    var t = {};
+    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
+        t[p] = s[p];
+    if (s != null && typeof Object.getOwnPropertySymbols === "function")
+        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
+            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
+                t[p[i]] = s[p[i]];
+        }
+    return t;
+}
+
+function __decorate(decorators, target, key, desc) {
+    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+    return c > 3 && r && Object.defineProperty(target, key, r), r;
+}
+
+function __param(paramIndex, decorator) {
+    return function (target, key) { decorator(target, key, paramIndex); }
+}
+
+function __metadata(metadataKey, metadataValue) {
+    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
+}
+
+function __awaiter(thisArg, _arguments, P, generator) {
+    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+    return new (P || (P = Promise))(function (resolve, reject) {
+        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+        step((generator = generator.apply(thisArg, _arguments || [])).next());
+    });
+}
+
+function __generator(thisArg, body) {
+    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
+    return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+    function verb(n) { return function (v) { return step([n, v]); }; }
+    function step(op) {
+        if (f) throw new TypeError("Generator is already executing.");
+        while (_) try {
+            if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+            if (y = 0, t) op = [op[0] & 2, t.value];
+            switch (op[0]) {
+                case 0: case 1: t = op; break;
+                case 4: _.label++; return { value: op[1], done: false };
+                case 5: _.label++; y = op[1]; op = [0]; continue;
+                case 7: op = _.ops.pop(); _.trys.pop(); continue;
+                default:
+                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+                    if (t[2]) _.ops.pop();
+                    _.trys.pop(); continue;
+            }
+            op = body.call(thisArg, _);
+        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+    }
+}
+
+var __createBinding = Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+});
+
+function __exportStar(m, o) {
+    for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);
+}
+
+function __values(o) {
+    var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+    if (m) return m.call(o);
+    if (o && typeof o.length === "number") return {
+        next: function () {
+            if (o && i >= o.length) o = void 0;
+            return { value: o && o[i++], done: !o };
+        }
+    };
+    throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+}
+
+function tslib_es6_read(o, n) {
+    var m = typeof Symbol === "function" && o[Symbol.iterator];
+    if (!m) return o;
+    var i = m.call(o), r, ar = [], e;
+    try {
+        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
+    }
+    catch (error) { e = { error: error }; }
+    finally {
+        try {
+            if (r && !r.done && (m = i["return"])) m.call(i);
+        }
+        finally { if (e) throw e.error; }
+    }
+    return ar;
+}
+
+/** @deprecated */
+function __spread() {
+    for (var ar = [], i = 0; i < arguments.length; i++)
+        ar = ar.concat(tslib_es6_read(arguments[i]));
+    return ar;
+}
+
+/** @deprecated */
+function __spreadArrays() {
+    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
+    for (var r = Array(s), k = 0, i = 0; i < il; i++)
+        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
+            r[k] = a[j];
+    return r;
+}
+
+function tslib_es6_spreadArray(to, from, pack) {
+    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
+        if (ar || !(i in from)) {
+            if (!ar) ar = Array.prototype.slice.call(from, 0, i);
+            ar[i] = from[i];
+        }
+    }
+    return to.concat(ar || Array.prototype.slice.call(from));
+}
+
+function __await(v) {
+    return this instanceof __await ? (this.v = v, this) : new __await(v);
+}
+
+function __asyncGenerator(thisArg, _arguments, generator) {
+    if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
+    var g = generator.apply(thisArg, _arguments || []), i, q = [];
+    return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
+    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
+    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
+    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
+    function fulfill(value) { resume("next", value); }
+    function reject(value) { resume("throw", value); }
+    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
+}
+
+function __asyncDelegator(o) {
+    var i, p;
+    return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
+    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }
+}
+
+function __asyncValues(o) {
+    if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
+    var m = o[Symbol.asyncIterator], i;
+    return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
+    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
+    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
+}
+
+function __makeTemplateObject(cooked, raw) {
+    if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
+    return cooked;
+};
+
+var __setModuleDefault = Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+};
+
+function __importStar(mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+}
+
+function __importDefault(mod) {
+    return (mod && mod.__esModule) ? mod : { default: mod };
+}
+
+function __classPrivateFieldGet(receiver, state, kind, f) {
+    if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
+    if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
+    return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
+}
+
+function __classPrivateFieldSet(receiver, state, value, kind, f) {
+    if (kind === "m") throw new TypeError("Private method is not writable");
+    if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
+    if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
+    return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
+}
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/utils/process.mjs
+/**
+ * Browser-safe usage of process
+ */
+var defaultEnvironment = "production";
+var env = typeof process === "undefined" || process.env === undefined
+    ? defaultEnvironment
+    : "production" || 0;
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/motion/features/definitions.mjs
+var createDefinition = function (propNames) { return ({
+    isEnabled: function (props) { return propNames.some(function (name) { return !!props[name]; }); },
+}); };
+var featureDefinitions = {
+    measureLayout: createDefinition(["layout", "layoutId", "drag"]),
+    animation: createDefinition([
+        "animate",
+        "exit",
+        "variants",
+        "whileHover",
+        "whileTap",
+        "whileFocus",
+        "whileDrag",
+        "whileInView",
+    ]),
+    exit: createDefinition(["exit"]),
+    drag: createDefinition(["drag", "dragControls"]),
+    focus: createDefinition(["whileFocus"]),
+    hover: createDefinition(["whileHover", "onHoverStart", "onHoverEnd"]),
+    tap: createDefinition(["whileTap", "onTap", "onTapStart", "onTapCancel"]),
+    pan: createDefinition([
+        "onPan",
+        "onPanStart",
+        "onPanSessionStart",
+        "onPanEnd",
+    ]),
+    inView: createDefinition([
+        "whileInView",
+        "onViewportEnter",
+        "onViewportLeave",
+    ]),
+};
+function loadFeatures(features) {
+    for (var key in features) {
+        if (features[key] === null)
+            continue;
+        if (key === "projectionNodeConstructor") {
+            featureDefinitions.projectionNodeConstructor = features[key];
+        }
+        else {
+            featureDefinitions[key].Component = features[key];
+        }
+    }
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/hey-listen/dist/hey-listen.es.js
+var warning = function () { };
+var invariant = function () { };
+if (false) {}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/context/LazyContext.mjs
+
+
+var LazyContext = (0,external_React_.createContext)({ strict: false });
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/motion/features/use-features.mjs
+
+
+
+
+
+
+
+
+var featureNames = Object.keys(featureDefinitions);
+var numFeatures = featureNames.length;
+/**
+ * Load features via renderless components based on the provided MotionProps.
+ */
+function useFeatures(props, visualElement, preloadedFeatures) {
+    var features = [];
+    var lazyContext = (0,external_React_.useContext)(LazyContext);
+    if (!visualElement)
+        return null;
+    /**
+     * If we're in development mode, check to make sure we're not rendering a motion component
+     * as a child of LazyMotion, as this will break the file-size benefits of using it.
+     */
+    if (env !== "production" && preloadedFeatures && lazyContext.strict) {
+        invariant(false, "You have rendered a `motion` component within a `LazyMotion` component. This will break tree shaking. Import and render a `m` component instead.");
+    }
+    for (var i = 0; i < numFeatures; i++) {
+        var name_1 = featureNames[i];
+        var _a = featureDefinitions[name_1], isEnabled = _a.isEnabled, Component = _a.Component;
+        /**
+         * It might be possible in the future to use this moment to
+         * dynamically request functionality. In initial tests this
+         * was producing a lot of duplication amongst bundles.
+         */
+        if (isEnabled(props) && Component) {
+            features.push(external_React_.createElement(Component, __assign({ key: name_1 }, props, { visualElement: visualElement })));
+        }
+    }
+    return features;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs
+
+
+/**
+ * @public
+ */
+var MotionConfigContext = (0,external_React_.createContext)({
+    transformPagePoint: function (p) { return p; },
+    isStatic: false,
+    reducedMotion: "never",
+});
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/context/MotionContext/index.mjs
+
+
+var MotionContext = (0,external_React_.createContext)({});
+function useVisualElementContext() {
+    return (0,external_React_.useContext)(MotionContext).visualElement;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/context/PresenceContext.mjs
+
+
+/**
+ * @public
+ */
+var PresenceContext_PresenceContext = (0,external_React_.createContext)(null);
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/utils/is-browser.mjs
+var is_browser_isBrowser = typeof document !== "undefined";
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs
+
+
+
+var useIsomorphicLayoutEffect = is_browser_isBrowser ? external_React_.useLayoutEffect : external_React_.useEffect;
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/utils/use-reduced-motion.mjs
+
+
+
+
+
+// Does this device prefer reduced motion? Returns `null` server-side.
+var prefersReducedMotion = { current: null };
+var hasDetected = false;
+function initPrefersReducedMotion() {
+    hasDetected = true;
+    if (!is_browser_isBrowser)
+        return;
+    if (window.matchMedia) {
+        var motionMediaQuery_1 = window.matchMedia("(prefers-reduced-motion)");
+        var setReducedMotionPreferences = function () {
+            return (prefersReducedMotion.current = motionMediaQuery_1.matches);
+        };
+        motionMediaQuery_1.addListener(setReducedMotionPreferences);
+        setReducedMotionPreferences();
+    }
+    else {
+        prefersReducedMotion.current = false;
+    }
+}
+/**
+ * A hook that returns `true` if we should be using reduced motion based on the current device's Reduced Motion setting.
+ *
+ * This can be used to implement changes to your UI based on Reduced Motion. For instance, replacing motion-sickness inducing
+ * `x`/`y` animations with `opacity`, disabling the autoplay of background videos, or turning off parallax motion.
+ *
+ * It will actively respond to changes and re-render your components with the latest setting.
+ *
+ * ```jsx
+ * export function Sidebar({ isOpen }) {
+ *   const shouldReduceMotion = useReducedMotion()
+ *   const closedX = shouldReduceMotion ? 0 : "-100%"
+ *
+ *   return (
+ *     <motion.div animate={{
+ *       opacity: isOpen ? 1 : 0,
+ *       x: isOpen ? 0 : closedX
+ *     }} />
+ *   )
+ * }
+ * ```
+ *
+ * @return boolean
+ *
+ * @public
+ */
+function useReducedMotion() {
+    /**
+     * Lazy initialisation of prefersReducedMotion
+     */
+    !hasDetected && initPrefersReducedMotion();
+    var _a = tslib_es6_read((0,external_React_.useState)(prefersReducedMotion.current), 1), shouldReduceMotion = _a[0];
+    /**
+     * TODO See if people miss automatically updating shouldReduceMotion setting
+     */
+    return shouldReduceMotion;
+}
+function useReducedMotionConfig() {
+    var reducedMotionPreference = useReducedMotion();
+    var reducedMotion = (0,external_React_.useContext)(MotionConfigContext).reducedMotion;
+    if (reducedMotion === "never") {
+        return false;
+    }
+    else if (reducedMotion === "always") {
+        return true;
+    }
+    else {
+        return reducedMotionPreference;
+    }
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs
+
+
+
+
+
+
+
+function useVisualElement(Component, visualState, props, createVisualElement) {
+    var lazyContext = (0,external_React_.useContext)(LazyContext);
+    var parent = useVisualElementContext();
+    var presenceContext = (0,external_React_.useContext)(PresenceContext_PresenceContext);
+    var shouldReduceMotion = useReducedMotionConfig();
+    var visualElementRef = (0,external_React_.useRef)(undefined);
+    /**
+     * If we haven't preloaded a renderer, check to see if we have one lazy-loaded
+     */
+    if (!createVisualElement)
+        createVisualElement = lazyContext.renderer;
+    if (!visualElementRef.current && createVisualElement) {
+        visualElementRef.current = createVisualElement(Component, {
+            visualState: visualState,
+            parent: parent,
+            props: props,
+            presenceId: presenceContext === null || presenceContext === void 0 ? void 0 : presenceContext.id,
+            blockInitialAnimation: (presenceContext === null || presenceContext === void 0 ? void 0 : presenceContext.initial) === false,
+            shouldReduceMotion: shouldReduceMotion,
+        });
+    }
+    var visualElement = visualElementRef.current;
+    useIsomorphicLayoutEffect(function () {
+        visualElement === null || visualElement === void 0 ? void 0 : visualElement.syncRender();
+    });
+    (0,external_React_.useEffect)(function () {
+        var _a;
+        (_a = visualElement === null || visualElement === void 0 ? void 0 : visualElement.animationState) === null || _a === void 0 ? void 0 : _a.animateChanges();
+    });
+    useIsomorphicLayoutEffect(function () { return function () { return visualElement === null || visualElement === void 0 ? void 0 : visualElement.notifyUnmount(); }; }, []);
+    return visualElement;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/utils/is-ref-object.mjs
+function is_ref_object_isRefObject(ref) {
+    return (typeof ref === "object" &&
+        Object.prototype.hasOwnProperty.call(ref, "current"));
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs
+
+
+
+/**
+ * Creates a ref function that, when called, hydrates the provided
+ * external ref and VisualElement.
+ */
+function useMotionRef(visualState, visualElement, externalRef) {
+    return (0,external_React_.useCallback)(function (instance) {
+        var _a;
+        instance && ((_a = visualState.mount) === null || _a === void 0 ? void 0 : _a.call(visualState, instance));
+        if (visualElement) {
+            instance
+                ? visualElement.mount(instance)
+                : visualElement.unmount();
+        }
+        if (externalRef) {
+            if (typeof externalRef === "function") {
+                externalRef(instance);
+            }
+            else if (is_ref_object_isRefObject(externalRef)) {
+                externalRef.current = instance;
+            }
+        }
+    }, 
+    /**
+     * Only pass a new ref callback to React if we've received a visual element
+     * factory. Otherwise we'll be mounting/remounting every time externalRef
+     * or other dependencies change.
+     */
+    [visualElement]);
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/utils/variants.mjs
+/**
+ * Decides if the supplied variable is an array of variant labels
+ */
+function isVariantLabels(v) {
+    return Array.isArray(v);
+}
+/**
+ * Decides if the supplied variable is variant label
+ */
+function isVariantLabel(v) {
+    return typeof v === "string" || isVariantLabels(v);
+}
+/**
+ * Creates an object containing the latest state of every MotionValue on a VisualElement
+ */
+function getCurrent(visualElement) {
+    var current = {};
+    visualElement.forEachValue(function (value, key) { return (current[key] = value.get()); });
+    return current;
+}
+/**
+ * Creates an object containing the latest velocity of every MotionValue on a VisualElement
+ */
+function getVelocity(visualElement) {
+    var velocity = {};
+    visualElement.forEachValue(function (value, key) { return (velocity[key] = value.getVelocity()); });
+    return velocity;
+}
+function resolveVariantFromProps(props, definition, custom, currentValues, currentVelocity) {
+    var _a;
+    if (currentValues === void 0) { currentValues = {}; }
+    if (currentVelocity === void 0) { currentVelocity = {}; }
+    /**
+     * If the variant definition is a function, resolve.
+     */
+    if (typeof definition === "function") {
+        definition = definition(custom !== null && custom !== void 0 ? custom : props.custom, currentValues, currentVelocity);
+    }
+    /**
+     * If the variant definition is a variant label, or
+     * the function returned a variant label, resolve.
+     */
+    if (typeof definition === "string") {
+        definition = (_a = props.variants) === null || _a === void 0 ? void 0 : _a[definition];
+    }
+    /**
+     * At this point we've resolved both functions and variant labels,
+     * but the resolved variant label might itself have been a function.
+     * If so, resolve. This can only have returned a valid target object.
+     */
+    if (typeof definition === "function") {
+        definition = definition(custom !== null && custom !== void 0 ? custom : props.custom, currentValues, currentVelocity);
+    }
+    return definition;
+}
+function resolveVariant(visualElement, definition, custom) {
+    var props = visualElement.getProps();
+    return resolveVariantFromProps(props, definition, custom !== null && custom !== void 0 ? custom : props.custom, getCurrent(visualElement), getVelocity(visualElement));
+}
+function checkIfControllingVariants(props) {
+    var _a;
+    return (typeof ((_a = props.animate) === null || _a === void 0 ? void 0 : _a.start) === "function" ||
+        isVariantLabel(props.initial) ||
+        isVariantLabel(props.animate) ||
+        isVariantLabel(props.whileHover) ||
+        isVariantLabel(props.whileDrag) ||
+        isVariantLabel(props.whileTap) ||
+        isVariantLabel(props.whileFocus) ||
+        isVariantLabel(props.exit));
+}
+function checkIfVariantNode(props) {
+    return Boolean(checkIfControllingVariants(props) || props.variants);
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs
+
+
+function getCurrentTreeVariants(props, context) {
+    if (checkIfControllingVariants(props)) {
+        var initial = props.initial, animate = props.animate;
+        return {
+            initial: initial === false || isVariantLabel(initial)
+                ? initial
+                : undefined,
+            animate: isVariantLabel(animate) ? animate : undefined,
+        };
+    }
+    return props.inherit !== false ? context : {};
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/context/MotionContext/create.mjs
+
+
+
+
+function useCreateMotionContext(props) {
+    var _a = getCurrentTreeVariants(props, (0,external_React_.useContext)(MotionContext)), initial = _a.initial, animate = _a.animate;
+    return (0,external_React_.useMemo)(function () { return ({ initial: initial, animate: animate }); }, [variantLabelsAsDependency(initial), variantLabelsAsDependency(animate)]);
+}
+function variantLabelsAsDependency(prop) {
+    return Array.isArray(prop) ? prop.join(" ") : prop;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/utils/use-constant.mjs
+
+
+/**
+ * Creates a constant value over the lifecycle of a component.
+ *
+ * Even if `useMemo` is provided an empty array as its final argument, it doesn't offer
+ * a guarantee that it won't re-run for performance reasons later on. By using `useConstant`
+ * you can ensure that initialisers don't execute twice or more.
+ */
+function useConstant(init) {
+    var ref = (0,external_React_.useRef)(null);
+    if (ref.current === null) {
+        ref.current = init();
+    }
+    return ref.current;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/projection/node/state.mjs
+/**
+ * This should only ever be modified on the client otherwise it'll
+ * persist through server requests. If we need instanced states we
+ * could lazy-init via root.
+ */
+var globalProjectionState = {
+    /**
+     * Global flag as to whether the tree has animated since the last time
+     * we resized the window
+     */
+    hasAnimatedSinceResize: true,
+    /**
+     * We set this to true once, on the first update. Any nodes added to the tree beyond that
+     * update will be given a `data-projection-id` attribute.
+     */
+    hasEverUpdated: false,
+};
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/projection/node/id.mjs
+
+
+
+var id = 1;
+function useProjectionId() {
+    return useConstant(function () {
+        if (globalProjectionState.hasEverUpdated) {
+            return id++;
+        }
+    });
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs
+
+
+var LayoutGroupContext = (0,external_React_.createContext)({});
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs
+
+
+/**
+ * Internal, exported only for usage in Framer
+ */
+var SwitchLayoutGroupContext = (0,external_React_.createContext)({});
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/motion/features/use-projection.mjs
+
+
+
+
+function useProjection(projectionId, _a, visualElement, ProjectionNodeConstructor) {
+    var _b;
+    var layoutId = _a.layoutId, layout = _a.layout, drag = _a.drag, dragConstraints = _a.dragConstraints, layoutScroll = _a.layoutScroll;
+    var initialPromotionConfig = (0,external_React_.useContext)(SwitchLayoutGroupContext);
+    if (!ProjectionNodeConstructor ||
+        !visualElement ||
+        (visualElement === null || visualElement === void 0 ? void 0 : visualElement.projection)) {
+        return;
+    }
+    visualElement.projection = new ProjectionNodeConstructor(projectionId, visualElement.getLatestValues(), (_b = visualElement.parent) === null || _b === void 0 ? void 0 : _b.projection);
+    visualElement.projection.setOptions({
+        layoutId: layoutId,
+        layout: layout,
+        alwaysMeasureLayout: Boolean(drag) || (dragConstraints && is_ref_object_isRefObject(dragConstraints)),
+        visualElement: visualElement,
+        scheduleRender: function () { return visualElement.scheduleRender(); },
+        /**
+         * TODO: Update options in an effect. This could be tricky as it'll be too late
+         * to update by the time layout animations run.
+         * We also need to fix this safeToRemove by linking it up to the one returned by usePresence,
+         * ensuring it gets called if there's no potential layout animations.
+         *
+         */
+        animationType: typeof layout === "string" ? layout : "both",
+        initialPromotionConfig: initialPromotionConfig,
+        layoutScroll: layoutScroll,
+    });
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/motion/utils/VisualElementHandler.mjs
+
+
+
+var VisualElementHandler = /** @class */ (function (_super) {
+    __extends(VisualElementHandler, _super);
+    function VisualElementHandler() {
+        return _super !== null && _super.apply(this, arguments) || this;
+    }
+    /**
+     * Update visual element props as soon as we know this update is going to be commited.
+     */
+    VisualElementHandler.prototype.getSnapshotBeforeUpdate = function () {
+        this.updateProps();
+        return null;
+    };
+    VisualElementHandler.prototype.componentDidUpdate = function () { };
+    VisualElementHandler.prototype.updateProps = function () {
+        var _a = this.props, visualElement = _a.visualElement, props = _a.props;
+        if (visualElement)
+            visualElement.setProps(props);
+    };
+    VisualElementHandler.prototype.render = function () {
+        return this.props.children;
+    };
+    return VisualElementHandler;
+}(external_React_.Component));
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/motion/index.mjs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/**
+ * Create a `motion` component.
+ *
+ * This function accepts a Component argument, which can be either a string (ie "div"
+ * for `motion.div`), or an actual React component.
+ *
+ * Alongside this is a config option which provides a way of rendering the provided
+ * component "offline", or outside the React render cycle.
+ */
+function motion_createMotionComponent(_a) {
+    var preloadedFeatures = _a.preloadedFeatures, createVisualElement = _a.createVisualElement, projectionNodeConstructor = _a.projectionNodeConstructor, useRender = _a.useRender, useVisualState = _a.useVisualState, Component = _a.Component;
+    preloadedFeatures && loadFeatures(preloadedFeatures);
+    function MotionComponent(props, externalRef) {
+        var layoutId = useLayoutId(props);
+        props = __assign(__assign({}, props), { layoutId: layoutId });
+        /**
+         * If we're rendering in a static environment, we only visually update the component
+         * as a result of a React-rerender rather than interactions or animations. This
+         * means we don't need to load additional memory structures like VisualElement,
+         * or any gesture/animation features.
+         */
+        var config = (0,external_React_.useContext)(MotionConfigContext);
+        var features = null;
+        var context = useCreateMotionContext(props);
+        /**
+         * Create a unique projection ID for this component. If a new component is added
+         * during a layout animation we'll use this to query the DOM and hydrate its ref early, allowing
+         * us to measure it as soon as any layout effect flushes pending layout animations.
+         *
+         * Performance note: It'd be better not to have to search the DOM for these elements.
+         * For newly-entering components it could be enough to only correct treeScale, in which
+         * case we could mount in a scale-correction mode. This wouldn't be enough for
+         * shared element transitions however. Perhaps for those we could revert to a root node
+         * that gets forceRendered and layout animations are triggered on its layout effect.
+         */
+        var projectionId = config.isStatic ? undefined : useProjectionId();
+        /**
+         *
+         */
+        var visualState = useVisualState(props, config.isStatic);
+        if (!config.isStatic && is_browser_isBrowser) {
+            /**
+             * Create a VisualElement for this component. A VisualElement provides a common
+             * interface to renderer-specific APIs (ie DOM/Three.js etc) as well as
+             * providing a way of rendering to these APIs outside of the React render loop
+             * for more performant animations and interactions
+             */
+            context.visualElement = useVisualElement(Component, visualState, __assign(__assign({}, config), props), createVisualElement);
+            useProjection(projectionId, props, context.visualElement, projectionNodeConstructor ||
+                featureDefinitions.projectionNodeConstructor);
+            /**
+             * Load Motion gesture and animation features. These are rendered as renderless
+             * components so each feature can optionally make use of React lifecycle methods.
+             */
+            features = useFeatures(props, context.visualElement, preloadedFeatures);
+        }
+        /**
+         * The mount order and hierarchy is specific to ensure our element ref
+         * is hydrated by the time features fire their effects.
+         */
+        return (external_React_.createElement(VisualElementHandler, { visualElement: context.visualElement, props: __assign(__assign({}, config), props) },
+            features,
+            external_React_.createElement(MotionContext.Provider, { value: context }, useRender(Component, props, projectionId, useMotionRef(visualState, context.visualElement, externalRef), visualState, config.isStatic, context.visualElement))));
+    }
+    return (0,external_React_.forwardRef)(MotionComponent);
+}
+function useLayoutId(_a) {
+    var _b;
+    var layoutId = _a.layoutId;
+    var layoutGroupId = (_b = (0,external_React_.useContext)(LayoutGroupContext)) === null || _b === void 0 ? void 0 : _b.id;
+    return layoutGroupId && layoutId !== undefined
+        ? layoutGroupId + "-" + layoutId
+        : layoutId;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/dom/motion-proxy.mjs
+
+
+/**
+ * Convert any React component into a `motion` component. The provided component
+ * **must** use `React.forwardRef` to the underlying DOM component you want to animate.
+ *
+ * ```jsx
+ * const Component = React.forwardRef((props, ref) => {
+ *   return <div ref={ref} />
+ * })
+ *
+ * const MotionComponent = motion(Component)
+ * ```
+ *
+ * @public
+ */
+function createMotionProxy(createConfig) {
+    function custom(Component, customMotionComponentConfig) {
+        if (customMotionComponentConfig === void 0) { customMotionComponentConfig = {}; }
+        return motion_createMotionComponent(createConfig(Component, customMotionComponentConfig));
+    }
+    if (typeof Proxy === "undefined") {
+        return custom;
+    }
+    /**
+     * A cache of generated `motion` components, e.g `motion.div`, `motion.input` etc.
+     * Rather than generating them anew every render.
+     */
+    var componentCache = new Map();
+    return new Proxy(custom, {
+        /**
+         * Called when `motion` is referenced with a prop: `motion.div`, `motion.input` etc.
+         * The prop name is passed through as `key` and we can use that to generate a `motion`
+         * DOM component with that name.
+         */
+        get: function (_target, key) {
+            /**
+             * If this element doesn't exist in the component cache, create it and cache.
+             */
+            if (!componentCache.has(key)) {
+                componentCache.set(key, custom(key));
+            }
+            return componentCache.get(key);
+        },
+    });
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs
+/**
+ * We keep these listed seperately as we use the lowercase tag names as part
+ * of the runtime bundle to detect SVG components
+ */
+var lowercaseSVGElements = [
+    "animate",
+    "circle",
+    "defs",
+    "desc",
+    "ellipse",
+    "g",
+    "image",
+    "line",
+    "filter",
+    "marker",
+    "mask",
+    "metadata",
+    "path",
+    "pattern",
+    "polygon",
+    "polyline",
+    "rect",
+    "stop",
+    "svg",
+    "switch",
+    "symbol",
+    "text",
+    "tspan",
+    "use",
+    "view",
+];
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs
+
+
+function isSVGComponent(Component) {
+    if (
+    /**
+     * If it's not a string, it's a custom React component. Currently we only support
+     * HTML custom React components.
+     */
+    typeof Component !== "string" ||
+        /**
+         * If it contains a dash, the element is a custom HTML webcomponent.
+         */
+        Component.includes("-")) {
+        return false;
+    }
+    else if (
+    /**
+     * If it's in our list of lowercase SVG tags, it's an SVG component
+     */
+    lowercaseSVGElements.indexOf(Component) > -1 ||
+        /**
+         * If it contains a capital letter, it's an SVG component
+         */
+        /[A-Z]/.test(Component)) {
+        return true;
+    }
+    return false;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/projection/styles/scale-correction.mjs
+var scaleCorrectors = {};
+function addScaleCorrector(correctors) {
+    Object.assign(scaleCorrectors, correctors);
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/html/utils/transform.mjs
+/**
+ * A list of all transformable axes. We'll use this list to generated a version
+ * of each axes for each transform.
+ */
+var transformAxes = ["", "X", "Y", "Z"];
+/**
+ * An ordered array of each transformable value. By default, transform values
+ * will be sorted to this order.
+ */
+var order = ["translate", "scale", "rotate", "skew"];
+/**
+ * Generate a list of every possible transform key.
+ */
+var transformProps = ["transformPerspective", "x", "y", "z"];
+order.forEach(function (operationKey) {
+    return transformAxes.forEach(function (axesKey) {
+        return transformProps.push(operationKey + axesKey);
+    });
+});
+/**
+ * A function to use with Array.sort to sort transform keys by their default order.
+ */
+function sortTransformProps(a, b) {
+    return transformProps.indexOf(a) - transformProps.indexOf(b);
+}
+/**
+ * A quick lookup for transform props.
+ */
+var transformPropSet = new Set(transformProps);
+function isTransformProp(key) {
+    return transformPropSet.has(key);
+}
+/**
+ * A quick lookup for transform origin props
+ */
+var transformOriginProps = new Set(["originX", "originY", "originZ"]);
+function isTransformOriginProp(key) {
+    return transformOriginProps.has(key);
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs
+
+
+
+function isForcedMotionValue(key, _a) {
+    var layout = _a.layout, layoutId = _a.layoutId;
+    return (isTransformProp(key) ||
+        isTransformOriginProp(key) ||
+        ((layout || layoutId !== undefined) &&
+            (!!scaleCorrectors[key] || key === "opacity")));
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/value/utils/is-motion-value.mjs
+var isMotionValue = function (value) {
+    return Boolean(value !== null && typeof value === "object" && value.getVelocity);
+};
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/html/utils/build-transform.mjs
+
+
+var translateAlias = {
+    x: "translateX",
+    y: "translateY",
+    z: "translateZ",
+    transformPerspective: "perspective",
+};
+/**
+ * Build a CSS transform style from individual x/y/scale etc properties.
+ *
+ * This outputs with a default order of transforms/scales/rotations, this can be customised by
+ * providing a transformTemplate function.
+ */
+function buildTransform(_a, _b, transformIsDefault, transformTemplate) {
+    var transform = _a.transform, transformKeys = _a.transformKeys;
+    var _c = _b.enableHardwareAcceleration, enableHardwareAcceleration = _c === void 0 ? true : _c, _d = _b.allowTransformNone, allowTransformNone = _d === void 0 ? true : _d;
+    // The transform string we're going to build into.
+    var transformString = "";
+    // Transform keys into their default order - this will determine the output order.
+    transformKeys.sort(sortTransformProps);
+    // Track whether the defined transform has a defined z so we don't add a
+    // second to enable hardware acceleration
+    var transformHasZ = false;
+    // Loop over each transform and build them into transformString
+    var numTransformKeys = transformKeys.length;
+    for (var i = 0; i < numTransformKeys; i++) {
+        var key = transformKeys[i];
+        transformString += "".concat(translateAlias[key] || key, "(").concat(transform[key], ") ");
+        if (key === "z")
+            transformHasZ = true;
+    }
+    if (!transformHasZ && enableHardwareAcceleration) {
+        transformString += "translateZ(0)";
+    }
+    else {
+        transformString = transformString.trim();
+    }
+    // If we have a custom `transform` template, pass our transform values and
+    // generated transformString to that before returning
+    if (transformTemplate) {
+        transformString = transformTemplate(transform, transformIsDefault ? "" : transformString);
+    }
+    else if (allowTransformNone && transformIsDefault) {
+        transformString = "none";
+    }
+    return transformString;
+}
+/**
+ * Build a transformOrigin style. Uses the same defaults as the browser for
+ * undefined origins.
+ */
+function buildTransformOrigin(_a) {
+    var _b = _a.originX, originX = _b === void 0 ? "50%" : _b, _c = _a.originY, originY = _c === void 0 ? "50%" : _c, _d = _a.originZ, originZ = _d === void 0 ? 0 : _d;
+    return "".concat(originX, " ").concat(originY, " ").concat(originZ);
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/dom/utils/is-css-variable.mjs
+/**
+ * Returns true if the provided key is a CSS variable
+ */
+function isCSSVariable(key) {
+    return key.startsWith("--");
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/dom/value-types/get-as-type.mjs
+/**
+ * Provided a value and a ValueType, returns the value as that value type.
+ */
+var getValueAsType = function (value, type) {
+    return type && typeof value === "number"
+        ? type.transform(value)
+        : value;
+};
+
+
+
+;// CONCATENATED MODULE: ./node_modules/style-value-types/dist/es/utils.mjs
+const clamp = (min, max) => (v) => Math.max(Math.min(v, max), min);
+const sanitize = (v) => (v % 1 ? Number(v.toFixed(5)) : v);
+const floatRegex = /(-)?([\d]*\.?[\d])+/g;
+const colorRegex = /(#[0-9a-f]{6}|#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2,3}\s*\/*\s*[\d\.]+%?\))/gi;
+const singleColorRegex = /^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2,3}\s*\/*\s*[\d\.]+%?\))$/i;
+function isString(v) {
+    return typeof v === 'string';
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/style-value-types/dist/es/numbers/units.mjs
+
+
+const createUnitType = (unit) => ({
+    test: (v) => isString(v) && v.endsWith(unit) && v.split(' ').length === 1,
+    parse: parseFloat,
+    transform: (v) => `${v}${unit}`,
+});
+const degrees = createUnitType('deg');
+const percent = createUnitType('%');
+const px = createUnitType('px');
+const vh = createUnitType('vh');
+const vw = createUnitType('vw');
+const progressPercentage = Object.assign(Object.assign({}, percent), { parse: (v) => percent.parse(v) / 100, transform: (v) => percent.transform(v * 100) });
+
+
+
+;// CONCATENATED MODULE: ./node_modules/style-value-types/dist/es/numbers/index.mjs
+
+
+const number = {
+    test: (v) => typeof v === 'number',
+    parse: parseFloat,
+    transform: (v) => v,
+};
+const alpha = Object.assign(Object.assign({}, number), { transform: clamp(0, 1) });
+const scale = Object.assign(Object.assign({}, number), { default: 1 });
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/dom/value-types/type-int.mjs
+
+
+
+var type_int_int = __assign(__assign({}, number), { transform: Math.round });
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/dom/value-types/number.mjs
+
+
+
+var numberValueTypes = {
+    // Border props
+    borderWidth: px,
+    borderTopWidth: px,
+    borderRightWidth: px,
+    borderBottomWidth: px,
+    borderLeftWidth: px,
+    borderRadius: px,
+    radius: px,
+    borderTopLeftRadius: px,
+    borderTopRightRadius: px,
+    borderBottomRightRadius: px,
+    borderBottomLeftRadius: px,
+    // Positioning props
+    width: px,
+    maxWidth: px,
+    height: px,
+    maxHeight: px,
+    size: px,
+    top: px,
+    right: px,
+    bottom: px,
+    left: px,
+    // Spacing props
+    padding: px,
+    paddingTop: px,
+    paddingRight: px,
+    paddingBottom: px,
+    paddingLeft: px,
+    margin: px,
+    marginTop: px,
+    marginRight: px,
+    marginBottom: px,
+    marginLeft: px,
+    // Transform props
+    rotate: degrees,
+    rotateX: degrees,
+    rotateY: degrees,
+    rotateZ: degrees,
+    scale: scale,
+    scaleX: scale,
+    scaleY: scale,
+    scaleZ: scale,
+    skew: degrees,
+    skewX: degrees,
+    skewY: degrees,
+    distance: px,
+    translateX: px,
+    translateY: px,
+    translateZ: px,
+    x: px,
+    y: px,
+    z: px,
+    perspective: px,
+    transformPerspective: px,
+    opacity: alpha,
+    originX: progressPercentage,
+    originY: progressPercentage,
+    originZ: px,
+    // Misc
+    zIndex: type_int_int,
+    // SVG
+    fillOpacity: alpha,
+    strokeOpacity: alpha,
+    numOctaves: type_int_int,
+};
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/html/utils/build-styles.mjs
+
+
+
+
+
+
+function buildHTMLStyles(state, latestValues, options, transformTemplate) {
+    var _a;
+    var style = state.style, vars = state.vars, transform = state.transform, transformKeys = state.transformKeys, transformOrigin = state.transformOrigin;
+    // Empty the transformKeys array. As we're throwing out refs to its items
+    // this might not be as cheap as suspected. Maybe using the array as a buffer
+    // with a manual incrementation would be better.
+    transformKeys.length = 0;
+    // Track whether we encounter any transform or transformOrigin values.
+    var hasTransform = false;
+    var hasTransformOrigin = false;
+    // Does the calculated transform essentially equal "none"?
+    var transformIsNone = true;
+    /**
+     * Loop over all our latest animated values and decide whether to handle them
+     * as a style or CSS variable.
+     *
+     * Transforms and transform origins are kept seperately for further processing.
+     */
+    for (var key in latestValues) {
+        var value = latestValues[key];
+        /**
+         * If this is a CSS variable we don't do any further processing.
+         */
+        if (isCSSVariable(key)) {
+            vars[key] = value;
+            continue;
+        }
+        // Convert the value to its default value type, ie 0 -> "0px"
+        var valueType = numberValueTypes[key];
+        var valueAsType = getValueAsType(value, valueType);
+        if (isTransformProp(key)) {
+            // If this is a transform, flag to enable further transform processing
+            hasTransform = true;
+            transform[key] = valueAsType;
+            transformKeys.push(key);
+            // If we already know we have a non-default transform, early return
+            if (!transformIsNone)
+                continue;
+            // Otherwise check to see if this is a default transform
+            if (value !== ((_a = valueType.default) !== null && _a !== void 0 ? _a : 0))
+                transformIsNone = false;
+        }
+        else if (isTransformOriginProp(key)) {
+            transformOrigin[key] = valueAsType;
+            // If this is a transform origin, flag and enable further transform-origin processing
+            hasTransformOrigin = true;
+        }
+        else {
+            style[key] = valueAsType;
+        }
+    }
+    if (hasTransform) {
+        style.transform = buildTransform(state, options, transformIsNone, transformTemplate);
+    }
+    else if (transformTemplate) {
+        style.transform = transformTemplate({}, "");
+    }
+    else if (!latestValues.transform && style.transform) {
+        style.transform = "none";
+    }
+    if (hasTransformOrigin) {
+        style.transformOrigin = buildTransformOrigin(transformOrigin);
+    }
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs
+var createHtmlRenderState = function () { return ({
+    style: {},
+    transform: {},
+    transformKeys: [],
+    transformOrigin: {},
+    vars: {},
+}); };
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/html/use-props.mjs
+
+
+
+
+
+
+
+function copyRawValuesOnly(target, source, props) {
+    for (var key in source) {
+        if (!isMotionValue(source[key]) && !isForcedMotionValue(key, props)) {
+            target[key] = source[key];
+        }
+    }
+}
+function useInitialMotionValues(_a, visualState, isStatic) {
+    var transformTemplate = _a.transformTemplate;
+    return (0,external_React_.useMemo)(function () {
+        var state = createHtmlRenderState();
+        buildHTMLStyles(state, visualState, { enableHardwareAcceleration: !isStatic }, transformTemplate);
+        var vars = state.vars, style = state.style;
+        return __assign(__assign({}, vars), style);
+    }, [visualState]);
+}
+function useStyle(props, visualState, isStatic) {
+    var styleProp = props.style || {};
+    var style = {};
+    /**
+     * Copy non-Motion Values straight into style
+     */
+    copyRawValuesOnly(style, styleProp, props);
+    Object.assign(style, useInitialMotionValues(props, visualState, isStatic));
+    if (props.transformValues) {
+        style = props.transformValues(style);
+    }
+    return style;
+}
+function useHTMLProps(props, visualState, isStatic) {
+    // The `any` isn't ideal but it is the type of createElement props argument
+    var htmlProps = {};
+    var style = useStyle(props, visualState, isStatic);
+    if (Boolean(props.drag) && props.dragListener !== false) {
+        // Disable the ghost element when a user drags
+        htmlProps.draggable = false;
+        // Disable text selection
+        style.userSelect =
+            style.WebkitUserSelect =
+                style.WebkitTouchCallout =
+                    "none";
+        // Disable scrolling on the draggable direction
+        style.touchAction =
+            props.drag === true
+                ? "none"
+                : "pan-".concat(props.drag === "x" ? "y" : "x");
+    }
+    htmlProps.style = style;
+    return htmlProps;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs
+/**
+ * A list of all valid MotionProps.
+ *
+ * @privateRemarks
+ * This doesn't throw if a `MotionProp` name is missing - it should.
+ */
+var validMotionProps = new Set([
+    "initial",
+    "animate",
+    "exit",
+    "style",
+    "variants",
+    "transition",
+    "transformTemplate",
+    "transformValues",
+    "custom",
+    "inherit",
+    "layout",
+    "layoutId",
+    "layoutDependency",
+    "onLayoutAnimationStart",
+    "onLayoutAnimationComplete",
+    "onLayoutMeasure",
+    "onBeforeLayoutMeasure",
+    "onAnimationStart",
+    "onAnimationComplete",
+    "onUpdate",
+    "onDragStart",
+    "onDrag",
+    "onDragEnd",
+    "onMeasureDragConstraints",
+    "onDirectionLock",
+    "onDragTransitionEnd",
+    "drag",
+    "dragControls",
+    "dragListener",
+    "dragConstraints",
+    "dragDirectionLock",
+    "dragSnapToOrigin",
+    "_dragX",
+    "_dragY",
+    "dragElastic",
+    "dragMomentum",
+    "dragPropagation",
+    "dragTransition",
+    "whileDrag",
+    "onPan",
+    "onPanStart",
+    "onPanEnd",
+    "onPanSessionStart",
+    "onTap",
+    "onTapStart",
+    "onTapCancel",
+    "onHoverStart",
+    "onHoverEnd",
+    "whileFocus",
+    "whileTap",
+    "whileHover",
+    "whileInView",
+    "onViewportEnter",
+    "onViewportLeave",
+    "viewport",
+    "layoutScroll",
+]);
+/**
+ * Check whether a prop name is a valid `MotionProp` key.
+ *
+ * @param key - Name of the property to check
+ * @returns `true` is key is a valid `MotionProp`.
+ *
+ * @public
+ */
+function isValidMotionProp(key) {
+    return validMotionProps.has(key);
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs
+
+
+var shouldForward = function (key) { return !isValidMotionProp(key); };
+function loadExternalIsValidProp(isValidProp) {
+    if (!isValidProp)
+        return;
+    // Explicitly filter our events
+    shouldForward = function (key) {
+        return key.startsWith("on") ? !isValidMotionProp(key) : isValidProp(key);
+    };
+}
+/**
+ * Emotion and Styled Components both allow users to pass through arbitrary props to their components
+ * to dynamically generate CSS. They both use the `@emotion/is-prop-valid` package to determine which
+ * of these should be passed to the underlying DOM node.
+ *
+ * However, when styling a Motion component `styled(motion.div)`, both packages pass through *all* props
+ * as it's seen as an arbitrary component rather than a DOM node. Motion only allows arbitrary props
+ * passed through the `custom` prop so it doesn't *need* the payload or computational overhead of
+ * `@emotion/is-prop-valid`, however to fix this problem we need to use it.
+ *
+ * By making it an optionalDependency we can offer this functionality only in the situations where it's
+ * actually required.
+ */
+try {
+    /**
+     * We attempt to import this package but require won't be defined in esm environments, in that case
+     * isPropValid will have to be provided via `MotionContext`. In a 6.0.0 this should probably be removed
+     * in favour of explicit injection.
+     */
+    loadExternalIsValidProp(require("@emotion/is-prop-valid").default);
+}
+catch (_a) {
+    // We don't need to actually do anything here - the fallback is the existing `isPropValid`.
+}
+function filterProps(props, isDom, forwardMotionProps) {
+    var filteredProps = {};
+    for (var key in props) {
+        if (shouldForward(key) ||
+            (forwardMotionProps === true && isValidMotionProp(key)) ||
+            (!isDom && !isValidMotionProp(key)) ||
+            // If trying to use native HTML drag events, forward drag listeners
+            (props["draggable"] && key.startsWith("onDrag"))) {
+            filteredProps[key] = props[key];
+        }
+    }
+    return filteredProps;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/svg/utils/transform-origin.mjs
+
+
+function calcOrigin(origin, offset, size) {
+    return typeof origin === "string"
+        ? origin
+        : px.transform(offset + size * origin);
+}
+/**
+ * The SVG transform origin defaults are different to CSS and is less intuitive,
+ * so we use the measured dimensions of the SVG to reconcile these.
+ */
+function calcSVGTransformOrigin(dimensions, originX, originY) {
+    var pxOriginX = calcOrigin(originX, dimensions.x, dimensions.width);
+    var pxOriginY = calcOrigin(originY, dimensions.y, dimensions.height);
+    return "".concat(pxOriginX, " ").concat(pxOriginY);
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/svg/utils/path.mjs
+
+
+var dashKeys = {
+    offset: "stroke-dashoffset",
+    array: "stroke-dasharray",
+};
+var camelKeys = {
+    offset: "strokeDashoffset",
+    array: "strokeDasharray",
+};
+/**
+ * Build SVG path properties. Uses the path's measured length to convert
+ * our custom pathLength, pathSpacing and pathOffset into stroke-dashoffset
+ * and stroke-dasharray attributes.
+ *
+ * This function is mutative to reduce per-frame GC.
+ */
+function buildSVGPath(attrs, length, spacing, offset, useDashCase) {
+    if (spacing === void 0) { spacing = 1; }
+    if (offset === void 0) { offset = 0; }
+    if (useDashCase === void 0) { useDashCase = true; }
+    // Normalise path length by setting SVG attribute pathLength to 1
+    attrs.pathLength = 1;
+    // We use dash case when setting attributes directly to the DOM node and camel case
+    // when defining props on a React component.
+    var keys = useDashCase ? dashKeys : camelKeys;
+    // Build the dash offset
+    attrs[keys.offset] = px.transform(-offset);
+    // Build the dash array
+    var pathLength = px.transform(length);
+    var pathSpacing = px.transform(spacing);
+    attrs[keys.array] = "".concat(pathLength, " ").concat(pathSpacing);
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.mjs
+
+
+
+
+
+/**
+ * Build SVG visual attrbutes, like cx and style.transform
+ */
+function buildSVGAttrs(state, _a, options, transformTemplate) {
+    var attrX = _a.attrX, attrY = _a.attrY, originX = _a.originX, originY = _a.originY, pathLength = _a.pathLength, _b = _a.pathSpacing, pathSpacing = _b === void 0 ? 1 : _b, _c = _a.pathOffset, pathOffset = _c === void 0 ? 0 : _c, 
+    // This is object creation, which we try to avoid per-frame.
+    latest = __rest(_a, ["attrX", "attrY", "originX", "originY", "pathLength", "pathSpacing", "pathOffset"]);
+    buildHTMLStyles(state, latest, options, transformTemplate);
+    state.attrs = state.style;
+    state.style = {};
+    var attrs = state.attrs, style = state.style, dimensions = state.dimensions;
+    /**
+     * However, we apply transforms as CSS transforms. So if we detect a transform we take it from attrs
+     * and copy it into style.
+     */
+    if (attrs.transform) {
+        if (dimensions)
+            style.transform = attrs.transform;
+        delete attrs.transform;
+    }
+    // Parse transformOrigin
+    if (dimensions &&
+        (originX !== undefined || originY !== undefined || style.transform)) {
+        style.transformOrigin = calcSVGTransformOrigin(dimensions, originX !== undefined ? originX : 0.5, originY !== undefined ? originY : 0.5);
+    }
+    // Treat x/y not as shortcuts but as actual attributes
+    if (attrX !== undefined)
+        attrs.x = attrX;
+    if (attrY !== undefined)
+        attrs.y = attrY;
+    // Build SVG path if one has been defined
+    if (pathLength !== undefined) {
+        buildSVGPath(attrs, pathLength, pathSpacing, pathOffset, false);
+    }
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs
+
+
+
+var createSvgRenderState = function () { return (__assign(__assign({}, createHtmlRenderState()), { attrs: {} })); };
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/svg/use-props.mjs
+
+
+
+
+
+
+function useSVGProps(props, visualState) {
+    var visualProps = (0,external_React_.useMemo)(function () {
+        var state = createSvgRenderState();
+        buildSVGAttrs(state, visualState, { enableHardwareAcceleration: false }, props.transformTemplate);
+        return __assign(__assign({}, state.attrs), { style: __assign({}, state.style) });
+    }, [visualState]);
+    if (props.style) {
+        var rawStyles = {};
+        copyRawValuesOnly(rawStyles, props.style, props);
+        visualProps.style = __assign(__assign({}, rawStyles), visualProps.style);
+    }
+    return visualProps;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/dom/use-render.mjs
+
+
+
+
+
+
+
+function createUseRender(forwardMotionProps) {
+    if (forwardMotionProps === void 0) { forwardMotionProps = false; }
+    var useRender = function (Component, props, projectionId, ref, _a, isStatic) {
+        var latestValues = _a.latestValues;
+        var useVisualProps = isSVGComponent(Component)
+            ? useSVGProps
+            : useHTMLProps;
+        var visualProps = useVisualProps(props, latestValues, isStatic);
+        var filteredProps = filterProps(props, typeof Component === "string", forwardMotionProps);
+        var elementProps = __assign(__assign(__assign({}, filteredProps), visualProps), { ref: ref });
+        if (projectionId) {
+            elementProps["data-projection-id"] = projectionId;
+        }
+        return (0,external_React_.createElement)(Component, elementProps);
+    };
+    return useRender;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs
+var CAMEL_CASE_PATTERN = /([a-z])([A-Z])/g;
+var REPLACE_TEMPLATE = "$1-$2";
+/**
+ * Convert camelCase to dash-case properties.
+ */
+var camelToDash = function (str) {
+    return str.replace(CAMEL_CASE_PATTERN, REPLACE_TEMPLATE).toLowerCase();
+};
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/html/utils/render.mjs
+function renderHTML(element, _a, styleProp, projection) {
+    var style = _a.style, vars = _a.vars;
+    Object.assign(element.style, style, projection && projection.getProjectionStyles(styleProp));
+    // Loop over any CSS variables and assign those.
+    for (var key in vars) {
+        element.style.setProperty(key, vars[key]);
+    }
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs
+/**
+ * A set of attribute names that are always read/written as camel case.
+ */
+var camelCaseAttributes = new Set([
+    "baseFrequency",
+    "diffuseConstant",
+    "kernelMatrix",
+    "kernelUnitLength",
+    "keySplines",
+    "keyTimes",
+    "limitingConeAngle",
+    "markerHeight",
+    "markerWidth",
+    "numOctaves",
+    "targetX",
+    "targetY",
+    "surfaceScale",
+    "specularConstant",
+    "specularExponent",
+    "stdDeviation",
+    "tableValues",
+    "viewBox",
+    "gradientTransform",
+    "pathLength",
+]);
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/svg/utils/render.mjs
+
+
+
+
+function renderSVG(element, renderState, _styleProp, projection) {
+    renderHTML(element, renderState, undefined, projection);
+    for (var key in renderState.attrs) {
+        element.setAttribute(!camelCaseAttributes.has(key) ? camelToDash(key) : key, renderState.attrs[key]);
+    }
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs
+
+
+
+function scrapeMotionValuesFromProps(props) {
+    var style = props.style;
+    var newValues = {};
+    for (var key in style) {
+        if (isMotionValue(style[key]) || isForcedMotionValue(key, props)) {
+            newValues[key] = style[key];
+        }
+    }
+    return newValues;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs
+
+
+
+function scrape_motion_values_scrapeMotionValuesFromProps(props) {
+    var newValues = scrapeMotionValuesFromProps(props);
+    for (var key in props) {
+        if (isMotionValue(props[key])) {
+            var targetKey = key === "x" || key === "y" ? "attr" + key.toUpperCase() : key;
+            newValues[targetKey] = props[key];
+        }
+    }
+    return newValues;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs
+function isAnimationControls(v) {
+    return typeof v === "object" && typeof v.start === "function";
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs
+var isKeyframesTarget = function (v) {
+    return Array.isArray(v);
+};
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/utils/resolve-value.mjs
+
+
+var isCustomValue = function (v) {
+    return Boolean(v && typeof v === "object" && v.mix && v.toValue);
+};
+var resolveFinalValueInKeyframes = function (v) {
+    // TODO maybe throw if v.length - 1 is placeholder token?
+    return isKeyframesTarget(v) ? v[v.length - 1] || 0 : v;
+};
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/value/utils/resolve-motion-value.mjs
+
+
+
+/**
+ * If the provided value is a MotionValue, this returns the actual value, otherwise just the value itself
+ *
+ * TODO: Remove and move to library
+ */
+function resolveMotionValue(value) {
+    var unwrappedValue = isMotionValue(value) ? value.get() : value;
+    return isCustomValue(unwrappedValue)
+        ? unwrappedValue.toValue()
+        : unwrappedValue;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs
+
+
+
+
+
+
+
+
+
+function makeState(_a, props, context, presenceContext) {
+    var scrapeMotionValuesFromProps = _a.scrapeMotionValuesFromProps, createRenderState = _a.createRenderState, onMount = _a.onMount;
+    var state = {
+        latestValues: makeLatestValues(props, context, presenceContext, scrapeMotionValuesFromProps),
+        renderState: createRenderState(),
+    };
+    if (onMount) {
+        state.mount = function (instance) { return onMount(props, instance, state); };
+    }
+    return state;
+}
+var makeUseVisualState = function (config) {
+    return function (props, isStatic) {
+        var context = (0,external_React_.useContext)(MotionContext);
+        var presenceContext = (0,external_React_.useContext)(PresenceContext_PresenceContext);
+        return isStatic
+            ? makeState(config, props, context, presenceContext)
+            : useConstant(function () {
+                return makeState(config, props, context, presenceContext);
+            });
+    };
+};
+function makeLatestValues(props, context, presenceContext, scrapeMotionValues) {
+    var values = {};
+    var blockInitialAnimation = (presenceContext === null || presenceContext === void 0 ? void 0 : presenceContext.initial) === false;
+    var motionValues = scrapeMotionValues(props);
+    for (var key in motionValues) {
+        values[key] = resolveMotionValue(motionValues[key]);
+    }
+    var initial = props.initial, animate = props.animate;
+    var isControllingVariants = checkIfControllingVariants(props);
+    var isVariantNode = checkIfVariantNode(props);
+    if (context &&
+        isVariantNode &&
+        !isControllingVariants &&
+        props.inherit !== false) {
+        initial !== null && initial !== void 0 ? initial : (initial = context.initial);
+        animate !== null && animate !== void 0 ? animate : (animate = context.animate);
+    }
+    var initialAnimationIsBlocked = blockInitialAnimation || initial === false;
+    var variantToSet = initialAnimationIsBlocked ? animate : initial;
+    if (variantToSet &&
+        typeof variantToSet !== "boolean" &&
+        !isAnimationControls(variantToSet)) {
+        var list = Array.isArray(variantToSet) ? variantToSet : [variantToSet];
+        list.forEach(function (definition) {
+            var resolved = resolveVariantFromProps(props, definition);
+            if (!resolved)
+                return;
+            var transitionEnd = resolved.transitionEnd; resolved.transition; var target = __rest(resolved, ["transitionEnd", "transition"]);
+            for (var key in target) {
+                var valueTarget = target[key];
+                if (Array.isArray(valueTarget)) {
+                    /**
+                     * Take final keyframe if the initial animation is blocked because
+                     * we want to initialise at the end of that blocked animation.
+                     */
+                    var index = initialAnimationIsBlocked
+                        ? valueTarget.length - 1
+                        : 0;
+                    valueTarget = valueTarget[index];
+                }
+                if (valueTarget !== null) {
+                    values[key] = valueTarget;
+                }
+            }
+            for (var key in transitionEnd)
+                values[key] = transitionEnd[key];
+        });
+    }
+    return values;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/svg/config-motion.mjs
+
+
+
+
+
+
+var svgMotionConfig = {
+    useVisualState: makeUseVisualState({
+        scrapeMotionValuesFromProps: scrape_motion_values_scrapeMotionValuesFromProps,
+        createRenderState: createSvgRenderState,
+        onMount: function (props, instance, _a) {
+            var renderState = _a.renderState, latestValues = _a.latestValues;
+            try {
+                renderState.dimensions =
+                    typeof instance.getBBox ===
+                        "function"
+                        ? instance.getBBox()
+                        : instance.getBoundingClientRect();
+            }
+            catch (e) {
+                // Most likely trying to measure an unrendered element under Firefox
+                renderState.dimensions = {
+                    x: 0,
+                    y: 0,
+                    width: 0,
+                    height: 0,
+                };
+            }
+            buildSVGAttrs(renderState, latestValues, { enableHardwareAcceleration: false }, props.transformTemplate);
+            renderSVG(instance, renderState);
+        },
+    }),
+};
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/html/config-motion.mjs
+
+
+
+
+var htmlMotionConfig = {
+    useVisualState: makeUseVisualState({
+        scrapeMotionValuesFromProps: scrapeMotionValuesFromProps,
+        createRenderState: createHtmlRenderState,
+    }),
+};
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/dom/utils/create-config.mjs
+
+
+
+
+
+
+function create_config_createDomMotionConfig(Component, _a, preloadedFeatures, createVisualElement, projectionNodeConstructor) {
+    var _b = _a.forwardMotionProps, forwardMotionProps = _b === void 0 ? false : _b;
+    var baseConfig = isSVGComponent(Component)
+        ? svgMotionConfig
+        : htmlMotionConfig;
+    return __assign(__assign({}, baseConfig), { preloadedFeatures: preloadedFeatures, useRender: createUseRender(forwardMotionProps), createVisualElement: createVisualElement, projectionNodeConstructor: projectionNodeConstructor, Component: Component });
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/utils/types.mjs
+var AnimationType;
+(function (AnimationType) {
+    AnimationType["Animate"] = "animate";
+    AnimationType["Hover"] = "whileHover";
+    AnimationType["Tap"] = "whileTap";
+    AnimationType["Drag"] = "whileDrag";
+    AnimationType["Focus"] = "whileFocus";
+    AnimationType["InView"] = "whileInView";
+    AnimationType["Exit"] = "exit";
+})(AnimationType || (AnimationType = {}));
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/events/use-dom-event.mjs
+
+
+function addDomEvent(target, eventName, handler, options) {
+    if (options === void 0) { options = { passive: true }; }
+    target.addEventListener(eventName, handler, options);
+    return function () { return target.removeEventListener(eventName, handler); };
+}
+/**
+ * Attaches an event listener directly to the provided DOM element.
+ *
+ * Bypassing React's event system can be desirable, for instance when attaching non-passive
+ * event handlers.
+ *
+ * ```jsx
+ * const ref = useRef(null)
+ *
+ * useDomEvent(ref, 'wheel', onWheel, { passive: false })
+ *
+ * return <div ref={ref} />
+ * ```
+ *
+ * @param ref - React.RefObject that's been provided to the element you want to bind the listener to.
+ * @param eventName - Name of the event you want listen for.
+ * @param handler - Function to fire when receiving the event.
+ * @param options - Options to pass to `Event.addEventListener`.
+ *
+ * @public
+ */
+function useDomEvent(ref, eventName, handler, options) {
+    (0,external_React_.useEffect)(function () {
+        var element = ref.current;
+        if (handler && element) {
+            return addDomEvent(element, eventName, handler, options);
+        }
+    }, [ref, eventName, handler, options]);
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/gestures/use-focus-gesture.mjs
+
+
+
+/**
+ *
+ * @param props
+ * @param ref
+ * @internal
+ */
+function useFocusGesture(_a) {
+    var whileFocus = _a.whileFocus, visualElement = _a.visualElement;
+    var onFocus = function () {
+        var _a;
+        (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Focus, true);
+    };
+    var onBlur = function () {
+        var _a;
+        (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Focus, false);
+    };
+    useDomEvent(visualElement, "focus", whileFocus ? onFocus : undefined);
+    useDomEvent(visualElement, "blur", whileFocus ? onBlur : undefined);
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/gestures/utils/event-type.mjs
+function isMouseEvent(event) {
+    // PointerEvent inherits from MouseEvent so we can't use a straight instanceof check.
+    if (typeof PointerEvent !== "undefined" && event instanceof PointerEvent) {
+        return !!(event.pointerType === "mouse");
+    }
+    return event instanceof MouseEvent;
+}
+function isTouchEvent(event) {
+    var hasTouches = !!event.touches;
+    return hasTouches;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/events/event-info.mjs
+
+
+/**
+ * Filters out events not attached to the primary pointer (currently left mouse button)
+ * @param eventHandler
+ */
+function filterPrimaryPointer(eventHandler) {
+    return function (event) {
+        var isMouseEvent = event instanceof MouseEvent;
+        var isPrimaryPointer = !isMouseEvent ||
+            (isMouseEvent && event.button === 0);
+        if (isPrimaryPointer) {
+            eventHandler(event);
+        }
+    };
+}
+var defaultPagePoint = { pageX: 0, pageY: 0 };
+function pointFromTouch(e, pointType) {
+    if (pointType === void 0) { pointType = "page"; }
+    var primaryTouch = e.touches[0] || e.changedTouches[0];
+    var point = primaryTouch || defaultPagePoint;
+    return {
+        x: point[pointType + "X"],
+        y: point[pointType + "Y"],
+    };
+}
+function pointFromMouse(point, pointType) {
+    if (pointType === void 0) { pointType = "page"; }
+    return {
+        x: point[pointType + "X"],
+        y: point[pointType + "Y"],
+    };
+}
+function extractEventInfo(event, pointType) {
+    if (pointType === void 0) { pointType = "page"; }
+    return {
+        point: isTouchEvent(event)
+            ? pointFromTouch(event, pointType)
+            : pointFromMouse(event, pointType),
+    };
+}
+var wrapHandler = function (handler, shouldFilterPrimaryPointer) {
+    if (shouldFilterPrimaryPointer === void 0) { shouldFilterPrimaryPointer = false; }
+    var listener = function (event) {
+        return handler(event, extractEventInfo(event));
+    };
+    return shouldFilterPrimaryPointer
+        ? filterPrimaryPointer(listener)
+        : listener;
+};
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/events/utils.mjs
+
+
+// We check for event support via functions in case they've been mocked by a testing suite.
+var supportsPointerEvents = function () {
+    return is_browser_isBrowser && window.onpointerdown === null;
+};
+var supportsTouchEvents = function () {
+    return is_browser_isBrowser && window.ontouchstart === null;
+};
+var supportsMouseEvents = function () {
+    return is_browser_isBrowser && window.onmousedown === null;
+};
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/events/use-pointer-event.mjs
+
+
+
+
+var mouseEventNames = {
+    pointerdown: "mousedown",
+    pointermove: "mousemove",
+    pointerup: "mouseup",
+    pointercancel: "mousecancel",
+    pointerover: "mouseover",
+    pointerout: "mouseout",
+    pointerenter: "mouseenter",
+    pointerleave: "mouseleave",
+};
+var touchEventNames = {
+    pointerdown: "touchstart",
+    pointermove: "touchmove",
+    pointerup: "touchend",
+    pointercancel: "touchcancel",
+};
+function getPointerEventName(name) {
+    if (supportsPointerEvents()) {
+        return name;
+    }
+    else if (supportsTouchEvents()) {
+        return touchEventNames[name];
+    }
+    else if (supportsMouseEvents()) {
+        return mouseEventNames[name];
+    }
+    return name;
+}
+function addPointerEvent(target, eventName, handler, options) {
+    return addDomEvent(target, getPointerEventName(eventName), wrapHandler(handler, eventName === "pointerdown"), options);
+}
+function usePointerEvent(ref, eventName, handler, options) {
+    return useDomEvent(ref, getPointerEventName(eventName), handler && wrapHandler(handler, eventName === "pointerdown"), options);
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/gestures/drag/utils/lock.mjs
+function createLock(name) {
+    var lock = null;
+    return function () {
+        var openLock = function () {
+            lock = null;
+        };
+        if (lock === null) {
+            lock = name;
+            return openLock;
+        }
+        return false;
+    };
+}
+var globalHorizontalLock = createLock("dragHorizontal");
+var globalVerticalLock = createLock("dragVertical");
+function getGlobalLock(drag) {
+    var lock = false;
+    if (drag === "y") {
+        lock = globalVerticalLock();
+    }
+    else if (drag === "x") {
+        lock = globalHorizontalLock();
+    }
+    else {
+        var openHorizontal_1 = globalHorizontalLock();
+        var openVertical_1 = globalVerticalLock();
+        if (openHorizontal_1 && openVertical_1) {
+            lock = function () {
+                openHorizontal_1();
+                openVertical_1();
+            };
+        }
+        else {
+            // Release the locks because we don't use them
+            if (openHorizontal_1)
+                openHorizontal_1();
+            if (openVertical_1)
+                openVertical_1();
+        }
+    }
+    return lock;
+}
+function isDragActive() {
+    // Check the gesture lock - if we get it, it means no drag gesture is active
+    // and we can safely fire the tap gesture.
+    var openGestureLock = getGlobalLock(true);
+    if (!openGestureLock)
+        return true;
+    openGestureLock();
+    return false;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/gestures/use-hover-gesture.mjs
+
+
+
+
+
+function createHoverEvent(visualElement, isActive, callback) {
+    return function (event, info) {
+        var _a;
+        if (!isMouseEvent(event) || isDragActive())
+            return;
+        /**
+         * Ensure we trigger animations before firing event callback
+         */
+        (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Hover, isActive);
+        callback === null || callback === void 0 ? void 0 : callback(event, info);
+    };
+}
+function useHoverGesture(_a) {
+    var onHoverStart = _a.onHoverStart, onHoverEnd = _a.onHoverEnd, whileHover = _a.whileHover, visualElement = _a.visualElement;
+    usePointerEvent(visualElement, "pointerenter", onHoverStart || whileHover
+        ? createHoverEvent(visualElement, true, onHoverStart)
+        : undefined, { passive: !onHoverStart });
+    usePointerEvent(visualElement, "pointerleave", onHoverEnd || whileHover
+        ? createHoverEvent(visualElement, false, onHoverEnd)
+        : undefined, { passive: !onHoverEnd });
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/gestures/utils/is-node-or-child.mjs
+/**
+ * Recursively traverse up the tree to check whether the provided child node
+ * is the parent or a descendant of it.
+ *
+ * @param parent - Element to find
+ * @param child - Element to test against parent
+ */
+var isNodeOrChild = function (parent, child) {
+    if (!child) {
+        return false;
+    }
+    else if (parent === child) {
+        return true;
+    }
+    else {
+        return isNodeOrChild(parent, child.parentElement);
+    }
+};
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/utils/use-unmount-effect.mjs
+
+
+function useUnmountEffect(callback) {
+    return (0,external_React_.useEffect)(function () { return function () { return callback(); }; }, []);
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/popmotion/dist/es/utils/pipe.mjs
+const combineFunctions = (a, b) => (v) => b(a(v));
+const pipe = (...transformers) => transformers.reduce(combineFunctions);
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/gestures/use-tap-gesture.mjs
+
+
+
+
+
+
+
+
+/**
+ * @param handlers -
+ * @internal
+ */
+function useTapGesture(_a) {
+    var onTap = _a.onTap, onTapStart = _a.onTapStart, onTapCancel = _a.onTapCancel, whileTap = _a.whileTap, visualElement = _a.visualElement;
+    var hasPressListeners = onTap || onTapStart || onTapCancel || whileTap;
+    var isPressing = (0,external_React_.useRef)(false);
+    var cancelPointerEndListeners = (0,external_React_.useRef)(null);
+    /**
+     * Only set listener to passive if there are no external listeners.
+     */
+    var eventOptions = {
+        passive: !(onTapStart || onTap || onTapCancel || onPointerDown),
+    };
+    function removePointerEndListener() {
+        var _a;
+        (_a = cancelPointerEndListeners.current) === null || _a === void 0 ? void 0 : _a.call(cancelPointerEndListeners);
+        cancelPointerEndListeners.current = null;
+    }
+    function checkPointerEnd() {
+        var _a;
+        removePointerEndListener();
+        isPressing.current = false;
+        (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Tap, false);
+        return !isDragActive();
+    }
+    function onPointerUp(event, info) {
+        if (!checkPointerEnd())
+            return;
+        /**
+         * We only count this as a tap gesture if the event.target is the same
+         * as, or a child of, this component's element
+         */
+        !isNodeOrChild(visualElement.getInstance(), event.target)
+            ? onTapCancel === null || onTapCancel === void 0 ? void 0 : onTapCancel(event, info)
+            : onTap === null || onTap === void 0 ? void 0 : onTap(event, info);
+    }
+    function onPointerCancel(event, info) {
+        if (!checkPointerEnd())
+            return;
+        onTapCancel === null || onTapCancel === void 0 ? void 0 : onTapCancel(event, info);
+    }
+    function onPointerDown(event, info) {
+        var _a;
+        removePointerEndListener();
+        if (isPressing.current)
+            return;
+        isPressing.current = true;
+        cancelPointerEndListeners.current = pipe(addPointerEvent(window, "pointerup", onPointerUp, eventOptions), addPointerEvent(window, "pointercancel", onPointerCancel, eventOptions));
+        /**
+         * Ensure we trigger animations before firing event callback
+         */
+        (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Tap, true);
+        onTapStart === null || onTapStart === void 0 ? void 0 : onTapStart(event, info);
+    }
+    usePointerEvent(visualElement, "pointerdown", hasPressListeners ? onPointerDown : undefined, eventOptions);
+    useUnmountEffect(removePointerEndListener);
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/utils/warn-once.mjs
+var warned = new Set();
+function warnOnce(condition, message, element) {
+    if (condition || warned.has(message))
+        return;
+    console.warn(message);
+    if (element)
+        console.warn(element);
+    warned.add(message);
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs
+
+
+/**
+ * Map an IntersectionHandler callback to an element. We only ever make one handler for one
+ * element, so even though these handlers might all be triggered by different
+ * observers, we can keep them in the same map.
+ */
+var observerCallbacks = new WeakMap();
+/**
+ * Multiple observers can be created for multiple element/document roots. Each with
+ * different settings. So here we store dictionaries of observers to each root,
+ * using serialised settings (threshold/margin) as lookup keys.
+ */
+var observers = new WeakMap();
+var fireObserverCallback = function (entry) {
+    var _a;
+    (_a = observerCallbacks.get(entry.target)) === null || _a === void 0 ? void 0 : _a(entry);
+};
+var fireAllObserverCallbacks = function (entries) {
+    entries.forEach(fireObserverCallback);
+};
+function initIntersectionObserver(_a) {
+    var root = _a.root, options = __rest(_a, ["root"]);
+    var lookupRoot = root || document;
+    /**
+     * If we don't have an observer lookup map for this root, create one.
+     */
+    if (!observers.has(lookupRoot)) {
+        observers.set(lookupRoot, {});
+    }
+    var rootObservers = observers.get(lookupRoot);
+    var key = JSON.stringify(options);
+    /**
+     * If we don't have an observer for this combination of root and settings,
+     * create one.
+     */
+    if (!rootObservers[key]) {
+        rootObservers[key] = new IntersectionObserver(fireAllObserverCallbacks, __assign({ root: root }, options));
+    }
+    return rootObservers[key];
+}
+function observeIntersection(element, options, callback) {
+    var rootInteresectionObserver = initIntersectionObserver(options);
+    observerCallbacks.set(element, callback);
+    rootInteresectionObserver.observe(element);
+    return function () {
+        observerCallbacks.delete(element);
+        rootInteresectionObserver.unobserve(element);
+    };
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/motion/features/viewport/use-viewport.mjs
+
+
+
+
+
+
+function useViewport(_a) {
+    var visualElement = _a.visualElement, whileInView = _a.whileInView, onViewportEnter = _a.onViewportEnter, onViewportLeave = _a.onViewportLeave, _b = _a.viewport, viewport = _b === void 0 ? {} : _b;
+    var state = (0,external_React_.useRef)({
+        hasEnteredView: false,
+        isInView: false,
+    });
+    var shouldObserve = Boolean(whileInView || onViewportEnter || onViewportLeave);
+    if (viewport.once && state.current.hasEnteredView)
+        shouldObserve = false;
+    var useObserver = typeof IntersectionObserver === "undefined"
+        ? useMissingIntersectionObserver
+        : use_viewport_useIntersectionObserver;
+    useObserver(shouldObserve, state.current, visualElement, viewport);
+}
+var thresholdNames = {
+    some: 0,
+    all: 1,
+};
+function use_viewport_useIntersectionObserver(shouldObserve, state, visualElement, _a) {
+    var root = _a.root, rootMargin = _a.margin, _b = _a.amount, amount = _b === void 0 ? "some" : _b, once = _a.once;
+    (0,external_React_.useEffect)(function () {
+        if (!shouldObserve)
+            return;
+        var options = {
+            root: root === null || root === void 0 ? void 0 : root.current,
+            rootMargin: rootMargin,
+            threshold: typeof amount === "number" ? amount : thresholdNames[amount],
+        };
+        var intersectionCallback = function (entry) {
+            var _a;
+            var isIntersecting = entry.isIntersecting;
+            /**
+             * If there's been no change in the viewport state, early return.
+             */
+            if (state.isInView === isIntersecting)
+                return;
+            state.isInView = isIntersecting;
+            /**
+             * Handle hasEnteredView. If this is only meant to run once, and
+             * element isn't visible, early return. Otherwise set hasEnteredView to true.
+             */
+            if (once && !isIntersecting && state.hasEnteredView) {
+                return;
+            }
+            else if (isIntersecting) {
+                state.hasEnteredView = true;
+            }
+            (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.InView, isIntersecting);
+            /**
+             * Use the latest committed props rather than the ones in scope
+             * when this observer is created
+             */
+            var props = visualElement.getProps();
+            var callback = isIntersecting
+                ? props.onViewportEnter
+                : props.onViewportLeave;
+            callback === null || callback === void 0 ? void 0 : callback(entry);
+        };
+        return observeIntersection(visualElement.getInstance(), options, intersectionCallback);
+    }, [shouldObserve, root, rootMargin, amount]);
+}
+/**
+ * If IntersectionObserver is missing, we activate inView and fire onViewportEnter
+ * on mount. This way, the page will be in the state the author expects users
+ * to see it in for everyone.
+ */
+function useMissingIntersectionObserver(shouldObserve, state, visualElement, _a) {
+    var _b = _a.fallback, fallback = _b === void 0 ? true : _b;
+    (0,external_React_.useEffect)(function () {
+        if (!shouldObserve || !fallback)
+            return;
+        if (env !== "production") {
+            warnOnce(false, "IntersectionObserver not available on this device. whileInView animations will trigger on mount.");
+        }
+        /**
+         * Fire this in an rAF because, at this point, the animation state
+         * won't have flushed for the first time and there's certain logic in
+         * there that behaves differently on the initial animation.
+         *
+         * This hook should be quite rarely called so setting this in an rAF
+         * is preferred to changing the behaviour of the animation state.
+         */
+        requestAnimationFrame(function () {
+            var _a;
+            state.hasEnteredView = true;
+            var onViewportEnter = visualElement.getProps().onViewportEnter;
+            onViewportEnter === null || onViewportEnter === void 0 ? void 0 : onViewportEnter(null);
+            (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.InView, true);
+        });
+    }, [shouldObserve]);
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/motion/utils/make-renderless-component.mjs
+var makeRenderlessComponent = function (hook) { return function (props) {
+    hook(props);
+    return null;
+}; };
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/motion/features/gestures.mjs
+
+
+
+
+
+
+var gestureAnimations = {
+    inView: makeRenderlessComponent(useViewport),
+    tap: makeRenderlessComponent(useTapGesture),
+    focus: makeRenderlessComponent(useFocusGesture),
+    hover: makeRenderlessComponent(useHoverGesture),
+};
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/utils/use-id.mjs
+
+
+var counter = 0;
+var incrementId = function () { return counter++; };
+var useId = function () { return useConstant(incrementId); };
+/**
+ * Ideally we'd use the following code to support React 18 optionally.
+ * But this fairly fails in Webpack (otherwise treeshaking wouldn't work at all).
+ * Need to come up with a different way of figuring this out.
+ */
+// export const useId = (React as any).useId
+//     ? (React as any).useId
+//     : () => useConstant(incrementId)
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs
+
+
+
+
+/**
+ * When a component is the child of `AnimatePresence`, it can use `usePresence`
+ * to access information about whether it's still present in the React tree.
+ *
+ * ```jsx
+ * import { usePresence } from "framer-motion"
+ *
+ * export const Component = () => {
+ *   const [isPresent, safeToRemove] = usePresence()
+ *
+ *   useEffect(() => {
+ *     !isPresent && setTimeout(safeToRemove, 1000)
+ *   }, [isPresent])
+ *
+ *   return <div />
+ * }
+ * ```
+ *
+ * If `isPresent` is `false`, it means that a component has been removed the tree, but
+ * `AnimatePresence` won't really remove it until `safeToRemove` has been called.
+ *
+ * @public
+ */
+function usePresence() {
+    var context = (0,external_React_.useContext)(PresenceContext_PresenceContext);
+    if (context === null)
+        return [true, null];
+    var isPresent = context.isPresent, onExitComplete = context.onExitComplete, register = context.register;
+    // It's safe to call the following hooks conditionally (after an early return) because the context will always
+    // either be null or non-null for the lifespan of the component.
+    // Replace with useId when released in React
+    var id = useId();
+    (0,external_React_.useEffect)(function () { return register(id); }, []);
+    var safeToRemove = function () { return onExitComplete === null || onExitComplete === void 0 ? void 0 : onExitComplete(id); };
+    return !isPresent && onExitComplete ? [false, safeToRemove] : [true];
+}
+/**
+ * Similar to `usePresence`, except `useIsPresent` simply returns whether or not the component is present.
+ * There is no `safeToRemove` function.
+ *
+ * ```jsx
+ * import { useIsPresent } from "framer-motion"
+ *
+ * export const Component = () => {
+ *   const isPresent = useIsPresent()
+ *
+ *   useEffect(() => {
+ *     !isPresent && console.log("I've been removed!")
+ *   }, [isPresent])
+ *
+ *   return <div />
+ * }
+ * ```
+ *
+ * @public
+ */
+function useIsPresent() {
+    return isPresent(useContext(PresenceContext));
+}
+function isPresent(context) {
+    return context === null ? true : context.isPresent;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/utils/shallow-compare.mjs
+function shallowCompare(next, prev) {
+    if (!Array.isArray(prev))
+        return false;
+    var prevLength = prev.length;
+    if (prevLength !== next.length)
+        return false;
+    for (var i = 0; i < prevLength; i++) {
+        if (prev[i] !== next[i])
+            return false;
+    }
+    return true;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/popmotion/dist/es/utils/clamp.mjs
+const clamp_clamp = (min, max, v) => Math.min(Math.max(v, min), max);
+
+
+
+;// CONCATENATED MODULE: ./node_modules/popmotion/dist/es/animations/utils/find-spring.mjs
+
+
+
+const safeMin = 0.001;
+const minDuration = 0.01;
+const maxDuration = 10.0;
+const minDamping = 0.05;
+const maxDamping = 1;
+function findSpring({ duration = 800, bounce = 0.25, velocity = 0, mass = 1, }) {
+    let envelope;
+    let derivative;
+    warning(duration <= maxDuration * 1000, "Spring duration must be 10 seconds or less");
+    let dampingRatio = 1 - bounce;
+    dampingRatio = clamp_clamp(minDamping, maxDamping, dampingRatio);
+    duration = clamp_clamp(minDuration, maxDuration, duration / 1000);
+    if (dampingRatio < 1) {
+        envelope = (undampedFreq) => {
+            const exponentialDecay = undampedFreq * dampingRatio;
+            const delta = exponentialDecay * duration;
+            const a = exponentialDecay - velocity;
+            const b = calcAngularFreq(undampedFreq, dampingRatio);
+            const c = Math.exp(-delta);
+            return safeMin - (a / b) * c;
+        };
+        derivative = (undampedFreq) => {
+            const exponentialDecay = undampedFreq * dampingRatio;
+            const delta = exponentialDecay * duration;
+            const d = delta * velocity + velocity;
+            const e = Math.pow(dampingRatio, 2) * Math.pow(undampedFreq, 2) * duration;
+            const f = Math.exp(-delta);
+            const g = calcAngularFreq(Math.pow(undampedFreq, 2), dampingRatio);
+            const factor = -envelope(undampedFreq) + safeMin > 0 ? -1 : 1;
+            return (factor * ((d - e) * f)) / g;
+        };
+    }
+    else {
+        envelope = (undampedFreq) => {
+            const a = Math.exp(-undampedFreq * duration);
+            const b = (undampedFreq - velocity) * duration + 1;
+            return -safeMin + a * b;
+        };
+        derivative = (undampedFreq) => {
+            const a = Math.exp(-undampedFreq * duration);
+            const b = (velocity - undampedFreq) * (duration * duration);
+            return a * b;
+        };
+    }
+    const initialGuess = 5 / duration;
+    const undampedFreq = approximateRoot(envelope, derivative, initialGuess);
+    duration = duration * 1000;
+    if (isNaN(undampedFreq)) {
+        return {
+            stiffness: 100,
+            damping: 10,
+            duration,
+        };
+    }
+    else {
+        const stiffness = Math.pow(undampedFreq, 2) * mass;
+        return {
+            stiffness,
+            damping: dampingRatio * 2 * Math.sqrt(mass * stiffness),
+            duration,
+        };
+    }
+}
+const rootIterations = 12;
+function approximateRoot(envelope, derivative, initialGuess) {
+    let result = initialGuess;
+    for (let i = 1; i < rootIterations; i++) {
+        result = result - envelope(result) / derivative(result);
+    }
+    return result;
+}
+function calcAngularFreq(undampedFreq, dampingRatio) {
+    return undampedFreq * Math.sqrt(1 - dampingRatio * dampingRatio);
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/popmotion/dist/es/animations/generators/spring.mjs
+
+
+
+const durationKeys = ["duration", "bounce"];
+const physicsKeys = ["stiffness", "damping", "mass"];
+function isSpringType(options, keys) {
+    return keys.some((key) => options[key] !== undefined);
+}
+function getSpringOptions(options) {
+    let springOptions = Object.assign({ velocity: 0.0, stiffness: 100, damping: 10, mass: 1.0, isResolvedFromDuration: false }, options);
+    if (!isSpringType(options, physicsKeys) &&
+        isSpringType(options, durationKeys)) {
+        const derived = findSpring(options);
+        springOptions = Object.assign(Object.assign(Object.assign({}, springOptions), derived), { velocity: 0.0, mass: 1.0 });
+        springOptions.isResolvedFromDuration = true;
+    }
+    return springOptions;
+}
+function spring(_a) {
+    var { from = 0.0, to = 1.0, restSpeed = 2, restDelta } = _a, options = __rest(_a, ["from", "to", "restSpeed", "restDelta"]);
+    const state = { done: false, value: from };
+    let { stiffness, damping, mass, velocity, duration, isResolvedFromDuration, } = getSpringOptions(options);
+    let resolveSpring = zero;
+    let resolveVelocity = zero;
+    function createSpring() {
+        const initialVelocity = velocity ? -(velocity / 1000) : 0.0;
+        const initialDelta = to - from;
+        const dampingRatio = damping / (2 * Math.sqrt(stiffness * mass));
+        const undampedAngularFreq = Math.sqrt(stiffness / mass) / 1000;
+        if (restDelta === undefined) {
+            restDelta = Math.min(Math.abs(to - from) / 100, 0.4);
+        }
+        if (dampingRatio < 1) {
+            const angularFreq = calcAngularFreq(undampedAngularFreq, dampingRatio);
+            resolveSpring = (t) => {
+                const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);
+                return (to -
+                    envelope *
+                        (((initialVelocity +
+                            dampingRatio * undampedAngularFreq * initialDelta) /
+                            angularFreq) *
+                            Math.sin(angularFreq * t) +
+                            initialDelta * Math.cos(angularFreq * t)));
+            };
+            resolveVelocity = (t) => {
+                const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);
+                return (dampingRatio *
+                    undampedAngularFreq *
+                    envelope *
+                    ((Math.sin(angularFreq * t) *
+                        (initialVelocity +
+                            dampingRatio *
+                                undampedAngularFreq *
+                                initialDelta)) /
+                        angularFreq +
+                        initialDelta * Math.cos(angularFreq * t)) -
+                    envelope *
+                        (Math.cos(angularFreq * t) *
+                            (initialVelocity +
+                                dampingRatio *
+                                    undampedAngularFreq *
+                                    initialDelta) -
+                            angularFreq *
+                                initialDelta *
+                                Math.sin(angularFreq * t)));
+            };
+        }
+        else if (dampingRatio === 1) {
+            resolveSpring = (t) => to -
+                Math.exp(-undampedAngularFreq * t) *
+                    (initialDelta +
+                        (initialVelocity + undampedAngularFreq * initialDelta) *
+                            t);
+        }
+        else {
+            const dampedAngularFreq = undampedAngularFreq * Math.sqrt(dampingRatio * dampingRatio - 1);
+            resolveSpring = (t) => {
+                const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);
+                const freqForT = Math.min(dampedAngularFreq * t, 300);
+                return (to -
+                    (envelope *
+                        ((initialVelocity +
+                            dampingRatio * undampedAngularFreq * initialDelta) *
+                            Math.sinh(freqForT) +
+                            dampedAngularFreq *
+                                initialDelta *
+                                Math.cosh(freqForT))) /
+                        dampedAngularFreq);
+            };
+        }
+    }
+    createSpring();
+    return {
+        next: (t) => {
+            const current = resolveSpring(t);
+            if (!isResolvedFromDuration) {
+                const currentVelocity = resolveVelocity(t) * 1000;
+                const isBelowVelocityThreshold = Math.abs(currentVelocity) <= restSpeed;
+                const isBelowDisplacementThreshold = Math.abs(to - current) <= restDelta;
+                state.done =
+                    isBelowVelocityThreshold && isBelowDisplacementThreshold;
+            }
+            else {
+                state.done = t >= duration;
+            }
+            state.value = state.done ? to : current;
+            return state;
+        },
+        flipTarget: () => {
+            velocity = -velocity;
+            [from, to] = [to, from];
+            createSpring();
+        },
+    };
+}
+spring.needsInterpolation = (a, b) => typeof a === "string" || typeof b === "string";
+const zero = (_t) => 0;
+
+
+
+;// CONCATENATED MODULE: ./node_modules/popmotion/dist/es/utils/progress.mjs
+const progress = (from, to, value) => {
+    const toFromDifference = to - from;
+    return toFromDifference === 0 ? 1 : (value - from) / toFromDifference;
+};
+
+
+
+;// CONCATENATED MODULE: ./node_modules/popmotion/dist/es/utils/mix.mjs
+const mix = (from, to, progress) => -progress * from + progress * to + from;
+
+
+
+;// CONCATENATED MODULE: ./node_modules/style-value-types/dist/es/color/utils.mjs
+
+
+const isColorString = (type, testProp) => (v) => {
+    return Boolean((isString(v) && singleColorRegex.test(v) && v.startsWith(type)) ||
+        (testProp && Object.prototype.hasOwnProperty.call(v, testProp)));
+};
+const splitColor = (aName, bName, cName) => (v) => {
+    if (!isString(v))
+        return v;
+    const [a, b, c, alpha] = v.match(floatRegex);
+    return {
+        [aName]: parseFloat(a),
+        [bName]: parseFloat(b),
+        [cName]: parseFloat(c),
+        alpha: alpha !== undefined ? parseFloat(alpha) : 1,
+    };
+};
+
+
+
+;// CONCATENATED MODULE: ./node_modules/style-value-types/dist/es/color/rgba.mjs
+
+
+
+
+const clampRgbUnit = clamp(0, 255);
+const rgbUnit = Object.assign(Object.assign({}, number), { transform: (v) => Math.round(clampRgbUnit(v)) });
+const rgba_rgba = {
+    test: isColorString('rgb', 'red'),
+    parse: splitColor('red', 'green', 'blue'),
+    transform: ({ red, green, blue, alpha: alpha$1 = 1 }) => 'rgba(' +
+        rgbUnit.transform(red) +
+        ', ' +
+        rgbUnit.transform(green) +
+        ', ' +
+        rgbUnit.transform(blue) +
+        ', ' +
+        sanitize(alpha.transform(alpha$1)) +
+        ')',
+};
+
+
+
+;// CONCATENATED MODULE: ./node_modules/style-value-types/dist/es/color/hex.mjs
+
+
+
+function parseHex(v) {
+    let r = '';
+    let g = '';
+    let b = '';
+    let a = '';
+    if (v.length > 5) {
+        r = v.substr(1, 2);
+        g = v.substr(3, 2);
+        b = v.substr(5, 2);
+        a = v.substr(7, 2);
+    }
+    else {
+        r = v.substr(1, 1);
+        g = v.substr(2, 1);
+        b = v.substr(3, 1);
+        a = v.substr(4, 1);
+        r += r;
+        g += g;
+        b += b;
+        a += a;
+    }
+    return {
+        red: parseInt(r, 16),
+        green: parseInt(g, 16),
+        blue: parseInt(b, 16),
+        alpha: a ? parseInt(a, 16) / 255 : 1,
+    };
+}
+const hex = {
+    test: isColorString('#'),
+    parse: parseHex,
+    transform: rgba_rgba.transform,
+};
+
+
+
+;// CONCATENATED MODULE: ./node_modules/style-value-types/dist/es/color/hsla.mjs
+
+
+
+
+
+const hsla = {
+    test: isColorString('hsl', 'hue'),
+    parse: splitColor('hue', 'saturation', 'lightness'),
+    transform: ({ hue, saturation, lightness, alpha: alpha$1 = 1 }) => {
+        return ('hsla(' +
+            Math.round(hue) +
+            ', ' +
+            percent.transform(sanitize(saturation)) +
+            ', ' +
+            percent.transform(sanitize(lightness)) +
+            ', ' +
+            sanitize(alpha.transform(alpha$1)) +
+            ')');
+    },
+};
+
+
+
+;// CONCATENATED MODULE: ./node_modules/popmotion/dist/es/utils/hsla-to-rgba.mjs
+function hueToRgb(p, q, t) {
+    if (t < 0)
+        t += 1;
+    if (t > 1)
+        t -= 1;
+    if (t < 1 / 6)
+        return p + (q - p) * 6 * t;
+    if (t < 1 / 2)
+        return q;
+    if (t < 2 / 3)
+        return p + (q - p) * (2 / 3 - t) * 6;
+    return p;
+}
+function hslaToRgba({ hue, saturation, lightness, alpha }) {
+    hue /= 360;
+    saturation /= 100;
+    lightness /= 100;
+    let red = 0;
+    let green = 0;
+    let blue = 0;
+    if (!saturation) {
+        red = green = blue = lightness;
+    }
+    else {
+        const q = lightness < 0.5
+            ? lightness * (1 + saturation)
+            : lightness + saturation - lightness * saturation;
+        const p = 2 * lightness - q;
+        red = hueToRgb(p, q, hue + 1 / 3);
+        green = hueToRgb(p, q, hue);
+        blue = hueToRgb(p, q, hue - 1 / 3);
+    }
+    return {
+        red: Math.round(red * 255),
+        green: Math.round(green * 255),
+        blue: Math.round(blue * 255),
+        alpha,
+    };
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/popmotion/dist/es/utils/mix-color.mjs
+
+
+
+
+
+const mixLinearColor = (from, to, v) => {
+    const fromExpo = from * from;
+    const toExpo = to * to;
+    return Math.sqrt(Math.max(0, v * (toExpo - fromExpo) + fromExpo));
+};
+const colorTypes = [hex, rgba_rgba, hsla];
+const getColorType = (v) => colorTypes.find((type) => type.test(v));
+const notAnimatable = (color) => `'${color}' is not an animatable color. Use the equivalent color code instead.`;
+const mixColor = (from, to) => {
+    let fromColorType = getColorType(from);
+    let toColorType = getColorType(to);
+    invariant(!!fromColorType, notAnimatable(from));
+    invariant(!!toColorType, notAnimatable(to));
+    let fromColor = fromColorType.parse(from);
+    let toColor = toColorType.parse(to);
+    if (fromColorType === hsla) {
+        fromColor = hslaToRgba(fromColor);
+        fromColorType = rgba_rgba;
+    }
+    if (toColorType === hsla) {
+        toColor = hslaToRgba(toColor);
+        toColorType = rgba_rgba;
+    }
+    const blended = Object.assign({}, fromColor);
+    return (v) => {
+        for (const key in blended) {
+            if (key !== "alpha") {
+                blended[key] = mixLinearColor(fromColor[key], toColor[key], v);
+            }
+        }
+        blended.alpha = mix(fromColor.alpha, toColor.alpha, v);
+        return fromColorType.transform(blended);
+    };
+};
+
+
+
+;// CONCATENATED MODULE: ./node_modules/style-value-types/dist/es/color/index.mjs
+
+
+
+
+
+const color = {
+    test: (v) => rgba_rgba.test(v) || hex.test(v) || hsla.test(v),
+    parse: (v) => {
+        if (rgba_rgba.test(v)) {
+            return rgba_rgba.parse(v);
+        }
+        else if (hsla.test(v)) {
+            return hsla.parse(v);
+        }
+        else {
+            return hex.parse(v);
+        }
+    },
+    transform: (v) => {
+        return isString(v)
+            ? v
+            : v.hasOwnProperty('red')
+                ? rgba_rgba.transform(v)
+                : hsla.transform(v);
+    },
+};
+
+
+
+;// CONCATENATED MODULE: ./node_modules/style-value-types/dist/es/complex/index.mjs
+
+
+
+
+const colorToken = '${c}';
+const numberToken = '${n}';
+function test(v) {
+    var _a, _b, _c, _d;
+    return (isNaN(v) &&
+        isString(v) &&
+        ((_b = (_a = v.match(floatRegex)) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) + ((_d = (_c = v.match(colorRegex)) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : 0) > 0);
+}
+function analyse(v) {
+    if (typeof v === 'number')
+        v = `${v}`;
+    const values = [];
+    let numColors = 0;
+    const colors = v.match(colorRegex);
+    if (colors) {
+        numColors = colors.length;
+        v = v.replace(colorRegex, colorToken);
+        values.push(...colors.map(color.parse));
+    }
+    const numbers = v.match(floatRegex);
+    if (numbers) {
+        v = v.replace(floatRegex, numberToken);
+        values.push(...numbers.map(number.parse));
+    }
+    return { values, numColors, tokenised: v };
+}
+function complex_parse(v) {
+    return analyse(v).values;
+}
+function createTransformer(v) {
+    const { values, numColors, tokenised } = analyse(v);
+    const numValues = values.length;
+    return (v) => {
+        let output = tokenised;
+        for (let i = 0; i < numValues; i++) {
+            output = output.replace(i < numColors ? colorToken : numberToken, i < numColors ? color.transform(v[i]) : sanitize(v[i]));
+        }
+        return output;
+    };
+}
+const convertNumbersToZero = (v) => typeof v === 'number' ? 0 : v;
+function getAnimatableNone(v) {
+    const parsed = complex_parse(v);
+    const transformer = createTransformer(v);
+    return transformer(parsed.map(convertNumbersToZero));
+}
+const complex = { test, parse: complex_parse, createTransformer, getAnimatableNone };
+
+
+
+;// CONCATENATED MODULE: ./node_modules/popmotion/dist/es/utils/inc.mjs
+const zeroPoint = {
+    x: 0,
+    y: 0,
+    z: 0
+};
+const isNum = (v) => typeof v === 'number';
+
+
+
+;// CONCATENATED MODULE: ./node_modules/popmotion/dist/es/utils/mix-complex.mjs
+
+
+
+
+
+
+
+function getMixer(origin, target) {
+    if (isNum(origin)) {
+        return (v) => mix(origin, target, v);
+    }
+    else if (color.test(origin)) {
+        return mixColor(origin, target);
+    }
+    else {
+        return mixComplex(origin, target);
+    }
+}
+const mixArray = (from, to) => {
+    const output = [...from];
+    const numValues = output.length;
+    const blendValue = from.map((fromThis, i) => getMixer(fromThis, to[i]));
+    return (v) => {
+        for (let i = 0; i < numValues; i++) {
+            output[i] = blendValue[i](v);
+        }
+        return output;
+    };
+};
+const mixObject = (origin, target) => {
+    const output = Object.assign(Object.assign({}, origin), target);
+    const blendValue = {};
+    for (const key in output) {
+        if (origin[key] !== undefined && target[key] !== undefined) {
+            blendValue[key] = getMixer(origin[key], target[key]);
+        }
+    }
+    return (v) => {
+        for (const key in blendValue) {
+            output[key] = blendValue[key](v);
+        }
+        return output;
+    };
+};
+function mix_complex_analyse(value) {
+    const parsed = complex.parse(value);
+    const numValues = parsed.length;
+    let numNumbers = 0;
+    let numRGB = 0;
+    let numHSL = 0;
+    for (let i = 0; i < numValues; i++) {
+        if (numNumbers || typeof parsed[i] === "number") {
+            numNumbers++;
+        }
+        else {
+            if (parsed[i].hue !== undefined) {
+                numHSL++;
+            }
+            else {
+                numRGB++;
+            }
+        }
+    }
+    return { parsed, numNumbers, numRGB, numHSL };
+}
+const mixComplex = (origin, target) => {
+    const template = complex.createTransformer(target);
+    const originStats = mix_complex_analyse(origin);
+    const targetStats = mix_complex_analyse(target);
+    const canInterpolate = originStats.numHSL === targetStats.numHSL &&
+        originStats.numRGB === targetStats.numRGB &&
+        originStats.numNumbers >= targetStats.numNumbers;
+    if (canInterpolate) {
+        return pipe(mixArray(originStats.parsed, targetStats.parsed), template);
+    }
+    else {
+        warning(true, `Complex values '${origin}' and '${target}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`);
+        return (p) => `${p > 0 ? target : origin}`;
+    }
+};
+
+
+
+;// CONCATENATED MODULE: ./node_modules/popmotion/dist/es/utils/interpolate.mjs
+
+
+
+
+
+
+
+
+
+const mixNumber = (from, to) => (p) => mix(from, to, p);
+function detectMixerFactory(v) {
+    if (typeof v === 'number') {
+        return mixNumber;
+    }
+    else if (typeof v === 'string') {
+        if (color.test(v)) {
+            return mixColor;
+        }
+        else {
+            return mixComplex;
+        }
+    }
+    else if (Array.isArray(v)) {
+        return mixArray;
+    }
+    else if (typeof v === 'object') {
+        return mixObject;
+    }
+}
+function createMixers(output, ease, customMixer) {
+    const mixers = [];
+    const mixerFactory = customMixer || detectMixerFactory(output[0]);
+    const numMixers = output.length - 1;
+    for (let i = 0; i < numMixers; i++) {
+        let mixer = mixerFactory(output[i], output[i + 1]);
+        if (ease) {
+            const easingFunction = Array.isArray(ease) ? ease[i] : ease;
+            mixer = pipe(easingFunction, mixer);
+        }
+        mixers.push(mixer);
+    }
+    return mixers;
+}
+function fastInterpolate([from, to], [mixer]) {
+    return (v) => mixer(progress(from, to, v));
+}
+function slowInterpolate(input, mixers) {
+    const inputLength = input.length;
+    const lastInputIndex = inputLength - 1;
+    return (v) => {
+        let mixerIndex = 0;
+        let foundMixerIndex = false;
+        if (v <= input[0]) {
+            foundMixerIndex = true;
+        }
+        else if (v >= input[lastInputIndex]) {
+            mixerIndex = lastInputIndex - 1;
+            foundMixerIndex = true;
+        }
+        if (!foundMixerIndex) {
+            let i = 1;
+            for (; i < inputLength; i++) {
+                if (input[i] > v || i === lastInputIndex) {
+                    break;
+                }
+            }
+            mixerIndex = i - 1;
+        }
+        const progressInRange = progress(input[mixerIndex], input[mixerIndex + 1], v);
+        return mixers[mixerIndex](progressInRange);
+    };
+}
+function interpolate(input, output, { clamp: isClamp = true, ease, mixer } = {}) {
+    const inputLength = input.length;
+    invariant(inputLength === output.length, 'Both input and output ranges must be the same length');
+    invariant(!ease || !Array.isArray(ease) || ease.length === inputLength - 1, 'Array of easing functions must be of length `input.length - 1`, as it applies to the transitions **between** the defined values.');
+    if (input[0] > input[inputLength - 1]) {
+        input = [].concat(input);
+        output = [].concat(output);
+        input.reverse();
+        output.reverse();
+    }
+    const mixers = createMixers(output, ease, mixer);
+    const interpolator = inputLength === 2
+        ? fastInterpolate(input, mixers)
+        : slowInterpolate(input, mixers);
+    return isClamp
+        ? (v) => interpolator(clamp_clamp(input[0], input[inputLength - 1], v))
+        : interpolator;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/popmotion/dist/es/easing/utils.mjs
+const reverseEasing = easing => p => 1 - easing(1 - p);
+const mirrorEasing = easing => p => p <= 0.5 ? easing(2 * p) / 2 : (2 - easing(2 * (1 - p))) / 2;
+const createExpoIn = (power) => p => Math.pow(p, power);
+const createBackIn = (power) => p => p * p * ((power + 1) * p - power);
+const createAnticipate = (power) => {
+    const backEasing = createBackIn(power);
+    return p => (p *= 2) < 1
+        ? 0.5 * backEasing(p)
+        : 0.5 * (2 - Math.pow(2, -10 * (p - 1)));
+};
+
+
+
+;// CONCATENATED MODULE: ./node_modules/popmotion/dist/es/easing/index.mjs
+
+
+const DEFAULT_OVERSHOOT_STRENGTH = 1.525;
+const BOUNCE_FIRST_THRESHOLD = 4.0 / 11.0;
+const BOUNCE_SECOND_THRESHOLD = 8.0 / 11.0;
+const BOUNCE_THIRD_THRESHOLD = 9.0 / 10.0;
+const linear = p => p;
+const easeIn = createExpoIn(2);
+const easeOut = reverseEasing(easeIn);
+const easeInOut = mirrorEasing(easeIn);
+const circIn = p => 1 - Math.sin(Math.acos(p));
+const circOut = reverseEasing(circIn);
+const circInOut = mirrorEasing(circOut);
+const backIn = createBackIn(DEFAULT_OVERSHOOT_STRENGTH);
+const backOut = reverseEasing(backIn);
+const backInOut = mirrorEasing(backIn);
+const anticipate = createAnticipate(DEFAULT_OVERSHOOT_STRENGTH);
+const ca = 4356.0 / 361.0;
+const cb = 35442.0 / 1805.0;
+const cc = 16061.0 / 1805.0;
+const bounceOut = (p) => {
+    if (p === 1 || p === 0)
+        return p;
+    const p2 = p * p;
+    return p < BOUNCE_FIRST_THRESHOLD
+        ? 7.5625 * p2
+        : p < BOUNCE_SECOND_THRESHOLD
+            ? 9.075 * p2 - 9.9 * p + 3.4
+            : p < BOUNCE_THIRD_THRESHOLD
+                ? ca * p2 - cb * p + cc
+                : 10.8 * p * p - 20.52 * p + 10.72;
+};
+const bounceIn = reverseEasing(bounceOut);
+const bounceInOut = (p) => p < 0.5
+    ? 0.5 * (1.0 - bounceOut(1.0 - p * 2.0))
+    : 0.5 * bounceOut(p * 2.0 - 1.0) + 0.5;
+
+
+
+;// CONCATENATED MODULE: ./node_modules/popmotion/dist/es/animations/generators/keyframes.mjs
+
+
+
+function defaultEasing(values, easing) {
+    return values.map(() => easing || easeInOut).splice(0, values.length - 1);
+}
+function defaultOffset(values) {
+    const numValues = values.length;
+    return values.map((_value, i) => i !== 0 ? i / (numValues - 1) : 0);
+}
+function convertOffsetToTimes(offset, duration) {
+    return offset.map((o) => o * duration);
+}
+function keyframes_keyframes({ from = 0, to = 1, ease, offset, duration = 300, }) {
+    const state = { done: false, value: from };
+    const values = Array.isArray(to) ? to : [from, to];
+    const times = convertOffsetToTimes(offset && offset.length === values.length
+        ? offset
+        : defaultOffset(values), duration);
+    function createInterpolator() {
+        return interpolate(times, values, {
+            ease: Array.isArray(ease) ? ease : defaultEasing(values, ease),
+        });
+    }
+    let interpolator = createInterpolator();
+    return {
+        next: (t) => {
+            state.value = interpolator(t);
+            state.done = t >= duration;
+            return state;
+        },
+        flipTarget: () => {
+            values.reverse();
+            interpolator = createInterpolator();
+        },
+    };
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/popmotion/dist/es/animations/generators/decay.mjs
+function decay({ velocity = 0, from = 0, power = 0.8, timeConstant = 350, restDelta = 0.5, modifyTarget, }) {
+    const state = { done: false, value: from };
+    let amplitude = power * velocity;
+    const ideal = from + amplitude;
+    const target = modifyTarget === undefined ? ideal : modifyTarget(ideal);
+    if (target !== ideal)
+        amplitude = target - from;
+    return {
+        next: (t) => {
+            const delta = -amplitude * Math.exp(-t / timeConstant);
+            state.done = !(delta > restDelta || delta < -restDelta);
+            state.value = state.done ? target : target + delta;
+            return state;
+        },
+        flipTarget: () => { },
+    };
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/popmotion/dist/es/animations/utils/detect-animation-from-options.mjs
+
+
+
+
+const types = { keyframes: keyframes_keyframes, spring: spring, decay: decay };
+function detectAnimationFromOptions(config) {
+    if (Array.isArray(config.to)) {
+        return keyframes_keyframes;
+    }
+    else if (types[config.type]) {
+        return types[config.type];
+    }
+    const keys = new Set(Object.keys(config));
+    if (keys.has("ease") ||
+        (keys.has("duration") && !keys.has("dampingRatio"))) {
+        return keyframes_keyframes;
+    }
+    else if (keys.has("dampingRatio") ||
+        keys.has("stiffness") ||
+        keys.has("mass") ||
+        keys.has("damping") ||
+        keys.has("restSpeed") ||
+        keys.has("restDelta")) {
+        return spring;
+    }
+    return keyframes_keyframes;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framesync/dist/es/on-next-frame.mjs
+const defaultTimestep = (1 / 60) * 1000;
+const getCurrentTime = typeof performance !== "undefined"
+    ? () => performance.now()
+    : () => Date.now();
+const onNextFrame = typeof window !== "undefined"
+    ? (callback) => window.requestAnimationFrame(callback)
+    : (callback) => setTimeout(() => callback(getCurrentTime()), defaultTimestep);
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framesync/dist/es/create-render-step.mjs
+function createRenderStep(runNextFrame) {
+    let toRun = [];
+    let toRunNextFrame = [];
+    let numToRun = 0;
+    let isProcessing = false;
+    let flushNextFrame = false;
+    const toKeepAlive = new WeakSet();
+    const step = {
+        schedule: (callback, keepAlive = false, immediate = false) => {
+            const addToCurrentFrame = immediate && isProcessing;
+            const buffer = addToCurrentFrame ? toRun : toRunNextFrame;
+            if (keepAlive)
+                toKeepAlive.add(callback);
+            if (buffer.indexOf(callback) === -1) {
+                buffer.push(callback);
+                if (addToCurrentFrame && isProcessing)
+                    numToRun = toRun.length;
+            }
+            return callback;
+        },
+        cancel: (callback) => {
+            const index = toRunNextFrame.indexOf(callback);
+            if (index !== -1)
+                toRunNextFrame.splice(index, 1);
+            toKeepAlive.delete(callback);
+        },
+        process: (frameData) => {
+            if (isProcessing) {
+                flushNextFrame = true;
+                return;
+            }
+            isProcessing = true;
+            [toRun, toRunNextFrame] = [toRunNextFrame, toRun];
+            toRunNextFrame.length = 0;
+            numToRun = toRun.length;
+            if (numToRun) {
+                for (let i = 0; i < numToRun; i++) {
+                    const callback = toRun[i];
+                    callback(frameData);
+                    if (toKeepAlive.has(callback)) {
+                        step.schedule(callback);
+                        runNextFrame();
+                    }
+                }
+            }
+            isProcessing = false;
+            if (flushNextFrame) {
+                flushNextFrame = false;
+                step.process(frameData);
+            }
+        },
+    };
+    return step;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framesync/dist/es/index.mjs
+
+
+
+const maxElapsed = 40;
+let useDefaultElapsed = true;
+let runNextFrame = false;
+let isProcessing = false;
+const es_frame = {
+    delta: 0,
+    timestamp: 0,
+};
+const stepsOrder = [
+    "read",
+    "update",
+    "preRender",
+    "render",
+    "postRender",
+];
+const steps = stepsOrder.reduce((acc, key) => {
+    acc[key] = createRenderStep(() => (runNextFrame = true));
+    return acc;
+}, {});
+const sync = stepsOrder.reduce((acc, key) => {
+    const step = steps[key];
+    acc[key] = (process, keepAlive = false, immediate = false) => {
+        if (!runNextFrame)
+            startLoop();
+        return step.schedule(process, keepAlive, immediate);
+    };
+    return acc;
+}, {});
+const cancelSync = stepsOrder.reduce((acc, key) => {
+    acc[key] = steps[key].cancel;
+    return acc;
+}, {});
+const flushSync = stepsOrder.reduce((acc, key) => {
+    acc[key] = () => steps[key].process(es_frame);
+    return acc;
+}, {});
+const processStep = (stepId) => steps[stepId].process(es_frame);
+const processFrame = (timestamp) => {
+    runNextFrame = false;
+    es_frame.delta = useDefaultElapsed
+        ? defaultTimestep
+        : Math.max(Math.min(timestamp - es_frame.timestamp, maxElapsed), 1);
+    es_frame.timestamp = timestamp;
+    isProcessing = true;
+    stepsOrder.forEach(processStep);
+    isProcessing = false;
+    if (runNextFrame) {
+        useDefaultElapsed = false;
+        onNextFrame(processFrame);
+    }
+};
+const startLoop = () => {
+    runNextFrame = true;
+    useDefaultElapsed = true;
+    if (!isProcessing)
+        onNextFrame(processFrame);
+};
+const getFrameData = () => es_frame;
+
+/* harmony default export */ var es = (sync);
+
+
+;// CONCATENATED MODULE: ./node_modules/popmotion/dist/es/animations/utils/elapsed.mjs
+function loopElapsed(elapsed, duration, delay = 0) {
+    return elapsed - duration - delay;
+}
+function reverseElapsed(elapsed, duration, delay = 0, isForwardPlayback = true) {
+    return isForwardPlayback
+        ? loopElapsed(duration + -elapsed, duration, delay)
+        : duration - (elapsed - duration) + delay;
+}
+function hasRepeatDelayElapsed(elapsed, duration, delay, isForwardPlayback) {
+    return isForwardPlayback ? elapsed >= duration + delay : elapsed <= -delay;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/popmotion/dist/es/animations/index.mjs
+
+
+
+
+
+
+const framesync = (update) => {
+    const passTimestamp = ({ delta }) => update(delta);
+    return {
+        start: () => es.update(passTimestamp, true),
+        stop: () => cancelSync.update(passTimestamp),
+    };
+};
+function animate(_a) {
+    var _b, _c;
+    var { from, autoplay = true, driver = framesync, elapsed = 0, repeat: repeatMax = 0, repeatType = "loop", repeatDelay = 0, onPlay, onStop, onComplete, onRepeat, onUpdate } = _a, options = __rest(_a, ["from", "autoplay", "driver", "elapsed", "repeat", "repeatType", "repeatDelay", "onPlay", "onStop", "onComplete", "onRepeat", "onUpdate"]);
+    let { to } = options;
+    let driverControls;
+    let repeatCount = 0;
+    let computedDuration = options.duration;
+    let latest;
+    let isComplete = false;
+    let isForwardPlayback = true;
+    let interpolateFromNumber;
+    const animator = detectAnimationFromOptions(options);
+    if ((_c = (_b = animator).needsInterpolation) === null || _c === void 0 ? void 0 : _c.call(_b, from, to)) {
+        interpolateFromNumber = interpolate([0, 100], [from, to], {
+            clamp: false,
+        });
+        from = 0;
+        to = 100;
+    }
+    const animation = animator(Object.assign(Object.assign({}, options), { from, to }));
+    function repeat() {
+        repeatCount++;
+        if (repeatType === "reverse") {
+            isForwardPlayback = repeatCount % 2 === 0;
+            elapsed = reverseElapsed(elapsed, computedDuration, repeatDelay, isForwardPlayback);
+        }
+        else {
+            elapsed = loopElapsed(elapsed, computedDuration, repeatDelay);
+            if (repeatType === "mirror")
+                animation.flipTarget();
+        }
+        isComplete = false;
+        onRepeat && onRepeat();
+    }
+    function complete() {
+        driverControls.stop();
+        onComplete && onComplete();
+    }
+    function update(delta) {
+        if (!isForwardPlayback)
+            delta = -delta;
+        elapsed += delta;
+        if (!isComplete) {
+            const state = animation.next(Math.max(0, elapsed));
+            latest = state.value;
+            if (interpolateFromNumber)
+                latest = interpolateFromNumber(latest);
+            isComplete = isForwardPlayback ? state.done : elapsed <= 0;
+        }
+        onUpdate === null || onUpdate === void 0 ? void 0 : onUpdate(latest);
+        if (isComplete) {
+            if (repeatCount === 0)
+                computedDuration !== null && computedDuration !== void 0 ? computedDuration : (computedDuration = elapsed);
+            if (repeatCount < repeatMax) {
+                hasRepeatDelayElapsed(elapsed, computedDuration, repeatDelay, isForwardPlayback) && repeat();
+            }
+            else {
+                complete();
+            }
+        }
+    }
+    function play() {
+        onPlay === null || onPlay === void 0 ? void 0 : onPlay();
+        driverControls = driver(update);
+        driverControls.start();
+    }
+    autoplay && play();
+    return {
+        stop: () => {
+            onStop === null || onStop === void 0 ? void 0 : onStop();
+            driverControls.stop();
+        },
+    };
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/popmotion/dist/es/utils/velocity-per-second.mjs
+function velocityPerSecond(velocity, frameDuration) {
+    return frameDuration ? velocity * (1000 / frameDuration) : 0;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/popmotion/dist/es/animations/inertia.mjs
+
+
+
+
+function inertia({ from = 0, velocity = 0, min, max, power = 0.8, timeConstant = 750, bounceStiffness = 500, bounceDamping = 10, restDelta = 1, modifyTarget, driver, onUpdate, onComplete, onStop, }) {
+    let currentAnimation;
+    function isOutOfBounds(v) {
+        return (min !== undefined && v < min) || (max !== undefined && v > max);
+    }
+    function boundaryNearest(v) {
+        if (min === undefined)
+            return max;
+        if (max === undefined)
+            return min;
+        return Math.abs(min - v) < Math.abs(max - v) ? min : max;
+    }
+    function startAnimation(options) {
+        currentAnimation === null || currentAnimation === void 0 ? void 0 : currentAnimation.stop();
+        currentAnimation = animate(Object.assign(Object.assign({}, options), { driver, onUpdate: (v) => {
+                var _a;
+                onUpdate === null || onUpdate === void 0 ? void 0 : onUpdate(v);
+                (_a = options.onUpdate) === null || _a === void 0 ? void 0 : _a.call(options, v);
+            }, onComplete,
+            onStop }));
+    }
+    function startSpring(options) {
+        startAnimation(Object.assign({ type: "spring", stiffness: bounceStiffness, damping: bounceDamping, restDelta }, options));
+    }
+    if (isOutOfBounds(from)) {
+        startSpring({ from, velocity, to: boundaryNearest(from) });
+    }
+    else {
+        let target = power * velocity + from;
+        if (typeof modifyTarget !== "undefined")
+            target = modifyTarget(target);
+        const boundary = boundaryNearest(target);
+        const heading = boundary === min ? -1 : 1;
+        let prev;
+        let current;
+        const checkBoundary = (v) => {
+            prev = current;
+            current = v;
+            velocity = velocityPerSecond(v - prev, getFrameData().delta);
+            if ((heading === 1 && v > boundary) ||
+                (heading === -1 && v < boundary)) {
+                startSpring({ from: v, to: boundary, velocity });
+            }
+        };
+        startAnimation({
+            type: "decay",
+            from,
+            velocity,
+            timeConstant,
+            power,
+            restDelta,
+            modifyTarget,
+            onUpdate: isOutOfBounds(target) ? checkBoundary : undefined,
+        });
+    }
+    return {
+        stop: () => currentAnimation === null || currentAnimation === void 0 ? void 0 : currentAnimation.stop(),
+    };
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/utils/time-conversion.mjs
+/**
+ * Converts seconds to milliseconds
+ *
+ * @param seconds - Time in seconds.
+ * @return milliseconds - Converted time in milliseconds.
+ */
+var secondsToMilliseconds = function (seconds) { return seconds * 1000; };
+
+
+
+;// CONCATENATED MODULE: ./node_modules/popmotion/dist/es/easing/cubic-bezier.mjs
+
+
+const cubic_bezier_a = (a1, a2) => 1.0 - 3.0 * a2 + 3.0 * a1;
+const cubic_bezier_b = (a1, a2) => 3.0 * a2 - 6.0 * a1;
+const cubic_bezier_c = (a1) => 3.0 * a1;
+const calcBezier = (t, a1, a2) => ((cubic_bezier_a(a1, a2) * t + cubic_bezier_b(a1, a2)) * t + cubic_bezier_c(a1)) * t;
+const getSlope = (t, a1, a2) => 3.0 * cubic_bezier_a(a1, a2) * t * t + 2.0 * cubic_bezier_b(a1, a2) * t + cubic_bezier_c(a1);
+const subdivisionPrecision = 0.0000001;
+const subdivisionMaxIterations = 10;
+function binarySubdivide(aX, aA, aB, mX1, mX2) {
+    let currentX;
+    let currentT;
+    let i = 0;
+    do {
+        currentT = aA + (aB - aA) / 2.0;
+        currentX = calcBezier(currentT, mX1, mX2) - aX;
+        if (currentX > 0.0) {
+            aB = currentT;
+        }
+        else {
+            aA = currentT;
+        }
+    } while (Math.abs(currentX) > subdivisionPrecision &&
+        ++i < subdivisionMaxIterations);
+    return currentT;
+}
+const newtonIterations = 8;
+const newtonMinSlope = 0.001;
+function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {
+    for (let i = 0; i < newtonIterations; ++i) {
+        const currentSlope = getSlope(aGuessT, mX1, mX2);
+        if (currentSlope === 0.0) {
+            return aGuessT;
+        }
+        const currentX = calcBezier(aGuessT, mX1, mX2) - aX;
+        aGuessT -= currentX / currentSlope;
+    }
+    return aGuessT;
+}
+const kSplineTableSize = 11;
+const kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);
+function cubicBezier(mX1, mY1, mX2, mY2) {
+    if (mX1 === mY1 && mX2 === mY2)
+        return linear;
+    const sampleValues = new Float32Array(kSplineTableSize);
+    for (let i = 0; i < kSplineTableSize; ++i) {
+        sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);
+    }
+    function getTForX(aX) {
+        let intervalStart = 0.0;
+        let currentSample = 1;
+        const lastSample = kSplineTableSize - 1;
+        for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {
+            intervalStart += kSampleStepSize;
+        }
+        --currentSample;
+        const dist = (aX - sampleValues[currentSample]) /
+            (sampleValues[currentSample + 1] - sampleValues[currentSample]);
+        const guessForT = intervalStart + dist * kSampleStepSize;
+        const initialSlope = getSlope(guessForT, mX1, mX2);
+        if (initialSlope >= newtonMinSlope) {
+            return newtonRaphsonIterate(aX, guessForT, mX1, mX2);
+        }
+        else if (initialSlope === 0.0) {
+            return guessForT;
+        }
+        else {
+            return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);
+        }
+    }
+    return (t) => t === 0 || t === 1 ? t : calcBezier(getTForX(t), mY1, mY2);
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/animation/utils/easing.mjs
+
+
+
+
+var easingLookup = {
+    linear: linear,
+    easeIn: easeIn,
+    easeInOut: easeInOut,
+    easeOut: easeOut,
+    circIn: circIn,
+    circInOut: circInOut,
+    circOut: circOut,
+    backIn: backIn,
+    backInOut: backInOut,
+    backOut: backOut,
+    anticipate: anticipate,
+    bounceIn: bounceIn,
+    bounceInOut: bounceInOut,
+    bounceOut: bounceOut,
+};
+var easingDefinitionToFunction = function (definition) {
+    if (Array.isArray(definition)) {
+        // If cubic bezier definition, create bezier curve
+        invariant(definition.length === 4, "Cubic bezier arrays must contain four numerical values.");
+        var _a = tslib_es6_read(definition, 4), x1 = _a[0], y1 = _a[1], x2 = _a[2], y2 = _a[3];
+        return cubicBezier(x1, y1, x2, y2);
+    }
+    else if (typeof definition === "string") {
+        // Else lookup from table
+        invariant(easingLookup[definition] !== undefined, "Invalid easing type '".concat(definition, "'"));
+        return easingLookup[definition];
+    }
+    return definition;
+};
+var isEasingArray = function (ease) {
+    return Array.isArray(ease) && typeof ease[0] !== "number";
+};
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/animation/utils/is-animatable.mjs
+
+
+/**
+ * Check if a value is animatable. Examples:
+ *
+ * ✅: 100, "100px", "#fff"
+ * ❌: "block", "url(2.jpg)"
+ * @param value
+ *
+ * @internal
+ */
+var isAnimatable = function (key, value) {
+    // If the list of keys tat might be non-animatable grows, replace with Set
+    if (key === "zIndex")
+        return false;
+    // If it's a number or a keyframes array, we can animate it. We might at some point
+    // need to do a deep isAnimatable check of keyframes, or let Popmotion handle this,
+    // but for now lets leave it like this for performance reasons
+    if (typeof value === "number" || Array.isArray(value))
+        return true;
+    if (typeof value === "string" && // It's animatable if we have a string
+        complex.test(value) && // And it contains numbers and/or colors
+        !value.startsWith("url(") // Unless it starts with "url("
+    ) {
+        return true;
+    }
+    return false;
+};
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs
+
+
+
+var underDampedSpring = function () { return ({
+    type: "spring",
+    stiffness: 500,
+    damping: 25,
+    restSpeed: 10,
+}); };
+var criticallyDampedSpring = function (to) { return ({
+    type: "spring",
+    stiffness: 550,
+    damping: to === 0 ? 2 * Math.sqrt(550) : 30,
+    restSpeed: 10,
+}); };
+var linearTween = function () { return ({
+    type: "keyframes",
+    ease: "linear",
+    duration: 0.3,
+}); };
+var default_transitions_keyframes = function (values) { return ({
+    type: "keyframes",
+    duration: 0.8,
+    values: values,
+}); };
+var defaultTransitions = {
+    x: underDampedSpring,
+    y: underDampedSpring,
+    z: underDampedSpring,
+    rotate: underDampedSpring,
+    rotateX: underDampedSpring,
+    rotateY: underDampedSpring,
+    rotateZ: underDampedSpring,
+    scaleX: criticallyDampedSpring,
+    scaleY: criticallyDampedSpring,
+    scale: criticallyDampedSpring,
+    opacity: linearTween,
+    backgroundColor: linearTween,
+    color: linearTween,
+    default: criticallyDampedSpring,
+};
+var getDefaultTransition = function (valueKey, to) {
+    var transitionFactory;
+    if (isKeyframesTarget(to)) {
+        transitionFactory = default_transitions_keyframes;
+    }
+    else {
+        transitionFactory =
+            defaultTransitions[valueKey] || defaultTransitions.default;
+    }
+    return __assign({ to: to }, transitionFactory(to));
+};
+
+
+
+;// CONCATENATED MODULE: ./node_modules/style-value-types/dist/es/complex/filter.mjs
+
+
+
+const maxDefaults = new Set(['brightness', 'contrast', 'saturate', 'opacity']);
+function applyDefaultFilter(v) {
+    let [name, value] = v.slice(0, -1).split('(');
+    if (name === 'drop-shadow')
+        return v;
+    const [number] = value.match(floatRegex) || [];
+    if (!number)
+        return v;
+    const unit = value.replace(number, '');
+    let defaultValue = maxDefaults.has(name) ? 1 : 0;
+    if (number !== value)
+        defaultValue *= 100;
+    return name + '(' + defaultValue + unit + ')';
+}
+const functionRegex = /([a-z-]*)\(.*?\)/g;
+const filter = Object.assign(Object.assign({}, complex), { getAnimatableNone: (v) => {
+        const functions = v.match(functionRegex);
+        return functions ? functions.map(applyDefaultFilter).join(' ') : v;
+    } });
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/dom/value-types/defaults.mjs
+
+
+
+
+/**
+ * A map of default value types for common values
+ */
+var defaultValueTypes = __assign(__assign({}, numberValueTypes), { 
+    // Color props
+    color: color, backgroundColor: color, outlineColor: color, fill: color, stroke: color, 
+    // Border props
+    borderColor: color, borderTopColor: color, borderRightColor: color, borderBottomColor: color, borderLeftColor: color, filter: filter, WebkitFilter: filter });
+/**
+ * Gets the default ValueType for the provided value key
+ */
+var getDefaultValueType = function (key) { return defaultValueTypes[key]; };
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/dom/value-types/animatable-none.mjs
+
+
+
+function animatable_none_getAnimatableNone(key, value) {
+    var _a;
+    var defaultValueType = getDefaultValueType(key);
+    if (defaultValueType !== filter)
+        defaultValueType = complex;
+    // If value is not recognised as animatable, ie "none", create an animatable version origin based on the target
+    return (_a = defaultValueType.getAnimatableNone) === null || _a === void 0 ? void 0 : _a.call(defaultValueType, value);
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/utils/use-instant-transition-state.mjs
+var instantAnimationState = {
+    current: false,
+};
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/animation/utils/transitions.mjs
+
+
+
+
+
+
+
+
+
+
+
+/**
+ * Decide whether a transition is defined on a given Transition.
+ * This filters out orchestration options and returns true
+ * if any options are left.
+ */
+function isTransitionDefined(_a) {
+    _a.when; _a.delay; _a.delayChildren; _a.staggerChildren; _a.staggerDirection; _a.repeat; _a.repeatType; _a.repeatDelay; _a.from; var transition = __rest(_a, ["when", "delay", "delayChildren", "staggerChildren", "staggerDirection", "repeat", "repeatType", "repeatDelay", "from"]);
+    return !!Object.keys(transition).length;
+}
+var legacyRepeatWarning = false;
+/**
+ * Convert Framer Motion's Transition type into Popmotion-compatible options.
+ */
+function convertTransitionToAnimationOptions(_a) {
+    var ease = _a.ease, times = _a.times, yoyo = _a.yoyo, flip = _a.flip, loop = _a.loop, transition = __rest(_a, ["ease", "times", "yoyo", "flip", "loop"]);
+    var options = __assign({}, transition);
+    if (times)
+        options["offset"] = times;
+    /**
+     * Convert any existing durations from seconds to milliseconds
+     */
+    if (transition.duration)
+        options["duration"] = secondsToMilliseconds(transition.duration);
+    if (transition.repeatDelay)
+        options.repeatDelay = secondsToMilliseconds(transition.repeatDelay);
+    /**
+     * Map easing names to Popmotion's easing functions
+     */
+    if (ease) {
+        options["ease"] = isEasingArray(ease)
+            ? ease.map(easingDefinitionToFunction)
+            : easingDefinitionToFunction(ease);
+    }
+    /**
+     * Support legacy transition API
+     */
+    if (transition.type === "tween")
+        options.type = "keyframes";
+    /**
+     * TODO: These options are officially removed from the API.
+     */
+    if (yoyo || loop || flip) {
+        warning(!legacyRepeatWarning, "yoyo, loop and flip have been removed from the API. Replace with repeat and repeatType options.");
+        legacyRepeatWarning = true;
+        if (yoyo) {
+            options.repeatType = "reverse";
+        }
+        else if (loop) {
+            options.repeatType = "loop";
+        }
+        else if (flip) {
+            options.repeatType = "mirror";
+        }
+        options.repeat = loop || yoyo || flip || transition.repeat;
+    }
+    /**
+     * TODO: Popmotion 9 has the ability to automatically detect whether to use
+     * a keyframes or spring animation, but does so by detecting velocity and other spring options.
+     * It'd be good to introduce a similar thing here.
+     */
+    if (transition.type !== "spring")
+        options.type = "keyframes";
+    return options;
+}
+/**
+ * Get the delay for a value by checking Transition with decreasing specificity.
+ */
+function getDelayFromTransition(transition, key) {
+    var _a, _b;
+    var valueTransition = getValueTransition(transition, key) || {};
+    return (_b = (_a = valueTransition.delay) !== null && _a !== void 0 ? _a : transition.delay) !== null && _b !== void 0 ? _b : 0;
+}
+function hydrateKeyframes(options) {
+    if (Array.isArray(options.to) && options.to[0] === null) {
+        options.to = tslib_es6_spreadArray([], tslib_es6_read(options.to), false);
+        options.to[0] = options.from;
+    }
+    return options;
+}
+function getPopmotionAnimationOptions(transition, options, key) {
+    var _a;
+    if (Array.isArray(options.to)) {
+        (_a = transition.duration) !== null && _a !== void 0 ? _a : (transition.duration = 0.8);
+    }
+    hydrateKeyframes(options);
+    /**
+     * Get a default transition if none is determined to be defined.
+     */
+    if (!isTransitionDefined(transition)) {
+        transition = __assign(__assign({}, transition), getDefaultTransition(key, options.to));
+    }
+    return __assign(__assign({}, options), convertTransitionToAnimationOptions(transition));
+}
+/**
+ *
+ */
+function getAnimation(key, value, target, transition, onComplete) {
+    var _a;
+    var valueTransition = getValueTransition(transition, key);
+    var origin = (_a = valueTransition.from) !== null && _a !== void 0 ? _a : value.get();
+    var isTargetAnimatable = isAnimatable(key, target);
+    if (origin === "none" && isTargetAnimatable && typeof target === "string") {
+        /**
+         * If we're trying to animate from "none", try and get an animatable version
+         * of the target. This could be improved to work both ways.
+         */
+        origin = animatable_none_getAnimatableNone(key, target);
+    }
+    else if (isZero(origin) && typeof target === "string") {
+        origin = getZeroUnit(target);
+    }
+    else if (!Array.isArray(target) &&
+        isZero(target) &&
+        typeof origin === "string") {
+        target = getZeroUnit(origin);
+    }
+    var isOriginAnimatable = isAnimatable(key, origin);
+    warning(isOriginAnimatable === isTargetAnimatable, "You are trying to animate ".concat(key, " from \"").concat(origin, "\" to \"").concat(target, "\". ").concat(origin, " is not an animatable value - to enable this animation set ").concat(origin, " to a value animatable to ").concat(target, " via the `style` property."));
+    function start() {
+        var options = {
+            from: origin,
+            to: target,
+            velocity: value.getVelocity(),
+            onComplete: onComplete,
+            onUpdate: function (v) { return value.set(v); },
+        };
+        return valueTransition.type === "inertia" ||
+            valueTransition.type === "decay"
+            ? inertia(__assign(__assign({}, options), valueTransition))
+            : animate(__assign(__assign({}, getPopmotionAnimationOptions(valueTransition, options, key)), { onUpdate: function (v) {
+                    var _a;
+                    options.onUpdate(v);
+                    (_a = valueTransition.onUpdate) === null || _a === void 0 ? void 0 : _a.call(valueTransition, v);
+                }, onComplete: function () {
+                    var _a;
+                    options.onComplete();
+                    (_a = valueTransition.onComplete) === null || _a === void 0 ? void 0 : _a.call(valueTransition);
+                } }));
+    }
+    function set() {
+        var _a, _b;
+        var finalTarget = resolveFinalValueInKeyframes(target);
+        value.set(finalTarget);
+        onComplete();
+        (_a = valueTransition === null || valueTransition === void 0 ? void 0 : valueTransition.onUpdate) === null || _a === void 0 ? void 0 : _a.call(valueTransition, finalTarget);
+        (_b = valueTransition === null || valueTransition === void 0 ? void 0 : valueTransition.onComplete) === null || _b === void 0 ? void 0 : _b.call(valueTransition);
+        return { stop: function () { } };
+    }
+    return !isOriginAnimatable ||
+        !isTargetAnimatable ||
+        valueTransition.type === false
+        ? set
+        : start;
+}
+function isZero(value) {
+    return (value === 0 ||
+        (typeof value === "string" &&
+            parseFloat(value) === 0 &&
+            value.indexOf(" ") === -1));
+}
+function getZeroUnit(potentialUnitType) {
+    return typeof potentialUnitType === "number"
+        ? 0
+        : animatable_none_getAnimatableNone("", potentialUnitType);
+}
+function getValueTransition(transition, key) {
+    return transition[key] || transition["default"] || transition;
+}
+/**
+ * Start animation on a MotionValue. This function is an interface between
+ * Framer Motion and Popmotion
+ */
+function startAnimation(key, value, target, transition) {
+    if (transition === void 0) { transition = {}; }
+    if (instantAnimationState.current) {
+        transition = { type: false };
+    }
+    return value.start(function (onComplete) {
+        var delayTimer;
+        var controls;
+        var animation = getAnimation(key, value, target, transition, onComplete);
+        var delay = getDelayFromTransition(transition, key);
+        var start = function () { return (controls = animation()); };
+        if (delay) {
+            delayTimer = window.setTimeout(start, secondsToMilliseconds(delay));
+        }
+        else {
+            start();
+        }
+        return function () {
+            clearTimeout(delayTimer);
+            controls === null || controls === void 0 ? void 0 : controls.stop();
+        };
+    });
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/utils/is-numerical-string.mjs
+/**
+ * Check if value is a numerical string, ie a string that is purely a number eg "100" or "-100.1"
+ */
+var isNumericalString = function (v) { return /^\-?\d*\.?\d+$/.test(v); };
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/utils/is-zero-value-string.mjs
+/**
+ * Check if the value is a zero value string like "0px" or "0%"
+ */
+var isZeroValueString = function (v) { return /^0[^.\s]+$/.test(v); };
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/utils/array.mjs
+
+
+function addUniqueItem(arr, item) {
+    arr.indexOf(item) === -1 && arr.push(item);
+}
+function removeItem(arr, item) {
+    var index = arr.indexOf(item);
+    index > -1 && arr.splice(index, 1);
+}
+// Adapted from array-move
+function moveItem(_a, fromIndex, toIndex) {
+    var _b = __read(_a), arr = _b.slice(0);
+    var startIndex = fromIndex < 0 ? arr.length + fromIndex : fromIndex;
+    if (startIndex >= 0 && startIndex < arr.length) {
+        var endIndex = toIndex < 0 ? arr.length + toIndex : toIndex;
+        var _c = __read(arr.splice(fromIndex, 1), 1), item = _c[0];
+        arr.splice(endIndex, 0, item);
+    }
+    return arr;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/utils/subscription-manager.mjs
+
+
+var SubscriptionManager = /** @class */ (function () {
+    function SubscriptionManager() {
+        this.subscriptions = [];
+    }
+    SubscriptionManager.prototype.add = function (handler) {
+        var _this = this;
+        addUniqueItem(this.subscriptions, handler);
+        return function () { return removeItem(_this.subscriptions, handler); };
+    };
+    SubscriptionManager.prototype.notify = function (a, b, c) {
+        var numSubscriptions = this.subscriptions.length;
+        if (!numSubscriptions)
+            return;
+        if (numSubscriptions === 1) {
+            /**
+             * If there's only a single handler we can just call it without invoking a loop.
+             */
+            this.subscriptions[0](a, b, c);
+        }
+        else {
+            for (var i = 0; i < numSubscriptions; i++) {
+                /**
+                 * Check whether the handler exists before firing as it's possible
+                 * the subscriptions were modified during this loop running.
+                 */
+                var handler = this.subscriptions[i];
+                handler && handler(a, b, c);
+            }
+        }
+    };
+    SubscriptionManager.prototype.getSize = function () {
+        return this.subscriptions.length;
+    };
+    SubscriptionManager.prototype.clear = function () {
+        this.subscriptions.length = 0;
+    };
+    return SubscriptionManager;
+}());
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/value/index.mjs
+
+
+
+
+var isFloat = function (value) {
+    return !isNaN(parseFloat(value));
+};
+/**
+ * `MotionValue` is used to track the state and velocity of motion values.
+ *
+ * @public
+ */
+var MotionValue = /** @class */ (function () {
+    /**
+     * @param init - The initiating value
+     * @param config - Optional configuration options
+     *
+     * -  `transformer`: A function to transform incoming values with.
+     *
+     * @internal
+     */
+    function MotionValue(init) {
+        var _this = this;
+        /**
+         * This will be replaced by the build step with the latest version number.
+         * When MotionValues are provided to motion components, warn if versions are mixed.
+         */
+        this.version = "6.5.1";
+        /**
+         * Duration, in milliseconds, since last updating frame.
+         *
+         * @internal
+         */
+        this.timeDelta = 0;
+        /**
+         * Timestamp of the last time this `MotionValue` was updated.
+         *
+         * @internal
+         */
+        this.lastUpdated = 0;
+        /**
+         * Functions to notify when the `MotionValue` updates.
+         *
+         * @internal
+         */
+        this.updateSubscribers = new SubscriptionManager();
+        /**
+         * Functions to notify when the velocity updates.
+         *
+         * @internal
+         */
+        this.velocityUpdateSubscribers = new SubscriptionManager();
+        /**
+         * Functions to notify when the `MotionValue` updates and `render` is set to `true`.
+         *
+         * @internal
+         */
+        this.renderSubscribers = new SubscriptionManager();
+        /**
+         * Tracks whether this value can output a velocity. Currently this is only true
+         * if the value is numerical, but we might be able to widen the scope here and support
+         * other value types.
+         *
+         * @internal
+         */
+        this.canTrackVelocity = false;
+        this.updateAndNotify = function (v, render) {
+            if (render === void 0) { render = true; }
+            _this.prev = _this.current;
+            _this.current = v;
+            // Update timestamp
+            var _a = getFrameData(), delta = _a.delta, timestamp = _a.timestamp;
+            if (_this.lastUpdated !== timestamp) {
+                _this.timeDelta = delta;
+                _this.lastUpdated = timestamp;
+                es.postRender(_this.scheduleVelocityCheck);
+            }
+            // Update update subscribers
+            if (_this.prev !== _this.current) {
+                _this.updateSubscribers.notify(_this.current);
+            }
+            // Update velocity subscribers
+            if (_this.velocityUpdateSubscribers.getSize()) {
+                _this.velocityUpdateSubscribers.notify(_this.getVelocity());
+            }
+            // Update render subscribers
+            if (render) {
+                _this.renderSubscribers.notify(_this.current);
+            }
+        };
+        /**
+         * Schedule a velocity check for the next frame.
+         *
+         * This is an instanced and bound function to prevent generating a new
+         * function once per frame.
+         *
+         * @internal
+         */
+        this.scheduleVelocityCheck = function () { return es.postRender(_this.velocityCheck); };
+        /**
+         * Updates `prev` with `current` if the value hasn't been updated this frame.
+         * This ensures velocity calculations return `0`.
+         *
+         * This is an instanced and bound function to prevent generating a new
+         * function once per frame.
+         *
+         * @internal
+         */
+        this.velocityCheck = function (_a) {
+            var timestamp = _a.timestamp;
+            if (timestamp !== _this.lastUpdated) {
+                _this.prev = _this.current;
+                _this.velocityUpdateSubscribers.notify(_this.getVelocity());
+            }
+        };
+        this.hasAnimated = false;
+        this.prev = this.current = init;
+        this.canTrackVelocity = isFloat(this.current);
+    }
+    /**
+     * Adds a function that will be notified when the `MotionValue` is updated.
+     *
+     * It returns a function that, when called, will cancel the subscription.
+     *
+     * When calling `onChange` inside a React component, it should be wrapped with the
+     * `useEffect` hook. As it returns an unsubscribe function, this should be returned
+     * from the `useEffect` function to ensure you don't add duplicate subscribers..
+     *
+     * ```jsx
+     * export const MyComponent = () => {
+     *   const x = useMotionValue(0)
+     *   const y = useMotionValue(0)
+     *   const opacity = useMotionValue(1)
+     *
+     *   useEffect(() => {
+     *     function updateOpacity() {
+     *       const maxXY = Math.max(x.get(), y.get())
+     *       const newOpacity = transform(maxXY, [0, 100], [1, 0])
+     *       opacity.set(newOpacity)
+     *     }
+     *
+     *     const unsubscribeX = x.onChange(updateOpacity)
+     *     const unsubscribeY = y.onChange(updateOpacity)
+     *
+     *     return () => {
+     *       unsubscribeX()
+     *       unsubscribeY()
+     *     }
+     *   }, [])
+     *
+     *   return <motion.div style={{ x }} />
+     * }
+     * ```
+     *
+     * @privateRemarks
+     *
+     * We could look into a `useOnChange` hook if the above lifecycle management proves confusing.
+     *
+     * ```jsx
+     * useOnChange(x, () => {})
+     * ```
+     *
+     * @param subscriber - A function that receives the latest value.
+     * @returns A function that, when called, will cancel this subscription.
+     *
+     * @public
+     */
+    MotionValue.prototype.onChange = function (subscription) {
+        return this.updateSubscribers.add(subscription);
+    };
+    MotionValue.prototype.clearListeners = function () {
+        this.updateSubscribers.clear();
+    };
+    /**
+     * Adds a function that will be notified when the `MotionValue` requests a render.
+     *
+     * @param subscriber - A function that's provided the latest value.
+     * @returns A function that, when called, will cancel this subscription.
+     *
+     * @internal
+     */
+    MotionValue.prototype.onRenderRequest = function (subscription) {
+        // Render immediately
+        subscription(this.get());
+        return this.renderSubscribers.add(subscription);
+    };
+    /**
+     * Attaches a passive effect to the `MotionValue`.
+     *
+     * @internal
+     */
+    MotionValue.prototype.attach = function (passiveEffect) {
+        this.passiveEffect = passiveEffect;
+    };
+    /**
+     * Sets the state of the `MotionValue`.
+     *
+     * @remarks
+     *
+     * ```jsx
+     * const x = useMotionValue(0)
+     * x.set(10)
+     * ```
+     *
+     * @param latest - Latest value to set.
+     * @param render - Whether to notify render subscribers. Defaults to `true`
+     *
+     * @public
+     */
+    MotionValue.prototype.set = function (v, render) {
+        if (render === void 0) { render = true; }
+        if (!render || !this.passiveEffect) {
+            this.updateAndNotify(v, render);
+        }
+        else {
+            this.passiveEffect(v, this.updateAndNotify);
+        }
+    };
+    /**
+     * Returns the latest state of `MotionValue`
+     *
+     * @returns - The latest state of `MotionValue`
+     *
+     * @public
+     */
+    MotionValue.prototype.get = function () {
+        return this.current;
+    };
+    /**
+     * @public
+     */
+    MotionValue.prototype.getPrevious = function () {
+        return this.prev;
+    };
+    /**
+     * Returns the latest velocity of `MotionValue`
+     *
+     * @returns - The latest velocity of `MotionValue`. Returns `0` if the state is non-numerical.
+     *
+     * @public
+     */
+    MotionValue.prototype.getVelocity = function () {
+        // This could be isFloat(this.prev) && isFloat(this.current), but that would be wasteful
+        return this.canTrackVelocity
+            ? // These casts could be avoided if parseFloat would be typed better
+                velocityPerSecond(parseFloat(this.current) -
+                    parseFloat(this.prev), this.timeDelta)
+            : 0;
+    };
+    /**
+     * Registers a new animation to control this `MotionValue`. Only one
+     * animation can drive a `MotionValue` at one time.
+     *
+     * ```jsx
+     * value.start()
+     * ```
+     *
+     * @param animation - A function that starts the provided animation
+     *
+     * @internal
+     */
+    MotionValue.prototype.start = function (animation) {
+        var _this = this;
+        this.stop();
+        return new Promise(function (resolve) {
+            _this.hasAnimated = true;
+            _this.stopAnimation = animation(resolve);
+        }).then(function () { return _this.clearAnimation(); });
+    };
+    /**
+     * Stop the currently active animation.
+     *
+     * @public
+     */
+    MotionValue.prototype.stop = function () {
+        if (this.stopAnimation)
+            this.stopAnimation();
+        this.clearAnimation();
+    };
+    /**
+     * Returns `true` if this value is currently animating.
+     *
+     * @public
+     */
+    MotionValue.prototype.isAnimating = function () {
+        return !!this.stopAnimation;
+    };
+    MotionValue.prototype.clearAnimation = function () {
+        this.stopAnimation = null;
+    };
+    /**
+     * Destroy and clean up subscribers to this `MotionValue`.
+     *
+     * The `MotionValue` hooks like `useMotionValue` and `useTransform` automatically
+     * handle the lifecycle of the returned `MotionValue`, so this method is only necessary if you've manually
+     * created a `MotionValue` via the `motionValue` function.
+     *
+     * @public
+     */
+    MotionValue.prototype.destroy = function () {
+        this.updateSubscribers.clear();
+        this.renderSubscribers.clear();
+        this.stop();
+    };
+    return MotionValue;
+}());
+function motionValue(init) {
+    return new MotionValue(init);
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/dom/value-types/test.mjs
+/**
+ * Tests a provided value against a ValueType
+ */
+var testValueType = function (v) { return function (type) { return type.test(v); }; };
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/dom/value-types/type-auto.mjs
+/**
+ * ValueType for "auto"
+ */
+var auto = {
+    test: function (v) { return v === "auto"; },
+    parse: function (v) { return v; },
+};
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/dom/value-types/dimensions.mjs
+
+
+
+
+/**
+ * A list of value types commonly used for dimensions
+ */
+var dimensionValueTypes = [number, px, percent, degrees, vw, vh, auto];
+/**
+ * Tests a dimensional value against the list of dimension ValueTypes
+ */
+var findDimensionValueType = function (v) {
+    return dimensionValueTypes.find(testValueType(v));
+};
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/dom/value-types/find.mjs
+
+
+
+
+
+/**
+ * A list of all ValueTypes
+ */
+var valueTypes = tslib_es6_spreadArray(tslib_es6_spreadArray([], tslib_es6_read(dimensionValueTypes), false), [color, complex], false);
+/**
+ * Tests a value against the list of ValueTypes
+ */
+var findValueType = function (v) { return valueTypes.find(testValueType(v)); };
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/utils/setters.mjs
+
+
+
+
+
+
+
+
+
+
+/**
+ * Set VisualElement's MotionValue, creating a new MotionValue for it if
+ * it doesn't exist.
+ */
+function setMotionValue(visualElement, key, value) {
+    if (visualElement.hasValue(key)) {
+        visualElement.getValue(key).set(value);
+    }
+    else {
+        visualElement.addValue(key, motionValue(value));
+    }
+}
+function setTarget(visualElement, definition) {
+    var resolved = resolveVariant(visualElement, definition);
+    var _a = resolved ? visualElement.makeTargetAnimatable(resolved, false) : {}, _b = _a.transitionEnd, transitionEnd = _b === void 0 ? {} : _b; _a.transition; var target = __rest(_a, ["transitionEnd", "transition"]);
+    target = __assign(__assign({}, target), transitionEnd);
+    for (var key in target) {
+        var value = resolveFinalValueInKeyframes(target[key]);
+        setMotionValue(visualElement, key, value);
+    }
+}
+function setVariants(visualElement, variantLabels) {
+    var reversedLabels = __spreadArray([], __read(variantLabels), false).reverse();
+    reversedLabels.forEach(function (key) {
+        var _a;
+        var variant = visualElement.getVariant(key);
+        variant && setTarget(visualElement, variant);
+        (_a = visualElement.variantChildren) === null || _a === void 0 ? void 0 : _a.forEach(function (child) {
+            setVariants(child, variantLabels);
+        });
+    });
+}
+function setValues(visualElement, definition) {
+    if (Array.isArray(definition)) {
+        return setVariants(visualElement, definition);
+    }
+    else if (typeof definition === "string") {
+        return setVariants(visualElement, [definition]);
+    }
+    else {
+        setTarget(visualElement, definition);
+    }
+}
+function checkTargetForNewValues(visualElement, target, origin) {
+    var _a, _b, _c;
+    var _d;
+    var newValueKeys = Object.keys(target).filter(function (key) { return !visualElement.hasValue(key); });
+    var numNewValues = newValueKeys.length;
+    if (!numNewValues)
+        return;
+    for (var i = 0; i < numNewValues; i++) {
+        var key = newValueKeys[i];
+        var targetValue = target[key];
+        var value = null;
+        /**
+         * If the target is a series of keyframes, we can use the first value
+         * in the array. If this first value is null, we'll still need to read from the DOM.
+         */
+        if (Array.isArray(targetValue)) {
+            value = targetValue[0];
+        }
+        /**
+         * If the target isn't keyframes, or the first keyframe was null, we need to
+         * first check if an origin value was explicitly defined in the transition as "from",
+         * if not read the value from the DOM. As an absolute fallback, take the defined target value.
+         */
+        if (value === null) {
+            value = (_b = (_a = origin[key]) !== null && _a !== void 0 ? _a : visualElement.readValue(key)) !== null && _b !== void 0 ? _b : target[key];
+        }
+        /**
+         * If value is still undefined or null, ignore it. Preferably this would throw,
+         * but this was causing issues in Framer.
+         */
+        if (value === undefined || value === null)
+            continue;
+        if (typeof value === "string" &&
+            (isNumericalString(value) || isZeroValueString(value))) {
+            // If this is a number read as a string, ie "0" or "200", convert it to a number
+            value = parseFloat(value);
+        }
+        else if (!findValueType(value) && complex.test(targetValue)) {
+            value = animatable_none_getAnimatableNone(key, targetValue);
+        }
+        visualElement.addValue(key, motionValue(value));
+        (_c = (_d = origin)[key]) !== null && _c !== void 0 ? _c : (_d[key] = value);
+        visualElement.setBaseTarget(key, value);
+    }
+}
+function getOriginFromTransition(key, transition) {
+    if (!transition)
+        return;
+    var valueTransition = transition[key] || transition["default"] || transition;
+    return valueTransition.from;
+}
+function getOrigin(target, transition, visualElement) {
+    var _a, _b;
+    var origin = {};
+    for (var key in target) {
+        origin[key] =
+            (_a = getOriginFromTransition(key, transition)) !== null && _a !== void 0 ? _a : (_b = visualElement.getValue(key)) === null || _b === void 0 ? void 0 : _b.get();
+    }
+    return origin;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/utils/animation.mjs
+
+
+
+
+
+
+function animateVisualElement(visualElement, definition, options) {
+    if (options === void 0) { options = {}; }
+    visualElement.notifyAnimationStart(definition);
+    var animation;
+    if (Array.isArray(definition)) {
+        var animations = definition.map(function (variant) {
+            return animateVariant(visualElement, variant, options);
+        });
+        animation = Promise.all(animations);
+    }
+    else if (typeof definition === "string") {
+        animation = animateVariant(visualElement, definition, options);
+    }
+    else {
+        var resolvedDefinition = typeof definition === "function"
+            ? resolveVariant(visualElement, definition, options.custom)
+            : definition;
+        animation = animateTarget(visualElement, resolvedDefinition, options);
+    }
+    return animation.then(function () {
+        return visualElement.notifyAnimationComplete(definition);
+    });
+}
+function animateVariant(visualElement, variant, options) {
+    var _a;
+    if (options === void 0) { options = {}; }
+    var resolved = resolveVariant(visualElement, variant, options.custom);
+    var _b = (resolved || {}).transition, transition = _b === void 0 ? visualElement.getDefaultTransition() || {} : _b;
+    if (options.transitionOverride) {
+        transition = options.transitionOverride;
+    }
+    /**
+     * If we have a variant, create a callback that runs it as an animation.
+     * Otherwise, we resolve a Promise immediately for a composable no-op.
+     */
+    var getAnimation = resolved
+        ? function () { return animateTarget(visualElement, resolved, options); }
+        : function () { return Promise.resolve(); };
+    /**
+     * If we have children, create a callback that runs all their animations.
+     * Otherwise, we resolve a Promise immediately for a composable no-op.
+     */
+    var getChildAnimations = ((_a = visualElement.variantChildren) === null || _a === void 0 ? void 0 : _a.size)
+        ? function (forwardDelay) {
+            if (forwardDelay === void 0) { forwardDelay = 0; }
+            var _a = transition.delayChildren, delayChildren = _a === void 0 ? 0 : _a, staggerChildren = transition.staggerChildren, staggerDirection = transition.staggerDirection;
+            return animateChildren(visualElement, variant, delayChildren + forwardDelay, staggerChildren, staggerDirection, options);
+        }
+        : function () { return Promise.resolve(); };
+    /**
+     * If the transition explicitly defines a "when" option, we need to resolve either
+     * this animation or all children animations before playing the other.
+     */
+    var when = transition.when;
+    if (when) {
+        var _c = tslib_es6_read(when === "beforeChildren"
+            ? [getAnimation, getChildAnimations]
+            : [getChildAnimations, getAnimation], 2), first = _c[0], last = _c[1];
+        return first().then(last);
+    }
+    else {
+        return Promise.all([getAnimation(), getChildAnimations(options.delay)]);
+    }
+}
+/**
+ * @internal
+ */
+function animateTarget(visualElement, definition, _a) {
+    var _b;
+    var _c = _a === void 0 ? {} : _a, _d = _c.delay, delay = _d === void 0 ? 0 : _d, transitionOverride = _c.transitionOverride, type = _c.type;
+    var _e = visualElement.makeTargetAnimatable(definition), _f = _e.transition, transition = _f === void 0 ? visualElement.getDefaultTransition() : _f, transitionEnd = _e.transitionEnd, target = __rest(_e, ["transition", "transitionEnd"]);
+    if (transitionOverride)
+        transition = transitionOverride;
+    var animations = [];
+    var animationTypeState = type && ((_b = visualElement.animationState) === null || _b === void 0 ? void 0 : _b.getState()[type]);
+    for (var key in target) {
+        var value = visualElement.getValue(key);
+        var valueTarget = target[key];
+        if (!value ||
+            valueTarget === undefined ||
+            (animationTypeState &&
+                shouldBlockAnimation(animationTypeState, key))) {
+            continue;
+        }
+        var valueTransition = __assign({ delay: delay }, transition);
+        /**
+         * Make animation instant if this is a transform prop and we should reduce motion.
+         */
+        if (visualElement.shouldReduceMotion && isTransformProp(key)) {
+            valueTransition = __assign(__assign({}, valueTransition), { type: false, delay: 0 });
+        }
+        var animation = startAnimation(key, value, valueTarget, valueTransition);
+        animations.push(animation);
+    }
+    return Promise.all(animations).then(function () {
+        transitionEnd && setTarget(visualElement, transitionEnd);
+    });
+}
+function animateChildren(visualElement, variant, delayChildren, staggerChildren, staggerDirection, options) {
+    if (delayChildren === void 0) { delayChildren = 0; }
+    if (staggerChildren === void 0) { staggerChildren = 0; }
+    if (staggerDirection === void 0) { staggerDirection = 1; }
+    var animations = [];
+    var maxStaggerDuration = (visualElement.variantChildren.size - 1) * staggerChildren;
+    var generateStaggerDuration = staggerDirection === 1
+        ? function (i) {
+            if (i === void 0) { i = 0; }
+            return i * staggerChildren;
+        }
+        : function (i) {
+            if (i === void 0) { i = 0; }
+            return maxStaggerDuration - i * staggerChildren;
+        };
+    Array.from(visualElement.variantChildren)
+        .sort(sortByTreeOrder)
+        .forEach(function (child, i) {
+        animations.push(animateVariant(child, variant, __assign(__assign({}, options), { delay: delayChildren + generateStaggerDuration(i) })).then(function () { return child.notifyAnimationComplete(variant); }));
+    });
+    return Promise.all(animations);
+}
+function stopAnimation(visualElement) {
+    visualElement.forEachValue(function (value) { return value.stop(); });
+}
+function sortByTreeOrder(a, b) {
+    return a.sortNodePosition(b);
+}
+/**
+ * Decide whether we should block this animation. Previously, we achieved this
+ * just by checking whether the key was listed in protectedKeys, but this
+ * posed problems if an animation was triggered by afterChildren and protectedKeys
+ * had been set to true in the meantime.
+ */
+function shouldBlockAnimation(_a, key) {
+    var protectedKeys = _a.protectedKeys, needsAnimating = _a.needsAnimating;
+    var shouldBlock = protectedKeys.hasOwnProperty(key) && needsAnimating[key] !== true;
+    needsAnimating[key] = false;
+    return shouldBlock;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/utils/animation-state.mjs
+
+
+
+
+
+
+
+
+var variantPriorityOrder = [
+    AnimationType.Animate,
+    AnimationType.InView,
+    AnimationType.Focus,
+    AnimationType.Hover,
+    AnimationType.Tap,
+    AnimationType.Drag,
+    AnimationType.Exit,
+];
+var reversePriorityOrder = tslib_es6_spreadArray([], tslib_es6_read(variantPriorityOrder), false).reverse();
+var numAnimationTypes = variantPriorityOrder.length;
+function animateList(visualElement) {
+    return function (animations) {
+        return Promise.all(animations.map(function (_a) {
+            var animation = _a.animation, options = _a.options;
+            return animateVisualElement(visualElement, animation, options);
+        }));
+    };
+}
+function createAnimationState(visualElement) {
+    var animate = animateList(visualElement);
+    var state = createState();
+    var allAnimatedKeys = {};
+    var isInitialRender = true;
+    /**
+     * This function will be used to reduce the animation definitions for
+     * each active animation type into an object of resolved values for it.
+     */
+    var buildResolvedTypeValues = function (acc, definition) {
+        var resolved = resolveVariant(visualElement, definition);
+        if (resolved) {
+            resolved.transition; var transitionEnd = resolved.transitionEnd, target = __rest(resolved, ["transition", "transitionEnd"]);
+            acc = __assign(__assign(__assign({}, acc), target), transitionEnd);
+        }
+        return acc;
+    };
+    function isAnimated(key) {
+        return allAnimatedKeys[key] !== undefined;
+    }
+    /**
+     * This just allows us to inject mocked animation functions
+     * @internal
+     */
+    function setAnimateFunction(makeAnimator) {
+        animate = makeAnimator(visualElement);
+    }
+    /**
+     * When we receive new props, we need to:
+     * 1. Create a list of protected keys for each type. This is a directory of
+     *    value keys that are currently being "handled" by types of a higher priority
+     *    so that whenever an animation is played of a given type, these values are
+     *    protected from being animated.
+     * 2. Determine if an animation type needs animating.
+     * 3. Determine if any values have been removed from a type and figure out
+     *    what to animate those to.
+     */
+    function animateChanges(options, changedActiveType) {
+        var _a;
+        var props = visualElement.getProps();
+        var context = visualElement.getVariantContext(true) || {};
+        /**
+         * A list of animations that we'll build into as we iterate through the animation
+         * types. This will get executed at the end of the function.
+         */
+        var animations = [];
+        /**
+         * Keep track of which values have been removed. Then, as we hit lower priority
+         * animation types, we can check if they contain removed values and animate to that.
+         */
+        var removedKeys = new Set();
+        /**
+         * A dictionary of all encountered keys. This is an object to let us build into and
+         * copy it without iteration. Each time we hit an animation type we set its protected
+         * keys - the keys its not allowed to animate - to the latest version of this object.
+         */
+        var encounteredKeys = {};
+        /**
+         * If a variant has been removed at a given index, and this component is controlling
+         * variant animations, we want to ensure lower-priority variants are forced to animate.
+         */
+        var removedVariantIndex = Infinity;
+        var _loop_1 = function (i) {
+            var type = reversePriorityOrder[i];
+            var typeState = state[type];
+            var prop = (_a = props[type]) !== null && _a !== void 0 ? _a : context[type];
+            var propIsVariant = isVariantLabel(prop);
+            /**
+             * If this type has *just* changed isActive status, set activeDelta
+             * to that status. Otherwise set to null.
+             */
+            var activeDelta = type === changedActiveType ? typeState.isActive : null;
+            if (activeDelta === false)
+                removedVariantIndex = i;
+            /**
+             * If this prop is an inherited variant, rather than been set directly on the
+             * component itself, we want to make sure we allow the parent to trigger animations.
+             *
+             * TODO: Can probably change this to a !isControllingVariants check
+             */
+            var isInherited = prop === context[type] && prop !== props[type] && propIsVariant;
+            /**
+             *
+             */
+            if (isInherited &&
+                isInitialRender &&
+                visualElement.manuallyAnimateOnMount) {
+                isInherited = false;
+            }
+            /**
+             * Set all encountered keys so far as the protected keys for this type. This will
+             * be any key that has been animated or otherwise handled by active, higher-priortiy types.
+             */
+            typeState.protectedKeys = __assign({}, encounteredKeys);
+            // Check if we can skip analysing this prop early
+            if (
+            // If it isn't active and hasn't *just* been set as inactive
+            (!typeState.isActive && activeDelta === null) ||
+                // If we didn't and don't have any defined prop for this animation type
+                (!prop && !typeState.prevProp) ||
+                // Or if the prop doesn't define an animation
+                isAnimationControls(prop) ||
+                typeof prop === "boolean") {
+                return "continue";
+            }
+            /**
+             * As we go look through the values defined on this type, if we detect
+             * a changed value or a value that was removed in a higher priority, we set
+             * this to true and add this prop to the animation list.
+             */
+            var variantDidChange = checkVariantsDidChange(typeState.prevProp, prop);
+            var shouldAnimateType = variantDidChange ||
+                // If we're making this variant active, we want to always make it active
+                (type === changedActiveType &&
+                    typeState.isActive &&
+                    !isInherited &&
+                    propIsVariant) ||
+                // If we removed a higher-priority variant (i is in reverse order)
+                (i > removedVariantIndex && propIsVariant);
+            /**
+             * As animations can be set as variant lists, variants or target objects, we
+             * coerce everything to an array if it isn't one already
+             */
+            var definitionList = Array.isArray(prop) ? prop : [prop];
+            /**
+             * Build an object of all the resolved values. We'll use this in the subsequent
+             * animateChanges calls to determine whether a value has changed.
+             */
+            var resolvedValues = definitionList.reduce(buildResolvedTypeValues, {});
+            if (activeDelta === false)
+                resolvedValues = {};
+            /**
+             * Now we need to loop through all the keys in the prev prop and this prop,
+             * and decide:
+             * 1. If the value has changed, and needs animating
+             * 2. If it has been removed, and needs adding to the removedKeys set
+             * 3. If it has been removed in a higher priority type and needs animating
+             * 4. If it hasn't been removed in a higher priority but hasn't changed, and
+             *    needs adding to the type's protectedKeys list.
+             */
+            var _b = typeState.prevResolvedValues, prevResolvedValues = _b === void 0 ? {} : _b;
+            var allKeys = __assign(__assign({}, prevResolvedValues), resolvedValues);
+            var markToAnimate = function (key) {
+                shouldAnimateType = true;
+                removedKeys.delete(key);
+                typeState.needsAnimating[key] = true;
+            };
+            for (var key in allKeys) {
+                var next = resolvedValues[key];
+                var prev = prevResolvedValues[key];
+                // If we've already handled this we can just skip ahead
+                if (encounteredKeys.hasOwnProperty(key))
+                    continue;
+                /**
+                 * If the value has changed, we probably want to animate it.
+                 */
+                if (next !== prev) {
+                    /**
+                     * If both values are keyframes, we need to shallow compare them to
+                     * detect whether any value has changed. If it has, we animate it.
+                     */
+                    if (isKeyframesTarget(next) && isKeyframesTarget(prev)) {
+                        if (!shallowCompare(next, prev) || variantDidChange) {
+                            markToAnimate(key);
+                        }
+                        else {
+                            /**
+                             * If it hasn't changed, we want to ensure it doesn't animate by
+                             * adding it to the list of protected keys.
+                             */
+                            typeState.protectedKeys[key] = true;
+                        }
+                    }
+                    else if (next !== undefined) {
+                        // If next is defined and doesn't equal prev, it needs animating
+                        markToAnimate(key);
+                    }
+                    else {
+                        // If it's undefined, it's been removed.
+                        removedKeys.add(key);
+                    }
+                }
+                else if (next !== undefined && removedKeys.has(key)) {
+                    /**
+                     * If next hasn't changed and it isn't undefined, we want to check if it's
+                     * been removed by a higher priority
+                     */
+                    markToAnimate(key);
+                }
+                else {
+                    /**
+                     * If it hasn't changed, we add it to the list of protected values
+                     * to ensure it doesn't get animated.
+                     */
+                    typeState.protectedKeys[key] = true;
+                }
+            }
+            /**
+             * Update the typeState so next time animateChanges is called we can compare the
+             * latest prop and resolvedValues to these.
+             */
+            typeState.prevProp = prop;
+            typeState.prevResolvedValues = resolvedValues;
+            /**
+             *
+             */
+            if (typeState.isActive) {
+                encounteredKeys = __assign(__assign({}, encounteredKeys), resolvedValues);
+            }
+            if (isInitialRender && visualElement.blockInitialAnimation) {
+                shouldAnimateType = false;
+            }
+            /**
+             * If this is an inherited prop we want to hard-block animations
+             * TODO: Test as this should probably still handle animations triggered
+             * by removed values?
+             */
+            if (shouldAnimateType && !isInherited) {
+                animations.push.apply(animations, tslib_es6_spreadArray([], tslib_es6_read(definitionList.map(function (animation) { return ({
+                    animation: animation,
+                    options: __assign({ type: type }, options),
+                }); })), false));
+            }
+        };
+        /**
+         * Iterate through all animation types in reverse priority order. For each, we want to
+         * detect which values it's handling and whether or not they've changed (and therefore
+         * need to be animated). If any values have been removed, we want to detect those in
+         * lower priority props and flag for animation.
+         */
+        for (var i = 0; i < numAnimationTypes; i++) {
+            _loop_1(i);
+        }
+        allAnimatedKeys = __assign({}, encounteredKeys);
+        /**
+         * If there are some removed value that haven't been dealt with,
+         * we need to create a new animation that falls back either to the value
+         * defined in the style prop, or the last read value.
+         */
+        if (removedKeys.size) {
+            var fallbackAnimation_1 = {};
+            removedKeys.forEach(function (key) {
+                var fallbackTarget = visualElement.getBaseTarget(key);
+                if (fallbackTarget !== undefined) {
+                    fallbackAnimation_1[key] = fallbackTarget;
+                }
+            });
+            animations.push({ animation: fallbackAnimation_1 });
+        }
+        var shouldAnimate = Boolean(animations.length);
+        if (isInitialRender &&
+            props.initial === false &&
+            !visualElement.manuallyAnimateOnMount) {
+            shouldAnimate = false;
+        }
+        isInitialRender = false;
+        return shouldAnimate ? animate(animations) : Promise.resolve();
+    }
+    /**
+     * Change whether a certain animation type is active.
+     */
+    function setActive(type, isActive, options) {
+        var _a;
+        // If the active state hasn't changed, we can safely do nothing here
+        if (state[type].isActive === isActive)
+            return Promise.resolve();
+        // Propagate active change to children
+        (_a = visualElement.variantChildren) === null || _a === void 0 ? void 0 : _a.forEach(function (child) { var _a; return (_a = child.animationState) === null || _a === void 0 ? void 0 : _a.setActive(type, isActive); });
+        state[type].isActive = isActive;
+        var animations = animateChanges(options, type);
+        for (var key in state) {
+            state[key].protectedKeys = {};
+        }
+        return animations;
+    }
+    return {
+        isAnimated: isAnimated,
+        animateChanges: animateChanges,
+        setActive: setActive,
+        setAnimateFunction: setAnimateFunction,
+        getState: function () { return state; },
+    };
+}
+function checkVariantsDidChange(prev, next) {
+    if (typeof next === "string") {
+        return next !== prev;
+    }
+    else if (isVariantLabels(next)) {
+        return !shallowCompare(next, prev);
+    }
+    return false;
+}
+function createTypeState(isActive) {
+    if (isActive === void 0) { isActive = false; }
+    return {
+        isActive: isActive,
+        protectedKeys: {},
+        needsAnimating: {},
+        prevResolvedValues: {},
+    };
+}
+function createState() {
+    var _a;
+    return _a = {},
+        _a[AnimationType.Animate] = createTypeState(true),
+        _a[AnimationType.InView] = createTypeState(),
+        _a[AnimationType.Hover] = createTypeState(),
+        _a[AnimationType.Tap] = createTypeState(),
+        _a[AnimationType.Drag] = createTypeState(),
+        _a[AnimationType.Focus] = createTypeState(),
+        _a[AnimationType.Exit] = createTypeState(),
+        _a;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/motion/features/animations.mjs
+
+
+
+
+
+
+
+
+
+var animations = {
+    animation: makeRenderlessComponent(function (_a) {
+        var visualElement = _a.visualElement, animate = _a.animate;
+        /**
+         * We dynamically generate the AnimationState manager as it contains a reference
+         * to the underlying animation library. We only want to load that if we load this,
+         * so people can optionally code split it out using the `m` component.
+         */
+        visualElement.animationState || (visualElement.animationState = createAnimationState(visualElement));
+        /**
+         * Subscribe any provided AnimationControls to the component's VisualElement
+         */
+        if (isAnimationControls(animate)) {
+            (0,external_React_.useEffect)(function () { return animate.subscribe(visualElement); }, [animate]);
+        }
+    }),
+    exit: makeRenderlessComponent(function (props) {
+        var custom = props.custom, visualElement = props.visualElement;
+        var _a = tslib_es6_read(usePresence(), 2), isPresent = _a[0], safeToRemove = _a[1];
+        var presenceContext = (0,external_React_.useContext)(PresenceContext_PresenceContext);
+        (0,external_React_.useEffect)(function () {
+            var _a, _b;
+            visualElement.isPresent = isPresent;
+            var animation = (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Exit, !isPresent, { custom: (_b = presenceContext === null || presenceContext === void 0 ? void 0 : presenceContext.custom) !== null && _b !== void 0 ? _b : custom });
+            !isPresent && (animation === null || animation === void 0 ? void 0 : animation.then(safeToRemove));
+        }, [isPresent]);
+    }),
+};
+
+
+
+;// CONCATENATED MODULE: ./node_modules/popmotion/dist/es/utils/is-point.mjs
+const isPoint = (point) => point.hasOwnProperty('x') && point.hasOwnProperty('y');
+
+
+
+;// CONCATENATED MODULE: ./node_modules/popmotion/dist/es/utils/is-point-3d.mjs
+
+
+const isPoint3D = (point) => isPoint(point) && point.hasOwnProperty('z');
+
+
+
+;// CONCATENATED MODULE: ./node_modules/popmotion/dist/es/utils/distance.mjs
+
+
+
+
+const distance1D = (a, b) => Math.abs(a - b);
+function distance(a, b) {
+    if (isNum(a) && isNum(b)) {
+        return distance1D(a, b);
+    }
+    else if (isPoint(a) && isPoint(b)) {
+        const xDelta = distance1D(a.x, b.x);
+        const yDelta = distance1D(a.y, b.y);
+        const zDelta = isPoint3D(a) && isPoint3D(b) ? distance1D(a.z, b.z) : 0;
+        return Math.sqrt(Math.pow(xDelta, 2) + Math.pow(yDelta, 2) + Math.pow(zDelta, 2));
+    }
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/gestures/PanSession.mjs
+
+
+
+
+
+
+
+
+/**
+ * @internal
+ */
+var PanSession = /** @class */ (function () {
+    function PanSession(event, handlers, _a) {
+        var _this = this;
+        var _b = _a === void 0 ? {} : _a, transformPagePoint = _b.transformPagePoint;
+        /**
+         * @internal
+         */
+        this.startEvent = null;
+        /**
+         * @internal
+         */
+        this.lastMoveEvent = null;
+        /**
+         * @internal
+         */
+        this.lastMoveEventInfo = null;
+        /**
+         * @internal
+         */
+        this.handlers = {};
+        this.updatePoint = function () {
+            if (!(_this.lastMoveEvent && _this.lastMoveEventInfo))
+                return;
+            var info = getPanInfo(_this.lastMoveEventInfo, _this.history);
+            var isPanStarted = _this.startEvent !== null;
+            // Only start panning if the offset is larger than 3 pixels. If we make it
+            // any larger than this we'll want to reset the pointer history
+            // on the first update to avoid visual snapping to the cursoe.
+            var isDistancePastThreshold = distance(info.offset, { x: 0, y: 0 }) >= 3;
+            if (!isPanStarted && !isDistancePastThreshold)
+                return;
+            var point = info.point;
+            var timestamp = getFrameData().timestamp;
+            _this.history.push(__assign(__assign({}, point), { timestamp: timestamp }));
+            var _a = _this.handlers, onStart = _a.onStart, onMove = _a.onMove;
+            if (!isPanStarted) {
+                onStart && onStart(_this.lastMoveEvent, info);
+                _this.startEvent = _this.lastMoveEvent;
+            }
+            onMove && onMove(_this.lastMoveEvent, info);
+        };
+        this.handlePointerMove = function (event, info) {
+            _this.lastMoveEvent = event;
+            _this.lastMoveEventInfo = transformPoint(info, _this.transformPagePoint);
+            // Because Safari doesn't trigger mouseup events when it's above a `<select>`
+            if (isMouseEvent(event) && event.buttons === 0) {
+                _this.handlePointerUp(event, info);
+                return;
+            }
+            // Throttle mouse move event to once per frame
+            es.update(_this.updatePoint, true);
+        };
+        this.handlePointerUp = function (event, info) {
+            _this.end();
+            var _a = _this.handlers, onEnd = _a.onEnd, onSessionEnd = _a.onSessionEnd;
+            var panInfo = getPanInfo(transformPoint(info, _this.transformPagePoint), _this.history);
+            if (_this.startEvent && onEnd) {
+                onEnd(event, panInfo);
+            }
+            onSessionEnd && onSessionEnd(event, panInfo);
+        };
+        // If we have more than one touch, don't start detecting this gesture
+        if (isTouchEvent(event) && event.touches.length > 1)
+            return;
+        this.handlers = handlers;
+        this.transformPagePoint = transformPagePoint;
+        var info = extractEventInfo(event);
+        var initialInfo = transformPoint(info, this.transformPagePoint);
+        var point = initialInfo.point;
+        var timestamp = getFrameData().timestamp;
+        this.history = [__assign(__assign({}, point), { timestamp: timestamp })];
+        var onSessionStart = handlers.onSessionStart;
+        onSessionStart &&
+            onSessionStart(event, getPanInfo(initialInfo, this.history));
+        this.removeListeners = pipe(addPointerEvent(window, "pointermove", this.handlePointerMove), addPointerEvent(window, "pointerup", this.handlePointerUp), addPointerEvent(window, "pointercancel", this.handlePointerUp));
+    }
+    PanSession.prototype.updateHandlers = function (handlers) {
+        this.handlers = handlers;
+    };
+    PanSession.prototype.end = function () {
+        this.removeListeners && this.removeListeners();
+        cancelSync.update(this.updatePoint);
+    };
+    return PanSession;
+}());
+function transformPoint(info, transformPagePoint) {
+    return transformPagePoint ? { point: transformPagePoint(info.point) } : info;
+}
+function subtractPoint(a, b) {
+    return { x: a.x - b.x, y: a.y - b.y };
+}
+function getPanInfo(_a, history) {
+    var point = _a.point;
+    return {
+        point: point,
+        delta: subtractPoint(point, lastDevicePoint(history)),
+        offset: subtractPoint(point, startDevicePoint(history)),
+        velocity: PanSession_getVelocity(history, 0.1),
+    };
+}
+function startDevicePoint(history) {
+    return history[0];
+}
+function lastDevicePoint(history) {
+    return history[history.length - 1];
+}
+function PanSession_getVelocity(history, timeDelta) {
+    if (history.length < 2) {
+        return { x: 0, y: 0 };
+    }
+    var i = history.length - 1;
+    var timestampedPoint = null;
+    var lastPoint = lastDevicePoint(history);
+    while (i >= 0) {
+        timestampedPoint = history[i];
+        if (lastPoint.timestamp - timestampedPoint.timestamp >
+            secondsToMilliseconds(timeDelta)) {
+            break;
+        }
+        i--;
+    }
+    if (!timestampedPoint) {
+        return { x: 0, y: 0 };
+    }
+    var time = (lastPoint.timestamp - timestampedPoint.timestamp) / 1000;
+    if (time === 0) {
+        return { x: 0, y: 0 };
+    }
+    var currentVelocity = {
+        x: (lastPoint.x - timestampedPoint.x) / time,
+        y: (lastPoint.y - timestampedPoint.y) / time,
+    };
+    if (currentVelocity.x === Infinity) {
+        currentVelocity.x = 0;
+    }
+    if (currentVelocity.y === Infinity) {
+        currentVelocity.y = 0;
+    }
+    return currentVelocity;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs
+
+
+function calcLength(axis) {
+    return axis.max - axis.min;
+}
+function isNear(value, target, maxDistance) {
+    if (target === void 0) { target = 0; }
+    if (maxDistance === void 0) { maxDistance = 0.01; }
+    return distance(value, target) < maxDistance;
+}
+function calcAxisDelta(delta, source, target, origin) {
+    if (origin === void 0) { origin = 0.5; }
+    delta.origin = origin;
+    delta.originPoint = mix(source.min, source.max, delta.origin);
+    delta.scale = calcLength(target) / calcLength(source);
+    if (isNear(delta.scale, 1, 0.0001) || isNaN(delta.scale))
+        delta.scale = 1;
+    delta.translate =
+        mix(target.min, target.max, delta.origin) - delta.originPoint;
+    if (isNear(delta.translate) || isNaN(delta.translate))
+        delta.translate = 0;
+}
+function calcBoxDelta(delta, source, target, origin) {
+    calcAxisDelta(delta.x, source.x, target.x, origin === null || origin === void 0 ? void 0 : origin.originX);
+    calcAxisDelta(delta.y, source.y, target.y, origin === null || origin === void 0 ? void 0 : origin.originY);
+}
+function calcRelativeAxis(target, relative, parent) {
+    target.min = parent.min + relative.min;
+    target.max = target.min + calcLength(relative);
+}
+function calcRelativeBox(target, relative, parent) {
+    calcRelativeAxis(target.x, relative.x, parent.x);
+    calcRelativeAxis(target.y, relative.y, parent.y);
+}
+function calcRelativeAxisPosition(target, layout, parent) {
+    target.min = layout.min - parent.min;
+    target.max = target.min + calcLength(layout);
+}
+function calcRelativePosition(target, layout, parent) {
+    calcRelativeAxisPosition(target.x, layout.x, parent.x);
+    calcRelativeAxisPosition(target.y, layout.y, parent.y);
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs
+
+
+
+
+/**
+ * Apply constraints to a point. These constraints are both physical along an
+ * axis, and an elastic factor that determines how much to constrain the point
+ * by if it does lie outside the defined parameters.
+ */
+function applyConstraints(point, _a, elastic) {
+    var min = _a.min, max = _a.max;
+    if (min !== undefined && point < min) {
+        // If we have a min point defined, and this is outside of that, constrain
+        point = elastic ? mix(min, point, elastic.min) : Math.max(point, min);
+    }
+    else if (max !== undefined && point > max) {
+        // If we have a max point defined, and this is outside of that, constrain
+        point = elastic ? mix(max, point, elastic.max) : Math.min(point, max);
+    }
+    return point;
+}
+/**
+ * Calculate constraints in terms of the viewport when defined relatively to the
+ * measured axis. This is measured from the nearest edge, so a max constraint of 200
+ * on an axis with a max value of 300 would return a constraint of 500 - axis length
+ */
+function calcRelativeAxisConstraints(axis, min, max) {
+    return {
+        min: min !== undefined ? axis.min + min : undefined,
+        max: max !== undefined
+            ? axis.max + max - (axis.max - axis.min)
+            : undefined,
+    };
+}
+/**
+ * Calculate constraints in terms of the viewport when
+ * defined relatively to the measured bounding box.
+ */
+function calcRelativeConstraints(layoutBox, _a) {
+    var top = _a.top, left = _a.left, bottom = _a.bottom, right = _a.right;
+    return {
+        x: calcRelativeAxisConstraints(layoutBox.x, left, right),
+        y: calcRelativeAxisConstraints(layoutBox.y, top, bottom),
+    };
+}
+/**
+ * Calculate viewport constraints when defined as another viewport-relative axis
+ */
+function calcViewportAxisConstraints(layoutAxis, constraintsAxis) {
+    var _a;
+    var min = constraintsAxis.min - layoutAxis.min;
+    var max = constraintsAxis.max - layoutAxis.max;
+    // If the constraints axis is actually smaller than the layout axis then we can
+    // flip the constraints
+    if (constraintsAxis.max - constraintsAxis.min <
+        layoutAxis.max - layoutAxis.min) {
+        _a = tslib_es6_read([max, min], 2), min = _a[0], max = _a[1];
+    }
+    return { min: min, max: max };
+}
+/**
+ * Calculate viewport constraints when defined as another viewport-relative box
+ */
+function calcViewportConstraints(layoutBox, constraintsBox) {
+    return {
+        x: calcViewportAxisConstraints(layoutBox.x, constraintsBox.x),
+        y: calcViewportAxisConstraints(layoutBox.y, constraintsBox.y),
+    };
+}
+/**
+ * Calculate a transform origin relative to the source axis, between 0-1, that results
+ * in an asthetically pleasing scale/transform needed to project from source to target.
+ */
+function constraints_calcOrigin(source, target) {
+    var origin = 0.5;
+    var sourceLength = calcLength(source);
+    var targetLength = calcLength(target);
+    if (targetLength > sourceLength) {
+        origin = progress(target.min, target.max - sourceLength, source.min);
+    }
+    else if (sourceLength > targetLength) {
+        origin = progress(source.min, source.max - targetLength, target.min);
+    }
+    return clamp_clamp(0, 1, origin);
+}
+/**
+ * Rebase the calculated viewport constraints relative to the layout.min point.
+ */
+function rebaseAxisConstraints(layout, constraints) {
+    var relativeConstraints = {};
+    if (constraints.min !== undefined) {
+        relativeConstraints.min = constraints.min - layout.min;
+    }
+    if (constraints.max !== undefined) {
+        relativeConstraints.max = constraints.max - layout.min;
+    }
+    return relativeConstraints;
+}
+var defaultElastic = 0.35;
+/**
+ * Accepts a dragElastic prop and returns resolved elastic values for each axis.
+ */
+function resolveDragElastic(dragElastic) {
+    if (dragElastic === void 0) { dragElastic = defaultElastic; }
+    if (dragElastic === false) {
+        dragElastic = 0;
+    }
+    else if (dragElastic === true) {
+        dragElastic = defaultElastic;
+    }
+    return {
+        x: resolveAxisElastic(dragElastic, "left", "right"),
+        y: resolveAxisElastic(dragElastic, "top", "bottom"),
+    };
+}
+function resolveAxisElastic(dragElastic, minLabel, maxLabel) {
+    return {
+        min: resolvePointElastic(dragElastic, minLabel),
+        max: resolvePointElastic(dragElastic, maxLabel),
+    };
+}
+function resolvePointElastic(dragElastic, label) {
+    var _a;
+    return typeof dragElastic === "number"
+        ? dragElastic
+        : (_a = dragElastic[label]) !== null && _a !== void 0 ? _a : 0;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/projection/geometry/models.mjs
+var createAxisDelta = function () { return ({
+    translate: 0,
+    scale: 1,
+    origin: 0,
+    originPoint: 0,
+}); };
+var createDelta = function () { return ({
+    x: createAxisDelta(),
+    y: createAxisDelta(),
+}); };
+var createAxis = function () { return ({ min: 0, max: 0 }); };
+var createBox = function () { return ({
+    x: createAxis(),
+    y: createAxis(),
+}); };
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/projection/utils/each-axis.mjs
+function eachAxis(callback) {
+    return [callback("x"), callback("y")];
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/projection/geometry/conversion.mjs
+/**
+ * Bounding boxes tend to be defined as top, left, right, bottom. For various operations
+ * it's easier to consider each axis individually. This function returns a bounding box
+ * as a map of single-axis min/max values.
+ */
+function convertBoundingBoxToBox(_a) {
+    var top = _a.top, left = _a.left, right = _a.right, bottom = _a.bottom;
+    return {
+        x: { min: left, max: right },
+        y: { min: top, max: bottom },
+    };
+}
+function convertBoxToBoundingBox(_a) {
+    var x = _a.x, y = _a.y;
+    return { top: y.min, right: x.max, bottom: y.max, left: x.min };
+}
+/**
+ * Applies a TransformPoint function to a bounding box. TransformPoint is usually a function
+ * provided by Framer to allow measured points to be corrected for device scaling. This is used
+ * when measuring DOM elements and DOM event points.
+ */
+function transformBoxPoints(point, transformPoint) {
+    if (!transformPoint)
+        return point;
+    var topLeft = transformPoint({ x: point.left, y: point.top });
+    var bottomRight = transformPoint({ x: point.right, y: point.bottom });
+    return {
+        top: topLeft.y,
+        left: topLeft.x,
+        bottom: bottomRight.y,
+        right: bottomRight.x,
+    };
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/projection/utils/has-transform.mjs
+function isIdentityScale(scale) {
+    return scale === undefined || scale === 1;
+}
+function hasScale(_a) {
+    var scale = _a.scale, scaleX = _a.scaleX, scaleY = _a.scaleY;
+    return (!isIdentityScale(scale) ||
+        !isIdentityScale(scaleX) ||
+        !isIdentityScale(scaleY));
+}
+function hasTransform(values) {
+    return (hasScale(values) ||
+        hasTranslate(values.x) ||
+        hasTranslate(values.y) ||
+        values.z ||
+        values.rotate ||
+        values.rotateX ||
+        values.rotateY);
+}
+function hasTranslate(value) {
+    return value && value !== "0%";
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs
+
+
+
+
+/**
+ * Scales a point based on a factor and an originPoint
+ */
+function scalePoint(point, scale, originPoint) {
+    var distanceFromOrigin = point - originPoint;
+    var scaled = scale * distanceFromOrigin;
+    return originPoint + scaled;
+}
+/**
+ * Applies a translate/scale delta to a point
+ */
+function applyPointDelta(point, translate, scale, originPoint, boxScale) {
+    if (boxScale !== undefined) {
+        point = scalePoint(point, boxScale, originPoint);
+    }
+    return scalePoint(point, scale, originPoint) + translate;
+}
+/**
+ * Applies a translate/scale delta to an axis
+ */
+function applyAxisDelta(axis, translate, scale, originPoint, boxScale) {
+    if (translate === void 0) { translate = 0; }
+    if (scale === void 0) { scale = 1; }
+    axis.min = applyPointDelta(axis.min, translate, scale, originPoint, boxScale);
+    axis.max = applyPointDelta(axis.max, translate, scale, originPoint, boxScale);
+}
+/**
+ * Applies a translate/scale delta to a box
+ */
+function applyBoxDelta(box, _a) {
+    var x = _a.x, y = _a.y;
+    applyAxisDelta(box.x, x.translate, x.scale, x.originPoint);
+    applyAxisDelta(box.y, y.translate, y.scale, y.originPoint);
+}
+/**
+ * Apply a tree of deltas to a box. We do this to calculate the effect of all the transforms
+ * in a tree upon our box before then calculating how to project it into our desired viewport-relative box
+ *
+ * This is the final nested loop within updateLayoutDelta for future refactoring
+ */
+function applyTreeDeltas(box, treeScale, treePath, isSharedTransition) {
+    var _a, _b;
+    if (isSharedTransition === void 0) { isSharedTransition = false; }
+    var treeLength = treePath.length;
+    if (!treeLength)
+        return;
+    // Reset the treeScale
+    treeScale.x = treeScale.y = 1;
+    var node;
+    var delta;
+    for (var i = 0; i < treeLength; i++) {
+        node = treePath[i];
+        delta = node.projectionDelta;
+        if (((_b = (_a = node.instance) === null || _a === void 0 ? void 0 : _a.style) === null || _b === void 0 ? void 0 : _b.display) === "contents")
+            continue;
+        if (isSharedTransition &&
+            node.options.layoutScroll &&
+            node.scroll &&
+            node !== node.root) {
+            transformBox(box, { x: -node.scroll.x, y: -node.scroll.y });
+        }
+        if (delta) {
+            // Incoporate each ancestor's scale into a culmulative treeScale for this component
+            treeScale.x *= delta.x.scale;
+            treeScale.y *= delta.y.scale;
+            // Apply each ancestor's calculated delta into this component's recorded layout box
+            applyBoxDelta(box, delta);
+        }
+        if (isSharedTransition && hasTransform(node.latestValues)) {
+            transformBox(box, node.latestValues);
+        }
+    }
+}
+function translateAxis(axis, distance) {
+    axis.min = axis.min + distance;
+    axis.max = axis.max + distance;
+}
+/**
+ * Apply a transform to an axis from the latest resolved motion values.
+ * This function basically acts as a bridge between a flat motion value map
+ * and applyAxisDelta
+ */
+function transformAxis(axis, transforms, _a) {
+    var _b = tslib_es6_read(_a, 3), key = _b[0], scaleKey = _b[1], originKey = _b[2];
+    var axisOrigin = transforms[originKey] !== undefined ? transforms[originKey] : 0.5;
+    var originPoint = mix(axis.min, axis.max, axisOrigin);
+    // Apply the axis delta to the final axis
+    applyAxisDelta(axis, transforms[key], transforms[scaleKey], originPoint, transforms.scale);
+}
+/**
+ * The names of the motion values we want to apply as translation, scale and origin.
+ */
+var xKeys = ["x", "scaleX", "originX"];
+var yKeys = ["y", "scaleY", "originY"];
+/**
+ * Apply a transform to a box from the latest resolved motion values.
+ */
+function transformBox(box, transform) {
+    transformAxis(box.x, transform, xKeys);
+    transformAxis(box.y, transform, yKeys);
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/projection/utils/measure.mjs
+
+
+
+function measureViewportBox(instance, transformPoint) {
+    return convertBoundingBoxToBox(transformBoxPoints(instance.getBoundingClientRect(), transformPoint));
+}
+function measurePageBox(element, rootProjectionNode, transformPagePoint) {
+    var viewportBox = measureViewportBox(element, transformPagePoint);
+    var scroll = rootProjectionNode.scroll;
+    if (scroll) {
+        translateAxis(viewportBox.x, scroll.x);
+        translateAxis(viewportBox.y, scroll.y);
+    }
+    return viewportBox;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+var elementDragControls = new WeakMap();
+/**
+ *
+ */
+// let latestPointerEvent: AnyPointerEvent
+var VisualElementDragControls = /** @class */ (function () {
+    function VisualElementDragControls(visualElement) {
+        // This is a reference to the global drag gesture lock, ensuring only one component
+        // can "capture" the drag of one or both axes.
+        // TODO: Look into moving this into pansession?
+        this.openGlobalLock = null;
+        this.isDragging = false;
+        this.currentDirection = null;
+        this.originPoint = { x: 0, y: 0 };
+        /**
+         * The permitted boundaries of travel, in pixels.
+         */
+        this.constraints = false;
+        this.hasMutatedConstraints = false;
+        /**
+         * The per-axis resolved elastic values.
+         */
+        this.elastic = createBox();
+        this.visualElement = visualElement;
+    }
+    VisualElementDragControls.prototype.start = function (originEvent, _a) {
+        var _this = this;
+        var _b = _a === void 0 ? {} : _a, _c = _b.snapToCursor, snapToCursor = _c === void 0 ? false : _c;
+        /**
+         * Don't start dragging if this component is exiting
+         */
+        if (this.visualElement.isPresent === false)
+            return;
+        var onSessionStart = function (event) {
+            // Stop any animations on both axis values immediately. This allows the user to throw and catch
+            // the component.
+            _this.stopAnimation();
+            if (snapToCursor) {
+                _this.snapToCursor(extractEventInfo(event, "page").point);
+            }
+        };
+        var onStart = function (event, info) {
+            var _a;
+            // Attempt to grab the global drag gesture lock - maybe make this part of PanSession
+            var _b = _this.getProps(), drag = _b.drag, dragPropagation = _b.dragPropagation, onDragStart = _b.onDragStart;
+            if (drag && !dragPropagation) {
+                if (_this.openGlobalLock)
+                    _this.openGlobalLock();
+                _this.openGlobalLock = getGlobalLock(drag);
+                // If we don 't have the lock, don't start dragging
+                if (!_this.openGlobalLock)
+                    return;
+            }
+            _this.isDragging = true;
+            _this.currentDirection = null;
+            _this.resolveConstraints();
+            if (_this.visualElement.projection) {
+                _this.visualElement.projection.isAnimationBlocked = true;
+                _this.visualElement.projection.target = undefined;
+            }
+            /**
+             * Record gesture origin
+             */
+            eachAxis(function (axis) {
+                var _a, _b;
+                var current = _this.getAxisMotionValue(axis).get() || 0;
+                /**
+                 * If the MotionValue is a percentage value convert to px
+                 */
+                if (percent.test(current)) {
+                    var measuredAxis = (_b = (_a = _this.visualElement.projection) === null || _a === void 0 ? void 0 : _a.layout) === null || _b === void 0 ? void 0 : _b.actual[axis];
+                    if (measuredAxis) {
+                        var length_1 = calcLength(measuredAxis);
+                        current = length_1 * (parseFloat(current) / 100);
+                    }
+                }
+                _this.originPoint[axis] = current;
+            });
+            // Fire onDragStart event
+            onDragStart === null || onDragStart === void 0 ? void 0 : onDragStart(event, info);
+            (_a = _this.visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Drag, true);
+        };
+        var onMove = function (event, info) {
+            // latestPointerEvent = event
+            var _a = _this.getProps(), dragPropagation = _a.dragPropagation, dragDirectionLock = _a.dragDirectionLock, onDirectionLock = _a.onDirectionLock, onDrag = _a.onDrag;
+            // If we didn't successfully receive the gesture lock, early return.
+            if (!dragPropagation && !_this.openGlobalLock)
+                return;
+            var offset = info.offset;
+            // Attempt to detect drag direction if directionLock is true
+            if (dragDirectionLock && _this.currentDirection === null) {
+                _this.currentDirection = getCurrentDirection(offset);
+                // If we've successfully set a direction, notify listener
+                if (_this.currentDirection !== null) {
+                    onDirectionLock === null || onDirectionLock === void 0 ? void 0 : onDirectionLock(_this.currentDirection);
+                }
+                return;
+            }
+            // Update each point with the latest position
+            _this.updateAxis("x", info.point, offset);
+            _this.updateAxis("y", info.point, offset);
+            /**
+             * Ideally we would leave the renderer to fire naturally at the end of
+             * this frame but if the element is about to change layout as the result
+             * of a re-render we want to ensure the browser can read the latest
+             * bounding box to ensure the pointer and element don't fall out of sync.
+             */
+            _this.visualElement.syncRender();
+            /**
+             * This must fire after the syncRender call as it might trigger a state
+             * change which itself might trigger a layout update.
+             */
+            onDrag === null || onDrag === void 0 ? void 0 : onDrag(event, info);
+        };
+        var onSessionEnd = function (event, info) {
+            return _this.stop(event, info);
+        };
+        this.panSession = new PanSession(originEvent, {
+            onSessionStart: onSessionStart,
+            onStart: onStart,
+            onMove: onMove,
+            onSessionEnd: onSessionEnd,
+        }, { transformPagePoint: this.visualElement.getTransformPagePoint() });
+    };
+    VisualElementDragControls.prototype.stop = function (event, info) {
+        var isDragging = this.isDragging;
+        this.cancel();
+        if (!isDragging)
+            return;
+        var velocity = info.velocity;
+        this.startAnimation(velocity);
+        var onDragEnd = this.getProps().onDragEnd;
+        onDragEnd === null || onDragEnd === void 0 ? void 0 : onDragEnd(event, info);
+    };
+    VisualElementDragControls.prototype.cancel = function () {
+        var _a, _b;
+        this.isDragging = false;
+        if (this.visualElement.projection) {
+            this.visualElement.projection.isAnimationBlocked = false;
+        }
+        (_a = this.panSession) === null || _a === void 0 ? void 0 : _a.end();
+        this.panSession = undefined;
+        var dragPropagation = this.getProps().dragPropagation;
+        if (!dragPropagation && this.openGlobalLock) {
+            this.openGlobalLock();
+            this.openGlobalLock = null;
+        }
+        (_b = this.visualElement.animationState) === null || _b === void 0 ? void 0 : _b.setActive(AnimationType.Drag, false);
+    };
+    VisualElementDragControls.prototype.updateAxis = function (axis, _point, offset) {
+        var drag = this.getProps().drag;
+        // If we're not dragging this axis, do an early return.
+        if (!offset || !shouldDrag(axis, drag, this.currentDirection))
+            return;
+        var axisValue = this.getAxisMotionValue(axis);
+        var next = this.originPoint[axis] + offset[axis];
+        // Apply constraints
+        if (this.constraints && this.constraints[axis]) {
+            next = applyConstraints(next, this.constraints[axis], this.elastic[axis]);
+        }
+        axisValue.set(next);
+    };
+    VisualElementDragControls.prototype.resolveConstraints = function () {
+        var _this = this;
+        var _a = this.getProps(), dragConstraints = _a.dragConstraints, dragElastic = _a.dragElastic;
+        var layout = (this.visualElement.projection || {}).layout;
+        var prevConstraints = this.constraints;
+        if (dragConstraints && is_ref_object_isRefObject(dragConstraints)) {
+            if (!this.constraints) {
+                this.constraints = this.resolveRefConstraints();
+            }
+        }
+        else {
+            if (dragConstraints && layout) {
+                this.constraints = calcRelativeConstraints(layout.actual, dragConstraints);
+            }
+            else {
+                this.constraints = false;
+            }
+        }
+        this.elastic = resolveDragElastic(dragElastic);
+        /**
+         * If we're outputting to external MotionValues, we want to rebase the measured constraints
+         * from viewport-relative to component-relative.
+         */
+        if (prevConstraints !== this.constraints &&
+            layout &&
+            this.constraints &&
+            !this.hasMutatedConstraints) {
+            eachAxis(function (axis) {
+                if (_this.getAxisMotionValue(axis)) {
+                    _this.constraints[axis] = rebaseAxisConstraints(layout.actual[axis], _this.constraints[axis]);
+                }
+            });
+        }
+    };
+    VisualElementDragControls.prototype.resolveRefConstraints = function () {
+        var _a = this.getProps(), constraints = _a.dragConstraints, onMeasureDragConstraints = _a.onMeasureDragConstraints;
+        if (!constraints || !is_ref_object_isRefObject(constraints))
+            return false;
+        var constraintsElement = constraints.current;
+        invariant(constraintsElement !== null, "If `dragConstraints` is set as a React ref, that ref must be passed to another component's `ref` prop.");
+        var projection = this.visualElement.projection;
+        // TODO
+        if (!projection || !projection.layout)
+            return false;
+        var constraintsBox = measurePageBox(constraintsElement, projection.root, this.visualElement.getTransformPagePoint());
+        var measuredConstraints = calcViewportConstraints(projection.layout.actual, constraintsBox);
+        /**
+         * If there's an onMeasureDragConstraints listener we call it and
+         * if different constraints are returned, set constraints to that
+         */
+        if (onMeasureDragConstraints) {
+            var userConstraints = onMeasureDragConstraints(convertBoxToBoundingBox(measuredConstraints));
+            this.hasMutatedConstraints = !!userConstraints;
+            if (userConstraints) {
+                measuredConstraints = convertBoundingBoxToBox(userConstraints);
+            }
+        }
+        return measuredConstraints;
+    };
+    VisualElementDragControls.prototype.startAnimation = function (velocity) {
+        var _this = this;
+        var _a = this.getProps(), drag = _a.drag, dragMomentum = _a.dragMomentum, dragElastic = _a.dragElastic, dragTransition = _a.dragTransition, dragSnapToOrigin = _a.dragSnapToOrigin, onDragTransitionEnd = _a.onDragTransitionEnd;
+        var constraints = this.constraints || {};
+        var momentumAnimations = eachAxis(function (axis) {
+            var _a;
+            if (!shouldDrag(axis, drag, _this.currentDirection)) {
+                return;
+            }
+            var transition = (_a = constraints === null || constraints === void 0 ? void 0 : constraints[axis]) !== null && _a !== void 0 ? _a : {};
+            if (dragSnapToOrigin)
+                transition = { min: 0, max: 0 };
+            /**
+             * Overdamp the boundary spring if `dragElastic` is disabled. There's still a frame
+             * of spring animations so we should look into adding a disable spring option to `inertia`.
+             * We could do something here where we affect the `bounceStiffness` and `bounceDamping`
+             * using the value of `dragElastic`.
+             */
+            var bounceStiffness = dragElastic ? 200 : 1000000;
+            var bounceDamping = dragElastic ? 40 : 10000000;
+            var inertia = __assign(__assign({ type: "inertia", velocity: dragMomentum ? velocity[axis] : 0, bounceStiffness: bounceStiffness, bounceDamping: bounceDamping, timeConstant: 750, restDelta: 1, restSpeed: 10 }, dragTransition), transition);
+            // If we're not animating on an externally-provided `MotionValue` we can use the
+            // component's animation controls which will handle interactions with whileHover (etc),
+            // otherwise we just have to animate the `MotionValue` itself.
+            return _this.startAxisValueAnimation(axis, inertia);
+        });
+        // Run all animations and then resolve the new drag constraints.
+        return Promise.all(momentumAnimations).then(onDragTransitionEnd);
+    };
+    VisualElementDragControls.prototype.startAxisValueAnimation = function (axis, transition) {
+        var axisValue = this.getAxisMotionValue(axis);
+        return startAnimation(axis, axisValue, 0, transition);
+    };
+    VisualElementDragControls.prototype.stopAnimation = function () {
+        var _this = this;
+        eachAxis(function (axis) { return _this.getAxisMotionValue(axis).stop(); });
+    };
+    /**
+     * Drag works differently depending on which props are provided.
+     *
+     * - If _dragX and _dragY are provided, we output the gesture delta directly to those motion values.
+     * - Otherwise, we apply the delta to the x/y motion values.
+     */
+    VisualElementDragControls.prototype.getAxisMotionValue = function (axis) {
+        var _a, _b;
+        var dragKey = "_drag" + axis.toUpperCase();
+        var externalMotionValue = this.visualElement.getProps()[dragKey];
+        return externalMotionValue
+            ? externalMotionValue
+            : this.visualElement.getValue(axis, (_b = (_a = this.visualElement.getProps().initial) === null || _a === void 0 ? void 0 : _a[axis]) !== null && _b !== void 0 ? _b : 0);
+    };
+    VisualElementDragControls.prototype.snapToCursor = function (point) {
+        var _this = this;
+        eachAxis(function (axis) {
+            var drag = _this.getProps().drag;
+            // If we're not dragging this axis, do an early return.
+            if (!shouldDrag(axis, drag, _this.currentDirection))
+                return;
+            var projection = _this.visualElement.projection;
+            var axisValue = _this.getAxisMotionValue(axis);
+            if (projection && projection.layout) {
+                var _a = projection.layout.actual[axis], min = _a.min, max = _a.max;
+                axisValue.set(point[axis] - mix(min, max, 0.5));
+            }
+        });
+    };
+    /**
+     * When the viewport resizes we want to check if the measured constraints
+     * have changed and, if so, reposition the element within those new constraints
+     * relative to where it was before the resize.
+     */
+    VisualElementDragControls.prototype.scalePositionWithinConstraints = function () {
+        var _this = this;
+        var _a;
+        var _b = this.getProps(), drag = _b.drag, dragConstraints = _b.dragConstraints;
+        var projection = this.visualElement.projection;
+        if (!is_ref_object_isRefObject(dragConstraints) || !projection || !this.constraints)
+            return;
+        /**
+         * Stop current animations as there can be visual glitching if we try to do
+         * this mid-animation
+         */
+        this.stopAnimation();
+        /**
+         * Record the relative position of the dragged element relative to the
+         * constraints box and save as a progress value.
+         */
+        var boxProgress = { x: 0, y: 0 };
+        eachAxis(function (axis) {
+            var axisValue = _this.getAxisMotionValue(axis);
+            if (axisValue) {
+                var latest = axisValue.get();
+                boxProgress[axis] = constraints_calcOrigin({ min: latest, max: latest }, _this.constraints[axis]);
+            }
+        });
+        /**
+         * Update the layout of this element and resolve the latest drag constraints
+         */
+        var transformTemplate = this.visualElement.getProps().transformTemplate;
+        this.visualElement.getInstance().style.transform = transformTemplate
+            ? transformTemplate({}, "")
+            : "none";
+        (_a = projection.root) === null || _a === void 0 ? void 0 : _a.updateScroll();
+        projection.updateLayout();
+        this.resolveConstraints();
+        /**
+         * For each axis, calculate the current progress of the layout axis
+         * within the new constraints.
+         */
+        eachAxis(function (axis) {
+            if (!shouldDrag(axis, drag, null))
+                return;
+            /**
+             * Calculate a new transform based on the previous box progress
+             */
+            var axisValue = _this.getAxisMotionValue(axis);
+            var _a = _this.constraints[axis], min = _a.min, max = _a.max;
+            axisValue.set(mix(min, max, boxProgress[axis]));
+        });
+    };
+    VisualElementDragControls.prototype.addListeners = function () {
+        var _this = this;
+        var _a;
+        elementDragControls.set(this.visualElement, this);
+        var element = this.visualElement.getInstance();
+        /**
+         * Attach a pointerdown event listener on this DOM element to initiate drag tracking.
+         */
+        var stopPointerListener = addPointerEvent(element, "pointerdown", function (event) {
+            var _a = _this.getProps(), drag = _a.drag, _b = _a.dragListener, dragListener = _b === void 0 ? true : _b;
+            drag && dragListener && _this.start(event);
+        });
+        var measureDragConstraints = function () {
+            var dragConstraints = _this.getProps().dragConstraints;
+            if (is_ref_object_isRefObject(dragConstraints)) {
+                _this.constraints = _this.resolveRefConstraints();
+            }
+        };
+        var projection = this.visualElement.projection;
+        var stopMeasureLayoutListener = projection.addEventListener("measure", measureDragConstraints);
+        if (projection && !projection.layout) {
+            (_a = projection.root) === null || _a === void 0 ? void 0 : _a.updateScroll();
+            projection.updateLayout();
+        }
+        measureDragConstraints();
+        /**
+         * Attach a window resize listener to scale the draggable target within its defined
+         * constraints as the window resizes.
+         */
+        var stopResizeListener = addDomEvent(window, "resize", function () {
+            return _this.scalePositionWithinConstraints();
+        });
+        /**
+         * If the element's layout changes, calculate the delta and apply that to
+         * the drag gesture's origin point.
+         */
+        projection.addEventListener("didUpdate", (function (_a) {
+            var delta = _a.delta, hasLayoutChanged = _a.hasLayoutChanged;
+            if (_this.isDragging && hasLayoutChanged) {
+                eachAxis(function (axis) {
+                    var motionValue = _this.getAxisMotionValue(axis);
+                    if (!motionValue)
+                        return;
+                    _this.originPoint[axis] += delta[axis].translate;
+                    motionValue.set(motionValue.get() + delta[axis].translate);
+                });
+                _this.visualElement.syncRender();
+            }
+        }));
+        return function () {
+            stopResizeListener();
+            stopPointerListener();
+            stopMeasureLayoutListener();
+        };
+    };
+    VisualElementDragControls.prototype.getProps = function () {
+        var props = this.visualElement.getProps();
+        var _a = props.drag, drag = _a === void 0 ? false : _a, _b = props.dragDirectionLock, dragDirectionLock = _b === void 0 ? false : _b, _c = props.dragPropagation, dragPropagation = _c === void 0 ? false : _c, _d = props.dragConstraints, dragConstraints = _d === void 0 ? false : _d, _e = props.dragElastic, dragElastic = _e === void 0 ? defaultElastic : _e, _f = props.dragMomentum, dragMomentum = _f === void 0 ? true : _f;
+        return __assign(__assign({}, props), { drag: drag, dragDirectionLock: dragDirectionLock, dragPropagation: dragPropagation, dragConstraints: dragConstraints, dragElastic: dragElastic, dragMomentum: dragMomentum });
+    };
+    return VisualElementDragControls;
+}());
+function shouldDrag(direction, drag, currentDirection) {
+    return ((drag === true || drag === direction) &&
+        (currentDirection === null || currentDirection === direction));
+}
+/**
+ * Based on an x/y offset determine the current drag direction. If both axis' offsets are lower
+ * than the provided threshold, return `null`.
+ *
+ * @param offset - The x/y offset from origin.
+ * @param lockThreshold - (Optional) - the minimum absolute offset before we can determine a drag direction.
+ */
+function getCurrentDirection(offset, lockThreshold) {
+    if (lockThreshold === void 0) { lockThreshold = 10; }
+    var direction = null;
+    if (Math.abs(offset.y) > lockThreshold) {
+        direction = "y";
+    }
+    else if (Math.abs(offset.x) > lockThreshold) {
+        direction = "x";
+    }
+    return direction;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/gestures/drag/use-drag.mjs
+
+
+
+
+/**
+ * A hook that allows an element to be dragged.
+ *
+ * @internal
+ */
+function useDrag(props) {
+    var groupDragControls = props.dragControls, visualElement = props.visualElement;
+    var dragControls = useConstant(function () { return new VisualElementDragControls(visualElement); });
+    // If we've been provided a DragControls for manual control over the drag gesture,
+    // subscribe this component to it on mount.
+    (0,external_React_.useEffect)(function () { return groupDragControls && groupDragControls.subscribe(dragControls); }, [dragControls, groupDragControls]);
+    // Apply the event listeners to the element
+    (0,external_React_.useEffect)(function () { return dragControls.addListeners(); }, [dragControls]);
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/gestures/use-pan-gesture.mjs
+
+
+
+
+
+
+/**
+ *
+ * @param handlers -
+ * @param ref -
+ *
+ * @privateRemarks
+ * Currently this sets new pan gesture functions every render. The memo route has been explored
+ * in the past but ultimately we're still creating new functions every render. An optimisation
+ * to explore is creating the pan gestures and loading them into a `ref`.
+ *
+ * @internal
+ */
+function usePanGesture(_a) {
+    var onPan = _a.onPan, onPanStart = _a.onPanStart, onPanEnd = _a.onPanEnd, onPanSessionStart = _a.onPanSessionStart, visualElement = _a.visualElement;
+    var hasPanEvents = onPan || onPanStart || onPanEnd || onPanSessionStart;
+    var panSession = (0,external_React_.useRef)(null);
+    var transformPagePoint = (0,external_React_.useContext)(MotionConfigContext).transformPagePoint;
+    var handlers = {
+        onSessionStart: onPanSessionStart,
+        onStart: onPanStart,
+        onMove: onPan,
+        onEnd: function (event, info) {
+            panSession.current = null;
+            onPanEnd && onPanEnd(event, info);
+        },
+    };
+    (0,external_React_.useEffect)(function () {
+        if (panSession.current !== null) {
+            panSession.current.updateHandlers(handlers);
+        }
+    });
+    function onPointerDown(event) {
+        panSession.current = new PanSession(event, handlers, {
+            transformPagePoint: transformPagePoint,
+        });
+    }
+    usePointerEvent(visualElement, "pointerdown", hasPanEvents && onPointerDown);
+    useUnmountEffect(function () { return panSession.current && panSession.current.end(); });
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/motion/features/drag.mjs
+
+
+
+
+var drag = {
+    pan: makeRenderlessComponent(usePanGesture),
+    drag: makeRenderlessComponent(useDrag),
+};
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/utils/lifecycles.mjs
+
+
+
+var lifecycles_names = [
+    "LayoutMeasure",
+    "BeforeLayoutMeasure",
+    "LayoutUpdate",
+    "ViewportBoxUpdate",
+    "Update",
+    "Render",
+    "AnimationComplete",
+    "LayoutAnimationComplete",
+    "AnimationStart",
+    "LayoutAnimationStart",
+    "SetAxisTarget",
+    "Unmount",
+];
+function createLifecycles() {
+    var managers = lifecycles_names.map(function () { return new SubscriptionManager(); });
+    var propSubscriptions = {};
+    var lifecycles = {
+        clearAllListeners: function () { return managers.forEach(function (manager) { return manager.clear(); }); },
+        updatePropListeners: function (props) {
+            lifecycles_names.forEach(function (name) {
+                var _a;
+                var on = "on" + name;
+                var propListener = props[on];
+                // Unsubscribe existing subscription
+                (_a = propSubscriptions[name]) === null || _a === void 0 ? void 0 : _a.call(propSubscriptions);
+                // Add new subscription
+                if (propListener) {
+                    propSubscriptions[name] = lifecycles[on](propListener);
+                }
+            });
+        },
+    };
+    managers.forEach(function (manager, i) {
+        lifecycles["on" + lifecycles_names[i]] = function (handler) { return manager.add(handler); };
+        lifecycles["notify" + lifecycles_names[i]] = function () {
+            var args = [];
+            for (var _i = 0; _i < arguments.length; _i++) {
+                args[_i] = arguments[_i];
+            }
+            return manager.notify.apply(manager, tslib_es6_spreadArray([], tslib_es6_read(args), false));
+        };
+    });
+    return lifecycles;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/utils/motion-values.mjs
+
+
+
+
+function updateMotionValuesFromProps(element, next, prev) {
+    var _a;
+    for (var key in next) {
+        var nextValue = next[key];
+        var prevValue = prev[key];
+        if (isMotionValue(nextValue)) {
+            /**
+             * If this is a motion value found in props or style, we want to add it
+             * to our visual element's motion value map.
+             */
+            element.addValue(key, nextValue);
+            /**
+             * Check the version of the incoming motion value with this version
+             * and warn against mismatches.
+             */
+            if (false) {}
+        }
+        else if (isMotionValue(prevValue)) {
+            /**
+             * If we're swapping to a new motion value, create a new motion value
+             * from that
+             */
+            element.addValue(key, motionValue(nextValue));
+        }
+        else if (prevValue !== nextValue) {
+            /**
+             * If this is a flat value that has changed, update the motion value
+             * or create one if it doesn't exist. We only want to do this if we're
+             * not handling the value with our animation state.
+             */
+            if (element.hasValue(key)) {
+                var existingValue = element.getValue(key);
+                // TODO: Only update values that aren't being animated or even looked at
+                !existingValue.hasAnimated && existingValue.set(nextValue);
+            }
+            else {
+                element.addValue(key, motionValue((_a = element.getStaticValue(key)) !== null && _a !== void 0 ? _a : nextValue));
+            }
+        }
+    }
+    // Handle removed values
+    for (var key in prev) {
+        if (next[key] === undefined)
+            element.removeValue(key);
+    }
+    return next;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/index.mjs
+
+
+
+
+
+
+
+
+
+var visualElement = function (_a) {
+    var _b = _a.treeType, treeType = _b === void 0 ? "" : _b, build = _a.build, getBaseTarget = _a.getBaseTarget, makeTargetAnimatable = _a.makeTargetAnimatable, measureViewportBox = _a.measureViewportBox, renderInstance = _a.render, readValueFromInstance = _a.readValueFromInstance, removeValueFromRenderState = _a.removeValueFromRenderState, sortNodePosition = _a.sortNodePosition, scrapeMotionValuesFromProps = _a.scrapeMotionValuesFromProps;
+    return function (_a, options) {
+        var parent = _a.parent, props = _a.props, presenceId = _a.presenceId, blockInitialAnimation = _a.blockInitialAnimation, visualState = _a.visualState, shouldReduceMotion = _a.shouldReduceMotion;
+        if (options === void 0) { options = {}; }
+        var isMounted = false;
+        var latestValues = visualState.latestValues, renderState = visualState.renderState;
+        /**
+         * The instance of the render-specific node that will be hydrated by the
+         * exposed React ref. So for example, this visual element can host a
+         * HTMLElement, plain object, or Three.js object. The functions provided
+         * in VisualElementConfig allow us to interface with this instance.
+         */
+        var instance;
+        /**
+         * Manages the subscriptions for a visual element's lifecycle, for instance
+         * onRender
+         */
+        var lifecycles = createLifecycles();
+        /**
+         * A map of all motion values attached to this visual element. Motion
+         * values are source of truth for any given animated value. A motion
+         * value might be provided externally by the component via props.
+         */
+        var values = new Map();
+        /**
+         * A map of every subscription that binds the provided or generated
+         * motion values onChange listeners to this visual element.
+         */
+        var valueSubscriptions = new Map();
+        /**
+         * A reference to the previously-provided motion values as returned
+         * from scrapeMotionValuesFromProps. We use the keys in here to determine
+         * if any motion values need to be removed after props are updated.
+         */
+        var prevMotionValues = {};
+        /**
+         * When values are removed from all animation props we need to search
+         * for a fallback value to animate to. These values are tracked in baseTarget.
+         */
+        var baseTarget = __assign({}, latestValues);
+        // Internal methods ========================
+        /**
+         * On mount, this will be hydrated with a callback to disconnect
+         * this visual element from its parent on unmount.
+         */
+        var removeFromVariantTree;
+        /**
+         * Render the element with the latest styles outside of the React
+         * render lifecycle
+         */
+        function render() {
+            if (!instance || !isMounted)
+                return;
+            triggerBuild();
+            renderInstance(instance, renderState, props.style, element.projection);
+        }
+        function triggerBuild() {
+            build(element, renderState, latestValues, options, props);
+        }
+        function update() {
+            lifecycles.notifyUpdate(latestValues);
+        }
+        /**
+         *
+         */
+        function bindToMotionValue(key, value) {
+            var removeOnChange = value.onChange(function (latestValue) {
+                latestValues[key] = latestValue;
+                props.onUpdate && es.update(update, false, true);
+            });
+            var removeOnRenderRequest = value.onRenderRequest(element.scheduleRender);
+            valueSubscriptions.set(key, function () {
+                removeOnChange();
+                removeOnRenderRequest();
+            });
+        }
+        /**
+         * Any motion values that are provided to the element when created
+         * aren't yet bound to the element, as this would technically be impure.
+         * However, we iterate through the motion values and set them to the
+         * initial values for this component.
+         *
+         * TODO: This is impure and we should look at changing this to run on mount.
+         * Doing so will break some tests but this isn't neccessarily a breaking change,
+         * more a reflection of the test.
+         */
+        var initialMotionValues = scrapeMotionValuesFromProps(props);
+        for (var key in initialMotionValues) {
+            var value = initialMotionValues[key];
+            if (latestValues[key] !== undefined && isMotionValue(value)) {
+                value.set(latestValues[key], false);
+            }
+        }
+        /**
+         * Determine what role this visual element should take in the variant tree.
+         */
+        var isControllingVariants = checkIfControllingVariants(props);
+        var isVariantNode = checkIfVariantNode(props);
+        var element = __assign(__assign({ treeType: treeType, 
+            /**
+             * This is a mirror of the internal instance prop, which keeps
+             * VisualElement type-compatible with React's RefObject.
+             */
+            current: null, 
+            /**
+             * The depth of this visual element within the visual element tree.
+             */
+            depth: parent ? parent.depth + 1 : 0, parent: parent, children: new Set(), 
+            /**
+             *
+             */
+            presenceId: presenceId, shouldReduceMotion: shouldReduceMotion, 
+            /**
+             * If this component is part of the variant tree, it should track
+             * any children that are also part of the tree. This is essentially
+             * a shadow tree to simplify logic around how to stagger over children.
+             */
+            variantChildren: isVariantNode ? new Set() : undefined, 
+            /**
+             * Whether this instance is visible. This can be changed imperatively
+             * by the projection tree, is analogous to CSS's visibility in that
+             * hidden elements should take up layout, and needs enacting by the configured
+             * render function.
+             */
+            isVisible: undefined, 
+            /**
+             * Normally, if a component is controlled by a parent's variants, it can
+             * rely on that ancestor to trigger animations further down the tree.
+             * However, if a component is created after its parent is mounted, the parent
+             * won't trigger that mount animation so the child needs to.
+             *
+             * TODO: This might be better replaced with a method isParentMounted
+             */
+            manuallyAnimateOnMount: Boolean(parent === null || parent === void 0 ? void 0 : parent.isMounted()), 
+            /**
+             * This can be set by AnimatePresence to force components that mount
+             * at the same time as it to mount as if they have initial={false} set.
+             */
+            blockInitialAnimation: blockInitialAnimation, 
+            /**
+             * Determine whether this component has mounted yet. This is mostly used
+             * by variant children to determine whether they need to trigger their
+             * own animations on mount.
+             */
+            isMounted: function () { return Boolean(instance); }, mount: function (newInstance) {
+                isMounted = true;
+                instance = element.current = newInstance;
+                if (element.projection) {
+                    element.projection.mount(newInstance);
+                }
+                if (isVariantNode && parent && !isControllingVariants) {
+                    removeFromVariantTree = parent === null || parent === void 0 ? void 0 : parent.addVariantChild(element);
+                }
+                values.forEach(function (value, key) { return bindToMotionValue(key, value); });
+                parent === null || parent === void 0 ? void 0 : parent.children.add(element);
+                element.setProps(props);
+            }, 
+            /**
+             *
+             */
+            unmount: function () {
+                var _a;
+                (_a = element.projection) === null || _a === void 0 ? void 0 : _a.unmount();
+                cancelSync.update(update);
+                cancelSync.render(render);
+                valueSubscriptions.forEach(function (remove) { return remove(); });
+                removeFromVariantTree === null || removeFromVariantTree === void 0 ? void 0 : removeFromVariantTree();
+                parent === null || parent === void 0 ? void 0 : parent.children.delete(element);
+                lifecycles.clearAllListeners();
+                instance = undefined;
+                isMounted = false;
+            }, 
+            /**
+             * Add a child visual element to our set of children.
+             */
+            addVariantChild: function (child) {
+                var _a;
+                var closestVariantNode = element.getClosestVariantNode();
+                if (closestVariantNode) {
+                    (_a = closestVariantNode.variantChildren) === null || _a === void 0 ? void 0 : _a.add(child);
+                    return function () {
+                        return closestVariantNode.variantChildren.delete(child);
+                    };
+                }
+            }, sortNodePosition: function (other) {
+                /**
+                 * If these nodes aren't even of the same type we can't compare their depth.
+                 */
+                if (!sortNodePosition || treeType !== other.treeType)
+                    return 0;
+                return sortNodePosition(element.getInstance(), other.getInstance());
+            }, 
+            /**
+             * Returns the closest variant node in the tree starting from
+             * this visual element.
+             */
+            getClosestVariantNode: function () {
+                return isVariantNode ? element : parent === null || parent === void 0 ? void 0 : parent.getClosestVariantNode();
+            }, 
+            /**
+             * Expose the latest layoutId prop.
+             */
+            getLayoutId: function () { return props.layoutId; }, 
+            /**
+             * Returns the current instance.
+             */
+            getInstance: function () { return instance; }, 
+            /**
+             * Get/set the latest static values.
+             */
+            getStaticValue: function (key) { return latestValues[key]; }, setStaticValue: function (key, value) { return (latestValues[key] = value); }, 
+            /**
+             * Returns the latest motion value state. Currently only used to take
+             * a snapshot of the visual element - perhaps this can return the whole
+             * visual state
+             */
+            getLatestValues: function () { return latestValues; }, 
+            /**
+             * Set the visiblity of the visual element. If it's changed, schedule
+             * a render to reflect these changes.
+             */
+            setVisibility: function (visibility) {
+                if (element.isVisible === visibility)
+                    return;
+                element.isVisible = visibility;
+                element.scheduleRender();
+            }, 
+            /**
+             * Make a target animatable by Popmotion. For instance, if we're
+             * trying to animate width from 100px to 100vw we need to measure 100vw
+             * in pixels to determine what we really need to animate to. This is also
+             * pluggable to support Framer's custom value types like Color,
+             * and CSS variables.
+             */
+            makeTargetAnimatable: function (target, canMutate) {
+                if (canMutate === void 0) { canMutate = true; }
+                return makeTargetAnimatable(element, target, props, canMutate);
+            }, 
+            /**
+             * Measure the current viewport box with or without transforms.
+             * Only measures axis-aligned boxes, rotate and skew must be manually
+             * removed with a re-render to work.
+             */
+            measureViewportBox: function () {
+                return measureViewportBox(instance, props);
+            }, 
+            // Motion values ========================
+            /**
+             * Add a motion value and bind it to this visual element.
+             */
+            addValue: function (key, value) {
+                // Remove existing value if it exists
+                if (element.hasValue(key))
+                    element.removeValue(key);
+                values.set(key, value);
+                latestValues[key] = value.get();
+                bindToMotionValue(key, value);
+            }, 
+            /**
+             * Remove a motion value and unbind any active subscriptions.
+             */
+            removeValue: function (key) {
+                var _a;
+                values.delete(key);
+                (_a = valueSubscriptions.get(key)) === null || _a === void 0 ? void 0 : _a();
+                valueSubscriptions.delete(key);
+                delete latestValues[key];
+                removeValueFromRenderState(key, renderState);
+            }, 
+            /**
+             * Check whether we have a motion value for this key
+             */
+            hasValue: function (key) { return values.has(key); }, 
+            /**
+             * Get a motion value for this key. If called with a default
+             * value, we'll create one if none exists.
+             */
+            getValue: function (key, defaultValue) {
+                var value = values.get(key);
+                if (value === undefined && defaultValue !== undefined) {
+                    value = motionValue(defaultValue);
+                    element.addValue(key, value);
+                }
+                return value;
+            }, 
+            /**
+             * Iterate over our motion values.
+             */
+            forEachValue: function (callback) { return values.forEach(callback); }, 
+            /**
+             * If we're trying to animate to a previously unencountered value,
+             * we need to check for it in our state and as a last resort read it
+             * directly from the instance (which might have performance implications).
+             */
+            readValue: function (key) {
+                var _a;
+                return (_a = latestValues[key]) !== null && _a !== void 0 ? _a : readValueFromInstance(instance, key, options);
+            }, 
+            /**
+             * Set the base target to later animate back to. This is currently
+             * only hydrated on creation and when we first read a value.
+             */
+            setBaseTarget: function (key, value) {
+                baseTarget[key] = value;
+            }, 
+            /**
+             * Find the base target for a value thats been removed from all animation
+             * props.
+             */
+            getBaseTarget: function (key) {
+                if (getBaseTarget) {
+                    var target = getBaseTarget(props, key);
+                    if (target !== undefined && !isMotionValue(target))
+                        return target;
+                }
+                return baseTarget[key];
+            } }, lifecycles), { 
+            /**
+             * Build the renderer state based on the latest visual state.
+             */
+            build: function () {
+                triggerBuild();
+                return renderState;
+            }, 
+            /**
+             * Schedule a render on the next animation frame.
+             */
+            scheduleRender: function () {
+                es.render(render, false, true);
+            }, 
+            /**
+             * Synchronously fire render. It's prefered that we batch renders but
+             * in many circumstances, like layout measurement, we need to run this
+             * synchronously. However in those instances other measures should be taken
+             * to batch reads/writes.
+             */
+            syncRender: render, 
+            /**
+             * Update the provided props. Ensure any newly-added motion values are
+             * added to our map, old ones removed, and listeners updated.
+             */
+            setProps: function (newProps) {
+                if (newProps.transformTemplate || props.transformTemplate) {
+                    element.scheduleRender();
+                }
+                props = newProps;
+                lifecycles.updatePropListeners(newProps);
+                prevMotionValues = updateMotionValuesFromProps(element, scrapeMotionValuesFromProps(props), prevMotionValues);
+            }, getProps: function () { return props; }, 
+            // Variants ==============================
+            /**
+             * Returns the variant definition with a given name.
+             */
+            getVariant: function (name) { var _a; return (_a = props.variants) === null || _a === void 0 ? void 0 : _a[name]; }, 
+            /**
+             * Returns the defined default transition on this component.
+             */
+            getDefaultTransition: function () { return props.transition; }, getTransformPagePoint: function () {
+                return props.transformPagePoint;
+            }, 
+            /**
+             * Used by child variant nodes to get the closest ancestor variant props.
+             */
+            getVariantContext: function (startAtParent) {
+                if (startAtParent === void 0) { startAtParent = false; }
+                if (startAtParent)
+                    return parent === null || parent === void 0 ? void 0 : parent.getVariantContext();
+                if (!isControllingVariants) {
+                    var context_1 = (parent === null || parent === void 0 ? void 0 : parent.getVariantContext()) || {};
+                    if (props.initial !== undefined) {
+                        context_1.initial = props.initial;
+                    }
+                    return context_1;
+                }
+                var context = {};
+                for (var i = 0; i < numVariantProps; i++) {
+                    var name_1 = variantProps[i];
+                    var prop = props[name_1];
+                    if (isVariantLabel(prop) || prop === false) {
+                        context[name_1] = prop;
+                    }
+                }
+                return context;
+            } });
+        return element;
+    };
+};
+var variantProps = tslib_es6_spreadArray(["initial"], tslib_es6_read(variantPriorityOrder), false);
+var numVariantProps = variantProps.length;
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/dom/utils/css-variables-conversion.mjs
+
+
+
+function css_variables_conversion_isCSSVariable(value) {
+    return typeof value === "string" && value.startsWith("var(--");
+}
+/**
+ * Parse Framer's special CSS variable format into a CSS token and a fallback.
+ *
+ * ```
+ * `var(--foo, #fff)` => [`--foo`, '#fff']
+ * ```
+ *
+ * @param current
+ */
+var cssVariableRegex = /var\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\)/;
+function parseCSSVariable(current) {
+    var match = cssVariableRegex.exec(current);
+    if (!match)
+        return [,];
+    var _a = tslib_es6_read(match, 3), token = _a[1], fallback = _a[2];
+    return [token, fallback];
+}
+var maxDepth = 4;
+function getVariableValue(current, element, depth) {
+    if (depth === void 0) { depth = 1; }
+    invariant(depth <= maxDepth, "Max CSS variable fallback depth detected in property \"".concat(current, "\". This may indicate a circular fallback dependency."));
+    var _a = tslib_es6_read(parseCSSVariable(current), 2), token = _a[0], fallback = _a[1];
+    // No CSS variable detected
+    if (!token)
+        return;
+    // Attempt to read this CSS variable off the element
+    var resolved = window.getComputedStyle(element).getPropertyValue(token);
+    if (resolved) {
+        return resolved.trim();
+    }
+    else if (css_variables_conversion_isCSSVariable(fallback)) {
+        // The fallback might itself be a CSS variable, in which case we attempt to resolve it too.
+        return getVariableValue(fallback, element, depth + 1);
+    }
+    else {
+        return fallback;
+    }
+}
+/**
+ * Resolve CSS variables from
+ *
+ * @internal
+ */
+function resolveCSSVariables(visualElement, _a, transitionEnd) {
+    var _b;
+    var target = __rest(_a, []);
+    var element = visualElement.getInstance();
+    if (!(element instanceof Element))
+        return { target: target, transitionEnd: transitionEnd };
+    // If `transitionEnd` isn't `undefined`, clone it. We could clone `target` and `transitionEnd`
+    // only if they change but I think this reads clearer and this isn't a performance-critical path.
+    if (transitionEnd) {
+        transitionEnd = __assign({}, transitionEnd);
+    }
+    // Go through existing `MotionValue`s and ensure any existing CSS variables are resolved
+    visualElement.forEachValue(function (value) {
+        var current = value.get();
+        if (!css_variables_conversion_isCSSVariable(current))
+            return;
+        var resolved = getVariableValue(current, element);
+        if (resolved)
+            value.set(resolved);
+    });
+    // Cycle through every target property and resolve CSS variables. Currently
+    // we only read single-var properties like `var(--foo)`, not `calc(var(--foo) + 20px)`
+    for (var key in target) {
+        var current = target[key];
+        if (!css_variables_conversion_isCSSVariable(current))
+            continue;
+        var resolved = getVariableValue(current, element);
+        if (!resolved)
+            continue;
+        // Clone target if it hasn't already been
+        target[key] = resolved;
+        // If the user hasn't already set this key on `transitionEnd`, set it to the unresolved
+        // CSS variable. This will ensure that after the animation the component will reflect
+        // changes in the value of the CSS variable.
+        if (transitionEnd)
+            (_b = transitionEnd[key]) !== null && _b !== void 0 ? _b : (transitionEnd[key] = current);
+    }
+    return { target: target, transitionEnd: transitionEnd };
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/dom/utils/unit-conversion.mjs
+
+
+
+
+
+
+
+var positionalKeys = new Set([
+    "width",
+    "height",
+    "top",
+    "left",
+    "right",
+    "bottom",
+    "x",
+    "y",
+]);
+var isPositionalKey = function (key) { return positionalKeys.has(key); };
+var hasPositionalKey = function (target) {
+    return Object.keys(target).some(isPositionalKey);
+};
+var setAndResetVelocity = function (value, to) {
+    // Looks odd but setting it twice doesn't render, it'll just
+    // set both prev and current to the latest value
+    value.set(to, false);
+    value.set(to);
+};
+var isNumOrPxType = function (v) {
+    return v === number || v === px;
+};
+var BoundingBoxDimension;
+(function (BoundingBoxDimension) {
+    BoundingBoxDimension["width"] = "width";
+    BoundingBoxDimension["height"] = "height";
+    BoundingBoxDimension["left"] = "left";
+    BoundingBoxDimension["right"] = "right";
+    BoundingBoxDimension["top"] = "top";
+    BoundingBoxDimension["bottom"] = "bottom";
+})(BoundingBoxDimension || (BoundingBoxDimension = {}));
+var getPosFromMatrix = function (matrix, pos) {
+    return parseFloat(matrix.split(", ")[pos]);
+};
+var getTranslateFromMatrix = function (pos2, pos3) {
+    return function (_bbox, _a) {
+        var transform = _a.transform;
+        if (transform === "none" || !transform)
+            return 0;
+        var matrix3d = transform.match(/^matrix3d\((.+)\)$/);
+        if (matrix3d) {
+            return getPosFromMatrix(matrix3d[1], pos3);
+        }
+        else {
+            var matrix = transform.match(/^matrix\((.+)\)$/);
+            if (matrix) {
+                return getPosFromMatrix(matrix[1], pos2);
+            }
+            else {
+                return 0;
+            }
+        }
+    };
+};
+var transformKeys = new Set(["x", "y", "z"]);
+var nonTranslationalTransformKeys = transformProps.filter(function (key) { return !transformKeys.has(key); });
+function removeNonTranslationalTransform(visualElement) {
+    var removedTransforms = [];
+    nonTranslationalTransformKeys.forEach(function (key) {
+        var value = visualElement.getValue(key);
+        if (value !== undefined) {
+            removedTransforms.push([key, value.get()]);
+            value.set(key.startsWith("scale") ? 1 : 0);
+        }
+    });
+    // Apply changes to element before measurement
+    if (removedTransforms.length)
+        visualElement.syncRender();
+    return removedTransforms;
+}
+var positionalValues = {
+    // Dimensions
+    width: function (_a, _b) {
+        var x = _a.x;
+        var _c = _b.paddingLeft, paddingLeft = _c === void 0 ? "0" : _c, _d = _b.paddingRight, paddingRight = _d === void 0 ? "0" : _d;
+        return x.max - x.min - parseFloat(paddingLeft) - parseFloat(paddingRight);
+    },
+    height: function (_a, _b) {
+        var y = _a.y;
+        var _c = _b.paddingTop, paddingTop = _c === void 0 ? "0" : _c, _d = _b.paddingBottom, paddingBottom = _d === void 0 ? "0" : _d;
+        return y.max - y.min - parseFloat(paddingTop) - parseFloat(paddingBottom);
+    },
+    top: function (_bbox, _a) {
+        var top = _a.top;
+        return parseFloat(top);
+    },
+    left: function (_bbox, _a) {
+        var left = _a.left;
+        return parseFloat(left);
+    },
+    bottom: function (_a, _b) {
+        var y = _a.y;
+        var top = _b.top;
+        return parseFloat(top) + (y.max - y.min);
+    },
+    right: function (_a, _b) {
+        var x = _a.x;
+        var left = _b.left;
+        return parseFloat(left) + (x.max - x.min);
+    },
+    // Transform
+    x: getTranslateFromMatrix(4, 13),
+    y: getTranslateFromMatrix(5, 14),
+};
+var convertChangedValueTypes = function (target, visualElement, changedKeys) {
+    var originBbox = visualElement.measureViewportBox();
+    var element = visualElement.getInstance();
+    var elementComputedStyle = getComputedStyle(element);
+    var display = elementComputedStyle.display;
+    var origin = {};
+    // If the element is currently set to display: "none", make it visible before
+    // measuring the target bounding box
+    if (display === "none") {
+        visualElement.setStaticValue("display", target.display || "block");
+    }
+    /**
+     * Record origins before we render and update styles
+     */
+    changedKeys.forEach(function (key) {
+        origin[key] = positionalValues[key](originBbox, elementComputedStyle);
+    });
+    // Apply the latest values (as set in checkAndConvertChangedValueTypes)
+    visualElement.syncRender();
+    var targetBbox = visualElement.measureViewportBox();
+    changedKeys.forEach(function (key) {
+        // Restore styles to their **calculated computed style**, not their actual
+        // originally set style. This allows us to animate between equivalent pixel units.
+        var value = visualElement.getValue(key);
+        setAndResetVelocity(value, origin[key]);
+        target[key] = positionalValues[key](targetBbox, elementComputedStyle);
+    });
+    return target;
+};
+var checkAndConvertChangedValueTypes = function (visualElement, target, origin, transitionEnd) {
+    if (origin === void 0) { origin = {}; }
+    if (transitionEnd === void 0) { transitionEnd = {}; }
+    target = __assign({}, target);
+    transitionEnd = __assign({}, transitionEnd);
+    var targetPositionalKeys = Object.keys(target).filter(isPositionalKey);
+    // We want to remove any transform values that could affect the element's bounding box before
+    // it's measured. We'll reapply these later.
+    var removedTransformValues = [];
+    var hasAttemptedToRemoveTransformValues = false;
+    var changedValueTypeKeys = [];
+    targetPositionalKeys.forEach(function (key) {
+        var value = visualElement.getValue(key);
+        if (!visualElement.hasValue(key))
+            return;
+        var from = origin[key];
+        var fromType = findDimensionValueType(from);
+        var to = target[key];
+        var toType;
+        // TODO: The current implementation of this basically throws an error
+        // if you try and do value conversion via keyframes. There's probably
+        // a way of doing this but the performance implications would need greater scrutiny,
+        // as it'd be doing multiple resize-remeasure operations.
+        if (isKeyframesTarget(to)) {
+            var numKeyframes = to.length;
+            var fromIndex = to[0] === null ? 1 : 0;
+            from = to[fromIndex];
+            fromType = findDimensionValueType(from);
+            for (var i = fromIndex; i < numKeyframes; i++) {
+                if (!toType) {
+                    toType = findDimensionValueType(to[i]);
+                    invariant(toType === fromType ||
+                        (isNumOrPxType(fromType) && isNumOrPxType(toType)), "Keyframes must be of the same dimension as the current value");
+                }
+                else {
+                    invariant(findDimensionValueType(to[i]) === toType, "All keyframes must be of the same type");
+                }
+            }
+        }
+        else {
+            toType = findDimensionValueType(to);
+        }
+        if (fromType !== toType) {
+            // If they're both just number or px, convert them both to numbers rather than
+            // relying on resize/remeasure to convert (which is wasteful in this situation)
+            if (isNumOrPxType(fromType) && isNumOrPxType(toType)) {
+                var current = value.get();
+                if (typeof current === "string") {
+                    value.set(parseFloat(current));
+                }
+                if (typeof to === "string") {
+                    target[key] = parseFloat(to);
+                }
+                else if (Array.isArray(to) && toType === px) {
+                    target[key] = to.map(parseFloat);
+                }
+            }
+            else if ((fromType === null || fromType === void 0 ? void 0 : fromType.transform) &&
+                (toType === null || toType === void 0 ? void 0 : toType.transform) &&
+                (from === 0 || to === 0)) {
+                // If one or the other value is 0, it's safe to coerce it to the
+                // type of the other without measurement
+                if (from === 0) {
+                    value.set(toType.transform(from));
+                }
+                else {
+                    target[key] = fromType.transform(to);
+                }
+            }
+            else {
+                // If we're going to do value conversion via DOM measurements, we first
+                // need to remove non-positional transform values that could affect the bbox measurements.
+                if (!hasAttemptedToRemoveTransformValues) {
+                    removedTransformValues =
+                        removeNonTranslationalTransform(visualElement);
+                    hasAttemptedToRemoveTransformValues = true;
+                }
+                changedValueTypeKeys.push(key);
+                transitionEnd[key] =
+                    transitionEnd[key] !== undefined
+                        ? transitionEnd[key]
+                        : target[key];
+                setAndResetVelocity(value, to);
+            }
+        }
+    });
+    if (changedValueTypeKeys.length) {
+        var scrollY_1 = changedValueTypeKeys.indexOf("height") >= 0
+            ? window.pageYOffset
+            : null;
+        var convertedTarget = convertChangedValueTypes(target, visualElement, changedValueTypeKeys);
+        // If we removed transform values, reapply them before the next render
+        if (removedTransformValues.length) {
+            removedTransformValues.forEach(function (_a) {
+                var _b = tslib_es6_read(_a, 2), key = _b[0], value = _b[1];
+                visualElement.getValue(key).set(value);
+            });
+        }
+        // Reapply original values
+        visualElement.syncRender();
+        // Restore scroll position
+        if (scrollY_1 !== null)
+            window.scrollTo({ top: scrollY_1 });
+        return { target: convertedTarget, transitionEnd: transitionEnd };
+    }
+    else {
+        return { target: target, transitionEnd: transitionEnd };
+    }
+};
+/**
+ * Convert value types for x/y/width/height/top/left/bottom/right
+ *
+ * Allows animation between `'auto'` -> `'100%'` or `0` -> `'calc(50% - 10vw)'`
+ *
+ * @internal
+ */
+function unitConversion(visualElement, target, origin, transitionEnd) {
+    return hasPositionalKey(target)
+        ? checkAndConvertChangedValueTypes(visualElement, target, origin, transitionEnd)
+        : { target: target, transitionEnd: transitionEnd };
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/dom/utils/parse-dom-variant.mjs
+
+
+
+/**
+ * Parse a DOM variant to make it animatable. This involves resolving CSS variables
+ * and ensuring animations like "20%" => "calc(50vw)" are performed in pixels.
+ */
+var parseDomVariant = function (visualElement, target, origin, transitionEnd) {
+    var resolved = resolveCSSVariables(visualElement, target, transitionEnd);
+    target = resolved.target;
+    transitionEnd = resolved.transitionEnd;
+    return unitConversion(visualElement, target, origin, transitionEnd);
+};
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/html/visual-element.mjs
+
+
+
+
+
+
+
+
+
+
+
+
+function visual_element_getComputedStyle(element) {
+    return window.getComputedStyle(element);
+}
+var htmlConfig = {
+    treeType: "dom",
+    readValueFromInstance: function (domElement, key) {
+        if (isTransformProp(key)) {
+            var defaultType = getDefaultValueType(key);
+            return defaultType ? defaultType.default || 0 : 0;
+        }
+        else {
+            var computedStyle = visual_element_getComputedStyle(domElement);
+            return ((isCSSVariable(key)
+                ? computedStyle.getPropertyValue(key)
+                : computedStyle[key]) || 0);
+        }
+    },
+    sortNodePosition: function (a, b) {
+        /**
+         * compareDocumentPosition returns a bitmask, by using the bitwise &
+         * we're returning true if 2 in that bitmask is set to true. 2 is set
+         * to true if b preceeds a.
+         */
+        return a.compareDocumentPosition(b) & 2 ? 1 : -1;
+    },
+    getBaseTarget: function (props, key) {
+        var _a;
+        return (_a = props.style) === null || _a === void 0 ? void 0 : _a[key];
+    },
+    measureViewportBox: function (element, _a) {
+        var transformPagePoint = _a.transformPagePoint;
+        return measureViewportBox(element, transformPagePoint);
+    },
+    /**
+     * Reset the transform on the current Element. This is called as part
+     * of a batched process across the entire layout tree. To remove this write
+     * cycle it'd be interesting to see if it's possible to "undo" all the current
+     * layout transforms up the tree in the same way this.getBoundingBoxWithoutTransforms
+     * works
+     */
+    resetTransform: function (element, domElement, props) {
+        var transformTemplate = props.transformTemplate;
+        domElement.style.transform = transformTemplate
+            ? transformTemplate({}, "")
+            : "none";
+        // Ensure that whatever happens next, we restore our transform on the next frame
+        element.scheduleRender();
+    },
+    restoreTransform: function (instance, mutableState) {
+        instance.style.transform = mutableState.style.transform;
+    },
+    removeValueFromRenderState: function (key, _a) {
+        var vars = _a.vars, style = _a.style;
+        delete vars[key];
+        delete style[key];
+    },
+    /**
+     * Ensure that HTML and Framer-specific value types like `px`->`%` and `Color`
+     * can be animated by Motion.
+     */
+    makeTargetAnimatable: function (element, _a, _b, isMounted) {
+        var transformValues = _b.transformValues;
+        if (isMounted === void 0) { isMounted = true; }
+        var transition = _a.transition, transitionEnd = _a.transitionEnd, target = __rest(_a, ["transition", "transitionEnd"]);
+        var origin = getOrigin(target, transition || {}, element);
+        /**
+         * If Framer has provided a function to convert `Color` etc value types, convert them
+         */
+        if (transformValues) {
+            if (transitionEnd)
+                transitionEnd = transformValues(transitionEnd);
+            if (target)
+                target = transformValues(target);
+            if (origin)
+                origin = transformValues(origin);
+        }
+        if (isMounted) {
+            checkTargetForNewValues(element, target, origin);
+            var parsed = parseDomVariant(element, target, origin, transitionEnd);
+            transitionEnd = parsed.transitionEnd;
+            target = parsed.target;
+        }
+        return __assign({ transition: transition, transitionEnd: transitionEnd }, target);
+    },
+    scrapeMotionValuesFromProps: scrapeMotionValuesFromProps,
+    build: function (element, renderState, latestValues, options, props) {
+        if (element.isVisible !== undefined) {
+            renderState.style.visibility = element.isVisible
+                ? "visible"
+                : "hidden";
+        }
+        buildHTMLStyles(renderState, latestValues, options, props.transformTemplate);
+    },
+    render: renderHTML,
+};
+var htmlVisualElement = visualElement(htmlConfig);
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/svg/visual-element.mjs
+
+
+
+
+
+
+
+
+
+
+
+var svgVisualElement = visualElement(__assign(__assign({}, htmlConfig), { getBaseTarget: function (props, key) {
+        return props[key];
+    }, readValueFromInstance: function (domElement, key) {
+        var _a;
+        if (isTransformProp(key)) {
+            return ((_a = getDefaultValueType(key)) === null || _a === void 0 ? void 0 : _a.default) || 0;
+        }
+        key = !camelCaseAttributes.has(key) ? camelToDash(key) : key;
+        return domElement.getAttribute(key);
+    }, scrapeMotionValuesFromProps: scrape_motion_values_scrapeMotionValuesFromProps, build: function (_element, renderState, latestValues, options, props) {
+        buildSVGAttrs(renderState, latestValues, options, props.transformTemplate);
+    }, render: renderSVG }));
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs
+
+
+
+
+var create_visual_element_createDomVisualElement = function (Component, options) {
+    return isSVGComponent(Component)
+        ? svgVisualElement(options, { enableHardwareAcceleration: false })
+        : htmlVisualElement(options, { enableHardwareAcceleration: true });
+};
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/projection/styles/scale-border-radius.mjs
+
+
+function pixelsToPercent(pixels, axis) {
+    if (axis.max === axis.min)
+        return 0;
+    return (pixels / (axis.max - axis.min)) * 100;
+}
+/**
+ * We always correct borderRadius as a percentage rather than pixels to reduce paints.
+ * For example, if you are projecting a box that is 100px wide with a 10px borderRadius
+ * into a box that is 200px wide with a 20px borderRadius, that is actually a 10%
+ * borderRadius in both states. If we animate between the two in pixels that will trigger
+ * a paint each time. If we animate between the two in percentage we'll avoid a paint.
+ */
+var correctBorderRadius = {
+    correct: function (latest, node) {
+        if (!node.target)
+            return latest;
+        /**
+         * If latest is a string, if it's a percentage we can return immediately as it's
+         * going to be stretched appropriately. Otherwise, if it's a pixel, convert it to a number.
+         */
+        if (typeof latest === "string") {
+            if (px.test(latest)) {
+                latest = parseFloat(latest);
+            }
+            else {
+                return latest;
+            }
+        }
+        /**
+         * If latest is a number, it's a pixel value. We use the current viewportBox to calculate that
+         * pixel value as a percentage of each axis
+         */
+        var x = pixelsToPercent(latest, node.target.x);
+        var y = pixelsToPercent(latest, node.target.y);
+        return "".concat(x, "% ").concat(y, "%");
+    },
+};
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs
+
+
+
+
+var varToken = "_$css";
+var correctBoxShadow = {
+    correct: function (latest, _a) {
+        var treeScale = _a.treeScale, projectionDelta = _a.projectionDelta;
+        var original = latest;
+        /**
+         * We need to first strip and store CSS variables from the string.
+         */
+        var containsCSSVariables = latest.includes("var(");
+        var cssVariables = [];
+        if (containsCSSVariables) {
+            latest = latest.replace(cssVariableRegex, function (match) {
+                cssVariables.push(match);
+                return varToken;
+            });
+        }
+        var shadow = complex.parse(latest);
+        // TODO: Doesn't support multiple shadows
+        if (shadow.length > 5)
+            return original;
+        var template = complex.createTransformer(latest);
+        var offset = typeof shadow[0] !== "number" ? 1 : 0;
+        // Calculate the overall context scale
+        var xScale = projectionDelta.x.scale * treeScale.x;
+        var yScale = projectionDelta.y.scale * treeScale.y;
+        shadow[0 + offset] /= xScale;
+        shadow[1 + offset] /= yScale;
+        /**
+         * Ideally we'd correct x and y scales individually, but because blur and
+         * spread apply to both we have to take a scale average and apply that instead.
+         * We could potentially improve the outcome of this by incorporating the ratio between
+         * the two scales.
+         */
+        var averageScale = mix(xScale, yScale, 0.5);
+        // Blur
+        if (typeof shadow[2 + offset] === "number")
+            shadow[2 + offset] /= averageScale;
+        // Spread
+        if (typeof shadow[3 + offset] === "number")
+            shadow[3 + offset] /= averageScale;
+        var output = template(shadow);
+        if (containsCSSVariables) {
+            var i_1 = 0;
+            output = output.replace(varToken, function () {
+                var cssVariable = cssVariables[i_1];
+                i_1++;
+                return cssVariable;
+            });
+        }
+        return output;
+    },
+};
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs
+
+
+
+
+
+
+
+
+
+
+
+var MeasureLayoutWithContext = /** @class */ (function (_super) {
+    __extends(MeasureLayoutWithContext, _super);
+    function MeasureLayoutWithContext() {
+        return _super !== null && _super.apply(this, arguments) || this;
+    }
+    /**
+     * This only mounts projection nodes for components that
+     * need measuring, we might want to do it for all components
+     * in order to incorporate transforms
+     */
+    MeasureLayoutWithContext.prototype.componentDidMount = function () {
+        var _this = this;
+        var _a = this.props, visualElement = _a.visualElement, layoutGroup = _a.layoutGroup, switchLayoutGroup = _a.switchLayoutGroup, layoutId = _a.layoutId;
+        var projection = visualElement.projection;
+        addScaleCorrector(defaultScaleCorrectors);
+        if (projection) {
+            if (layoutGroup === null || layoutGroup === void 0 ? void 0 : layoutGroup.group)
+                layoutGroup.group.add(projection);
+            if ((switchLayoutGroup === null || switchLayoutGroup === void 0 ? void 0 : switchLayoutGroup.register) && layoutId) {
+                switchLayoutGroup.register(projection);
+            }
+            projection.root.didUpdate();
+            projection.addEventListener("animationComplete", function () {
+                _this.safeToRemove();
+            });
+            projection.setOptions(__assign(__assign({}, projection.options), { onExitComplete: function () { return _this.safeToRemove(); } }));
+        }
+        globalProjectionState.hasEverUpdated = true;
+    };
+    MeasureLayoutWithContext.prototype.getSnapshotBeforeUpdate = function (prevProps) {
+        var _this = this;
+        var _a = this.props, layoutDependency = _a.layoutDependency, visualElement = _a.visualElement, drag = _a.drag, isPresent = _a.isPresent;
+        var projection = visualElement.projection;
+        if (!projection)
+            return null;
+        /**
+         * TODO: We use this data in relegate to determine whether to
+         * promote a previous element. There's no guarantee its presence data
+         * will have updated by this point - if a bug like this arises it will
+         * have to be that we markForRelegation and then find a new lead some other way,
+         * perhaps in didUpdate
+         */
+        projection.isPresent = isPresent;
+        if (drag ||
+            prevProps.layoutDependency !== layoutDependency ||
+            layoutDependency === undefined) {
+            projection.willUpdate();
+        }
+        else {
+            this.safeToRemove();
+        }
+        if (prevProps.isPresent !== isPresent) {
+            if (isPresent) {
+                projection.promote();
+            }
+            else if (!projection.relegate()) {
+                /**
+                 * If there's another stack member taking over from this one,
+                 * it's in charge of the exit animation and therefore should
+                 * be in charge of the safe to remove. Otherwise we call it here.
+                 */
+                es.postRender(function () {
+                    var _a;
+                    if (!((_a = projection.getStack()) === null || _a === void 0 ? void 0 : _a.members.length)) {
+                        _this.safeToRemove();
+                    }
+                });
+            }
+        }
+        return null;
+    };
+    MeasureLayoutWithContext.prototype.componentDidUpdate = function () {
+        var projection = this.props.visualElement.projection;
+        if (projection) {
+            projection.root.didUpdate();
+            if (!projection.currentAnimation && projection.isLead()) {
+                this.safeToRemove();
+            }
+        }
+    };
+    MeasureLayoutWithContext.prototype.componentWillUnmount = function () {
+        var _a = this.props, visualElement = _a.visualElement, layoutGroup = _a.layoutGroup, promoteContext = _a.switchLayoutGroup;
+        var projection = visualElement.projection;
+        if (projection) {
+            projection.scheduleCheckAfterUnmount();
+            if (layoutGroup === null || layoutGroup === void 0 ? void 0 : layoutGroup.group)
+                layoutGroup.group.remove(projection);
+            if (promoteContext === null || promoteContext === void 0 ? void 0 : promoteContext.deregister)
+                promoteContext.deregister(projection);
+        }
+    };
+    MeasureLayoutWithContext.prototype.safeToRemove = function () {
+        var safeToRemove = this.props.safeToRemove;
+        safeToRemove === null || safeToRemove === void 0 ? void 0 : safeToRemove();
+    };
+    MeasureLayoutWithContext.prototype.render = function () {
+        return null;
+    };
+    return MeasureLayoutWithContext;
+}(external_React_.Component));
+function MeasureLayout(props) {
+    var _a = tslib_es6_read(usePresence(), 2), isPresent = _a[0], safeToRemove = _a[1];
+    var layoutGroup = (0,external_React_.useContext)(LayoutGroupContext);
+    return (external_React_.createElement(MeasureLayoutWithContext, __assign({}, props, { layoutGroup: layoutGroup, switchLayoutGroup: (0,external_React_.useContext)(SwitchLayoutGroupContext), isPresent: isPresent, safeToRemove: safeToRemove })));
+}
+var defaultScaleCorrectors = {
+    borderRadius: __assign(__assign({}, correctBorderRadius), { applyTo: [
+            "borderTopLeftRadius",
+            "borderTopRightRadius",
+            "borderBottomLeftRadius",
+            "borderBottomRightRadius",
+        ] }),
+    borderTopLeftRadius: correctBorderRadius,
+    borderTopRightRadius: correctBorderRadius,
+    borderBottomLeftRadius: correctBorderRadius,
+    borderBottomRightRadius: correctBorderRadius,
+    boxShadow: correctBoxShadow,
+};
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/motion/features/layout/index.mjs
+
+
+var layoutFeatures = {
+    measureLayout: MeasureLayout,
+};
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/animation/animate.mjs
+
+
+
+
+/**
+ * Animate a single value or a `MotionValue`.
+ *
+ * The first argument is either a `MotionValue` to animate, or an initial animation value.
+ *
+ * The second is either a value to animate to, or an array of keyframes to animate through.
+ *
+ * The third argument can be either tween or spring options, and optional lifecycle methods: `onUpdate`, `onPlay`, `onComplete`, `onRepeat` and `onStop`.
+ *
+ * Returns `AnimationPlaybackControls`, currently just a `stop` method.
+ *
+ * ```javascript
+ * const x = useMotionValue(0)
+ *
+ * useEffect(() => {
+ *   const controls = animate(x, 100, {
+ *     type: "spring",
+ *     stiffness: 2000,
+ *     onComplete: v => {}
+ *   })
+ *
+ *   return controls.stop
+ * })
+ * ```
+ *
+ * @public
+ */
+function animate_animate(from, to, transition) {
+    if (transition === void 0) { transition = {}; }
+    var value = isMotionValue(from) ? from : motionValue(from);
+    startAnimation("", value, to, transition);
+    return {
+        stop: function () { return value.stop(); },
+        isAnimating: function () { return value.isAnimating(); },
+    };
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/projection/animation/mix-values.mjs
+
+
+
+var borders = ["TopLeft", "TopRight", "BottomLeft", "BottomRight"];
+var numBorders = borders.length;
+var asNumber = function (value) {
+    return typeof value === "string" ? parseFloat(value) : value;
+};
+var isPx = function (value) {
+    return typeof value === "number" || px.test(value);
+};
+function mixValues(target, follow, lead, progress, shouldCrossfadeOpacity, isOnlyMember) {
+    var _a, _b, _c, _d;
+    if (shouldCrossfadeOpacity) {
+        target.opacity = mix(0, 
+        // (follow?.opacity as number) ?? 0,
+        // TODO Reinstate this if only child
+        (_a = lead.opacity) !== null && _a !== void 0 ? _a : 1, easeCrossfadeIn(progress));
+        target.opacityExit = mix((_b = follow.opacity) !== null && _b !== void 0 ? _b : 1, 0, easeCrossfadeOut(progress));
+    }
+    else if (isOnlyMember) {
+        target.opacity = mix((_c = follow.opacity) !== null && _c !== void 0 ? _c : 1, (_d = lead.opacity) !== null && _d !== void 0 ? _d : 1, progress);
+    }
+    /**
+     * Mix border radius
+     */
+    for (var i = 0; i < numBorders; i++) {
+        var borderLabel = "border".concat(borders[i], "Radius");
+        var followRadius = getRadius(follow, borderLabel);
+        var leadRadius = getRadius(lead, borderLabel);
+        if (followRadius === undefined && leadRadius === undefined)
+            continue;
+        followRadius || (followRadius = 0);
+        leadRadius || (leadRadius = 0);
+        var canMix = followRadius === 0 ||
+            leadRadius === 0 ||
+            isPx(followRadius) === isPx(leadRadius);
+        if (canMix) {
+            target[borderLabel] = Math.max(mix(asNumber(followRadius), asNumber(leadRadius), progress), 0);
+            if (percent.test(leadRadius) || percent.test(followRadius)) {
+                target[borderLabel] += "%";
+            }
+        }
+        else {
+            target[borderLabel] = leadRadius;
+        }
+    }
+    /**
+     * Mix rotation
+     */
+    if (follow.rotate || lead.rotate) {
+        target.rotate = mix(follow.rotate || 0, lead.rotate || 0, progress);
+    }
+}
+function getRadius(values, radiusName) {
+    var _a;
+    return (_a = values[radiusName]) !== null && _a !== void 0 ? _a : values.borderRadius;
+}
+// /**
+//  * We only want to mix the background color if there's a follow element
+//  * that we're not crossfading opacity between. For instance with switch
+//  * AnimateSharedLayout animations, this helps the illusion of a continuous
+//  * element being animated but also cuts down on the number of paints triggered
+//  * for elements where opacity is doing that work for us.
+//  */
+// if (
+//     !hasFollowElement &&
+//     latestLeadValues.backgroundColor &&
+//     latestFollowValues.backgroundColor
+// ) {
+//     /**
+//      * This isn't ideal performance-wise as mixColor is creating a new function every frame.
+//      * We could probably create a mixer that runs at the start of the animation but
+//      * the idea behind the crossfader is that it runs dynamically between two potentially
+//      * changing targets (ie opacity or borderRadius may be animating independently via variants)
+//      */
+//     leadState.backgroundColor = followState.backgroundColor = mixColor(
+//         latestFollowValues.backgroundColor as string,
+//         latestLeadValues.backgroundColor as string
+//     )(p)
+// }
+var easeCrossfadeIn = compress(0, 0.5, circOut);
+var easeCrossfadeOut = compress(0.5, 0.95, linear);
+function compress(min, max, easing) {
+    return function (p) {
+        // Could replace ifs with clamp
+        if (p < min)
+            return 0;
+        if (p > max)
+            return 1;
+        return easing(progress(min, max, p));
+    };
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/projection/geometry/copy.mjs
+/**
+ * Reset an axis to the provided origin box.
+ *
+ * This is a mutative operation.
+ */
+function copyAxisInto(axis, originAxis) {
+    axis.min = originAxis.min;
+    axis.max = originAxis.max;
+}
+/**
+ * Reset a box to the provided origin box.
+ *
+ * This is a mutative operation.
+ */
+function copyBoxInto(box, originBox) {
+    copyAxisInto(box.x, originBox.x);
+    copyAxisInto(box.y, originBox.y);
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/projection/geometry/delta-remove.mjs
+
+
+
+
+
+/**
+ * Remove a delta from a point. This is essentially the steps of applyPointDelta in reverse
+ */
+function removePointDelta(point, translate, scale, originPoint, boxScale) {
+    point -= translate;
+    point = scalePoint(point, 1 / scale, originPoint);
+    if (boxScale !== undefined) {
+        point = scalePoint(point, 1 / boxScale, originPoint);
+    }
+    return point;
+}
+/**
+ * Remove a delta from an axis. This is essentially the steps of applyAxisDelta in reverse
+ */
+function removeAxisDelta(axis, translate, scale, origin, boxScale, originAxis, sourceAxis) {
+    if (translate === void 0) { translate = 0; }
+    if (scale === void 0) { scale = 1; }
+    if (origin === void 0) { origin = 0.5; }
+    if (originAxis === void 0) { originAxis = axis; }
+    if (sourceAxis === void 0) { sourceAxis = axis; }
+    if (percent.test(translate)) {
+        translate = parseFloat(translate);
+        var relativeProgress = mix(sourceAxis.min, sourceAxis.max, translate / 100);
+        translate = relativeProgress - sourceAxis.min;
+    }
+    if (typeof translate !== "number")
+        return;
+    var originPoint = mix(originAxis.min, originAxis.max, origin);
+    if (axis === originAxis)
+        originPoint -= translate;
+    axis.min = removePointDelta(axis.min, translate, scale, originPoint, boxScale);
+    axis.max = removePointDelta(axis.max, translate, scale, originPoint, boxScale);
+}
+/**
+ * Remove a transforms from an axis. This is essentially the steps of applyAxisTransforms in reverse
+ * and acts as a bridge between motion values and removeAxisDelta
+ */
+function removeAxisTransforms(axis, transforms, _a, origin, sourceAxis) {
+    var _b = tslib_es6_read(_a, 3), key = _b[0], scaleKey = _b[1], originKey = _b[2];
+    removeAxisDelta(axis, transforms[key], transforms[scaleKey], transforms[originKey], transforms.scale, origin, sourceAxis);
+}
+/**
+ * The names of the motion values we want to apply as translation, scale and origin.
+ */
+var delta_remove_xKeys = ["x", "scaleX", "originX"];
+var delta_remove_yKeys = ["y", "scaleY", "originY"];
+/**
+ * Remove a transforms from an box. This is essentially the steps of applyAxisBox in reverse
+ * and acts as a bridge between motion values and removeAxisDelta
+ */
+function removeBoxTransforms(box, transforms, originBox, sourceBox) {
+    removeAxisTransforms(box.x, transforms, delta_remove_xKeys, originBox === null || originBox === void 0 ? void 0 : originBox.x, sourceBox === null || sourceBox === void 0 ? void 0 : sourceBox.x);
+    removeAxisTransforms(box.y, transforms, delta_remove_yKeys, originBox === null || originBox === void 0 ? void 0 : originBox.y, sourceBox === null || sourceBox === void 0 ? void 0 : sourceBox.y);
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/projection/geometry/utils.mjs
+function isAxisDeltaZero(delta) {
+    return delta.translate === 0 && delta.scale === 1;
+}
+function isDeltaZero(delta) {
+    return isAxisDeltaZero(delta.x) && isAxisDeltaZero(delta.y);
+}
+function boxEquals(a, b) {
+    return (a.x.min === b.x.min &&
+        a.x.max === b.x.max &&
+        a.y.min === b.y.min &&
+        a.y.max === b.y.max);
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/projection/shared/stack.mjs
+
+
+var NodeStack = /** @class */ (function () {
+    function NodeStack() {
+        this.members = [];
+    }
+    NodeStack.prototype.add = function (node) {
+        addUniqueItem(this.members, node);
+        node.scheduleRender();
+    };
+    NodeStack.prototype.remove = function (node) {
+        removeItem(this.members, node);
+        if (node === this.prevLead) {
+            this.prevLead = undefined;
+        }
+        if (node === this.lead) {
+            var prevLead = this.members[this.members.length - 1];
+            if (prevLead) {
+                this.promote(prevLead);
+            }
+        }
+    };
+    NodeStack.prototype.relegate = function (node) {
+        var indexOfNode = this.members.findIndex(function (member) { return node === member; });
+        if (indexOfNode === 0)
+            return false;
+        /**
+         * Find the next projection node that is present
+         */
+        var prevLead;
+        for (var i = indexOfNode; i >= 0; i--) {
+            var member = this.members[i];
+            if (member.isPresent !== false) {
+                prevLead = member;
+                break;
+            }
+        }
+        if (prevLead) {
+            this.promote(prevLead);
+            return true;
+        }
+        else {
+            return false;
+        }
+    };
+    NodeStack.prototype.promote = function (node, preserveFollowOpacity) {
+        var _a;
+        var prevLead = this.lead;
+        if (node === prevLead)
+            return;
+        this.prevLead = prevLead;
+        this.lead = node;
+        node.show();
+        if (prevLead) {
+            prevLead.instance && prevLead.scheduleRender();
+            node.scheduleRender();
+            node.resumeFrom = prevLead;
+            if (preserveFollowOpacity) {
+                node.resumeFrom.preserveOpacity = true;
+            }
+            if (prevLead.snapshot) {
+                node.snapshot = prevLead.snapshot;
+                node.snapshot.latestValues =
+                    prevLead.animationValues || prevLead.latestValues;
+                node.snapshot.isShared = true;
+            }
+            if ((_a = node.root) === null || _a === void 0 ? void 0 : _a.isUpdating) {
+                node.isLayoutDirty = true;
+            }
+            var crossfade = node.options.crossfade;
+            if (crossfade === false) {
+                prevLead.hide();
+            }
+            /**
+             * TODO:
+             *   - Test border radius when previous node was deleted
+             *   - boxShadow mixing
+             *   - Shared between element A in scrolled container and element B (scroll stays the same or changes)
+             *   - Shared between element A in transformed container and element B (transform stays the same or changes)
+             *   - Shared between element A in scrolled page and element B (scroll stays the same or changes)
+             * ---
+             *   - Crossfade opacity of root nodes
+             *   - layoutId changes after animation
+             *   - layoutId changes mid animation
+             */
+        }
+    };
+    NodeStack.prototype.exitAnimationComplete = function () {
+        this.members.forEach(function (node) {
+            var _a, _b, _c, _d, _e;
+            (_b = (_a = node.options).onExitComplete) === null || _b === void 0 ? void 0 : _b.call(_a);
+            (_e = (_c = node.resumingFrom) === null || _c === void 0 ? void 0 : (_d = _c.options).onExitComplete) === null || _e === void 0 ? void 0 : _e.call(_d);
+        });
+    };
+    NodeStack.prototype.scheduleRender = function () {
+        this.members.forEach(function (node) {
+            node.instance && node.scheduleRender(false);
+        });
+    };
+    /**
+     * Clear any leads that have been removed this render to prevent them from being
+     * used in future animations and to prevent memory leaks
+     */
+    NodeStack.prototype.removeLeadSnapshot = function () {
+        if (this.lead && this.lead.snapshot) {
+            this.lead.snapshot = undefined;
+        }
+    };
+    return NodeStack;
+}());
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/projection/styles/transform.mjs
+var identityProjection = "translate3d(0px, 0px, 0) scale(1, 1) scale(1, 1)";
+function buildProjectionTransform(delta, treeScale, latestTransform) {
+    /**
+     * The translations we use to calculate are always relative to the viewport coordinate space.
+     * But when we apply scales, we also scale the coordinate space of an element and its children.
+     * For instance if we have a treeScale (the culmination of all parent scales) of 0.5 and we need
+     * to move an element 100 pixels, we actually need to move it 200 in within that scaled space.
+     */
+    var xTranslate = delta.x.translate / treeScale.x;
+    var yTranslate = delta.y.translate / treeScale.y;
+    var transform = "translate3d(".concat(xTranslate, "px, ").concat(yTranslate, "px, 0) ");
+    /**
+     * Apply scale correction for the tree transform.
+     * This will apply scale to the screen-orientated axes.
+     */
+    transform += "scale(".concat(1 / treeScale.x, ", ").concat(1 / treeScale.y, ") ");
+    if (latestTransform) {
+        var rotate = latestTransform.rotate, rotateX = latestTransform.rotateX, rotateY = latestTransform.rotateY;
+        if (rotate)
+            transform += "rotate(".concat(rotate, "deg) ");
+        if (rotateX)
+            transform += "rotateX(".concat(rotateX, "deg) ");
+        if (rotateY)
+            transform += "rotateY(".concat(rotateY, "deg) ");
+    }
+    /**
+     * Apply scale to match the size of the element to the size we want it.
+     * This will apply scale to the element-orientated axes.
+     */
+    var elementScaleX = delta.x.scale * treeScale.x;
+    var elementScaleY = delta.y.scale * treeScale.y;
+    transform += "scale(".concat(elementScaleX, ", ").concat(elementScaleY, ")");
+    return transform === identityProjection ? "none" : transform;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/utils/compare-by-depth.mjs
+var compareByDepth = function (a, b) {
+    return a.depth - b.depth;
+};
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/utils/flat-tree.mjs
+
+
+
+var FlatTree = /** @class */ (function () {
+    function FlatTree() {
+        this.children = [];
+        this.isDirty = false;
+    }
+    FlatTree.prototype.add = function (child) {
+        addUniqueItem(this.children, child);
+        this.isDirty = true;
+    };
+    FlatTree.prototype.remove = function (child) {
+        removeItem(this.children, child);
+        this.isDirty = true;
+    };
+    FlatTree.prototype.forEach = function (callback) {
+        this.isDirty && this.children.sort(compareByDepth);
+        this.isDirty = false;
+        this.children.forEach(callback);
+    };
+    return FlatTree;
+}());
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/**
+ * We use 1000 as the animation target as 0-1000 maps better to pixels than 0-1
+ * which has a noticeable difference in spring animations
+ */
+var animationTarget = 1000;
+function createProjectionNode(_a) {
+    var attachResizeListener = _a.attachResizeListener, defaultParent = _a.defaultParent, measureScroll = _a.measureScroll, checkIsScrollRoot = _a.checkIsScrollRoot, resetTransform = _a.resetTransform;
+    return /** @class */ (function () {
+        function ProjectionNode(id, latestValues, parent) {
+            var _this = this;
+            if (latestValues === void 0) { latestValues = {}; }
+            if (parent === void 0) { parent = defaultParent === null || defaultParent === void 0 ? void 0 : defaultParent(); }
+            /**
+             * A Set containing all this component's children. This is used to iterate
+             * through the children.
+             *
+             * TODO: This could be faster to iterate as a flat array stored on the root node.
+             */
+            this.children = new Set();
+            /**
+             * Options for the node. We use this to configure what kind of layout animations
+             * we should perform (if any).
+             */
+            this.options = {};
+            /**
+             * We use this to detect when its safe to shut down part of a projection tree.
+             * We have to keep projecting children for scale correction and relative projection
+             * until all their parents stop performing layout animations.
+             */
+            this.isTreeAnimating = false;
+            this.isAnimationBlocked = false;
+            /**
+             * Flag to true if we think this layout has been changed. We can't always know this,
+             * currently we set it to true every time a component renders, or if it has a layoutDependency
+             * if that has changed between renders. Additionally, components can be grouped by LayoutGroup
+             * and if one node is dirtied, they all are.
+             */
+            this.isLayoutDirty = false;
+            /**
+             * Block layout updates for instant layout transitions throughout the tree.
+             */
+            this.updateManuallyBlocked = false;
+            this.updateBlockedByResize = false;
+            /**
+             * Set to true between the start of the first `willUpdate` call and the end of the `didUpdate`
+             * call.
+             */
+            this.isUpdating = false;
+            /**
+             * If this is an SVG element we currently disable projection transforms
+             */
+            this.isSVG = false;
+            /**
+             * Flag to true (during promotion) if a node doing an instant layout transition needs to reset
+             * its projection styles.
+             */
+            this.needsReset = false;
+            /**
+             * Flags whether this node should have its transform reset prior to measuring.
+             */
+            this.shouldResetTransform = false;
+            /**
+             * An object representing the calculated contextual/accumulated/tree scale.
+             * This will be used to scale calculcated projection transforms, as these are
+             * calculated in screen-space but need to be scaled for elements to actually
+             * make it to their calculated destinations.
+             *
+             * TODO: Lazy-init
+             */
+            this.treeScale = { x: 1, y: 1 };
+            /**
+             *
+             */
+            this.eventHandlers = new Map();
+            // Note: Currently only running on root node
+            this.potentialNodes = new Map();
+            this.checkUpdateFailed = function () {
+                if (_this.isUpdating) {
+                    _this.isUpdating = false;
+                    _this.clearAllSnapshots();
+                }
+            };
+            this.updateProjection = function () {
+                _this.nodes.forEach(resolveTargetDelta);
+                _this.nodes.forEach(calcProjection);
+            };
+            this.hasProjected = false;
+            this.isVisible = true;
+            this.animationProgress = 0;
+            /**
+             * Shared layout
+             */
+            // TODO Only running on root node
+            this.sharedNodes = new Map();
+            this.id = id;
+            this.latestValues = latestValues;
+            this.root = parent ? parent.root || parent : this;
+            this.path = parent ? tslib_es6_spreadArray(tslib_es6_spreadArray([], tslib_es6_read(parent.path), false), [parent], false) : [];
+            this.parent = parent;
+            this.depth = parent ? parent.depth + 1 : 0;
+            id && this.root.registerPotentialNode(id, this);
+            for (var i = 0; i < this.path.length; i++) {
+                this.path[i].shouldResetTransform = true;
+            }
+            if (this.root === this)
+                this.nodes = new FlatTree();
+        }
+        ProjectionNode.prototype.addEventListener = function (name, handler) {
+            if (!this.eventHandlers.has(name)) {
+                this.eventHandlers.set(name, new SubscriptionManager());
+            }
+            return this.eventHandlers.get(name).add(handler);
+        };
+        ProjectionNode.prototype.notifyListeners = function (name) {
+            var args = [];
+            for (var _i = 1; _i < arguments.length; _i++) {
+                args[_i - 1] = arguments[_i];
+            }
+            var subscriptionManager = this.eventHandlers.get(name);
+            subscriptionManager === null || subscriptionManager === void 0 ? void 0 : subscriptionManager.notify.apply(subscriptionManager, tslib_es6_spreadArray([], tslib_es6_read(args), false));
+        };
+        ProjectionNode.prototype.hasListeners = function (name) {
+            return this.eventHandlers.has(name);
+        };
+        ProjectionNode.prototype.registerPotentialNode = function (id, node) {
+            this.potentialNodes.set(id, node);
+        };
+        /**
+         * Lifecycles
+         */
+        ProjectionNode.prototype.mount = function (instance, isLayoutDirty) {
+            var _this = this;
+            var _a;
+            if (isLayoutDirty === void 0) { isLayoutDirty = false; }
+            if (this.instance)
+                return;
+            this.isSVG =
+                instance instanceof SVGElement && instance.tagName !== "svg";
+            this.instance = instance;
+            var _b = this.options, layoutId = _b.layoutId, layout = _b.layout, visualElement = _b.visualElement;
+            if (visualElement && !visualElement.getInstance()) {
+                visualElement.mount(instance);
+            }
+            this.root.nodes.add(this);
+            (_a = this.parent) === null || _a === void 0 ? void 0 : _a.children.add(this);
+            this.id && this.root.potentialNodes.delete(this.id);
+            if (isLayoutDirty && (layout || layoutId)) {
+                this.isLayoutDirty = true;
+            }
+            if (attachResizeListener) {
+                var unblockTimeout_1;
+                var resizeUnblockUpdate_1 = function () {
+                    return (_this.root.updateBlockedByResize = false);
+                };
+                attachResizeListener(instance, function () {
+                    _this.root.updateBlockedByResize = true;
+                    clearTimeout(unblockTimeout_1);
+                    unblockTimeout_1 = window.setTimeout(resizeUnblockUpdate_1, 250);
+                    if (globalProjectionState.hasAnimatedSinceResize) {
+                        globalProjectionState.hasAnimatedSinceResize = false;
+                        _this.nodes.forEach(finishAnimation);
+                    }
+                });
+            }
+            if (layoutId) {
+                this.root.registerSharedNode(layoutId, this);
+            }
+            // Only register the handler if it requires layout animation
+            if (this.options.animate !== false &&
+                visualElement &&
+                (layoutId || layout)) {
+                this.addEventListener("didUpdate", function (_a) {
+                    var _b, _c, _d, _e, _f;
+                    var delta = _a.delta, hasLayoutChanged = _a.hasLayoutChanged, hasRelativeTargetChanged = _a.hasRelativeTargetChanged, newLayout = _a.layout;
+                    if (_this.isTreeAnimationBlocked()) {
+                        _this.target = undefined;
+                        _this.relativeTarget = undefined;
+                        return;
+                    }
+                    // TODO: Check here if an animation exists
+                    var layoutTransition = (_c = (_b = _this.options.transition) !== null && _b !== void 0 ? _b : visualElement.getDefaultTransition()) !== null && _c !== void 0 ? _c : defaultLayoutTransition;
+                    var _g = visualElement.getProps(), onLayoutAnimationStart = _g.onLayoutAnimationStart, onLayoutAnimationComplete = _g.onLayoutAnimationComplete;
+                    /**
+                     * The target layout of the element might stay the same,
+                     * but its position relative to its parent has changed.
+                     */
+                    var targetChanged = !_this.targetLayout ||
+                        !boxEquals(_this.targetLayout, newLayout) ||
+                        hasRelativeTargetChanged;
+                    /**
+                     * If the layout hasn't seemed to have changed, it might be that the
+                     * element is visually in the same place in the document but its position
+                     * relative to its parent has indeed changed. So here we check for that.
+                     */
+                    var hasOnlyRelativeTargetChanged = !hasLayoutChanged && hasRelativeTargetChanged;
+                    if (((_d = _this.resumeFrom) === null || _d === void 0 ? void 0 : _d.instance) ||
+                        hasOnlyRelativeTargetChanged ||
+                        (hasLayoutChanged &&
+                            (targetChanged || !_this.currentAnimation))) {
+                        if (_this.resumeFrom) {
+                            _this.resumingFrom = _this.resumeFrom;
+                            _this.resumingFrom.resumingFrom = undefined;
+                        }
+                        _this.setAnimationOrigin(delta, hasOnlyRelativeTargetChanged);
+                        var animationOptions = __assign(__assign({}, getValueTransition(layoutTransition, "layout")), { onPlay: onLayoutAnimationStart, onComplete: onLayoutAnimationComplete });
+                        if (visualElement.shouldReduceMotion) {
+                            animationOptions.delay = 0;
+                            animationOptions.type = false;
+                        }
+                        _this.startAnimation(animationOptions);
+                    }
+                    else {
+                        /**
+                         * If the layout hasn't changed and we have an animation that hasn't started yet,
+                         * finish it immediately. Otherwise it will be animating from a location
+                         * that was probably never commited to screen and look like a jumpy box.
+                         */
+                        if (!hasLayoutChanged &&
+                            _this.animationProgress === 0) {
+                            _this.finishAnimation();
+                        }
+                        _this.isLead() && ((_f = (_e = _this.options).onExitComplete) === null || _f === void 0 ? void 0 : _f.call(_e));
+                    }
+                    _this.targetLayout = newLayout;
+                });
+            }
+        };
+        ProjectionNode.prototype.unmount = function () {
+            var _a, _b;
+            this.options.layoutId && this.willUpdate();
+            this.root.nodes.remove(this);
+            (_a = this.getStack()) === null || _a === void 0 ? void 0 : _a.remove(this);
+            (_b = this.parent) === null || _b === void 0 ? void 0 : _b.children.delete(this);
+            this.instance = undefined;
+            cancelSync.preRender(this.updateProjection);
+        };
+        // only on the root
+        ProjectionNode.prototype.blockUpdate = function () {
+            this.updateManuallyBlocked = true;
+        };
+        ProjectionNode.prototype.unblockUpdate = function () {
+            this.updateManuallyBlocked = false;
+        };
+        ProjectionNode.prototype.isUpdateBlocked = function () {
+            return this.updateManuallyBlocked || this.updateBlockedByResize;
+        };
+        ProjectionNode.prototype.isTreeAnimationBlocked = function () {
+            var _a;
+            return (this.isAnimationBlocked ||
+                ((_a = this.parent) === null || _a === void 0 ? void 0 : _a.isTreeAnimationBlocked()) ||
+                false);
+        };
+        // Note: currently only running on root node
+        ProjectionNode.prototype.startUpdate = function () {
+            var _a;
+            if (this.isUpdateBlocked())
+                return;
+            this.isUpdating = true;
+            (_a = this.nodes) === null || _a === void 0 ? void 0 : _a.forEach(resetRotation);
+        };
+        ProjectionNode.prototype.willUpdate = function (shouldNotifyListeners) {
+            var _a, _b, _c;
+            if (shouldNotifyListeners === void 0) { shouldNotifyListeners = true; }
+            if (this.root.isUpdateBlocked()) {
+                (_b = (_a = this.options).onExitComplete) === null || _b === void 0 ? void 0 : _b.call(_a);
+                return;
+            }
+            !this.root.isUpdating && this.root.startUpdate();
+            if (this.isLayoutDirty)
+                return;
+            this.isLayoutDirty = true;
+            for (var i = 0; i < this.path.length; i++) {
+                var node = this.path[i];
+                node.shouldResetTransform = true;
+                /**
+                 * TODO: Check we haven't updated the scroll
+                 * since the last didUpdate
+                 */
+                node.updateScroll();
+            }
+            var _d = this.options, layoutId = _d.layoutId, layout = _d.layout;
+            if (layoutId === undefined && !layout)
+                return;
+            var transformTemplate = (_c = this.options.visualElement) === null || _c === void 0 ? void 0 : _c.getProps().transformTemplate;
+            this.prevTransformTemplateValue = transformTemplate === null || transformTemplate === void 0 ? void 0 : transformTemplate(this.latestValues, "");
+            this.updateSnapshot();
+            shouldNotifyListeners && this.notifyListeners("willUpdate");
+        };
+        // Note: Currently only running on root node
+        ProjectionNode.prototype.didUpdate = function () {
+            var updateWasBlocked = this.isUpdateBlocked();
+            // When doing an instant transition, we skip the layout update,
+            // but should still clean up the measurements so that the next
+            // snapshot could be taken correctly.
+            if (updateWasBlocked) {
+                this.unblockUpdate();
+                this.clearAllSnapshots();
+                this.nodes.forEach(clearMeasurements);
+                return;
+            }
+            if (!this.isUpdating)
+                return;
+            this.isUpdating = false;
+            /**
+             * Search for and mount newly-added projection elements.
+             *
+             * TODO: Every time a new component is rendered we could search up the tree for
+             * the closest mounted node and query from there rather than document.
+             */
+            if (this.potentialNodes.size) {
+                this.potentialNodes.forEach(mountNodeEarly);
+                this.potentialNodes.clear();
+            }
+            /**
+             * Write
+             */
+            this.nodes.forEach(resetTransformStyle);
+            /**
+             * Read ==================
+             */
+            // Update layout measurements of updated children
+            this.nodes.forEach(updateLayout);
+            /**
+             * Write
+             */
+            // Notify listeners that the layout is updated
+            this.nodes.forEach(notifyLayoutUpdate);
+            this.clearAllSnapshots();
+            // Flush any scheduled updates
+            flushSync.update();
+            flushSync.preRender();
+            flushSync.render();
+        };
+        ProjectionNode.prototype.clearAllSnapshots = function () {
+            this.nodes.forEach(clearSnapshot);
+            this.sharedNodes.forEach(removeLeadSnapshots);
+        };
+        ProjectionNode.prototype.scheduleUpdateProjection = function () {
+            es.preRender(this.updateProjection, false, true);
+        };
+        ProjectionNode.prototype.scheduleCheckAfterUnmount = function () {
+            var _this = this;
+            /**
+             * If the unmounting node is in a layoutGroup and did trigger a willUpdate,
+             * we manually call didUpdate to give a chance to the siblings to animate.
+             * Otherwise, cleanup all snapshots to prevents future nodes from reusing them.
+             */
+            es.postRender(function () {
+                if (_this.isLayoutDirty) {
+                    _this.root.didUpdate();
+                }
+                else {
+                    _this.root.checkUpdateFailed();
+                }
+            });
+        };
+        /**
+         * Update measurements
+         */
+        ProjectionNode.prototype.updateSnapshot = function () {
+            if (this.snapshot || !this.instance)
+                return;
+            var measured = this.measure();
+            var layout = this.removeTransform(this.removeElementScroll(measured));
+            roundBox(layout);
+            this.snapshot = {
+                measured: measured,
+                layout: layout,
+                latestValues: {},
+            };
+        };
+        ProjectionNode.prototype.updateLayout = function () {
+            var _a;
+            if (!this.instance)
+                return;
+            // TODO: Incorporate into a forwarded scroll offset
+            this.updateScroll();
+            if (!(this.options.alwaysMeasureLayout && this.isLead()) &&
+                !this.isLayoutDirty) {
+                return;
+            }
+            /**
+             * When a node is mounted, it simply resumes from the prevLead's
+             * snapshot instead of taking a new one, but the ancestors scroll
+             * might have updated while the prevLead is unmounted. We need to
+             * update the scroll again to make sure the layout we measure is
+             * up to date.
+             */
+            if (this.resumeFrom && !this.resumeFrom.instance) {
+                for (var i = 0; i < this.path.length; i++) {
+                    var node = this.path[i];
+                    node.updateScroll();
+                }
+            }
+            var measured = this.measure();
+            roundBox(measured);
+            var prevLayout = this.layout;
+            this.layout = {
+                measured: measured,
+                actual: this.removeElementScroll(measured),
+            };
+            this.layoutCorrected = createBox();
+            this.isLayoutDirty = false;
+            this.projectionDelta = undefined;
+            this.notifyListeners("measure", this.layout.actual);
+            (_a = this.options.visualElement) === null || _a === void 0 ? void 0 : _a.notifyLayoutMeasure(this.layout.actual, prevLayout === null || prevLayout === void 0 ? void 0 : prevLayout.actual);
+        };
+        ProjectionNode.prototype.updateScroll = function () {
+            if (this.options.layoutScroll && this.instance) {
+                this.isScrollRoot = checkIsScrollRoot(this.instance);
+                this.scroll = measureScroll(this.instance);
+            }
+        };
+        ProjectionNode.prototype.resetTransform = function () {
+            var _a;
+            if (!resetTransform)
+                return;
+            var isResetRequested = this.isLayoutDirty || this.shouldResetTransform;
+            var hasProjection = this.projectionDelta && !isDeltaZero(this.projectionDelta);
+            var transformTemplate = (_a = this.options.visualElement) === null || _a === void 0 ? void 0 : _a.getProps().transformTemplate;
+            var transformTemplateValue = transformTemplate === null || transformTemplate === void 0 ? void 0 : transformTemplate(this.latestValues, "");
+            var transformTemplateHasChanged = transformTemplateValue !== this.prevTransformTemplateValue;
+            if (isResetRequested &&
+                (hasProjection ||
+                    hasTransform(this.latestValues) ||
+                    transformTemplateHasChanged)) {
+                resetTransform(this.instance, transformTemplateValue);
+                this.shouldResetTransform = false;
+                this.scheduleRender();
+            }
+        };
+        ProjectionNode.prototype.measure = function () {
+            var visualElement = this.options.visualElement;
+            if (!visualElement)
+                return createBox();
+            var box = visualElement.measureViewportBox();
+            // Remove viewport scroll to give page-relative coordinates
+            var scroll = this.root.scroll;
+            if (scroll) {
+                translateAxis(box.x, scroll.x);
+                translateAxis(box.y, scroll.y);
+            }
+            return box;
+        };
+        ProjectionNode.prototype.removeElementScroll = function (box) {
+            var boxWithoutScroll = createBox();
+            copyBoxInto(boxWithoutScroll, box);
+            /**
+             * Performance TODO: Keep a cumulative scroll offset down the tree
+             * rather than loop back up the path.
+             */
+            for (var i = 0; i < this.path.length; i++) {
+                var node = this.path[i];
+                var scroll_1 = node.scroll, options = node.options, isScrollRoot = node.isScrollRoot;
+                if (node !== this.root && scroll_1 && options.layoutScroll) {
+                    /**
+                     * If this is a new scroll root, we want to remove all previous scrolls
+                     * from the viewport box.
+                     */
+                    if (isScrollRoot) {
+                        copyBoxInto(boxWithoutScroll, box);
+                        var rootScroll = this.root.scroll;
+                        /**
+                         * Undo the application of page scroll that was originally added
+                         * to the measured bounding box.
+                         */
+                        if (rootScroll) {
+                            translateAxis(boxWithoutScroll.x, -rootScroll.x);
+                            translateAxis(boxWithoutScroll.y, -rootScroll.y);
+                        }
+                    }
+                    translateAxis(boxWithoutScroll.x, scroll_1.x);
+                    translateAxis(boxWithoutScroll.y, scroll_1.y);
+                }
+            }
+            return boxWithoutScroll;
+        };
+        ProjectionNode.prototype.applyTransform = function (box, transformOnly) {
+            if (transformOnly === void 0) { transformOnly = false; }
+            var withTransforms = createBox();
+            copyBoxInto(withTransforms, box);
+            for (var i = 0; i < this.path.length; i++) {
+                var node = this.path[i];
+                if (!transformOnly &&
+                    node.options.layoutScroll &&
+                    node.scroll &&
+                    node !== node.root) {
+                    transformBox(withTransforms, {
+                        x: -node.scroll.x,
+                        y: -node.scroll.y,
+                    });
+                }
+                if (!hasTransform(node.latestValues))
+                    continue;
+                transformBox(withTransforms, node.latestValues);
+            }
+            if (hasTransform(this.latestValues)) {
+                transformBox(withTransforms, this.latestValues);
+            }
+            return withTransforms;
+        };
+        ProjectionNode.prototype.removeTransform = function (box) {
+            var _a;
+            var boxWithoutTransform = createBox();
+            copyBoxInto(boxWithoutTransform, box);
+            for (var i = 0; i < this.path.length; i++) {
+                var node = this.path[i];
+                if (!node.instance)
+                    continue;
+                if (!hasTransform(node.latestValues))
+                    continue;
+                hasScale(node.latestValues) && node.updateSnapshot();
+                var sourceBox = createBox();
+                var nodeBox = node.measure();
+                copyBoxInto(sourceBox, nodeBox);
+                removeBoxTransforms(boxWithoutTransform, node.latestValues, (_a = node.snapshot) === null || _a === void 0 ? void 0 : _a.layout, sourceBox);
+            }
+            if (hasTransform(this.latestValues)) {
+                removeBoxTransforms(boxWithoutTransform, this.latestValues);
+            }
+            return boxWithoutTransform;
+        };
+        /**
+         *
+         */
+        ProjectionNode.prototype.setTargetDelta = function (delta) {
+            this.targetDelta = delta;
+            this.root.scheduleUpdateProjection();
+        };
+        ProjectionNode.prototype.setOptions = function (options) {
+            var _a;
+            this.options = __assign(__assign(__assign({}, this.options), options), { crossfade: (_a = options.crossfade) !== null && _a !== void 0 ? _a : true });
+        };
+        ProjectionNode.prototype.clearMeasurements = function () {
+            this.scroll = undefined;
+            this.layout = undefined;
+            this.snapshot = undefined;
+            this.prevTransformTemplateValue = undefined;
+            this.targetDelta = undefined;
+            this.target = undefined;
+            this.isLayoutDirty = false;
+        };
+        /**
+         * Frame calculations
+         */
+        ProjectionNode.prototype.resolveTargetDelta = function () {
+            var _a;
+            var _b = this.options, layout = _b.layout, layoutId = _b.layoutId;
+            /**
+             * If we have no layout, we can't perform projection, so early return
+             */
+            if (!this.layout || !(layout || layoutId))
+                return;
+            /**
+             * If we don't have a targetDelta but do have a layout, we can attempt to resolve
+             * a relativeParent. This will allow a component to perform scale correction
+             * even if no animation has started.
+             */
+            // TODO If this is unsuccessful this currently happens every frame
+            if (!this.targetDelta && !this.relativeTarget) {
+                // TODO: This is a semi-repetition of further down this function, make DRY
+                this.relativeParent = this.getClosestProjectingParent();
+                if (this.relativeParent && this.relativeParent.layout) {
+                    this.relativeTarget = createBox();
+                    this.relativeTargetOrigin = createBox();
+                    calcRelativePosition(this.relativeTargetOrigin, this.layout.actual, this.relativeParent.layout.actual);
+                    copyBoxInto(this.relativeTarget, this.relativeTargetOrigin);
+                }
+            }
+            /**
+             * If we have no relative target or no target delta our target isn't valid
+             * for this frame.
+             */
+            if (!this.relativeTarget && !this.targetDelta)
+                return;
+            /**
+             * Lazy-init target data structure
+             */
+            if (!this.target) {
+                this.target = createBox();
+                this.targetWithTransforms = createBox();
+            }
+            /**
+             * If we've got a relative box for this component, resolve it into a target relative to the parent.
+             */
+            if (this.relativeTarget &&
+                this.relativeTargetOrigin &&
+                ((_a = this.relativeParent) === null || _a === void 0 ? void 0 : _a.target)) {
+                calcRelativeBox(this.target, this.relativeTarget, this.relativeParent.target);
+                /**
+                 * If we've only got a targetDelta, resolve it into a target
+                 */
+            }
+            else if (this.targetDelta) {
+                if (Boolean(this.resumingFrom)) {
+                    // TODO: This is creating a new object every frame
+                    this.target = this.applyTransform(this.layout.actual);
+                }
+                else {
+                    copyBoxInto(this.target, this.layout.actual);
+                }
+                applyBoxDelta(this.target, this.targetDelta);
+            }
+            else {
+                /**
+                 * If no target, use own layout as target
+                 */
+                copyBoxInto(this.target, this.layout.actual);
+            }
+            /**
+             * If we've been told to attempt to resolve a relative target, do so.
+             */
+            if (this.attemptToResolveRelativeTarget) {
+                this.attemptToResolveRelativeTarget = false;
+                this.relativeParent = this.getClosestProjectingParent();
+                if (this.relativeParent &&
+                    Boolean(this.relativeParent.resumingFrom) ===
+                        Boolean(this.resumingFrom) &&
+                    !this.relativeParent.options.layoutScroll &&
+                    this.relativeParent.target) {
+                    this.relativeTarget = createBox();
+                    this.relativeTargetOrigin = createBox();
+                    calcRelativePosition(this.relativeTargetOrigin, this.target, this.relativeParent.target);
+                    copyBoxInto(this.relativeTarget, this.relativeTargetOrigin);
+                }
+            }
+        };
+        ProjectionNode.prototype.getClosestProjectingParent = function () {
+            if (!this.parent || hasTransform(this.parent.latestValues))
+                return undefined;
+            if ((this.parent.relativeTarget || this.parent.targetDelta) &&
+                this.parent.layout) {
+                return this.parent;
+            }
+            else {
+                return this.parent.getClosestProjectingParent();
+            }
+        };
+        ProjectionNode.prototype.calcProjection = function () {
+            var _a;
+            var _b = this.options, layout = _b.layout, layoutId = _b.layoutId;
+            /**
+             * If this section of the tree isn't animating we can
+             * delete our target sources for the following frame.
+             */
+            this.isTreeAnimating = Boolean(((_a = this.parent) === null || _a === void 0 ? void 0 : _a.isTreeAnimating) ||
+                this.currentAnimation ||
+                this.pendingAnimation);
+            if (!this.isTreeAnimating) {
+                this.targetDelta = this.relativeTarget = undefined;
+            }
+            if (!this.layout || !(layout || layoutId))
+                return;
+            var lead = this.getLead();
+            /**
+             * Reset the corrected box with the latest values from box, as we're then going
+             * to perform mutative operations on it.
+             */
+            copyBoxInto(this.layoutCorrected, this.layout.actual);
+            /**
+             * Apply all the parent deltas to this box to produce the corrected box. This
+             * is the layout box, as it will appear on screen as a result of the transforms of its parents.
+             */
+            applyTreeDeltas(this.layoutCorrected, this.treeScale, this.path, Boolean(this.resumingFrom) || this !== lead);
+            var target = lead.target;
+            if (!target)
+                return;
+            if (!this.projectionDelta) {
+                this.projectionDelta = createDelta();
+                this.projectionDeltaWithTransform = createDelta();
+            }
+            var prevTreeScaleX = this.treeScale.x;
+            var prevTreeScaleY = this.treeScale.y;
+            var prevProjectionTransform = this.projectionTransform;
+            /**
+             * Update the delta between the corrected box and the target box before user-set transforms were applied.
+             * This will allow us to calculate the corrected borderRadius and boxShadow to compensate
+             * for our layout reprojection, but still allow them to be scaled correctly by the user.
+             * It might be that to simplify this we may want to accept that user-set scale is also corrected
+             * and we wouldn't have to keep and calc both deltas, OR we could support a user setting
+             * to allow people to choose whether these styles are corrected based on just the
+             * layout reprojection or the final bounding box.
+             */
+            calcBoxDelta(this.projectionDelta, this.layoutCorrected, target, this.latestValues);
+            this.projectionTransform = buildProjectionTransform(this.projectionDelta, this.treeScale);
+            if (this.projectionTransform !== prevProjectionTransform ||
+                this.treeScale.x !== prevTreeScaleX ||
+                this.treeScale.y !== prevTreeScaleY) {
+                this.hasProjected = true;
+                this.scheduleRender();
+                this.notifyListeners("projectionUpdate", target);
+            }
+        };
+        ProjectionNode.prototype.hide = function () {
+            this.isVisible = false;
+            // TODO: Schedule render
+        };
+        ProjectionNode.prototype.show = function () {
+            this.isVisible = true;
+            // TODO: Schedule render
+        };
+        ProjectionNode.prototype.scheduleRender = function (notifyAll) {
+            var _a, _b, _c;
+            if (notifyAll === void 0) { notifyAll = true; }
+            (_b = (_a = this.options).scheduleRender) === null || _b === void 0 ? void 0 : _b.call(_a);
+            notifyAll && ((_c = this.getStack()) === null || _c === void 0 ? void 0 : _c.scheduleRender());
+            if (this.resumingFrom && !this.resumingFrom.instance) {
+                this.resumingFrom = undefined;
+            }
+        };
+        ProjectionNode.prototype.setAnimationOrigin = function (delta, hasOnlyRelativeTargetChanged) {
+            var _this = this;
+            var _a;
+            if (hasOnlyRelativeTargetChanged === void 0) { hasOnlyRelativeTargetChanged = false; }
+            var snapshot = this.snapshot;
+            var snapshotLatestValues = (snapshot === null || snapshot === void 0 ? void 0 : snapshot.latestValues) || {};
+            var mixedValues = __assign({}, this.latestValues);
+            var targetDelta = createDelta();
+            this.relativeTarget = this.relativeTargetOrigin = undefined;
+            this.attemptToResolveRelativeTarget = !hasOnlyRelativeTargetChanged;
+            var relativeLayout = createBox();
+            var isSharedLayoutAnimation = snapshot === null || snapshot === void 0 ? void 0 : snapshot.isShared;
+            var isOnlyMember = (((_a = this.getStack()) === null || _a === void 0 ? void 0 : _a.members.length) || 0) <= 1;
+            var shouldCrossfadeOpacity = Boolean(isSharedLayoutAnimation &&
+                !isOnlyMember &&
+                this.options.crossfade === true &&
+                !this.path.some(hasOpacityCrossfade));
+            this.animationProgress = 0;
+            this.mixTargetDelta = function (latest) {
+                var _a;
+                var progress = latest / 1000;
+                mixAxisDelta(targetDelta.x, delta.x, progress);
+                mixAxisDelta(targetDelta.y, delta.y, progress);
+                _this.setTargetDelta(targetDelta);
+                if (_this.relativeTarget &&
+                    _this.relativeTargetOrigin &&
+                    _this.layout &&
+                    ((_a = _this.relativeParent) === null || _a === void 0 ? void 0 : _a.layout)) {
+                    calcRelativePosition(relativeLayout, _this.layout.actual, _this.relativeParent.layout.actual);
+                    mixBox(_this.relativeTarget, _this.relativeTargetOrigin, relativeLayout, progress);
+                }
+                if (isSharedLayoutAnimation) {
+                    _this.animationValues = mixedValues;
+                    mixValues(mixedValues, snapshotLatestValues, _this.latestValues, progress, shouldCrossfadeOpacity, isOnlyMember);
+                }
+                _this.root.scheduleUpdateProjection();
+                _this.scheduleRender();
+                _this.animationProgress = progress;
+            };
+            this.mixTargetDelta(0);
+        };
+        ProjectionNode.prototype.startAnimation = function (options) {
+            var _this = this;
+            var _a, _b;
+            this.notifyListeners("animationStart");
+            (_a = this.currentAnimation) === null || _a === void 0 ? void 0 : _a.stop();
+            if (this.resumingFrom) {
+                (_b = this.resumingFrom.currentAnimation) === null || _b === void 0 ? void 0 : _b.stop();
+            }
+            if (this.pendingAnimation) {
+                cancelSync.update(this.pendingAnimation);
+                this.pendingAnimation = undefined;
+            }
+            /**
+             * Start the animation in the next frame to have a frame with progress 0,
+             * where the target is the same as when the animation started, so we can
+             * calculate the relative positions correctly for instant transitions.
+             */
+            this.pendingAnimation = es.update(function () {
+                globalProjectionState.hasAnimatedSinceResize = true;
+                _this.currentAnimation = animate_animate(0, animationTarget, __assign(__assign({}, options), { onUpdate: function (latest) {
+                        var _a;
+                        _this.mixTargetDelta(latest);
+                        (_a = options.onUpdate) === null || _a === void 0 ? void 0 : _a.call(options, latest);
+                    }, onComplete: function () {
+                        var _a;
+                        (_a = options.onComplete) === null || _a === void 0 ? void 0 : _a.call(options);
+                        _this.completeAnimation();
+                    } }));
+                if (_this.resumingFrom) {
+                    _this.resumingFrom.currentAnimation = _this.currentAnimation;
+                }
+                _this.pendingAnimation = undefined;
+            });
+        };
+        ProjectionNode.prototype.completeAnimation = function () {
+            var _a;
+            if (this.resumingFrom) {
+                this.resumingFrom.currentAnimation = undefined;
+                this.resumingFrom.preserveOpacity = undefined;
+            }
+            (_a = this.getStack()) === null || _a === void 0 ? void 0 : _a.exitAnimationComplete();
+            this.resumingFrom =
+                this.currentAnimation =
+                    this.animationValues =
+                        undefined;
+            this.notifyListeners("animationComplete");
+        };
+        ProjectionNode.prototype.finishAnimation = function () {
+            var _a;
+            if (this.currentAnimation) {
+                (_a = this.mixTargetDelta) === null || _a === void 0 ? void 0 : _a.call(this, animationTarget);
+                this.currentAnimation.stop();
+            }
+            this.completeAnimation();
+        };
+        ProjectionNode.prototype.applyTransformsToTarget = function () {
+            var _a = this.getLead(), targetWithTransforms = _a.targetWithTransforms, target = _a.target, layout = _a.layout, latestValues = _a.latestValues;
+            if (!targetWithTransforms || !target || !layout)
+                return;
+            copyBoxInto(targetWithTransforms, target);
+            /**
+             * Apply the latest user-set transforms to the targetBox to produce the targetBoxFinal.
+             * This is the final box that we will then project into by calculating a transform delta and
+             * applying it to the corrected box.
+             */
+            transformBox(targetWithTransforms, latestValues);
+            /**
+             * Update the delta between the corrected box and the final target box, after
+             * user-set transforms are applied to it. This will be used by the renderer to
+             * create a transform style that will reproject the element from its actual layout
+             * into the desired bounding box.
+             */
+            calcBoxDelta(this.projectionDeltaWithTransform, this.layoutCorrected, targetWithTransforms, latestValues);
+        };
+        ProjectionNode.prototype.registerSharedNode = function (layoutId, node) {
+            var _a, _b, _c;
+            if (!this.sharedNodes.has(layoutId)) {
+                this.sharedNodes.set(layoutId, new NodeStack());
+            }
+            var stack = this.sharedNodes.get(layoutId);
+            stack.add(node);
+            node.promote({
+                transition: (_a = node.options.initialPromotionConfig) === null || _a === void 0 ? void 0 : _a.transition,
+                preserveFollowOpacity: (_c = (_b = node.options.initialPromotionConfig) === null || _b === void 0 ? void 0 : _b.shouldPreserveFollowOpacity) === null || _c === void 0 ? void 0 : _c.call(_b, node),
+            });
+        };
+        ProjectionNode.prototype.isLead = function () {
+            var stack = this.getStack();
+            return stack ? stack.lead === this : true;
+        };
+        ProjectionNode.prototype.getLead = function () {
+            var _a;
+            var layoutId = this.options.layoutId;
+            return layoutId ? ((_a = this.getStack()) === null || _a === void 0 ? void 0 : _a.lead) || this : this;
+        };
+        ProjectionNode.prototype.getPrevLead = function () {
+            var _a;
+            var layoutId = this.options.layoutId;
+            return layoutId ? (_a = this.getStack()) === null || _a === void 0 ? void 0 : _a.prevLead : undefined;
+        };
+        ProjectionNode.prototype.getStack = function () {
+            var layoutId = this.options.layoutId;
+            if (layoutId)
+                return this.root.sharedNodes.get(layoutId);
+        };
+        ProjectionNode.prototype.promote = function (_a) {
+            var _b = _a === void 0 ? {} : _a, needsReset = _b.needsReset, transition = _b.transition, preserveFollowOpacity = _b.preserveFollowOpacity;
+            var stack = this.getStack();
+            if (stack)
+                stack.promote(this, preserveFollowOpacity);
+            if (needsReset) {
+                this.projectionDelta = undefined;
+                this.needsReset = true;
+            }
+            if (transition)
+                this.setOptions({ transition: transition });
+        };
+        ProjectionNode.prototype.relegate = function () {
+            var stack = this.getStack();
+            if (stack) {
+                return stack.relegate(this);
+            }
+            else {
+                return false;
+            }
+        };
+        ProjectionNode.prototype.resetRotation = function () {
+            var visualElement = this.options.visualElement;
+            if (!visualElement)
+                return;
+            // If there's no detected rotation values, we can early return without a forced render.
+            var hasRotate = false;
+            // Keep a record of all the values we've reset
+            var resetValues = {};
+            // Check the rotate value of all axes and reset to 0
+            for (var i = 0; i < transformAxes.length; i++) {
+                var axis = transformAxes[i];
+                var key = "rotate" + axis;
+                // If this rotation doesn't exist as a motion value, then we don't
+                // need to reset it
+                if (!visualElement.getStaticValue(key)) {
+                    continue;
+                }
+                hasRotate = true;
+                // Record the rotation and then temporarily set it to 0
+                resetValues[key] = visualElement.getStaticValue(key);
+                visualElement.setStaticValue(key, 0);
+            }
+            // If there's no rotation values, we don't need to do any more.
+            if (!hasRotate)
+                return;
+            // Force a render of this element to apply the transform with all rotations
+            // set to 0.
+            visualElement === null || visualElement === void 0 ? void 0 : visualElement.syncRender();
+            // Put back all the values we reset
+            for (var key in resetValues) {
+                visualElement.setStaticValue(key, resetValues[key]);
+            }
+            // Schedule a render for the next frame. This ensures we won't visually
+            // see the element with the reset rotate value applied.
+            visualElement.scheduleRender();
+        };
+        ProjectionNode.prototype.getProjectionStyles = function (styleProp) {
+            var _a, _b, _c, _d, _e, _f;
+            if (styleProp === void 0) { styleProp = {}; }
+            // TODO: Return lifecycle-persistent object
+            var styles = {};
+            if (!this.instance || this.isSVG)
+                return styles;
+            if (!this.isVisible) {
+                return { visibility: "hidden" };
+            }
+            else {
+                styles.visibility = "";
+            }
+            var transformTemplate = (_a = this.options.visualElement) === null || _a === void 0 ? void 0 : _a.getProps().transformTemplate;
+            if (this.needsReset) {
+                this.needsReset = false;
+                styles.opacity = "";
+                styles.pointerEvents =
+                    resolveMotionValue(styleProp.pointerEvents) || "";
+                styles.transform = transformTemplate
+                    ? transformTemplate(this.latestValues, "")
+                    : "none";
+                return styles;
+            }
+            var lead = this.getLead();
+            if (!this.projectionDelta || !this.layout || !lead.target) {
+                var emptyStyles = {};
+                if (this.options.layoutId) {
+                    emptyStyles.opacity = (_b = this.latestValues.opacity) !== null && _b !== void 0 ? _b : 1;
+                    emptyStyles.pointerEvents =
+                        resolveMotionValue(styleProp.pointerEvents) || "";
+                }
+                if (this.hasProjected && !hasTransform(this.latestValues)) {
+                    emptyStyles.transform = transformTemplate
+                        ? transformTemplate({}, "")
+                        : "none";
+                    this.hasProjected = false;
+                }
+                return emptyStyles;
+            }
+            var valuesToRender = lead.animationValues || lead.latestValues;
+            this.applyTransformsToTarget();
+            styles.transform = buildProjectionTransform(this.projectionDeltaWithTransform, this.treeScale, valuesToRender);
+            if (transformTemplate) {
+                styles.transform = transformTemplate(valuesToRender, styles.transform);
+            }
+            var _g = this.projectionDelta, x = _g.x, y = _g.y;
+            styles.transformOrigin = "".concat(x.origin * 100, "% ").concat(y.origin * 100, "% 0");
+            if (lead.animationValues) {
+                /**
+                 * If the lead component is animating, assign this either the entering/leaving
+                 * opacity
+                 */
+                styles.opacity =
+                    lead === this
+                        ? (_d = (_c = valuesToRender.opacity) !== null && _c !== void 0 ? _c : this.latestValues.opacity) !== null && _d !== void 0 ? _d : 1
+                        : this.preserveOpacity
+                            ? this.latestValues.opacity
+                            : valuesToRender.opacityExit;
+            }
+            else {
+                /**
+                 * Or we're not animating at all, set the lead component to its actual
+                 * opacity and other components to hidden.
+                 */
+                styles.opacity =
+                    lead === this
+                        ? (_e = valuesToRender.opacity) !== null && _e !== void 0 ? _e : ""
+                        : (_f = valuesToRender.opacityExit) !== null && _f !== void 0 ? _f : 0;
+            }
+            /**
+             * Apply scale correction
+             */
+            for (var key in scaleCorrectors) {
+                if (valuesToRender[key] === undefined)
+                    continue;
+                var _h = scaleCorrectors[key], correct = _h.correct, applyTo = _h.applyTo;
+                var corrected = correct(valuesToRender[key], lead);
+                if (applyTo) {
+                    var num = applyTo.length;
+                    for (var i = 0; i < num; i++) {
+                        styles[applyTo[i]] = corrected;
+                    }
+                }
+                else {
+                    styles[key] = corrected;
+                }
+            }
+            /**
+             * Disable pointer events on follow components. This is to ensure
+             * that if a follow component covers a lead component it doesn't block
+             * pointer events on the lead.
+             */
+            if (this.options.layoutId) {
+                styles.pointerEvents =
+                    lead === this
+                        ? resolveMotionValue(styleProp.pointerEvents) || ""
+                        : "none";
+            }
+            return styles;
+        };
+        ProjectionNode.prototype.clearSnapshot = function () {
+            this.resumeFrom = this.snapshot = undefined;
+        };
+        // Only run on root
+        ProjectionNode.prototype.resetTree = function () {
+            this.root.nodes.forEach(function (node) { var _a; return (_a = node.currentAnimation) === null || _a === void 0 ? void 0 : _a.stop(); });
+            this.root.nodes.forEach(clearMeasurements);
+            this.root.sharedNodes.clear();
+        };
+        return ProjectionNode;
+    }());
+}
+function updateLayout(node) {
+    node.updateLayout();
+}
+function notifyLayoutUpdate(node) {
+    var _a, _b, _c, _d;
+    var snapshot = (_b = (_a = node.resumeFrom) === null || _a === void 0 ? void 0 : _a.snapshot) !== null && _b !== void 0 ? _b : node.snapshot;
+    if (node.isLead() &&
+        node.layout &&
+        snapshot &&
+        node.hasListeners("didUpdate")) {
+        var _e = node.layout, layout_1 = _e.actual, measuredLayout = _e.measured;
+        // TODO Maybe we want to also resize the layout snapshot so we don't trigger
+        // animations for instance if layout="size" and an element has only changed position
+        if (node.options.animationType === "size") {
+            eachAxis(function (axis) {
+                var axisSnapshot = snapshot.isShared
+                    ? snapshot.measured[axis]
+                    : snapshot.layout[axis];
+                var length = calcLength(axisSnapshot);
+                axisSnapshot.min = layout_1[axis].min;
+                axisSnapshot.max = axisSnapshot.min + length;
+            });
+        }
+        else if (node.options.animationType === "position") {
+            eachAxis(function (axis) {
+                var axisSnapshot = snapshot.isShared
+                    ? snapshot.measured[axis]
+                    : snapshot.layout[axis];
+                var length = calcLength(layout_1[axis]);
+                axisSnapshot.max = axisSnapshot.min + length;
+            });
+        }
+        var layoutDelta = createDelta();
+        calcBoxDelta(layoutDelta, layout_1, snapshot.layout);
+        var visualDelta = createDelta();
+        if (snapshot.isShared) {
+            calcBoxDelta(visualDelta, node.applyTransform(measuredLayout, true), snapshot.measured);
+        }
+        else {
+            calcBoxDelta(visualDelta, layout_1, snapshot.layout);
+        }
+        var hasLayoutChanged = !isDeltaZero(layoutDelta);
+        var hasRelativeTargetChanged = false;
+        if (!node.resumeFrom) {
+            node.relativeParent = node.getClosestProjectingParent();
+            /**
+             * If the relativeParent is itself resuming from a different element then
+             * the relative snapshot is not relavent
+             */
+            if (node.relativeParent && !node.relativeParent.resumeFrom) {
+                var _f = node.relativeParent, parentSnapshot = _f.snapshot, parentLayout = _f.layout;
+                if (parentSnapshot && parentLayout) {
+                    var relativeSnapshot = createBox();
+                    calcRelativePosition(relativeSnapshot, snapshot.layout, parentSnapshot.layout);
+                    var relativeLayout = createBox();
+                    calcRelativePosition(relativeLayout, layout_1, parentLayout.actual);
+                    if (!boxEquals(relativeSnapshot, relativeLayout)) {
+                        hasRelativeTargetChanged = true;
+                    }
+                }
+            }
+        }
+        node.notifyListeners("didUpdate", {
+            layout: layout_1,
+            snapshot: snapshot,
+            delta: visualDelta,
+            layoutDelta: layoutDelta,
+            hasLayoutChanged: hasLayoutChanged,
+            hasRelativeTargetChanged: hasRelativeTargetChanged,
+        });
+    }
+    else if (node.isLead()) {
+        (_d = (_c = node.options).onExitComplete) === null || _d === void 0 ? void 0 : _d.call(_c);
+    }
+    /**
+     * Clearing transition
+     * TODO: Investigate why this transition is being passed in as {type: false } from Framer
+     * and why we need it at all
+     */
+    node.options.transition = undefined;
+}
+function clearSnapshot(node) {
+    node.clearSnapshot();
+}
+function clearMeasurements(node) {
+    node.clearMeasurements();
+}
+function resetTransformStyle(node) {
+    var visualElement = node.options.visualElement;
+    if (visualElement === null || visualElement === void 0 ? void 0 : visualElement.getProps().onBeforeLayoutMeasure) {
+        visualElement.notifyBeforeLayoutMeasure();
+    }
+    node.resetTransform();
+}
+function finishAnimation(node) {
+    node.finishAnimation();
+    node.targetDelta = node.relativeTarget = node.target = undefined;
+}
+function resolveTargetDelta(node) {
+    node.resolveTargetDelta();
+}
+function calcProjection(node) {
+    node.calcProjection();
+}
+function resetRotation(node) {
+    node.resetRotation();
+}
+function removeLeadSnapshots(stack) {
+    stack.removeLeadSnapshot();
+}
+function mixAxisDelta(output, delta, p) {
+    output.translate = mix(delta.translate, 0, p);
+    output.scale = mix(delta.scale, 1, p);
+    output.origin = delta.origin;
+    output.originPoint = delta.originPoint;
+}
+function mixAxis(output, from, to, p) {
+    output.min = mix(from.min, to.min, p);
+    output.max = mix(from.max, to.max, p);
+}
+function mixBox(output, from, to, p) {
+    mixAxis(output.x, from.x, to.x, p);
+    mixAxis(output.y, from.y, to.y, p);
+}
+function hasOpacityCrossfade(node) {
+    return (node.animationValues && node.animationValues.opacityExit !== undefined);
+}
+var defaultLayoutTransition = {
+    duration: 0.45,
+    ease: [0.4, 0, 0.1, 1],
+};
+function mountNodeEarly(node, id) {
+    /**
+     * Rather than searching the DOM from document we can search the
+     * path for the deepest mounted ancestor and search from there
+     */
+    var searchNode = node.root;
+    for (var i = node.path.length - 1; i >= 0; i--) {
+        if (Boolean(node.path[i].instance)) {
+            searchNode = node.path[i];
+            break;
+        }
+    }
+    var searchElement = searchNode && searchNode !== node.root ? searchNode.instance : document;
+    var element = searchElement.querySelector("[data-projection-id=\"".concat(id, "\"]"));
+    if (element)
+        node.mount(element, true);
+}
+function roundAxis(axis) {
+    axis.min = Math.round(axis.min);
+    axis.max = Math.round(axis.max);
+}
+function roundBox(box) {
+    roundAxis(box.x);
+    roundAxis(box.y);
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs
+
+
+
+var DocumentProjectionNode = createProjectionNode({
+    attachResizeListener: function (ref, notify) { return addDomEvent(ref, "resize", notify); },
+    measureScroll: function () { return ({
+        x: document.documentElement.scrollLeft || document.body.scrollLeft,
+        y: document.documentElement.scrollTop || document.body.scrollTop,
+    }); },
+    checkIsScrollRoot: function () { return true; },
+});
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs
+
+
+
+var rootProjectionNode = {
+    current: undefined,
+};
+var HTMLProjectionNode_HTMLProjectionNode = createProjectionNode({
+    measureScroll: function (instance) { return ({
+        x: instance.scrollLeft,
+        y: instance.scrollTop,
+    }); },
+    defaultParent: function () {
+        if (!rootProjectionNode.current) {
+            var documentNode = new DocumentProjectionNode(0, {});
+            documentNode.mount(window);
+            documentNode.setOptions({ layoutScroll: true });
+            rootProjectionNode.current = documentNode;
+        }
+        return rootProjectionNode.current;
+    },
+    resetTransform: function (instance, value) {
+        instance.style.transform = value !== null && value !== void 0 ? value : "none";
+    },
+    checkIsScrollRoot: function (instance) {
+        return Boolean(window.getComputedStyle(instance).position === "fixed");
+    },
+});
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/render/dom/motion.mjs
+
+
+
+
+
+
+
+
+
+
+
+var featureBundle = __assign(__assign(__assign(__assign({}, animations), gestureAnimations), drag), layoutFeatures);
+/**
+ * HTML & SVG components, optimised for use with gestures and animation. These can be used as
+ * drop-in replacements for any HTML & SVG component, all CSS & SVG properties are supported.
+ *
+ * @public
+ */
+var motion = /*@__PURE__*/ createMotionProxy(function (Component, config) {
+    return create_config_createDomMotionConfig(Component, config, featureBundle, create_visual_element_createDomVisualElement, HTMLProjectionNode_HTMLProjectionNode);
+});
+/**
+ * Create a DOM `motion` component with the provided string. This is primarily intended
+ * as a full alternative to `motion` for consumers who have to support environments that don't
+ * support `Proxy`.
+ *
+ * ```javascript
+ * import { createDomMotionComponent } from "framer-motion"
+ *
+ * const motion = {
+ *   div: createDomMotionComponent('div')
+ * }
+ * ```
+ *
+ * @public
+ */
+function createDomMotionComponent(key) {
+    return createMotionComponent(createDomMotionConfig(key, { forwardMotionProps: false }, featureBundle, createDomVisualElement, HTMLProjectionNode));
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/flex/context.js
+/**
+ * WordPress dependencies
+ */
+
+const FlexContext = (0,external_wp_element_namespaceObject.createContext)({
+  flexItemDisplay: undefined
+});
+const useFlexContext = () => (0,external_wp_element_namespaceObject.useContext)(FlexContext);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/flex/styles.js
+function styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
+
+/**
+ * External dependencies
+ */
+
+const Flex =  true ? {
+  name: "zjik7",
+  styles: "display:flex"
+} : 0;
+const Item =  true ? {
+  name: "qgaee5",
+  styles: "display:block;max-height:100%;max-width:100%;min-height:0;min-width:0"
+} : 0;
+const block =  true ? {
+  name: "82a6rk",
+  styles: "flex:1"
+} : 0;
+/**
+ * Workaround to optimize DOM rendering.
+ * We'll enhance alignment with naive parent flex assumptions.
+ *
+ * Trade-off:
+ * Far less DOM less. However, UI rendering is not as reliable.
+ */
+
+/**
+ * Improves stability of width/height rendering.
+ * https://github.com/ItsJonQ/g2/pull/149
+ */
+
+const ItemsColumn =  true ? {
+  name: "13nosa1",
+  styles: ">*{min-height:0;}"
+} : 0;
+const ItemsRow =  true ? {
+  name: "1pwxzk4",
+  styles: ">*{min-width:0;}"
+} : 0;
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/flex/flex-item/hook.js
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+/**
+ * @param {import('../../ui/context').WordPressComponentProps<import('../types').FlexItemProps, 'div'>} props
+ */
+
+function useFlexItem(props) {
+  const {
+    className,
+    display: displayProp,
+    isBlock = false,
+    ...otherProps
+  } = useContextSystem(props, 'FlexItem');
+  const sx = {};
+  const contextDisplay = useFlexContext().flexItemDisplay;
+  sx.Base = /*#__PURE__*/emotion_react_browser_esm_css({
+    display: displayProp || contextDisplay
+  },  true ? "" : 0,  true ? "" : 0);
+  const cx = useCx();
+  const classes = cx(Item, sx.Base, isBlock && block, className);
+  return { ...otherProps,
+    className: classes
+  };
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/flex/flex-block/hook.js
+/**
+ * Internal dependencies
+ */
+
+
+/**
+ * @param {import('../../ui/context').WordPressComponentProps<import('../types').FlexBlockProps, 'div'>} props
+ */
+
+function useFlexBlock(props) {
+  const otherProps = useContextSystem(props, 'FlexBlock');
+  const flexItemProps = useFlexItem({
+    isBlock: true,
+    ...otherProps
+  });
+  return flexItemProps;
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/flex/flex-block/component.js
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+/**
+ * @param {import('../../ui/context').WordPressComponentProps<import('../types').FlexBlockProps, 'div'>} props
+ * @param {import('react').ForwardedRef<any>}                                                            forwardedRef
+ */
+
+function FlexBlock(props, forwardedRef) {
+  const flexBlockProps = useFlexBlock(props);
+  return (0,external_wp_element_namespaceObject.createElement)(component, extends_extends({}, flexBlockProps, {
+    ref: forwardedRef
+  }));
+}
+/**
+ * `FlexBlock` is a primitive layout component that adaptively resizes content within layout containers like `Flex`.
+ *
+ * @example
+ * ```jsx
+ * <Flex>
+ * 	<FlexBlock>...</FlexBlock>
+ * </Flex>
+ * ```
+ */
+
+
+const ConnectedFlexBlock = contextConnect(FlexBlock, 'FlexBlock');
+/* harmony default export */ var flex_block_component = (ConnectedFlexBlock);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/flex/flex-item/component.js
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+/**
+ * @param {import('../../ui/context').WordPressComponentProps<import('../types').FlexItemProps, 'div'>} props
+ * @param {import('react').ForwardedRef<any>}                                                           forwardedRef
+ */
+
+function FlexItem(props, forwardedRef) {
+  const flexItemProps = useFlexItem(props);
+  return (0,external_wp_element_namespaceObject.createElement)(component, extends_extends({}, flexItemProps, {
+    ref: forwardedRef
+  }));
+}
+/**
+ * `FlexItem` is a primitive layout component that aligns content within layout containers like `Flex`.
+ *
+ * @example
+ * ```jsx
+ * <Flex>
+ * 	<FlexItem>...</FlexItem>
+ * </Flex>
+ * ```
+ */
+
+
+const ConnectedFlexItem = contextConnect(FlexItem, 'FlexItem');
+/* harmony default export */ var flex_item_component = (ConnectedFlexItem);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/ui/utils/use-responsive-value.js
+/**
+ * WordPress dependencies
+ */
+
+const breakpoints = ['40em', '52em', '64em'];
+const useBreakpointIndex = function () {
+  let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+  const {
+    defaultIndex = 0
+  } = options;
+
+  if (typeof defaultIndex !== 'number') {
+    throw new TypeError(`Default breakpoint index should be a number. Got: ${defaultIndex}, ${typeof defaultIndex}`);
+  } else if (defaultIndex < 0 || defaultIndex > breakpoints.length - 1) {
+    throw new RangeError(`Default breakpoint index out of range. Theme has ${breakpoints.length} breakpoints, got index ${defaultIndex}`);
+  }
+
+  const [value, setValue] = (0,external_wp_element_namespaceObject.useState)(defaultIndex);
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    const getIndex = () => breakpoints.filter(bp => {
+      return typeof window !== 'undefined' ? window.matchMedia(`screen and (min-width: ${bp})`).matches : false;
+    }).length;
+
+    const onResize = () => {
+      const newValue = getIndex();
+
+      if (value !== newValue) {
+        setValue(newValue);
+      }
+    };
+
+    onResize();
+
+    if (typeof window !== 'undefined') {
+      window.addEventListener('resize', onResize);
+    }
+
+    return () => {
+      if (typeof window !== 'undefined') {
+        window.removeEventListener('resize', onResize);
+      }
+    };
+  }, [value]);
+  return value;
+};
+function useResponsiveValue(values) {
+  let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+  const index = useBreakpointIndex(options); // Allow calling the function with a "normal" value without having to check on the outside.
+
+  if (!Array.isArray(values) && typeof values !== 'function') return values;
+  const array = values || [];
+  /* eslint-disable jsdoc/no-undefined-types */
+
+  return (
+    /** @type {T[]} */
+    array[
+    /* eslint-enable jsdoc/no-undefined-types */
+    index >= array.length ? array.length - 1 : index]
+  );
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/ui/utils/space.js
+/**
+ * A real number or something parsable as a number
+ */
+const GRID_BASE = '4px';
+/**
+ * A function that handles numbers, numeric strings, and unit values.
+ *
+ * When given a number or a numeric string, it will return the grid-based
+ * value as a factor of GRID_BASE, defined above.
+ *
+ * When given a unit value or one of the named CSS values like `auto`,
+ * it will simply return the value back.
+ *
+ * @param  value A number, numeric string, or a unit value.
+ */
+
+function space(value) {
+  var _window$CSS, _window$CSS$supports;
+
+  if (typeof value === 'undefined') {
+    return undefined;
+  } // Handle empty strings, if it's the number 0 this still works.
+
+
+  if (!value) {
+    return '0';
+  }
+
+  const asInt = typeof value === 'number' ? value : Number(value); // Test if the input has a unit, was NaN, or was one of the named CSS values (like `auto`), in which case just use that value.
+
+  if (typeof window !== 'undefined' && (_window$CSS = window.CSS) !== null && _window$CSS !== void 0 && (_window$CSS$supports = _window$CSS.supports) !== null && _window$CSS$supports !== void 0 && _window$CSS$supports.call(_window$CSS, 'margin', value.toString()) || Number.isNaN(asInt)) {
+    return value.toString();
+  }
+
+  return `calc(${GRID_BASE} * ${value})`;
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/rtl.js
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+const LOWER_LEFT_REGEXP = new RegExp(/-left/g);
+const LOWER_RIGHT_REGEXP = new RegExp(/-right/g);
+const UPPER_LEFT_REGEXP = new RegExp(/Left/g);
+const UPPER_RIGHT_REGEXP = new RegExp(/Right/g);
+/**
+ * Flips a CSS property from left <-> right.
+ *
+ * @param {string} key The CSS property name.
+ *
+ * @return {string} The flipped CSS property name, if applicable.
+ */
+
+function getConvertedKey(key) {
+  if (key === 'left') {
+    return 'right';
+  }
+
+  if (key === 'right') {
+    return 'left';
+  }
+
+  if (LOWER_LEFT_REGEXP.test(key)) {
+    return key.replace(LOWER_LEFT_REGEXP, '-right');
+  }
+
+  if (LOWER_RIGHT_REGEXP.test(key)) {
+    return key.replace(LOWER_RIGHT_REGEXP, '-left');
+  }
+
+  if (UPPER_LEFT_REGEXP.test(key)) {
+    return key.replace(UPPER_LEFT_REGEXP, 'Right');
+  }
+
+  if (UPPER_RIGHT_REGEXP.test(key)) {
+    return key.replace(UPPER_RIGHT_REGEXP, 'Left');
+  }
+
+  return key;
+}
+/**
+ * An incredibly basic ltr -> rtl converter for style properties
+ *
+ * @param {import('react').CSSProperties} ltrStyles
+ *
+ * @return {import('react').CSSProperties} Converted ltr -> rtl styles
+ */
+
+
+const convertLTRToRTL = function () {
+  let ltrStyles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+  return (0,external_lodash_namespaceObject.mapKeys)(ltrStyles, (_value, key) => getConvertedKey(key));
+};
+/**
+ * A higher-order function that create an incredibly basic ltr -> rtl style converter for CSS objects.
+ *
+ * @param {import('react').CSSProperties} ltrStyles   Ltr styles. Converts and renders from ltr -> rtl styles, if applicable.
+ * @param {import('react').CSSProperties} [rtlStyles] Rtl styles. Renders if provided.
+ *
+ * @return {() => import('@emotion/react').SerializedStyles} A function to output CSS styles for Emotion's renderer
+ */
+
+function rtl() {
+  let ltrStyles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+  let rtlStyles = arguments.length > 1 ? arguments[1] : undefined;
+  return () => {
+    if (rtlStyles) {
+      // @ts-ignore: `css` types are wrong, it can accept an object: https://emotion.sh/docs/object-styles#with-css
+      return (0,external_wp_i18n_namespaceObject.isRTL)() ? /*#__PURE__*/emotion_react_browser_esm_css(rtlStyles,  true ? "" : 0) : /*#__PURE__*/emotion_react_browser_esm_css(ltrStyles,  true ? "" : 0);
+    } // @ts-ignore: `css` types are wrong, it can accept an object: https://emotion.sh/docs/object-styles#with-css
+
+
+    return (0,external_wp_i18n_namespaceObject.isRTL)() ? /*#__PURE__*/emotion_react_browser_esm_css(convertLTRToRTL(ltrStyles),  true ? "" : 0) : /*#__PURE__*/emotion_react_browser_esm_css(ltrStyles,  true ? "" : 0);
+  };
+}
+/**
+ * Call this in the `useMemo` dependency array to ensure that subsequent renders will
+ * cause rtl styles to update based on the `isRTL` return value even if all other dependencies
+ * remain the same.
+ *
+ * @example
+ * const styles = useMemo( () => {
+ *   return css`
+ *     ${ rtl( { marginRight: '10px' } ) }
+ *   `;
+ * }, [ rtl.watch() ] );
+ */
+
+rtl.watch = () => (0,external_wp_i18n_namespaceObject.isRTL)();
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/flex/flex/hook.js
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+/**
+ *
+ * @param {import('../../ui/context').WordPressComponentProps<import('../types').FlexProps, 'div'>} props
+ * @return {import('../../ui/context').WordPressComponentProps<import('../types').FlexProps, 'div'>} Props with the deprecated props removed.
+ */
+
+function hook_useDeprecatedProps(_ref) {
+  let {
+    isReversed,
+    ...otherProps
+  } = _ref;
+
+  if (typeof isReversed !== 'undefined') {
+    external_wp_deprecated_default()('Flex isReversed', {
+      alternative: 'Flex direction="row-reverse" or "column-reverse"',
+      since: '5.9'
+    });
+    return { ...otherProps,
+      direction: isReversed ? 'row-reverse' : 'row'
+    };
+  }
+
+  return otherProps;
+}
+/**
+ * @param {import('../../ui/context').WordPressComponentProps<import('../types').FlexProps, 'div'>} props
+ */
+
+
+function useFlex(props) {
+  const {
+    align = 'center',
+    className,
+    direction: directionProp = 'row',
+    expanded = true,
+    gap = 2,
+    justify = 'space-between',
+    wrap = false,
+    ...otherProps
+  } = useContextSystem(hook_useDeprecatedProps(props), 'Flex');
+  const directionAsArray = Array.isArray(directionProp) ? directionProp : [directionProp];
+  const direction = useResponsiveValue(directionAsArray);
+  const isColumn = typeof direction === 'string' && !!direction.includes('column');
+  const isReverse = typeof direction === 'string' && direction.includes('reverse');
+  const cx = useCx();
+  const classes = (0,external_wp_element_namespaceObject.useMemo)(() => {
+    const sx = {};
+    sx.Base = /*#__PURE__*/emotion_react_browser_esm_css({
+      alignItems: isColumn ? 'normal' : align,
+      flexDirection: direction,
+      flexWrap: wrap ? 'wrap' : undefined,
+      justifyContent: justify,
+      height: isColumn && expanded ? '100%' : undefined,
+      width: !isColumn && expanded ? '100%' : undefined,
+      marginBottom: wrap ? `calc(${space(gap)} * -1)` : undefined
+    },  true ? "" : 0,  true ? "" : 0);
+    /**
+     * Workaround to optimize DOM rendering.
+     * We'll enhance alignment with naive parent flex assumptions.
+     *
+     * Trade-off:
+     * Far less DOM less. However, UI rendering is not as reliable.
+     */
+
+    sx.Items = /*#__PURE__*/emotion_react_browser_esm_css(">*+*:not( marquee ){margin-top:", isColumn ? space(gap) : undefined, ";", rtl({
+      marginLeft: !isColumn && !isReverse ? space(gap) : undefined,
+      marginRight: !isColumn && isReverse ? space(gap) : undefined
+    })(), ";}" + ( true ? "" : 0),  true ? "" : 0);
+    sx.WrapItems = /*#__PURE__*/emotion_react_browser_esm_css(">*:not( marquee ){margin-bottom:", space(gap), ";", rtl({
+      marginLeft: !isColumn && isReverse ? space(gap) : undefined,
+      marginRight: !isColumn && !isReverse ? space(gap) : undefined
+    })(), ";}>*:last-child:not( marquee ){", rtl({
+      marginLeft: !isColumn && isReverse ? 0 : undefined,
+      marginRight: !isColumn && !isReverse ? 0 : undefined
+    })(), ";}" + ( true ? "" : 0),  true ? "" : 0);
+    return cx(Flex, sx.Base, wrap ? sx.WrapItems : sx.Items, isColumn ? ItemsColumn : ItemsRow, className);
+  }, [align, className, cx, direction, expanded, gap, isColumn, isReverse, justify, wrap, rtl.watch()]);
+  return { ...otherProps,
+    className: classes,
+    isColumn
+  };
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/flex/flex/component.js
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+/**
+ * @param {import('../../ui/context').WordPressComponentProps<import('../types').FlexProps, 'div'>} props
+ * @param {import('react').ForwardedRef<any>}                                                       forwardedRef
+ */
+
+function component_Flex(props, forwardedRef) {
+  const {
+    children,
+    isColumn,
+    ...otherProps
+  } = useFlex(props);
+  return (0,external_wp_element_namespaceObject.createElement)(FlexContext.Provider, {
+    value: {
+      flexItemDisplay: isColumn ? 'block' : undefined
+    }
+  }, (0,external_wp_element_namespaceObject.createElement)(component, extends_extends({}, otherProps, {
+    ref: forwardedRef
+  }), children));
+}
+/**
+ * `Flex` is a primitive layout component that adaptively aligns child content
+ * horizontally or vertically. `Flex` powers components like `HStack` and
+ * `VStack`.
+ *
+ * `Flex` is used with any of it's two sub-components, `FlexItem` and `FlexBlock`.
+ *
+ * @example
+ * ```jsx
+ * import {
+ * 	__experimentalFlex as Flex,
+ * 	__experimentalFlexBlock as FlexBlock,
+ * 	__experimentalFlexItem as FlexItem,
+ * 	__experimentalText as Text
+ * } from `@wordpress/components`;
+ *
+ * function Example() {
+ * 	return (
+ * 		<Flex>
+ * 			<FlexItem>
+ * 				<Text>Code</Text>
+ * 			</FlexItem>
+ * 			<FlexBlock>
+ * 				<Text>Poetry</Text>
+ * 			</FlexBlock>
+ * 		</Flex>
+ * 	);
+ * }
+ * ```
+ *
+ */
+
+
+const ConnectedFlex = contextConnect(component_Flex, 'Flex');
+/* harmony default export */ var flex_component = (ConnectedFlex);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/truncate/styles.js
+function truncate_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
+
+/**
+ * External dependencies
+ */
+
+const Truncate =  true ? {
+  name: "hdknak",
+  styles: "display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap"
+} : 0;
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/truncate/utils.js
+/**
+ * External dependencies
+ */
+
+const TRUNCATE_ELLIPSIS = '…';
+const TRUNCATE_TYPE = {
+  auto: 'auto',
+  head: 'head',
+  middle: 'middle',
+  tail: 'tail',
+  none: 'none'
+};
+const TRUNCATE_DEFAULT_PROPS = {
+  ellipsis: TRUNCATE_ELLIPSIS,
+  ellipsizeMode: TRUNCATE_TYPE.auto,
+  limit: 0,
+  numberOfLines: 0
+}; // Source
+// https://github.com/kahwee/truncate-middle
+
+/**
+ * @param {string} word
+ * @param {number} headLength
+ * @param {number} tailLength
+ * @param {string} ellipsis
+ */
+
+function truncateMiddle(word, headLength, tailLength, ellipsis) {
+  if (typeof word !== 'string') {
+    return '';
+  }
+
+  const wordLength = word.length; // Setting default values
+  // eslint-disable-next-line no-bitwise
+
+  const frontLength = ~~headLength; // Will cast to integer
+  // eslint-disable-next-line no-bitwise
+
+  const backLength = ~~tailLength;
+  /* istanbul ignore next */
+
+  const truncateStr = !(0,external_lodash_namespaceObject.isNil)(ellipsis) ? ellipsis : TRUNCATE_ELLIPSIS;
+
+  if (frontLength === 0 && backLength === 0 || frontLength >= wordLength || backLength >= wordLength || frontLength + backLength >= wordLength) {
+    return word;
+  } else if (backLength === 0) {
+    return word.slice(0, frontLength) + truncateStr;
+  }
+
+  return word.slice(0, frontLength) + truncateStr + word.slice(wordLength - backLength);
+}
+/**
+ *
+ * @param {string}                        words
+ * @param {typeof TRUNCATE_DEFAULT_PROPS} props
+ */
+
+function truncateContent() {
+  let words = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
+  let props = arguments.length > 1 ? arguments[1] : undefined;
+  const mergedProps = { ...TRUNCATE_DEFAULT_PROPS,
+    ...props
+  };
+  const {
+    ellipsis,
+    ellipsizeMode,
+    limit
+  } = mergedProps;
+
+  if (ellipsizeMode === TRUNCATE_TYPE.none) {
+    return words;
+  }
+
+  let truncateHead;
+  let truncateTail;
+
+  switch (ellipsizeMode) {
+    case TRUNCATE_TYPE.head:
+      truncateHead = 0;
+      truncateTail = limit;
+      break;
+
+    case TRUNCATE_TYPE.middle:
+      truncateHead = Math.floor(limit / 2);
+      truncateTail = Math.floor(limit / 2);
+      break;
+
+    default:
+      truncateHead = limit;
+      truncateTail = 0;
+  }
+
+  const truncatedContent = ellipsizeMode !== TRUNCATE_TYPE.auto ? truncateMiddle(words, truncateHead, truncateTail, ellipsis) : words;
+  return truncatedContent;
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/truncate/hook.js
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+/**
+ * @param {import('../ui/context').WordPressComponentProps<import('./types').Props, 'span'>} props
+ */
+
+function useTruncate(props) {
+  const {
+    className,
+    children,
+    ellipsis = TRUNCATE_ELLIPSIS,
+    ellipsizeMode = TRUNCATE_TYPE.auto,
+    limit = 0,
+    numberOfLines = 0,
+    ...otherProps
+  } = useContextSystem(props, 'Truncate');
+  const cx = useCx();
+  const truncatedContent = truncateContent(typeof children === 'string' ?
+  /** @type {string} */
+  children : '', {
+    ellipsis,
+    ellipsizeMode,
+    limit,
+    numberOfLines
+  });
+  const shouldTruncate = ellipsizeMode === TRUNCATE_TYPE.auto;
+  const classes = (0,external_wp_element_namespaceObject.useMemo)(() => {
+    const sx = {};
+    sx.numberOfLines = /*#__PURE__*/emotion_react_browser_esm_css("-webkit-box-orient:vertical;-webkit-line-clamp:", numberOfLines, ";display:-webkit-box;overflow:hidden;" + ( true ? "" : 0),  true ? "" : 0);
+    return cx(shouldTruncate && !numberOfLines && Truncate, shouldTruncate && !!numberOfLines && sx.numberOfLines, className);
+  }, [className, cx, numberOfLines, shouldTruncate]);
+  return { ...otherProps,
+    className: classes,
+    children: truncatedContent
+  };
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/ui/utils/colors.js
+/**
+ * External dependencies
+ */
+
+
+
+/** @type {HTMLDivElement} */
+
+let colorComputationNode;
+k([names]);
+/**
+ * @return {HTMLDivElement | undefined} The HTML element for color computation.
+ */
+
+function getColorComputationNode() {
+  if (typeof document === 'undefined') return;
+
+  if (!colorComputationNode) {
+    // Create a temporary element for style computation.
+    const el = document.createElement('div');
+    el.setAttribute('data-g2-color-computation-node', ''); // Inject for window computed style.
+
+    document.body.appendChild(el);
+    colorComputationNode = el;
+  }
+
+  return colorComputationNode;
+}
+/**
+ * @param {string | unknown} value
+ *
+ * @return {boolean} Whether the value is a valid color.
+ */
+
+
+function isColor(value) {
+  if (typeof value !== 'string') return false;
+  const test = w(value);
+  return test.isValid();
+}
+/**
+ * Retrieves the computed background color. This is useful for getting the
+ * value of a CSS variable color.
+ *
+ * @param {string | unknown} backgroundColor The background color to compute.
+ *
+ * @return {string} The computed background color.
+ */
+
+
+function _getComputedBackgroundColor(backgroundColor) {
+  var _window;
+
+  if (typeof backgroundColor !== 'string') return '';
+  if (isColor(backgroundColor)) return backgroundColor;
+  if (!backgroundColor.includes('var(')) return '';
+  if (typeof document === 'undefined') return ''; // Attempts to gracefully handle CSS variables color values.
+
+  const el = getColorComputationNode();
+  if (!el) return '';
+  el.style.background = backgroundColor; // Grab the style.
+
+  const computedColor = (_window = window) === null || _window === void 0 ? void 0 : _window.getComputedStyle(el).background; // Reset.
+
+  el.style.background = '';
+  return computedColor || '';
+}
+
+const getComputedBackgroundColor = memize_default()(_getComputedBackgroundColor);
+/**
+ * Get the text shade optimized for readability, based on a background color.
+ *
+ * @param {string | unknown} backgroundColor The background color.
+ *
+ * @return {string} The optimized text color (black or white).
+ */
+
+function getOptimalTextColor(backgroundColor) {
+  const background = getComputedBackgroundColor(backgroundColor);
+  return w(background).isLight() ? '#000000' : '#ffffff';
+}
+/**
+ * Get the text shade optimized for readability, based on a background color.
+ *
+ * @param {string | unknown} backgroundColor The background color.
+ *
+ * @return {string} The optimized text shade (dark or light).
+ */
+
+function getOptimalTextShade(backgroundColor) {
+  const result = getOptimalTextColor(backgroundColor);
+  return result === '#000000' ? 'dark' : 'light';
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/config-values.js
+/**
+ * Internal dependencies
+ */
+
+
+const CONTROL_HEIGHT = '36px';
+const CONTROL_PADDING_X = '12px';
+const CONTROL_PROPS = {
+  controlSurfaceColor: COLORS.white,
+  controlTextActiveColor: COLORS.ui.theme,
+  controlPaddingX: CONTROL_PADDING_X,
+  controlPaddingXLarge: `calc(${CONTROL_PADDING_X} * 1.3334)`,
+  controlPaddingXSmall: `calc(${CONTROL_PADDING_X} / 1.3334)`,
+  controlBackgroundColor: COLORS.white,
+  controlBorderRadius: '2px',
+  controlBorderColor: COLORS.gray[700],
+  controlBoxShadow: 'transparent',
+  controlBorderColorHover: COLORS.gray[700],
+  controlBoxShadowFocus: `0 0 0 0.5px ${COLORS.admin.theme}`,
+  controlDestructiveBorderColor: COLORS.alert.red,
+  controlHeight: CONTROL_HEIGHT,
+  controlHeightXSmall: `calc( ${CONTROL_HEIGHT} * 0.6 )`,
+  controlHeightSmall: `calc( ${CONTROL_HEIGHT} * 0.8 )`,
+  controlHeightLarge: `calc( ${CONTROL_HEIGHT} * 1.2 )`,
+  controlHeightXLarge: `calc( ${CONTROL_HEIGHT} * 1.4 )`
+};
+const TOGGLE_GROUP_CONTROL_PROPS = {
+  toggleGroupControlBackgroundColor: CONTROL_PROPS.controlBackgroundColor,
+  toggleGroupControlBorderColor: COLORS.ui.border,
+  toggleGroupControlBackdropBackgroundColor: CONTROL_PROPS.controlSurfaceColor,
+  toggleGroupControlBackdropBorderColor: COLORS.ui.border,
+  toggleGroupControlBackdropBoxShadow: 'transparent',
+  toggleGroupControlButtonColorActive: CONTROL_PROPS.controlBackgroundColor
+}; // Using Object.assign to avoid creating circular references when emitting
+// TypeScript type declarations.
+
+/* harmony default export */ var config_values = (Object.assign({}, CONTROL_PROPS, TOGGLE_GROUP_CONTROL_PROPS, {
+  colorDivider: 'rgba(0, 0, 0, 0.1)',
+  colorScrollbarThumb: 'rgba(0, 0, 0, 0.2)',
+  colorScrollbarThumbHover: 'rgba(0, 0, 0, 0.5)',
+  colorScrollbarTrack: 'rgba(0, 0, 0, 0.04)',
+  elevationIntensity: 1,
+  radiusBlockUi: '2px',
+  borderWidth: '1px',
+  borderWidthFocus: '1.5px',
+  borderWidthTab: '4px',
+  spinnerSize: 16,
+  fontSize: '13px',
+  fontSizeH1: 'calc(2.44 * 13px)',
+  fontSizeH2: 'calc(1.95 * 13px)',
+  fontSizeH3: 'calc(1.56 * 13px)',
+  fontSizeH4: 'calc(1.25 * 13px)',
+  fontSizeH5: '13px',
+  fontSizeH6: 'calc(0.8 * 13px)',
+  fontSizeInputMobile: '16px',
+  fontSizeMobile: '15px',
+  fontSizeSmall: 'calc(0.92 * 13px)',
+  fontSizeXSmall: 'calc(0.75 * 13px)',
+  fontLineHeightBase: '1.2',
+  fontWeight: 'normal',
+  fontWeightHeading: '600',
+  gridBase: '4px',
+  cardBorderRadius: '2px',
+  cardPaddingXSmall: `${space(2)}`,
+  cardPaddingSmall: `${space(4)}`,
+  cardPaddingMedium: `${space(4)} ${space(6)}`,
+  cardPaddingLarge: `${space(6)} ${space(8)}`,
+  surfaceBackgroundColor: COLORS.white,
+  surfaceBackgroundSubtleColor: '#F3F3F3',
+  surfaceBackgroundTintColor: '#F5F5F5',
+  surfaceBorderColor: 'rgba(0, 0, 0, 0.1)',
+  surfaceBorderBoldColor: 'rgba(0, 0, 0, 0.15)',
+  surfaceBorderSubtleColor: 'rgba(0, 0, 0, 0.05)',
+  surfaceBackgroundTertiaryColor: COLORS.white,
+  surfaceColor: COLORS.white,
+  transitionDuration: '200ms',
+  transitionDurationFast: '160ms',
+  transitionDurationFaster: '120ms',
+  transitionDurationFastest: '100ms',
+  transitionTimingFunction: 'cubic-bezier(0.08, 0.52, 0.52, 1)',
+  transitionTimingFunctionControl: 'cubic-bezier(0.12, 0.8, 0.32, 1)'
+}));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/text/styles.js
+function text_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+const Text = /*#__PURE__*/emotion_react_browser_esm_css("color:", COLORS.darkGray.primary, ";line-height:", config_values.fontLineHeightBase, ";margin:0;" + ( true ? "" : 0),  true ? "" : 0);
+const styles_block =  true ? {
+  name: "4zleql",
+  styles: "display:block"
+} : 0;
+const positive = /*#__PURE__*/emotion_react_browser_esm_css("color:", COLORS.alert.green, ";" + ( true ? "" : 0),  true ? "" : 0);
+const destructive = /*#__PURE__*/emotion_react_browser_esm_css("color:", COLORS.alert.red, ";" + ( true ? "" : 0),  true ? "" : 0);
+const muted = /*#__PURE__*/emotion_react_browser_esm_css("color:", COLORS.mediumGray.text, ";" + ( true ? "" : 0),  true ? "" : 0);
+const highlighterText = /*#__PURE__*/emotion_react_browser_esm_css("mark{background:", COLORS.alert.yellow, ";border-radius:2px;box-shadow:0 0 0 1px rgba( 0, 0, 0, 0.05 ) inset,0 -1px 0 rgba( 0, 0, 0, 0.1 ) inset;}" + ( true ? "" : 0),  true ? "" : 0);
+const upperCase =  true ? {
+  name: "50zrmy",
+  styles: "text-transform:uppercase"
+} : 0;
+
+// EXTERNAL MODULE: ./node_modules/highlight-words-core/dist/index.js
+var dist = __webpack_require__(3138);
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/text/utils.js
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Source:
+ * https://github.com/bvaughn/react-highlight-words/blob/HEAD/src/Highlighter.js
+ */
+
+/* eslint-disable jsdoc/valid-types */
+
+/**
+ * @typedef Options
+ * @property {string}                                                     [activeClassName='']      Classname for active highlighted areas.
+ * @property {number}                                                     [activeIndex=-1]          The index of the active highlighted area.
+ * @property {import('react').AllHTMLAttributes<HTMLDivElement>['style']} [activeStyle]             Styles to apply to the active highlighted area.
+ * @property {boolean}                                                    [autoEscape]              Whether to automatically escape text.
+ * @property {boolean}                                                    [caseSensitive=false]     Whether to highlight in a case-sensitive manner.
+ * @property {string}                                                     children                  Children to highlight.
+ * @property {import('highlight-words-core').FindAllArgs['findChunks']}   [findChunks]              Custom `findChunks` function to pass to `highlight-words-core`.
+ * @property {string | Record<string, unknown>}                           [highlightClassName='']   Classname to apply to highlighted text or a Record of classnames to apply to given text (which should be the key).
+ * @property {import('react').AllHTMLAttributes<HTMLDivElement>['style']} [highlightStyle={}]       Styles to apply to highlighted text.
+ * @property {keyof JSX.IntrinsicElements}                                [highlightTag='mark']     Tag to use for the highlighted text.
+ * @property {import('highlight-words-core').FindAllArgs['sanitize']}     [sanitize]                Custom `santize` function to pass to `highlight-words-core`.
+ * @property {string[]}                                                   [searchWords=[]]          Words to search for and highlight.
+ * @property {string}                                                     [unhighlightClassName=''] Classname to apply to unhighlighted text.
+ * @property {import('react').AllHTMLAttributes<HTMLDivElement>['style']} [unhighlightStyle]        Style to apply to unhighlighted text.
+ */
+
+/**
+ * Maps props to lowercase names.
+ *
+ * @template {Record<string, unknown>} T
+ * @param {T} object Props to map.
+ * @return {{[K in keyof T as Lowercase<string & K>]: T[K]}} The mapped props.
+ */
+
+/* eslint-enable jsdoc/valid-types */
+
+const lowercaseProps = object => {
+  /** @type {any} */
+  const mapped = {};
+
+  for (const key in object) {
+    mapped[key.toLowerCase()] = object[key];
+  }
+
+  return mapped;
+};
+
+const memoizedLowercaseProps = memize_default()(lowercaseProps);
+/**
+ *
+ * @param {Options} options
+ */
+
+function createHighlighterText(_ref) {
+  let {
+    activeClassName = '',
+    activeIndex = -1,
+    activeStyle,
+    autoEscape,
+    caseSensitive = false,
+    children,
+    findChunks,
+    highlightClassName = '',
+    highlightStyle = {},
+    highlightTag = 'mark',
+    sanitize,
+    searchWords = [],
+    unhighlightClassName = '',
+    unhighlightStyle
+  } = _ref;
+  if (!children) return null;
+  if (typeof children !== 'string') return children;
+  const textToHighlight = children;
+  const chunks = (0,dist.findAll)({
+    autoEscape,
+    caseSensitive,
+    findChunks,
+    sanitize,
+    searchWords,
+    textToHighlight
+  });
+  const HighlightTag = highlightTag;
+  let highlightIndex = -1;
+  let highlightClassNames = '';
+  let highlightStyles;
+  const textContent = chunks.map((chunk, index) => {
+    const text = textToHighlight.substr(chunk.start, chunk.end - chunk.start);
+
+    if (chunk.highlight) {
+      highlightIndex++;
+      let highlightClass;
+
+      if (typeof highlightClassName === 'object') {
+        if (!caseSensitive) {
+          highlightClassName = memoizedLowercaseProps(highlightClassName);
+          highlightClass = highlightClassName[text.toLowerCase()];
+        } else {
+          highlightClass = highlightClassName[text];
+        }
+      } else {
+        highlightClass = highlightClassName;
+      }
+
+      const isActive = highlightIndex === +activeIndex;
+      highlightClassNames = `${highlightClass} ${isActive ? activeClassName : ''}`;
+      highlightStyles = isActive === true && activeStyle !== null ? Object.assign({}, highlightStyle, activeStyle) : highlightStyle;
+      /** @type {Record<string, any>} */
+
+      const props = {
+        children: text,
+        className: highlightClassNames,
+        key: index,
+        style: highlightStyles
+      }; // Don't attach arbitrary props to DOM elements; this triggers React DEV warnings (https://fb.me/react-unknown-prop)
+      // Only pass through the highlightIndex attribute for custom components.
+
+      if (typeof HighlightTag !== 'string') {
+        props.highlightIndex = highlightIndex;
+      }
+
+      return (0,external_wp_element_namespaceObject.createElement)(HighlightTag, props);
+    }
+
+    return (0,external_wp_element_namespaceObject.createElement)('span', {
+      children: text,
+      className: unhighlightClassName,
+      key: index,
+      style: unhighlightStyle
+    });
+  });
+  return textContent;
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/ui/utils/font-size.js
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+const BASE_FONT_SIZE = 13;
+const PRESET_FONT_SIZES = {
+  body: BASE_FONT_SIZE,
+  caption: 10,
+  footnote: 11,
+  largeTitle: 28,
+  subheadline: 12,
+  title: 20
+};
+const HEADING_FONT_SIZES = [1, 2, 3, 4, 5, 6].flatMap(n => [n, n.toString()]);
+function getFontSize() {
+  let size = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : BASE_FONT_SIZE;
+
+  if (size in PRESET_FONT_SIZES) {
+    return getFontSize(PRESET_FONT_SIZES[size]);
+  }
+
+  if (typeof size !== 'number') {
+    const parsed = parseFloat(size);
+    if (Number.isNaN(parsed)) return size;
+    size = parsed;
+  }
+
+  const ratio = `(${size} / ${BASE_FONT_SIZE})`;
+  return `calc(${ratio} * ${config_values.fontSize})`;
+}
+function getHeadingFontSize() {
+  let size = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 3;
+
+  if (!HEADING_FONT_SIZES.includes(size)) {
+    return getFontSize(size);
+  }
+
+  const headingSize = `fontSizeH${size}`;
+  return config_values[headingSize];
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/text/get-line-height.js
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+function getLineHeight(adjustLineHeightForInnerControls, lineHeight) {
+  if (lineHeight) return lineHeight;
+  if (!adjustLineHeightForInnerControls) return;
+  let value = `calc(${config_values.controlHeight} + ${space(2)})`;
+
+  switch (adjustLineHeightForInnerControls) {
+    case 'large':
+      value = `calc(${config_values.controlHeightLarge} + ${space(2)})`;
+      break;
+
+    case 'small':
+      value = `calc(${config_values.controlHeightSmall} + ${space(2)})`;
+      break;
+
+    case 'xSmall':
+      value = `calc(${config_values.controlHeightXSmall} + ${space(2)})`;
+      break;
+
+    default:
+      break;
+  }
+
+  return value;
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/text/hook.js
+function hook_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+
+
+
+
+/**
+ * @param {import('../ui/context').WordPressComponentProps<import('./types').Props, 'span'>} props
+ */
+
+var hook_ref =  true ? {
+  name: "50zrmy",
+  styles: "text-transform:uppercase"
+} : 0;
+
+function useText(props) {
+  const {
+    adjustLineHeightForInnerControls,
+    align,
+    children,
+    className,
+    color,
+    ellipsizeMode,
+    isDestructive = false,
+    display,
+    highlightEscape = false,
+    highlightCaseSensitive = false,
+    highlightWords,
+    highlightSanitize,
+    isBlock = false,
+    letterSpacing,
+    lineHeight: lineHeightProp,
+    optimizeReadabilityFor,
+    size,
+    truncate = false,
+    upperCase = false,
+    variant,
+    weight = config_values.fontWeight,
+    ...otherProps
+  } = useContextSystem(props, 'Text');
+  /** @type {import('react').ReactNode} */
+
+  let content = children;
+  const isHighlighter = Array.isArray(highlightWords);
+  const isCaption = size === 'caption';
+
+  if (isHighlighter) {
+    if (typeof children !== 'string') {
+      throw new TypeError('`children` of `Text` must only be `string` types when `highlightWords` is defined');
+    }
+
+    content = createHighlighterText({
+      autoEscape: highlightEscape,
+      // Disable reason: We need to disable this otherwise it erases the cast
+      // eslint-disable-next-line object-shorthand
+      children:
+      /** @type {string} */
+      children,
+      caseSensitive: highlightCaseSensitive,
+      searchWords: highlightWords,
+      sanitize: highlightSanitize
+    });
+  }
+
+  const cx = useCx();
+  const classes = (0,external_wp_element_namespaceObject.useMemo)(() => {
+    const sx = {};
+    const lineHeight = getLineHeight(adjustLineHeightForInnerControls, lineHeightProp);
+    sx.Base = /*#__PURE__*/emotion_react_browser_esm_css({
+      color,
+      display,
+      fontSize: getFontSize(size),
+
+      /* eslint-disable jsdoc/valid-types */
+      fontWeight:
+      /** @type {import('react').CSSProperties['fontWeight']} */
+      weight,
+
+      /* eslint-enable jsdoc/valid-types */
+      lineHeight,
+      letterSpacing,
+      textAlign: align
+    },  true ? "" : 0,  true ? "" : 0);
+    sx.upperCase = hook_ref;
+    sx.optimalTextColor = null;
+
+    if (optimizeReadabilityFor) {
+      const isOptimalTextColorDark = getOptimalTextShade(optimizeReadabilityFor) === 'dark';
+      sx.optimalTextColor = isOptimalTextColorDark ? /*#__PURE__*/emotion_react_browser_esm_css({
+        color: COLORS.black
+      },  true ? "" : 0,  true ? "" : 0) : /*#__PURE__*/emotion_react_browser_esm_css({
+        color: COLORS.white
+      },  true ? "" : 0,  true ? "" : 0);
+    }
+
+    return cx(Text, sx.Base, sx.optimalTextColor, isDestructive && destructive, !!isHighlighter && highlighterText, isBlock && styles_block, isCaption && muted, variant && text_styles_namespaceObject[variant], upperCase && sx.upperCase, className);
+  }, [adjustLineHeightForInnerControls, align, className, color, cx, display, isBlock, isCaption, isDestructive, isHighlighter, letterSpacing, lineHeightProp, optimizeReadabilityFor, size, upperCase, variant, weight]);
+  /** @type {undefined | 'auto' | 'none'} */
+
+  let finalEllipsizeMode;
+
+  if (truncate === true) {
+    finalEllipsizeMode = 'auto';
+  }
+
+  if (truncate === false) {
+    finalEllipsizeMode = 'none';
+  }
+
+  const finalComponentProps = { ...otherProps,
+    className: classes,
+    children,
+    ellipsizeMode: ellipsizeMode || finalEllipsizeMode
+  };
+  const truncateProps = useTruncate(finalComponentProps);
+  /**
+   * Enhance child `<Link />` components to inherit font size.
+   */
+
+  if (!truncate && Array.isArray(children)) {
+    content = external_wp_element_namespaceObject.Children.map(children, child => {
+      // @ts-ignore
+      if (!(0,external_lodash_namespaceObject.isPlainObject)(child) || !('props' in child)) {
+        return child;
+      }
+
+      const isLink = hasConnectNamespace(child, ['Link']);
+
+      if (isLink) {
+        return (0,external_wp_element_namespaceObject.cloneElement)(child, {
+          size: child.props.size || 'inherit'
+        });
+      }
+
+      return child;
+    });
+  }
+
+  return { ...truncateProps,
+    children: truncate ? truncateProps.children : content
+  };
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/text/component.js
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+/**
+ * @param {import('../ui/context').WordPressComponentProps<import('./types').Props, 'span'>} props
+ * @param {import('react').ForwardedRef<any>}                                                forwardedRef
+ */
+
+function component_Text(props, forwardedRef) {
+  const textProps = useText(props);
+  return (0,external_wp_element_namespaceObject.createElement)(component, extends_extends({
+    as: "span"
+  }, textProps, {
+    ref: forwardedRef
+  }));
+}
+/**
+ * `Text` is a core component that renders text in the library, using the
+ * library's typography system.
+ *
+ * `Text` can be used to render any text-content, like an HTML `p` or `span`.
+ *
+ * @example
+ *
+ * ```jsx
+ * import { __experimentalText as Text } from `@wordpress/components`;
+ *
+ * function Example() {
+ * 	return <Text>Code is Poetry</Text>;
+ * }
+ * ```
+ */
+
+
+const ConnectedText = contextConnect(component_Text, 'Text');
+/* harmony default export */ var text_component = (ConnectedText);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/input-control/styles/input-control-styles.js
+
+
+
+
+function input_control_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
+
+/**
+ * External dependencies
+ */
+
+
+
+
+
+var _ref6 =  true ? {
+  name: "1739oy8",
+  styles: "z-index:1"
+} : 0;
+
+const rootFocusedStyles = _ref7 => {
+  let {
+    isFocused
+  } = _ref7;
+  if (!isFocused) return '';
+  return _ref6;
+};
+
+var _ref3 =  true ? {
+  name: "2o6p8u",
+  styles: "justify-content:space-between"
+} : 0;
+
+var _ref4 =  true ? {
+  name: "14qk3ip",
+  styles: "align-items:flex-start;flex-direction:column-reverse"
+} : 0;
+
+var _ref5 =  true ? {
+  name: "hbng6e",
+  styles: "align-items:flex-start;flex-direction:column"
+} : 0;
+
+const rootLabelPositionStyles = _ref8 => {
+  let {
+    labelPosition
+  } = _ref8;
+
+  switch (labelPosition) {
+    case 'top':
+      return _ref5;
+
+    case 'bottom':
+      return _ref4;
+
+    case 'edge':
+      return _ref3;
+
+    default:
+      return '';
+  }
+};
+
+const input_control_styles_Root = /*#__PURE__*/emotion_styled_base_browser_esm(flex_component,  true ? {
+  target: "em5sgkm7"
+} : 0)("position:relative;border-radius:2px;padding-top:0;", rootFocusedStyles, " ", rootLabelPositionStyles, ";" + ( true ? "" : 0));
+
+const containerDisabledStyles = _ref9 => {
+  let {
+    disabled
+  } = _ref9;
+  const backgroundColor = disabled ? COLORS.ui.backgroundDisabled : COLORS.ui.background;
+  return /*#__PURE__*/emotion_react_browser_esm_css({
+    backgroundColor
+  },  true ? "" : 0,  true ? "" : 0);
+}; // Normalizes the margins from the <Flex /> (components/ui/flex/) container.
+
+
+var _ref2 =  true ? {
+  name: "wyxldh",
+  styles: "margin:0 !important"
+} : 0;
+
+const containerMarginStyles = _ref10 => {
+  let {
+    hideLabel
+  } = _ref10;
+  return hideLabel ? _ref2 : null;
+};
+
+var input_control_styles_ref =  true ? {
+  name: "1d3w5wq",
+  styles: "width:100%"
+} : 0;
+
+const containerWidthStyles = _ref11 => {
+  let {
+    __unstableInputWidth,
+    labelPosition
+  } = _ref11;
+  if (!__unstableInputWidth) return input_control_styles_ref;
+  if (labelPosition === 'side') return '';
+
+  if (labelPosition === 'edge') {
+    return /*#__PURE__*/emotion_react_browser_esm_css({
+      flex: `0 0 ${__unstableInputWidth}`
+    },  true ? "" : 0,  true ? "" : 0);
+  }
+
+  return /*#__PURE__*/emotion_react_browser_esm_css({
+    width: __unstableInputWidth
+  },  true ? "" : 0,  true ? "" : 0);
+};
+
+const Container = emotion_styled_base_browser_esm("div",  true ? {
+  target: "em5sgkm6"
+} : 0)("align-items:center;box-sizing:border-box;border-radius:inherit;display:flex;flex:1;position:relative;", containerDisabledStyles, " ", containerMarginStyles, " ", containerWidthStyles, ";" + ( true ? "" : 0));
+
+const disabledStyles = _ref12 => {
+  let {
+    disabled
+  } = _ref12;
+  if (!disabled) return '';
+  return /*#__PURE__*/emotion_react_browser_esm_css({
+    color: COLORS.ui.textDisabled
+  },  true ? "" : 0,  true ? "" : 0);
+};
+
+const fontSizeStyles = _ref13 => {
+  let {
+    inputSize: size
+  } = _ref13;
+  const sizes = {
+    default: '13px',
+    small: '11px',
+    '__unstable-large': '13px'
+  };
+  const fontSize = sizes[size] || sizes.default;
+  const fontSizeMobile = '16px';
+  if (!fontSize) return '';
+  return /*#__PURE__*/emotion_react_browser_esm_css("font-size:", fontSizeMobile, ";@media ( min-width: 600px ){font-size:", fontSize, ";}" + ( true ? "" : 0),  true ? "" : 0);
+};
+
+const sizeStyles = _ref14 => {
+  let {
+    inputSize: size
+  } = _ref14;
+  const sizes = {
+    default: {
+      height: 30,
+      lineHeight: 1,
+      minHeight: 30,
+      paddingLeft: 8,
+      paddingRight: 8
+    },
+    small: {
+      height: 24,
+      lineHeight: 1,
+      minHeight: 24,
+      paddingLeft: 8,
+      paddingRight: 8
+    },
+    '__unstable-large': {
+      height: 40,
+      lineHeight: 1,
+      minHeight: 40,
+      paddingLeft: 16,
+      paddingRight: 16
+    }
+  };
+  const style = sizes[size] || sizes.default;
+  return /*#__PURE__*/emotion_react_browser_esm_css(style,  true ? "" : 0,  true ? "" : 0);
+};
+
+const dragStyles = _ref15 => {
+  let {
+    isDragging,
+    dragCursor
+  } = _ref15;
+  let defaultArrowStyles;
+  let activeDragCursorStyles;
+
+  if (isDragging) {
+    defaultArrowStyles = /*#__PURE__*/emotion_react_browser_esm_css("cursor:", dragCursor, ";user-select:none;&::-webkit-outer-spin-button,&::-webkit-inner-spin-button{-webkit-appearance:none!important;margin:0!important;}" + ( true ? "" : 0),  true ? "" : 0);
+  }
+
+  if (isDragging && dragCursor) {
+    activeDragCursorStyles = /*#__PURE__*/emotion_react_browser_esm_css("&:active{cursor:", dragCursor, ";}" + ( true ? "" : 0),  true ? "" : 0);
+  }
+
+  return /*#__PURE__*/emotion_react_browser_esm_css(defaultArrowStyles, " ", activeDragCursorStyles, ";" + ( true ? "" : 0),  true ? "" : 0);
+}; // TODO: Resolve need to use &&& to increase specificity
+// https://github.com/WordPress/gutenberg/issues/18483
+
+
+const Input = emotion_styled_base_browser_esm("input",  true ? {
+  target: "em5sgkm5"
+} : 0)("&&&{background-color:transparent;box-sizing:border-box;border:none;box-shadow:none!important;color:", COLORS.black, ";display:block;font-family:inherit;margin:0;outline:none;width:100%;", dragStyles, " ", disabledStyles, " ", fontSizeStyles, " ", sizeStyles, " &::-webkit-input-placeholder{line-height:normal;}}" + ( true ? "" : 0));
+
+const labelMargin = _ref16 => {
+  let {
+    labelPosition
+  } = _ref16;
+  let marginBottom = 8;
+
+  if (labelPosition === 'edge' || labelPosition === 'side') {
+    marginBottom = 0;
+  }
+
+  return /*#__PURE__*/emotion_react_browser_esm_css({
+    marginTop: 0,
+    marginRight: 0,
+    marginBottom,
+    marginLeft: 0
+  },  true ? "" : 0,  true ? "" : 0);
+};
+
+const BaseLabel = /*#__PURE__*/emotion_styled_base_browser_esm(text_component,  true ? {
+  target: "em5sgkm4"
+} : 0)("&&&{box-sizing:border-box;color:currentColor;display:block;padding-top:0;padding-bottom:0;max-width:100%;z-index:1;", labelMargin, " overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}" + ( true ? "" : 0));
+
+const Label = props => (0,external_wp_element_namespaceObject.createElement)(BaseLabel, extends_extends({}, props, {
+  as: "label"
+}));
+const LabelWrapper = /*#__PURE__*/emotion_styled_base_browser_esm(flex_item_component,  true ? {
+  target: "em5sgkm3"
+} : 0)( true ? {
+  name: "1b6uupn",
+  styles: "max-width:calc( 100% - 10px )"
+} : 0);
+
+const backdropFocusedStyles = _ref17 => {
+  let {
+    disabled,
+    isFocused
+  } = _ref17;
+  let borderColor = isFocused ? COLORS.ui.borderFocus : COLORS.ui.border;
+  let boxShadow;
+
+  if (isFocused) {
+    boxShadow = `0 0 0 1px ${COLORS.ui.borderFocus} inset`;
+  }
+
+  if (disabled) {
+    borderColor = COLORS.ui.borderDisabled;
+  }
+
+  return /*#__PURE__*/emotion_react_browser_esm_css({
+    boxShadow,
+    borderColor,
+    borderStyle: 'solid',
+    borderWidth: 1
+  },  true ? "" : 0,  true ? "" : 0);
+};
+
+const BackdropUI = emotion_styled_base_browser_esm("div",  true ? {
+  target: "em5sgkm2"
+} : 0)("&&&{box-sizing:border-box;border-radius:inherit;bottom:0;left:0;margin:0;padding:0;pointer-events:none;position:absolute;right:0;top:0;", backdropFocusedStyles, " ", rtl({
+  paddingLeft: 2
+}), ";}" + ( true ? "" : 0));
+const Prefix = emotion_styled_base_browser_esm("span",  true ? {
+  target: "em5sgkm1"
+} : 0)( true ? {
+  name: "pvvbxf",
+  styles: "box-sizing:border-box;display:block"
+} : 0);
+const Suffix = emotion_styled_base_browser_esm("span",  true ? {
+  target: "em5sgkm0"
+} : 0)( true ? {
+  name: "jgf79h",
+  styles: "align-items:center;align-self:stretch;box-sizing:border-box;display:flex"
+} : 0);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/input-control/backdrop.js
+
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+function Backdrop(_ref) {
+  let {
+    disabled = false,
+    isFocused = false
+  } = _ref;
+  return (0,external_wp_element_namespaceObject.createElement)(BackdropUI, {
+    "aria-hidden": "true",
+    className: "components-input-control__backdrop",
+    disabled: disabled,
+    isFocused: isFocused
+  });
+}
+
+const MemoizedBackdrop = (0,external_wp_element_namespaceObject.memo)(Backdrop);
+/* harmony default export */ var backdrop = (MemoizedBackdrop);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/input-control/label.js
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+function label_Label(_ref) {
+  let {
+    children,
+    hideLabelFromVision,
+    htmlFor,
+    ...props
+  } = _ref;
+  if (!children) return null;
+
+  if (hideLabelFromVision) {
+    return (0,external_wp_element_namespaceObject.createElement)(visually_hidden_component, {
+      as: "label",
+      htmlFor: htmlFor
+    }, children);
+  }
+
+  return (0,external_wp_element_namespaceObject.createElement)(Label, extends_extends({
+    htmlFor: htmlFor
+  }, props), children);
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/input-control/input-base.js
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+function useUniqueId(idProp) {
+  const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(InputBase);
+  const id = `input-base-control-${instanceId}`;
+  return idProp || id;
+} // Adapter to map props for the new ui/flex compopnent.
+
+
+function getUIFlexProps(labelPosition) {
+  const props = {};
+
+  switch (labelPosition) {
+    case 'top':
+      props.direction = 'column';
+      props.gap = 0;
+      break;
+
+    case 'bottom':
+      props.direction = 'column-reverse';
+      props.gap = 0;
+      break;
+
+    case 'edge':
+      props.justify = 'space-between';
+      break;
+  }
+
+  return props;
+}
+
+function InputBase(_ref, ref) {
+  let {
+    __unstableInputWidth,
+    children,
+    className,
+    disabled = false,
+    hideLabelFromVision = false,
+    labelPosition,
+    id: idProp,
+    isFocused = false,
+    label,
+    prefix,
+    size = 'default',
+    suffix,
+    ...props
+  } = _ref;
+  const id = useUniqueId(idProp);
+  const hideLabel = hideLabelFromVision || !label;
+  return (// @ts-expect-error The `direction` prop from Flex (FlexDirection) conflicts with legacy SVGAttributes `direction` (string) that come from React intrinsic prop definitions.
+    (0,external_wp_element_namespaceObject.createElement)(input_control_styles_Root, extends_extends({}, props, getUIFlexProps(labelPosition), {
+      className: className,
+      isFocused: isFocused,
+      labelPosition: labelPosition,
+      ref: ref
+    }), (0,external_wp_element_namespaceObject.createElement)(LabelWrapper, null, (0,external_wp_element_namespaceObject.createElement)(label_Label, {
+      className: "components-input-control__label",
+      hideLabelFromVision: hideLabelFromVision,
+      labelPosition: labelPosition,
+      htmlFor: id,
+      size: size
+    }, label)), (0,external_wp_element_namespaceObject.createElement)(Container, {
+      __unstableInputWidth: __unstableInputWidth,
+      className: "components-input-control__container",
+      disabled: disabled,
+      hideLabel: hideLabel,
+      labelPosition: labelPosition
+    }, prefix && (0,external_wp_element_namespaceObject.createElement)(Prefix, {
+      className: "components-input-control__prefix"
+    }, prefix), children, suffix && (0,external_wp_element_namespaceObject.createElement)(Suffix, {
+      className: "components-input-control__suffix"
+    }, suffix), (0,external_wp_element_namespaceObject.createElement)(backdrop, {
+      disabled: disabled,
+      isFocused: isFocused
+    })))
+  );
+}
+/* harmony default export */ var input_base = ((0,external_wp_element_namespaceObject.forwardRef)(InputBase));
+
+;// CONCATENATED MODULE: ./node_modules/@use-gesture/core/dist/maths-b2a210f4.esm.js
+function maths_b2a210f4_esm_clamp(v, min, max) {
+  return Math.max(min, Math.min(v, max));
+}
+const V = {
+  toVector(v, fallback) {
+    if (v === undefined) v = fallback;
+    return Array.isArray(v) ? v : [v, v];
+  },
+
+  add(v1, v2) {
+    return [v1[0] + v2[0], v1[1] + v2[1]];
+  },
+
+  sub(v1, v2) {
+    return [v1[0] - v2[0], v1[1] - v2[1]];
+  },
+
+  addTo(v1, v2) {
+    v1[0] += v2[0];
+    v1[1] += v2[1];
+  },
+
+  subTo(v1, v2) {
+    v1[0] -= v2[0];
+    v1[1] -= v2[1];
+  }
+
+};
+
+function rubberband(distance, dimension, constant) {
+  if (dimension === 0 || Math.abs(dimension) === Infinity) return Math.pow(distance, constant * 5);
+  return distance * dimension * constant / (dimension + constant * distance);
+}
+
+function rubberbandIfOutOfBounds(position, min, max, constant = 0.15) {
+  if (constant === 0) return maths_b2a210f4_esm_clamp(position, min, max);
+  if (position < min) return -rubberband(min - position, max - min, constant) + min;
+  if (position > max) return +rubberband(position - max, max - min, constant) + max;
+  return position;
+}
+function computeRubberband(bounds, [Vx, Vy], [Rx, Ry]) {
+  const [[X0, X1], [Y0, Y1]] = bounds;
+  return [rubberbandIfOutOfBounds(Vx, X0, X1, Rx), rubberbandIfOutOfBounds(Vy, Y0, Y1, Ry)];
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/@use-gesture/core/dist/actions-aeda4790.esm.js
+
+
+function actions_aeda4790_esm_defineProperty(obj, key, value) {
+  if (key in obj) {
+    Object.defineProperty(obj, key, {
+      value: value,
+      enumerable: true,
+      configurable: true,
+      writable: true
+    });
+  } else {
+    obj[key] = value;
+  }
+
+  return obj;
+}
+
+function actions_aeda4790_esm_ownKeys(object, enumerableOnly) {
+  var keys = Object.keys(object);
+
+  if (Object.getOwnPropertySymbols) {
+    var symbols = Object.getOwnPropertySymbols(object);
+    enumerableOnly && (symbols = symbols.filter(function (sym) {
+      return Object.getOwnPropertyDescriptor(object, sym).enumerable;
+    })), keys.push.apply(keys, symbols);
+  }
+
+  return keys;
+}
+
+function actions_aeda4790_esm_objectSpread2(target) {
+  for (var i = 1; i < arguments.length; i++) {
+    var source = null != arguments[i] ? arguments[i] : {};
+    i % 2 ? actions_aeda4790_esm_ownKeys(Object(source), !0).forEach(function (key) {
+      actions_aeda4790_esm_defineProperty(target, key, source[key]);
+    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : actions_aeda4790_esm_ownKeys(Object(source)).forEach(function (key) {
+      Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
+    });
+  }
+
+  return target;
+}
+
+const EVENT_TYPE_MAP = {
+  pointer: {
+    start: 'down',
+    change: 'move',
+    end: 'up'
+  },
+  mouse: {
+    start: 'down',
+    change: 'move',
+    end: 'up'
+  },
+  touch: {
+    start: 'start',
+    change: 'move',
+    end: 'end'
+  },
+  gesture: {
+    start: 'start',
+    change: 'change',
+    end: 'end'
+  }
+};
+
+function capitalize(string) {
+  if (!string) return '';
+  return string[0].toUpperCase() + string.slice(1);
+}
+
+const actionsWithoutCaptureSupported = ['enter', 'leave'];
+
+function hasCapture(capture = false, actionKey) {
+  return capture && !actionsWithoutCaptureSupported.includes(actionKey);
+}
+
+function toHandlerProp(device, action = '', capture = false) {
+  const deviceProps = EVENT_TYPE_MAP[device];
+  const actionKey = deviceProps ? deviceProps[action] || action : action;
+  return 'on' + capitalize(device) + capitalize(actionKey) + (hasCapture(capture, actionKey) ? 'Capture' : '');
+}
+const pointerCaptureEvents = ['gotpointercapture', 'lostpointercapture'];
+function parseProp(prop) {
+  let eventKey = prop.substring(2).toLowerCase();
+  const passive = !!~eventKey.indexOf('passive');
+  if (passive) eventKey = eventKey.replace('passive', '');
+  const captureKey = pointerCaptureEvents.includes(eventKey) ? 'capturecapture' : 'capture';
+  const capture = !!~eventKey.indexOf(captureKey);
+  if (capture) eventKey = eventKey.replace('capture', '');
+  return {
+    device: eventKey,
+    capture,
+    passive
+  };
+}
+function toDomEventType(device, action = '') {
+  const deviceProps = EVENT_TYPE_MAP[device];
+  const actionKey = deviceProps ? deviceProps[action] || action : action;
+  return device + actionKey;
+}
+function isTouch(event) {
+  return 'touches' in event;
+}
+function getPointerType(event) {
+  if (isTouch(event)) return 'touch';
+  if ('pointerType' in event) return event.pointerType;
+  return 'mouse';
+}
+
+function getCurrentTargetTouchList(event) {
+  return Array.from(event.touches).filter(e => {
+    var _event$currentTarget, _event$currentTarget$;
+
+    return e.target === event.currentTarget || ((_event$currentTarget = event.currentTarget) === null || _event$currentTarget === void 0 ? void 0 : (_event$currentTarget$ = _event$currentTarget.contains) === null || _event$currentTarget$ === void 0 ? void 0 : _event$currentTarget$.call(_event$currentTarget, e.target));
+  });
+}
+
+function getTouchList(event) {
+  return event.type === 'touchend' || event.type === 'touchcancel' ? event.changedTouches : event.targetTouches;
+}
+
+function getValueEvent(event) {
+  return isTouch(event) ? getTouchList(event)[0] : event;
+}
+
+function distanceAngle(P1, P2) {
+  const dx = P2.clientX - P1.clientX;
+  const dy = P2.clientY - P1.clientY;
+  const cx = (P2.clientX + P1.clientX) / 2;
+  const cy = (P2.clientY + P1.clientY) / 2;
+  const distance = Math.hypot(dx, dy);
+  const angle = -(Math.atan2(dx, dy) * 180) / Math.PI;
+  const origin = [cx, cy];
+  return {
+    angle,
+    distance,
+    origin
+  };
+}
+function touchIds(event) {
+  return getCurrentTargetTouchList(event).map(touch => touch.identifier);
+}
+function touchDistanceAngle(event, ids) {
+  const [P1, P2] = Array.from(event.touches).filter(touch => ids.includes(touch.identifier));
+  return distanceAngle(P1, P2);
+}
+function pointerId(event) {
+  const valueEvent = getValueEvent(event);
+  return isTouch(event) ? valueEvent.identifier : valueEvent.pointerId;
+}
+function pointerValues(event) {
+  const valueEvent = getValueEvent(event);
+  return [valueEvent.clientX, valueEvent.clientY];
+}
+const LINE_HEIGHT = 40;
+const PAGE_HEIGHT = 800;
+function wheelValues(event) {
+  let {
+    deltaX,
+    deltaY,
+    deltaMode
+  } = event;
+
+  if (deltaMode === 1) {
+    deltaX *= LINE_HEIGHT;
+    deltaY *= LINE_HEIGHT;
+  } else if (deltaMode === 2) {
+    deltaX *= PAGE_HEIGHT;
+    deltaY *= PAGE_HEIGHT;
+  }
+
+  return [deltaX, deltaY];
+}
+function scrollValues(event) {
+  var _ref, _ref2;
+
+  const {
+    scrollX,
+    scrollY,
+    scrollLeft,
+    scrollTop
+  } = event.currentTarget;
+  return [(_ref = scrollX !== null && scrollX !== void 0 ? scrollX : scrollLeft) !== null && _ref !== void 0 ? _ref : 0, (_ref2 = scrollY !== null && scrollY !== void 0 ? scrollY : scrollTop) !== null && _ref2 !== void 0 ? _ref2 : 0];
+}
+function getEventDetails(event) {
+  const payload = {};
+  if ('buttons' in event) payload.buttons = event.buttons;
+
+  if ('shiftKey' in event) {
+    const {
+      shiftKey,
+      altKey,
+      metaKey,
+      ctrlKey
+    } = event;
+    Object.assign(payload, {
+      shiftKey,
+      altKey,
+      metaKey,
+      ctrlKey
+    });
+  }
+
+  return payload;
+}
+
+function call(v, ...args) {
+  if (typeof v === 'function') {
+    return v(...args);
+  } else {
+    return v;
+  }
+}
+function noop() {}
+function chain(...fns) {
+  if (fns.length === 0) return noop;
+  if (fns.length === 1) return fns[0];
+  return function () {
+    let result;
+
+    for (const fn of fns) {
+      result = fn.apply(this, arguments) || result;
+    }
+
+    return result;
+  };
+}
+function assignDefault(value, fallback) {
+  return Object.assign({}, fallback, value || {});
+}
+
+const BEFORE_LAST_KINEMATICS_DELAY = 32;
+class Engine {
+  constructor(ctrl, args, key) {
+    this.ctrl = ctrl;
+    this.args = args;
+    this.key = key;
+
+    if (!this.state) {
+      this.state = {};
+      this.computeValues([0, 0]);
+      this.computeInitial();
+      if (this.init) this.init();
+      this.reset();
+    }
+  }
+
+  get state() {
+    return this.ctrl.state[this.key];
+  }
+
+  set state(state) {
+    this.ctrl.state[this.key] = state;
+  }
+
+  get shared() {
+    return this.ctrl.state.shared;
+  }
+
+  get eventStore() {
+    return this.ctrl.gestureEventStores[this.key];
+  }
+
+  get timeoutStore() {
+    return this.ctrl.gestureTimeoutStores[this.key];
+  }
+
+  get config() {
+    return this.ctrl.config[this.key];
+  }
+
+  get sharedConfig() {
+    return this.ctrl.config.shared;
+  }
+
+  get handler() {
+    return this.ctrl.handlers[this.key];
+  }
+
+  reset() {
+    const {
+      state,
+      shared,
+      ingKey,
+      args
+    } = this;
+    shared[ingKey] = state._active = state.active = state._blocked = state._force = false;
+    state._step = [false, false];
+    state.intentional = false;
+    state._movement = [0, 0];
+    state._distance = [0, 0];
+    state._direction = [0, 0];
+    state._delta = [0, 0];
+    state._bounds = [[-Infinity, Infinity], [-Infinity, Infinity]];
+    state.args = args;
+    state.axis = undefined;
+    state.memo = undefined;
+    state.elapsedTime = 0;
+    state.direction = [0, 0];
+    state.distance = [0, 0];
+    state.overflow = [0, 0];
+    state._movementBound = [false, false];
+    state.velocity = [0, 0];
+    state.movement = [0, 0];
+    state.delta = [0, 0];
+    state.timeStamp = 0;
+  }
+
+  start(event) {
+    const state = this.state;
+    const config = this.config;
+
+    if (!state._active) {
+      this.reset();
+      this.computeInitial();
+      state._active = true;
+      state.target = event.target;
+      state.currentTarget = event.currentTarget;
+      state.lastOffset = config.from ? call(config.from, state) : state.offset;
+      state.offset = state.lastOffset;
+    }
+
+    state.startTime = state.timeStamp = event.timeStamp;
+  }
+
+  computeValues(values) {
+    const state = this.state;
+    state._values = values;
+    state.values = this.config.transform(values);
+  }
+
+  computeInitial() {
+    const state = this.state;
+    state._initial = state._values;
+    state.initial = state.values;
+  }
+
+  compute(event) {
+    const {
+      state,
+      config,
+      shared
+    } = this;
+    state.args = this.args;
+    let dt = 0;
+
+    if (event) {
+      state.event = event;
+      if (config.preventDefault && event.cancelable) state.event.preventDefault();
+      state.type = event.type;
+      shared.touches = this.ctrl.pointerIds.size || this.ctrl.touchIds.size;
+      shared.locked = !!document.pointerLockElement;
+      Object.assign(shared, getEventDetails(event));
+      shared.down = shared.pressed = shared.buttons % 2 === 1 || shared.touches > 0;
+      dt = event.timeStamp - state.timeStamp;
+      state.timeStamp = event.timeStamp;
+      state.elapsedTime = state.timeStamp - state.startTime;
+    }
+
+    if (state._active) {
+      const _absoluteDelta = state._delta.map(Math.abs);
+
+      V.addTo(state._distance, _absoluteDelta);
+    }
+
+    if (this.axisIntent) this.axisIntent(event);
+    const [_m0, _m1] = state._movement;
+    const [t0, t1] = config.threshold;
+    const {
+      _step,
+      values
+    } = state;
+
+    if (config.hasCustomTransform) {
+      if (_step[0] === false) _step[0] = Math.abs(_m0) >= t0 && values[0];
+      if (_step[1] === false) _step[1] = Math.abs(_m1) >= t1 && values[1];
+    } else {
+      if (_step[0] === false) _step[0] = Math.abs(_m0) >= t0 && Math.sign(_m0) * t0;
+      if (_step[1] === false) _step[1] = Math.abs(_m1) >= t1 && Math.sign(_m1) * t1;
+    }
+
+    state.intentional = _step[0] !== false || _step[1] !== false;
+    if (!state.intentional) return;
+    const movement = [0, 0];
+
+    if (config.hasCustomTransform) {
+      const [v0, v1] = values;
+      movement[0] = _step[0] !== false ? v0 - _step[0] : 0;
+      movement[1] = _step[1] !== false ? v1 - _step[1] : 0;
+    } else {
+      movement[0] = _step[0] !== false ? _m0 - _step[0] : 0;
+      movement[1] = _step[1] !== false ? _m1 - _step[1] : 0;
+    }
+
+    if (this.restrictToAxis && !state._blocked) this.restrictToAxis(movement);
+    const previousOffset = state.offset;
+    const gestureIsActive = state._active && !state._blocked || state.active;
+
+    if (gestureIsActive) {
+      state.first = state._active && !state.active;
+      state.last = !state._active && state.active;
+      state.active = shared[this.ingKey] = state._active;
+
+      if (event) {
+        if (state.first) {
+          if ('bounds' in config) state._bounds = call(config.bounds, state);
+          if (this.setup) this.setup();
+        }
+
+        state.movement = movement;
+        this.computeOffset();
+      }
+    }
+
+    const [ox, oy] = state.offset;
+    const [[x0, x1], [y0, y1]] = state._bounds;
+    state.overflow = [ox < x0 ? -1 : ox > x1 ? 1 : 0, oy < y0 ? -1 : oy > y1 ? 1 : 0];
+    state._movementBound[0] = state.overflow[0] ? state._movementBound[0] === false ? state._movement[0] : state._movementBound[0] : false;
+    state._movementBound[1] = state.overflow[1] ? state._movementBound[1] === false ? state._movement[1] : state._movementBound[1] : false;
+    const rubberband = state._active ? config.rubberband || [0, 0] : [0, 0];
+    state.offset = computeRubberband(state._bounds, state.offset, rubberband);
+    state.delta = V.sub(state.offset, previousOffset);
+    this.computeMovement();
+
+    if (gestureIsActive && (!state.last || dt > BEFORE_LAST_KINEMATICS_DELAY)) {
+      state.delta = V.sub(state.offset, previousOffset);
+      const absoluteDelta = state.delta.map(Math.abs);
+      V.addTo(state.distance, absoluteDelta);
+      state.direction = state.delta.map(Math.sign);
+      state._direction = state._delta.map(Math.sign);
+
+      if (!state.first && dt > 0) {
+        state.velocity = [absoluteDelta[0] / dt, absoluteDelta[1] / dt];
+      }
+    }
+  }
+
+  emit() {
+    const state = this.state;
+    const shared = this.shared;
+    const config = this.config;
+    if (!state._active) this.clean();
+    if ((state._blocked || !state.intentional) && !state._force && !config.triggerAllEvents) return;
+    const memo = this.handler(actions_aeda4790_esm_objectSpread2(actions_aeda4790_esm_objectSpread2(actions_aeda4790_esm_objectSpread2({}, shared), state), {}, {
+      [this.aliasKey]: state.values
+    }));
+    if (memo !== undefined) state.memo = memo;
+  }
+
+  clean() {
+    this.eventStore.clean();
+    this.timeoutStore.clean();
+  }
+
+}
+
+function selectAxis([dx, dy], threshold) {
+  const absDx = Math.abs(dx);
+  const absDy = Math.abs(dy);
+
+  if (absDx > absDy && absDx > threshold) {
+    return 'x';
+  }
+
+  if (absDy > absDx && absDy > threshold) {
+    return 'y';
+  }
+
+  return undefined;
+}
+
+class CoordinatesEngine extends Engine {
+  constructor(...args) {
+    super(...args);
+
+    actions_aeda4790_esm_defineProperty(this, "aliasKey", 'xy');
+  }
+
+  reset() {
+    super.reset();
+    this.state.axis = undefined;
+  }
+
+  init() {
+    this.state.offset = [0, 0];
+    this.state.lastOffset = [0, 0];
+  }
+
+  computeOffset() {
+    this.state.offset = V.add(this.state.lastOffset, this.state.movement);
+  }
+
+  computeMovement() {
+    this.state.movement = V.sub(this.state.offset, this.state.lastOffset);
+  }
+
+  axisIntent(event) {
+    const state = this.state;
+    const config = this.config;
+
+    if (!state.axis && event) {
+      const threshold = typeof config.axisThreshold === 'object' ? config.axisThreshold[getPointerType(event)] : config.axisThreshold;
+      state.axis = selectAxis(state._movement, threshold);
+    }
+
+    state._blocked = (config.lockDirection || !!config.axis) && !state.axis || !!config.axis && config.axis !== state.axis;
+  }
+
+  restrictToAxis(v) {
+    if (this.config.axis || this.config.lockDirection) {
+      switch (this.state.axis) {
+        case 'x':
+          v[1] = 0;
+          break;
+
+        case 'y':
+          v[0] = 0;
+          break;
+      }
+    }
+  }
+
+}
+
+const identity = v => v;
+const DEFAULT_RUBBERBAND = 0.15;
+const commonConfigResolver = {
+  enabled(value = true) {
+    return value;
+  },
+
+  eventOptions(value, _k, config) {
+    return actions_aeda4790_esm_objectSpread2(actions_aeda4790_esm_objectSpread2({}, config.shared.eventOptions), value);
+  },
+
+  preventDefault(value = false) {
+    return value;
+  },
+
+  triggerAllEvents(value = false) {
+    return value;
+  },
+
+  rubberband(value = 0) {
+    switch (value) {
+      case true:
+        return [DEFAULT_RUBBERBAND, DEFAULT_RUBBERBAND];
+
+      case false:
+        return [0, 0];
+
+      default:
+        return V.toVector(value);
+    }
+  },
+
+  from(value) {
+    if (typeof value === 'function') return value;
+    if (value != null) return V.toVector(value);
+  },
+
+  transform(value, _k, config) {
+    const transform = value || config.shared.transform;
+    this.hasCustomTransform = !!transform;
+
+    if (false) {}
+
+    return transform || identity;
+  },
+
+  threshold(value) {
+    return V.toVector(value, 0);
+  }
+
+};
+
+if (false) {}
+
+const DEFAULT_AXIS_THRESHOLD = 0;
+const coordinatesConfigResolver = actions_aeda4790_esm_objectSpread2(actions_aeda4790_esm_objectSpread2({}, commonConfigResolver), {}, {
+  axis(_v, _k, {
+    axis
+  }) {
+    this.lockDirection = axis === 'lock';
+    if (!this.lockDirection) return axis;
+  },
+
+  axisThreshold(value = DEFAULT_AXIS_THRESHOLD) {
+    return value;
+  },
+
+  bounds(value = {}) {
+    if (typeof value === 'function') {
+      return state => coordinatesConfigResolver.bounds(value(state));
+    }
+
+    if ('current' in value) {
+      return () => value.current;
+    }
+
+    if (typeof HTMLElement === 'function' && value instanceof HTMLElement) {
+      return value;
+    }
+
+    const {
+      left = -Infinity,
+      right = Infinity,
+      top = -Infinity,
+      bottom = Infinity
+    } = value;
+    return [[left, right], [top, bottom]];
+  }
+
+});
+
+const DISPLACEMENT = 10;
+const KEYS_DELTA_MAP = {
+  ArrowRight: (factor = 1) => [DISPLACEMENT * factor, 0],
+  ArrowLeft: (factor = 1) => [-DISPLACEMENT * factor, 0],
+  ArrowUp: (factor = 1) => [0, -DISPLACEMENT * factor],
+  ArrowDown: (factor = 1) => [0, DISPLACEMENT * factor]
+};
+class DragEngine extends CoordinatesEngine {
+  constructor(...args) {
+    super(...args);
+
+    actions_aeda4790_esm_defineProperty(this, "ingKey", 'dragging');
+  }
+
+  reset() {
+    super.reset();
+    const state = this.state;
+    state._pointerId = undefined;
+    state._pointerActive = false;
+    state._keyboardActive = false;
+    state._preventScroll = false;
+    state._delayed = false;
+    state.swipe = [0, 0];
+    state.tap = false;
+    state.canceled = false;
+    state.cancel = this.cancel.bind(this);
+  }
+
+  setup() {
+    const state = this.state;
+
+    if (state._bounds instanceof HTMLElement) {
+      const boundRect = state._bounds.getBoundingClientRect();
+
+      const targetRect = state.currentTarget.getBoundingClientRect();
+      const _bounds = {
+        left: boundRect.left - targetRect.left + state.offset[0],
+        right: boundRect.right - targetRect.right + state.offset[0],
+        top: boundRect.top - targetRect.top + state.offset[1],
+        bottom: boundRect.bottom - targetRect.bottom + state.offset[1]
+      };
+      state._bounds = coordinatesConfigResolver.bounds(_bounds);
+    }
+  }
+
+  cancel() {
+    const state = this.state;
+    if (state.canceled) return;
+    state.canceled = true;
+    state._active = false;
+    setTimeout(() => {
+      this.compute();
+      this.emit();
+    }, 0);
+  }
+
+  setActive() {
+    this.state._active = this.state._pointerActive || this.state._keyboardActive;
+  }
+
+  clean() {
+    this.pointerClean();
+    this.state._pointerActive = false;
+    this.state._keyboardActive = false;
+    super.clean();
+  }
+
+  pointerDown(event) {
+    const config = this.config;
+    const state = this.state;
+    if (event.buttons != null && (Array.isArray(config.pointerButtons) ? !config.pointerButtons.includes(event.buttons) : config.pointerButtons !== -1 && config.pointerButtons !== event.buttons)) return;
+    const ctrlIds = this.ctrl.setEventIds(event);
+
+    if (config.pointerCapture) {
+      event.target.setPointerCapture(event.pointerId);
+    }
+
+    if (ctrlIds && ctrlIds.size > 1 && state._pointerActive) return;
+    this.start(event);
+    this.setupPointer(event);
+    state._pointerId = pointerId(event);
+    state._pointerActive = true;
+    this.computeValues(pointerValues(event));
+    this.computeInitial();
+
+    if (config.preventScrollAxis && getPointerType(event) !== 'mouse') {
+      state._active = false;
+      this.setupScrollPrevention(event);
+    } else if (config.delay > 0) {
+      this.setupDelayTrigger(event);
+
+      if (config.triggerAllEvents) {
+        this.compute(event);
+        this.emit();
+      }
+    } else {
+      this.startPointerDrag(event);
+    }
+  }
+
+  startPointerDrag(event) {
+    const state = this.state;
+    state._active = true;
+    state._preventScroll = true;
+    state._delayed = false;
+    this.compute(event);
+    this.emit();
+  }
+
+  pointerMove(event) {
+    const state = this.state;
+    const config = this.config;
+    if (!state._pointerActive) return;
+    if (state.type === event.type && event.timeStamp === state.timeStamp) return;
+    const id = pointerId(event);
+    if (state._pointerId !== undefined && id !== state._pointerId) return;
+
+    const _values = pointerValues(event);
+
+    if (document.pointerLockElement === event.target) {
+      state._delta = [event.movementX, event.movementY];
+    } else {
+      state._delta = V.sub(_values, state._values);
+      this.computeValues(_values);
+    }
+
+    V.addTo(state._movement, state._delta);
+    this.compute(event);
+
+    if (state._delayed && state.intentional) {
+      this.timeoutStore.remove('dragDelay');
+      state.active = false;
+      this.startPointerDrag(event);
+      return;
+    }
+
+    if (config.preventScrollAxis && !state._preventScroll) {
+      if (state.axis) {
+        if (state.axis === config.preventScrollAxis || config.preventScrollAxis === 'xy') {
+          state._active = false;
+          this.clean();
+          return;
+        } else {
+          this.timeoutStore.remove('startPointerDrag');
+          this.startPointerDrag(event);
+          return;
+        }
+      } else {
+        return;
+      }
+    }
+
+    this.emit();
+  }
+
+  pointerUp(event) {
+    this.ctrl.setEventIds(event);
+
+    try {
+      if (this.config.pointerCapture && event.target.hasPointerCapture(event.pointerId)) {
+        ;
+        event.target.releasePointerCapture(event.pointerId);
+      }
+    } catch (_unused) {
+      if (false) {}
+    }
+
+    const state = this.state;
+    const config = this.config;
+    if (!state._active || !state._pointerActive) return;
+    const id = pointerId(event);
+    if (state._pointerId !== undefined && id !== state._pointerId) return;
+    this.state._pointerActive = false;
+    this.setActive();
+    this.compute(event);
+    const [dx, dy] = state._distance;
+    state.tap = dx <= config.tapsThreshold && dy <= config.tapsThreshold;
+
+    if (state.tap && config.filterTaps) {
+      state._force = true;
+    } else {
+      const [dirx, diry] = state.direction;
+      const [vx, vy] = state.velocity;
+      const [mx, my] = state.movement;
+      const [svx, svy] = config.swipe.velocity;
+      const [sx, sy] = config.swipe.distance;
+      const sdt = config.swipe.duration;
+
+      if (state.elapsedTime < sdt) {
+        if (Math.abs(vx) > svx && Math.abs(mx) > sx) state.swipe[0] = dirx;
+        if (Math.abs(vy) > svy && Math.abs(my) > sy) state.swipe[1] = diry;
+      }
+    }
+
+    this.emit();
+  }
+
+  pointerClick(event) {
+    if (!this.state.tap && event.detail > 0) {
+      event.preventDefault();
+      event.stopPropagation();
+    }
+  }
+
+  setupPointer(event) {
+    const config = this.config;
+    const device = config.device;
+
+    if (false) {}
+
+    if (config.pointerLock) {
+      event.currentTarget.requestPointerLock();
+    }
+
+    if (!config.pointerCapture) {
+      this.eventStore.add(this.sharedConfig.window, device, 'change', this.pointerMove.bind(this));
+      this.eventStore.add(this.sharedConfig.window, device, 'end', this.pointerUp.bind(this));
+      this.eventStore.add(this.sharedConfig.window, device, 'cancel', this.pointerUp.bind(this));
+    }
+  }
+
+  pointerClean() {
+    if (this.config.pointerLock && document.pointerLockElement === this.state.currentTarget) {
+      document.exitPointerLock();
+    }
+  }
+
+  preventScroll(event) {
+    if (this.state._preventScroll && event.cancelable) {
+      event.preventDefault();
+    }
+  }
+
+  setupScrollPrevention(event) {
+    this.state._preventScroll = false;
+    persistEvent(event);
+    const remove = this.eventStore.add(this.sharedConfig.window, 'touch', 'change', this.preventScroll.bind(this), {
+      passive: false
+    });
+    this.eventStore.add(this.sharedConfig.window, 'touch', 'end', remove);
+    this.eventStore.add(this.sharedConfig.window, 'touch', 'cancel', remove);
+    this.timeoutStore.add('startPointerDrag', this.startPointerDrag.bind(this), this.config.preventScrollDelay, event);
+  }
+
+  setupDelayTrigger(event) {
+    this.state._delayed = true;
+    this.timeoutStore.add('dragDelay', () => {
+      this.state._step = [0, 0];
+      this.startPointerDrag(event);
+    }, this.config.delay);
+  }
+
+  keyDown(event) {
+    const deltaFn = KEYS_DELTA_MAP[event.key];
+
+    if (deltaFn) {
+      const state = this.state;
+      const factor = event.shiftKey ? 10 : event.altKey ? 0.1 : 1;
+      this.start(event);
+      state._delta = deltaFn(factor);
+      state._keyboardActive = true;
+      V.addTo(state._movement, state._delta);
+      this.compute(event);
+      this.emit();
+    }
+  }
+
+  keyUp(event) {
+    if (!(event.key in KEYS_DELTA_MAP)) return;
+    this.state._keyboardActive = false;
+    this.setActive();
+    this.compute(event);
+    this.emit();
+  }
+
+  bind(bindFunction) {
+    const device = this.config.device;
+    bindFunction(device, 'start', this.pointerDown.bind(this));
+
+    if (this.config.pointerCapture) {
+      bindFunction(device, 'change', this.pointerMove.bind(this));
+      bindFunction(device, 'end', this.pointerUp.bind(this));
+      bindFunction(device, 'cancel', this.pointerUp.bind(this));
+      bindFunction('lostPointerCapture', '', this.pointerUp.bind(this));
+    }
+
+    if (this.config.keys) {
+      bindFunction('key', 'down', this.keyDown.bind(this));
+      bindFunction('key', 'up', this.keyUp.bind(this));
+    }
+
+    if (this.config.filterTaps) {
+      bindFunction('click', '', this.pointerClick.bind(this), {
+        capture: true,
+        passive: false
+      });
+    }
+  }
+
+}
+
+function persistEvent(event) {
+  'persist' in event && typeof event.persist === 'function' && event.persist();
+}
+
+const actions_aeda4790_esm_isBrowser = typeof window !== 'undefined' && window.document && window.document.createElement;
+
+function actions_aeda4790_esm_supportsTouchEvents() {
+  return actions_aeda4790_esm_isBrowser && 'ontouchstart' in window;
+}
+
+function isTouchScreen() {
+  return actions_aeda4790_esm_supportsTouchEvents() || actions_aeda4790_esm_isBrowser && window.navigator.maxTouchPoints > 1;
+}
+
+function actions_aeda4790_esm_supportsPointerEvents() {
+  return actions_aeda4790_esm_isBrowser && 'onpointerdown' in window;
+}
+
+function supportsPointerLock() {
+  return actions_aeda4790_esm_isBrowser && 'exitPointerLock' in window.document;
+}
+
+function supportsGestureEvents() {
+  try {
+    return 'constructor' in GestureEvent;
+  } catch (e) {
+    return false;
+  }
+}
+
+const SUPPORT = {
+  isBrowser: actions_aeda4790_esm_isBrowser,
+  gesture: supportsGestureEvents(),
+  touch: isTouchScreen(),
+  touchscreen: isTouchScreen(),
+  pointer: actions_aeda4790_esm_supportsPointerEvents(),
+  pointerLock: supportsPointerLock()
+};
+
+const DEFAULT_PREVENT_SCROLL_DELAY = 250;
+const DEFAULT_DRAG_DELAY = 180;
+const DEFAULT_SWIPE_VELOCITY = 0.5;
+const DEFAULT_SWIPE_DISTANCE = 50;
+const DEFAULT_SWIPE_DURATION = 250;
+const DEFAULT_DRAG_AXIS_THRESHOLD = {
+  mouse: 0,
+  touch: 0,
+  pen: 8
+};
+const dragConfigResolver = actions_aeda4790_esm_objectSpread2(actions_aeda4790_esm_objectSpread2({}, coordinatesConfigResolver), {}, {
+  device(_v, _k, {
+    pointer: {
+      touch = false,
+      lock = false,
+      mouse = false
+    } = {}
+  }) {
+    this.pointerLock = lock && SUPPORT.pointerLock;
+    if (SUPPORT.touch && touch) return 'touch';
+    if (this.pointerLock) return 'mouse';
+    if (SUPPORT.pointer && !mouse) return 'pointer';
+    if (SUPPORT.touch) return 'touch';
+    return 'mouse';
+  },
+
+  preventScrollAxis(value, _k, {
+    preventScroll
+  }) {
+    this.preventScrollDelay = typeof preventScroll === 'number' ? preventScroll : preventScroll || preventScroll === undefined && value ? DEFAULT_PREVENT_SCROLL_DELAY : undefined;
+    if (!SUPPORT.touchscreen || preventScroll === false) return undefined;
+    return value ? value : preventScroll !== undefined ? 'y' : undefined;
+  },
+
+  pointerCapture(_v, _k, {
+    pointer: {
+      capture = true,
+      buttons = 1
+    } = {}
+  }) {
+    this.pointerButtons = buttons;
+    return !this.pointerLock && this.device === 'pointer' && capture;
+  },
+
+  keys(value = true) {
+    return value;
+  },
+
+  threshold(value, _k, {
+    filterTaps = false,
+    tapsThreshold = 3,
+    axis = undefined
+  }) {
+    const threshold = V.toVector(value, filterTaps ? tapsThreshold : axis ? 1 : 0);
+    this.filterTaps = filterTaps;
+    this.tapsThreshold = tapsThreshold;
+    return threshold;
+  },
+
+  swipe({
+    velocity = DEFAULT_SWIPE_VELOCITY,
+    distance = DEFAULT_SWIPE_DISTANCE,
+    duration = DEFAULT_SWIPE_DURATION
+  } = {}) {
+    return {
+      velocity: this.transform(V.toVector(velocity)),
+      distance: this.transform(V.toVector(distance)),
+      duration
+    };
+  },
+
+  delay(value = 0) {
+    switch (value) {
+      case true:
+        return DEFAULT_DRAG_DELAY;
+
+      case false:
+        return 0;
+
+      default:
+        return value;
+    }
+  },
+
+  axisThreshold(value) {
+    if (!value) return DEFAULT_DRAG_AXIS_THRESHOLD;
+    return actions_aeda4790_esm_objectSpread2(actions_aeda4790_esm_objectSpread2({}, DEFAULT_DRAG_AXIS_THRESHOLD), value);
+  }
+
+});
+
+if (false) {}
+
+const SCALE_ANGLE_RATIO_INTENT_DEG = 30;
+const PINCH_WHEEL_RATIO = 100;
+class PinchEngine extends Engine {
+  constructor(...args) {
+    super(...args);
+
+    actions_aeda4790_esm_defineProperty(this, "ingKey", 'pinching');
+
+    actions_aeda4790_esm_defineProperty(this, "aliasKey", 'da');
+  }
+
+  init() {
+    this.state.offset = [1, 0];
+    this.state.lastOffset = [1, 0];
+    this.state._pointerEvents = new Map();
+  }
+
+  reset() {
+    super.reset();
+    const state = this.state;
+    state._touchIds = [];
+    state.canceled = false;
+    state.cancel = this.cancel.bind(this);
+    state.turns = 0;
+  }
+
+  computeOffset() {
+    const {
+      type,
+      movement,
+      lastOffset
+    } = this.state;
+
+    if (type === 'wheel') {
+      this.state.offset = V.add(movement, lastOffset);
+    } else {
+      this.state.offset = [(1 + movement[0]) * lastOffset[0], movement[1] + lastOffset[1]];
+    }
+  }
+
+  computeMovement() {
+    const {
+      offset,
+      lastOffset
+    } = this.state;
+    this.state.movement = [offset[0] / lastOffset[0], offset[1] - lastOffset[1]];
+  }
+
+  axisIntent() {
+    const state = this.state;
+    const [_m0, _m1] = state._movement;
+
+    if (!state.axis) {
+      const axisMovementDifference = Math.abs(_m0) * SCALE_ANGLE_RATIO_INTENT_DEG - Math.abs(_m1);
+      if (axisMovementDifference < 0) state.axis = 'angle';else if (axisMovementDifference > 0) state.axis = 'scale';
+    }
+  }
+
+  restrictToAxis(v) {
+    if (this.config.lockDirection) {
+      if (this.state.axis === 'scale') v[1] = 0;else if (this.state.axis === 'angle') v[0] = 0;
+    }
+  }
+
+  cancel() {
+    const state = this.state;
+    if (state.canceled) return;
+    setTimeout(() => {
+      state.canceled = true;
+      state._active = false;
+      this.compute();
+      this.emit();
+    }, 0);
+  }
+
+  touchStart(event) {
+    this.ctrl.setEventIds(event);
+    const state = this.state;
+    const ctrlTouchIds = this.ctrl.touchIds;
+
+    if (state._active) {
+      if (state._touchIds.every(id => ctrlTouchIds.has(id))) return;
+    }
+
+    if (ctrlTouchIds.size < 2) return;
+    this.start(event);
+    state._touchIds = Array.from(ctrlTouchIds).slice(0, 2);
+    const payload = touchDistanceAngle(event, state._touchIds);
+    this.pinchStart(event, payload);
+  }
+
+  pointerStart(event) {
+    if (event.buttons != null && event.buttons % 2 !== 1) return;
+    this.ctrl.setEventIds(event);
+    event.target.setPointerCapture(event.pointerId);
+    const state = this.state;
+    const _pointerEvents = state._pointerEvents;
+    const ctrlPointerIds = this.ctrl.pointerIds;
+
+    if (state._active) {
+      if (Array.from(_pointerEvents.keys()).every(id => ctrlPointerIds.has(id))) return;
+    }
+
+    if (_pointerEvents.size < 2) {
+      _pointerEvents.set(event.pointerId, event);
+    }
+
+    if (state._pointerEvents.size < 2) return;
+    this.start(event);
+    const payload = distanceAngle(...Array.from(_pointerEvents.values()));
+    this.pinchStart(event, payload);
+  }
+
+  pinchStart(event, payload) {
+    const state = this.state;
+    state.origin = payload.origin;
+    this.computeValues([payload.distance, payload.angle]);
+    this.computeInitial();
+    this.compute(event);
+    this.emit();
+  }
+
+  touchMove(event) {
+    if (!this.state._active) return;
+    const payload = touchDistanceAngle(event, this.state._touchIds);
+    this.pinchMove(event, payload);
+  }
+
+  pointerMove(event) {
+    const _pointerEvents = this.state._pointerEvents;
+
+    if (_pointerEvents.has(event.pointerId)) {
+      _pointerEvents.set(event.pointerId, event);
+    }
+
+    if (!this.state._active) return;
+    const payload = distanceAngle(...Array.from(_pointerEvents.values()));
+    this.pinchMove(event, payload);
+  }
+
+  pinchMove(event, payload) {
+    const state = this.state;
+    const prev_a = state._values[1];
+    const delta_a = payload.angle - prev_a;
+    let delta_turns = 0;
+    if (Math.abs(delta_a) > 270) delta_turns += Math.sign(delta_a);
+    this.computeValues([payload.distance, payload.angle - 360 * delta_turns]);
+    state.origin = payload.origin;
+    state.turns = delta_turns;
+    state._movement = [state._values[0] / state._initial[0] - 1, state._values[1] - state._initial[1]];
+    this.compute(event);
+    this.emit();
+  }
+
+  touchEnd(event) {
+    this.ctrl.setEventIds(event);
+    if (!this.state._active) return;
+
+    if (this.state._touchIds.some(id => !this.ctrl.touchIds.has(id))) {
+      this.state._active = false;
+      this.compute(event);
+      this.emit();
+    }
+  }
+
+  pointerEnd(event) {
+    const state = this.state;
+    this.ctrl.setEventIds(event);
+
+    try {
+      event.target.releasePointerCapture(event.pointerId);
+    } catch (_unused) {}
+
+    if (state._pointerEvents.has(event.pointerId)) {
+      state._pointerEvents.delete(event.pointerId);
+    }
+
+    if (!state._active) return;
+
+    if (state._pointerEvents.size < 2) {
+      state._active = false;
+      this.compute(event);
+      this.emit();
+    }
+  }
+
+  gestureStart(event) {
+    if (event.cancelable) event.preventDefault();
+    const state = this.state;
+    if (state._active) return;
+    this.start(event);
+    this.computeValues([event.scale, event.rotation]);
+    state.origin = [event.clientX, event.clientY];
+    this.compute(event);
+    this.emit();
+  }
+
+  gestureMove(event) {
+    if (event.cancelable) event.preventDefault();
+    if (!this.state._active) return;
+    const state = this.state;
+    this.computeValues([event.scale, event.rotation]);
+    state.origin = [event.clientX, event.clientY];
+    const _previousMovement = state._movement;
+    state._movement = [event.scale - 1, event.rotation];
+    state._delta = V.sub(state._movement, _previousMovement);
+    this.compute(event);
+    this.emit();
+  }
+
+  gestureEnd(event) {
+    if (!this.state._active) return;
+    this.state._active = false;
+    this.compute(event);
+    this.emit();
+  }
+
+  wheel(event) {
+    const modifierKey = this.config.modifierKey;
+    if (modifierKey && !event[modifierKey]) return;
+    if (!this.state._active) this.wheelStart(event);else this.wheelChange(event);
+    this.timeoutStore.add('wheelEnd', this.wheelEnd.bind(this));
+  }
+
+  wheelStart(event) {
+    this.start(event);
+    this.wheelChange(event);
+  }
+
+  wheelChange(event) {
+    const isR3f = ('uv' in event);
+
+    if (!isR3f) {
+      if (event.cancelable) {
+        event.preventDefault();
+      }
+
+      if (false) {}
+    }
+
+    const state = this.state;
+    state._delta = [-wheelValues(event)[1] / PINCH_WHEEL_RATIO * state.offset[0], 0];
+    V.addTo(state._movement, state._delta);
+    this.state.origin = [event.clientX, event.clientY];
+    this.compute(event);
+    this.emit();
+  }
+
+  wheelEnd() {
+    if (!this.state._active) return;
+    this.state._active = false;
+    this.compute();
+    this.emit();
+  }
+
+  bind(bindFunction) {
+    const device = this.config.device;
+
+    if (!!device) {
+      bindFunction(device, 'start', this[device + 'Start'].bind(this));
+      bindFunction(device, 'change', this[device + 'Move'].bind(this));
+      bindFunction(device, 'end', this[device + 'End'].bind(this));
+      bindFunction(device, 'cancel', this[device + 'End'].bind(this));
+    }
+
+    bindFunction('wheel', '', this.wheel.bind(this), {
+      passive: false
+    });
+  }
+
+}
+
+const pinchConfigResolver = actions_aeda4790_esm_objectSpread2(actions_aeda4790_esm_objectSpread2({}, commonConfigResolver), {}, {
+  device(_v, _k, {
+    shared,
+    pointer: {
+      touch = false
+    } = {}
+  }) {
+    const sharedConfig = shared;
+    if (sharedConfig.target && !SUPPORT.touch && SUPPORT.gesture) return 'gesture';
+    if (SUPPORT.touch && touch) return 'touch';
+
+    if (SUPPORT.touchscreen) {
+      if (SUPPORT.pointer) return 'pointer';
+      if (SUPPORT.touch) return 'touch';
+    }
+  },
+
+  bounds(_v, _k, {
+    scaleBounds = {},
+    angleBounds = {}
+  }) {
+    const _scaleBounds = state => {
+      const D = assignDefault(call(scaleBounds, state), {
+        min: -Infinity,
+        max: Infinity
+      });
+      return [D.min, D.max];
+    };
+
+    const _angleBounds = state => {
+      const A = assignDefault(call(angleBounds, state), {
+        min: -Infinity,
+        max: Infinity
+      });
+      return [A.min, A.max];
+    };
+
+    if (typeof scaleBounds !== 'function' && typeof angleBounds !== 'function') return [_scaleBounds(), _angleBounds()];
+    return state => [_scaleBounds(state), _angleBounds(state)];
+  },
+
+  threshold(value, _k, config) {
+    this.lockDirection = config.axis === 'lock';
+    const threshold = V.toVector(value, this.lockDirection ? [0.1, 3] : 0);
+    return threshold;
+  },
+
+  modifierKey(value) {
+    if (value === undefined) return 'ctrlKey';
+    return value;
+  }
+
+});
+
+class MoveEngine extends CoordinatesEngine {
+  constructor(...args) {
+    super(...args);
+
+    actions_aeda4790_esm_defineProperty(this, "ingKey", 'moving');
+  }
+
+  move(event) {
+    if (this.config.mouseOnly && event.pointerType !== 'mouse') return;
+    if (!this.state._active) this.moveStart(event);else this.moveChange(event);
+    this.timeoutStore.add('moveEnd', this.moveEnd.bind(this));
+  }
+
+  moveStart(event) {
+    this.start(event);
+    this.computeValues(pointerValues(event));
+    this.compute(event);
+    this.computeInitial();
+    this.emit();
+  }
+
+  moveChange(event) {
+    if (!this.state._active) return;
+    const values = pointerValues(event);
+    const state = this.state;
+    state._delta = V.sub(values, state._values);
+    V.addTo(state._movement, state._delta);
+    this.computeValues(values);
+    this.compute(event);
+    this.emit();
+  }
+
+  moveEnd(event) {
+    if (!this.state._active) return;
+    this.state._active = false;
+    this.compute(event);
+    this.emit();
+  }
+
+  bind(bindFunction) {
+    bindFunction('pointer', 'change', this.move.bind(this));
+    bindFunction('pointer', 'leave', this.moveEnd.bind(this));
+  }
+
+}
+
+const moveConfigResolver = actions_aeda4790_esm_objectSpread2(actions_aeda4790_esm_objectSpread2({}, coordinatesConfigResolver), {}, {
+  mouseOnly: (value = true) => value
+});
+
+class ScrollEngine extends CoordinatesEngine {
+  constructor(...args) {
+    super(...args);
+
+    actions_aeda4790_esm_defineProperty(this, "ingKey", 'scrolling');
+  }
+
+  scroll(event) {
+    if (!this.state._active) this.start(event);
+    this.scrollChange(event);
+    this.timeoutStore.add('scrollEnd', this.scrollEnd.bind(this));
+  }
+
+  scrollChange(event) {
+    if (event.cancelable) event.preventDefault();
+    const state = this.state;
+    const values = scrollValues(event);
+    state._delta = V.sub(values, state._values);
+    V.addTo(state._movement, state._delta);
+    this.computeValues(values);
+    this.compute(event);
+    this.emit();
+  }
+
+  scrollEnd() {
+    if (!this.state._active) return;
+    this.state._active = false;
+    this.compute();
+    this.emit();
+  }
+
+  bind(bindFunction) {
+    bindFunction('scroll', '', this.scroll.bind(this));
+  }
+
+}
+
+const scrollConfigResolver = coordinatesConfigResolver;
+
+class WheelEngine extends CoordinatesEngine {
+  constructor(...args) {
+    super(...args);
+
+    actions_aeda4790_esm_defineProperty(this, "ingKey", 'wheeling');
+  }
+
+  wheel(event) {
+    if (!this.state._active) this.start(event);
+    this.wheelChange(event);
+    this.timeoutStore.add('wheelEnd', this.wheelEnd.bind(this));
+  }
+
+  wheelChange(event) {
+    const state = this.state;
+    state._delta = wheelValues(event);
+    V.addTo(state._movement, state._delta);
+    const [ox, oy] = state.overflow;
+    const [dx, dy] = state._delta;
+    const [dirx, diry] = state._direction;
+
+    if (ox < 0 && dx > 0 && dirx < 0 || ox > 0 && dx < 0 && dirx > 0) {
+      state._movement[0] = state._movementBound[0];
+    }
+
+    if (oy < 0 && dy > 0 && diry < 0 || oy > 0 && dy < 0 && diry > 0) {
+      state._movement[1] = state._movementBound[1];
+    }
+
+    this.compute(event);
+    this.emit();
+  }
+
+  wheelEnd() {
+    if (!this.state._active) return;
+    this.state._active = false;
+    this.compute();
+    this.emit();
+  }
+
+  bind(bindFunction) {
+    bindFunction('wheel', '', this.wheel.bind(this));
+  }
+
+}
+
+const wheelConfigResolver = coordinatesConfigResolver;
+
+class HoverEngine extends CoordinatesEngine {
+  constructor(...args) {
+    super(...args);
+
+    actions_aeda4790_esm_defineProperty(this, "ingKey", 'hovering');
+  }
+
+  enter(event) {
+    if (this.config.mouseOnly && event.pointerType !== 'mouse') return;
+    this.start(event);
+    this.computeValues(pointerValues(event));
+    this.compute(event);
+    this.emit();
+  }
+
+  leave(event) {
+    if (this.config.mouseOnly && event.pointerType !== 'mouse') return;
+    const state = this.state;
+    if (!state._active) return;
+    state._active = false;
+    const values = pointerValues(event);
+    state._movement = state._delta = V.sub(values, state._values);
+    this.computeValues(values);
+    this.compute(event);
+    state.delta = state.movement;
+    this.emit();
+  }
+
+  bind(bindFunction) {
+    bindFunction('pointer', 'enter', this.enter.bind(this));
+    bindFunction('pointer', 'leave', this.leave.bind(this));
+  }
+
+}
+
+const hoverConfigResolver = actions_aeda4790_esm_objectSpread2(actions_aeda4790_esm_objectSpread2({}, coordinatesConfigResolver), {}, {
+  mouseOnly: (value = true) => value
+});
+
+const actions_aeda4790_esm_EngineMap = new Map();
+const ConfigResolverMap = new Map();
+function actions_aeda4790_esm_registerAction(action) {
+  actions_aeda4790_esm_EngineMap.set(action.key, action.engine);
+  ConfigResolverMap.set(action.key, action.resolver);
+}
+const actions_aeda4790_esm_dragAction = {
+  key: 'drag',
+  engine: DragEngine,
+  resolver: dragConfigResolver
+};
+const actions_aeda4790_esm_hoverAction = {
+  key: 'hover',
+  engine: HoverEngine,
+  resolver: hoverConfigResolver
+};
+const actions_aeda4790_esm_moveAction = {
+  key: 'move',
+  engine: MoveEngine,
+  resolver: moveConfigResolver
+};
+const actions_aeda4790_esm_pinchAction = {
+  key: 'pinch',
+  engine: PinchEngine,
+  resolver: pinchConfigResolver
+};
+const actions_aeda4790_esm_scrollAction = {
+  key: 'scroll',
+  engine: ScrollEngine,
+  resolver: scrollConfigResolver
+};
+const actions_aeda4790_esm_wheelAction = {
+  key: 'wheel',
+  engine: WheelEngine,
+  resolver: wheelConfigResolver
+};
+
+
+
+;// CONCATENATED MODULE: ./node_modules/@use-gesture/core/dist/use-gesture-core.esm.js
+
+
+
+function use_gesture_core_esm_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 _objectWithoutProperties(source, excluded) {
+  if (source == null) return {};
+  var target = use_gesture_core_esm_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;
+}
+
+const sharedConfigResolver = {
+  target(value) {
+    if (value) {
+      return () => 'current' in value ? value.current : value;
+    }
+
+    return undefined;
+  },
+
+  enabled(value = true) {
+    return value;
+  },
+
+  window(value = SUPPORT.isBrowser ? window : undefined) {
+    return value;
+  },
+
+  eventOptions({
+    passive = true,
+    capture = false
+  } = {}) {
+    return {
+      passive,
+      capture
+    };
+  },
+
+  transform(value) {
+    return value;
+  }
+
+};
+
+const _excluded = ["target", "eventOptions", "window", "enabled", "transform"];
+function resolveWith(config = {}, resolvers) {
+  const result = {};
+
+  for (const [key, resolver] of Object.entries(resolvers)) {
+    switch (typeof resolver) {
+      case 'function':
+        if (false) {} else {
+          result[key] = resolver.call(result, config[key], key, config);
+        }
+
+        break;
+
+      case 'object':
+        result[key] = resolveWith(config[key], resolver);
+        break;
+
+      case 'boolean':
+        if (resolver) result[key] = config[key];
+        break;
+    }
+  }
+
+  return result;
+}
+function use_gesture_core_esm_parse(config, gestureKey) {
+  const _ref = config,
+        {
+    target,
+    eventOptions,
+    window,
+    enabled,
+    transform
+  } = _ref,
+        rest = _objectWithoutProperties(_ref, _excluded);
+
+  const _config = {
+    shared: resolveWith({
+      target,
+      eventOptions,
+      window,
+      enabled,
+      transform
+    }, sharedConfigResolver)
+  };
+
+  if (gestureKey) {
+    const resolver = ConfigResolverMap.get(gestureKey);
+    _config[gestureKey] = resolveWith(actions_aeda4790_esm_objectSpread2({
+      shared: _config.shared
+    }, rest), resolver);
+  } else {
+    for (const key in rest) {
+      const resolver = ConfigResolverMap.get(key);
+
+      if (resolver) {
+        _config[key] = resolveWith(actions_aeda4790_esm_objectSpread2({
+          shared: _config.shared
+        }, rest[key]), resolver);
+      } else if (false) {}
+    }
+  }
+
+  return _config;
+}
+
+class EventStore {
+  constructor(ctrl, gestureKey) {
+    actions_aeda4790_esm_defineProperty(this, "_listeners", new Set());
+
+    this._ctrl = ctrl;
+    this._gestureKey = gestureKey;
+  }
+
+  add(element, device, action, handler, options) {
+    const listeners = this._listeners;
+    const type = toDomEventType(device, action);
+
+    const _options = this._gestureKey ? this._ctrl.config[this._gestureKey].eventOptions : {};
+
+    const eventOptions = actions_aeda4790_esm_objectSpread2(actions_aeda4790_esm_objectSpread2({}, _options), options);
+
+    element.addEventListener(type, handler, eventOptions);
+
+    const remove = () => {
+      element.removeEventListener(type, handler, eventOptions);
+      listeners.delete(remove);
+    };
+
+    listeners.add(remove);
+    return remove;
+  }
+
+  clean() {
+    this._listeners.forEach(remove => remove());
+
+    this._listeners.clear();
+  }
+
+}
+
+class TimeoutStore {
+  constructor() {
+    actions_aeda4790_esm_defineProperty(this, "_timeouts", new Map());
+  }
+
+  add(key, callback, ms = 140, ...args) {
+    this.remove(key);
+
+    this._timeouts.set(key, window.setTimeout(callback, ms, ...args));
+  }
+
+  remove(key) {
+    const timeout = this._timeouts.get(key);
+
+    if (timeout) window.clearTimeout(timeout);
+  }
+
+  clean() {
+    this._timeouts.forEach(timeout => void window.clearTimeout(timeout));
+
+    this._timeouts.clear();
+  }
+
+}
+
+class Controller {
+  constructor(handlers) {
+    actions_aeda4790_esm_defineProperty(this, "gestures", new Set());
+
+    actions_aeda4790_esm_defineProperty(this, "_targetEventStore", new EventStore(this));
+
+    actions_aeda4790_esm_defineProperty(this, "gestureEventStores", {});
+
+    actions_aeda4790_esm_defineProperty(this, "gestureTimeoutStores", {});
+
+    actions_aeda4790_esm_defineProperty(this, "handlers", {});
+
+    actions_aeda4790_esm_defineProperty(this, "config", {});
+
+    actions_aeda4790_esm_defineProperty(this, "pointerIds", new Set());
+
+    actions_aeda4790_esm_defineProperty(this, "touchIds", new Set());
+
+    actions_aeda4790_esm_defineProperty(this, "state", {
+      shared: {
+        shiftKey: false,
+        metaKey: false,
+        ctrlKey: false,
+        altKey: false
+      }
+    });
+
+    resolveGestures(this, handlers);
+  }
+
+  setEventIds(event) {
+    if (isTouch(event)) {
+      this.touchIds = new Set(touchIds(event));
+      return this.touchIds;
+    } else if ('pointerId' in event) {
+      if (event.type === 'pointerup' || event.type === 'pointercancel') this.pointerIds.delete(event.pointerId);else if (event.type === 'pointerdown') this.pointerIds.add(event.pointerId);
+      return this.pointerIds;
+    }
+  }
+
+  applyHandlers(handlers, nativeHandlers) {
+    this.handlers = handlers;
+    this.nativeHandlers = nativeHandlers;
+  }
+
+  applyConfig(config, gestureKey) {
+    this.config = use_gesture_core_esm_parse(config, gestureKey);
+  }
+
+  clean() {
+    this._targetEventStore.clean();
+
+    for (const key of this.gestures) {
+      this.gestureEventStores[key].clean();
+      this.gestureTimeoutStores[key].clean();
+    }
+  }
+
+  effect() {
+    if (this.config.shared.target) this.bind();
+    return () => this._targetEventStore.clean();
+  }
+
+  bind(...args) {
+    const sharedConfig = this.config.shared;
+    const props = {};
+    let target;
+
+    if (sharedConfig.target) {
+      target = sharedConfig.target();
+      if (!target) return;
+    }
+
+    if (sharedConfig.enabled) {
+      for (const gestureKey of this.gestures) {
+        const gestureConfig = this.config[gestureKey];
+        const bindFunction = bindToProps(props, gestureConfig.eventOptions, !!target);
+
+        if (gestureConfig.enabled) {
+          const Engine = actions_aeda4790_esm_EngineMap.get(gestureKey);
+          new Engine(this, args, gestureKey).bind(bindFunction);
+        }
+      }
+
+      const nativeBindFunction = bindToProps(props, sharedConfig.eventOptions, !!target);
+
+      for (const eventKey in this.nativeHandlers) {
+        nativeBindFunction(eventKey, '', event => this.nativeHandlers[eventKey](actions_aeda4790_esm_objectSpread2(actions_aeda4790_esm_objectSpread2({}, this.state.shared), {}, {
+          event,
+          args
+        })), undefined, true);
+      }
+    }
+
+    for (const handlerProp in props) {
+      props[handlerProp] = chain(...props[handlerProp]);
+    }
+
+    if (!target) return props;
+
+    for (const handlerProp in props) {
+      const {
+        device,
+        capture,
+        passive
+      } = parseProp(handlerProp);
+
+      this._targetEventStore.add(target, device, '', props[handlerProp], {
+        capture,
+        passive
+      });
+    }
+  }
+
+}
+
+function setupGesture(ctrl, gestureKey) {
+  ctrl.gestures.add(gestureKey);
+  ctrl.gestureEventStores[gestureKey] = new EventStore(ctrl, gestureKey);
+  ctrl.gestureTimeoutStores[gestureKey] = new TimeoutStore();
+}
+
+function resolveGestures(ctrl, internalHandlers) {
+  if (internalHandlers.drag) setupGesture(ctrl, 'drag');
+  if (internalHandlers.wheel) setupGesture(ctrl, 'wheel');
+  if (internalHandlers.scroll) setupGesture(ctrl, 'scroll');
+  if (internalHandlers.move) setupGesture(ctrl, 'move');
+  if (internalHandlers.pinch) setupGesture(ctrl, 'pinch');
+  if (internalHandlers.hover) setupGesture(ctrl, 'hover');
+}
+
+const bindToProps = (props, eventOptions, withPassiveOption) => (device, action, handler, options = {}, isNative = false) => {
+  var _options$capture, _options$passive;
+
+  const capture = (_options$capture = options.capture) !== null && _options$capture !== void 0 ? _options$capture : eventOptions.capture;
+  const passive = (_options$passive = options.passive) !== null && _options$passive !== void 0 ? _options$passive : eventOptions.passive;
+  let handlerProp = isNative ? device : toHandlerProp(device, action, capture);
+  if (withPassiveOption && passive) handlerProp += 'Passive';
+  props[handlerProp] = props[handlerProp] || [];
+  props[handlerProp].push(handler);
+};
+
+const RE_NOT_NATIVE = /^on(Drag|Wheel|Scroll|Move|Pinch|Hover)/;
+
+function sortHandlers(_handlers) {
+  const native = {};
+  const handlers = {};
+  const actions = new Set();
+
+  for (let key in _handlers) {
+    if (RE_NOT_NATIVE.test(key)) {
+      actions.add(RegExp.lastMatch);
+      handlers[key] = _handlers[key];
+    } else {
+      native[key] = _handlers[key];
+    }
+  }
+
+  return [handlers, native, actions];
+}
+
+function registerGesture(actions, handlers, handlerKey, key, internalHandlers, config) {
+  if (!actions.has(handlerKey)) return;
+
+  if (!EngineMap.has(key)) {
+    if (false) {}
+
+    return;
+  }
+
+  const startKey = handlerKey + 'Start';
+  const endKey = handlerKey + 'End';
+
+  const fn = state => {
+    let memo = undefined;
+    if (state.first && startKey in handlers) handlers[startKey](state);
+    if (handlerKey in handlers) memo = handlers[handlerKey](state);
+    if (state.last && endKey in handlers) handlers[endKey](state);
+    return memo;
+  };
+
+  internalHandlers[key] = fn;
+  config[key] = config[key] || {};
+}
+
+function use_gesture_core_esm_parseMergedHandlers(mergedHandlers, mergedConfig) {
+  const [handlers, nativeHandlers, actions] = sortHandlers(mergedHandlers);
+  const internalHandlers = {};
+  registerGesture(actions, handlers, 'onDrag', 'drag', internalHandlers, mergedConfig);
+  registerGesture(actions, handlers, 'onWheel', 'wheel', internalHandlers, mergedConfig);
+  registerGesture(actions, handlers, 'onScroll', 'scroll', internalHandlers, mergedConfig);
+  registerGesture(actions, handlers, 'onPinch', 'pinch', internalHandlers, mergedConfig);
+  registerGesture(actions, handlers, 'onMove', 'move', internalHandlers, mergedConfig);
+  registerGesture(actions, handlers, 'onHover', 'hover', internalHandlers, mergedConfig);
+  return {
+    handlers: internalHandlers,
+    config: mergedConfig,
+    nativeHandlers
+  };
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/@use-gesture/react/dist/use-gesture-react.esm.js
+
+
+
+
+
+
+
+function useRecognizers(handlers, config = {}, gestureKey, nativeHandlers) {
+  const ctrl = external_React_default().useMemo(() => new Controller(handlers), []);
+  ctrl.applyHandlers(handlers, nativeHandlers);
+  ctrl.applyConfig(config, gestureKey);
+  external_React_default().useEffect(ctrl.effect.bind(ctrl));
+  external_React_default().useEffect(() => {
+    return ctrl.clean.bind(ctrl);
+  }, []);
+
+  if (config.target === undefined) {
+    return ctrl.bind.bind(ctrl);
+  }
+
+  return undefined;
+}
+
+function use_gesture_react_esm_useDrag(handler, config) {
+  actions_aeda4790_esm_registerAction(actions_aeda4790_esm_dragAction);
+  return useRecognizers({
+    drag: handler
+  }, config || {}, 'drag');
+}
+
+function usePinch(handler, config) {
+  registerAction(pinchAction);
+  return useRecognizers({
+    pinch: handler
+  }, config || {}, 'pinch');
+}
+
+function useWheel(handler, config) {
+  registerAction(wheelAction);
+  return useRecognizers({
+    wheel: handler
+  }, config || {}, 'wheel');
+}
+
+function useScroll(handler, config) {
+  registerAction(scrollAction);
+  return useRecognizers({
+    scroll: handler
+  }, config || {}, 'scroll');
+}
+
+function useMove(handler, config) {
+  registerAction(moveAction);
+  return useRecognizers({
+    move: handler
+  }, config || {}, 'move');
+}
+
+function useHover(handler, config) {
+  actions_aeda4790_esm_registerAction(actions_aeda4790_esm_hoverAction);
+  return useRecognizers({
+    hover: handler
+  }, config || {}, 'hover');
+}
+
+function createUseGesture(actions) {
+  actions.forEach(registerAction);
+  return function useGesture(_handlers, _config) {
+    const {
+      handlers,
+      nativeHandlers,
+      config
+    } = parseMergedHandlers(_handlers, _config || {});
+    return useRecognizers(handlers, config, undefined, nativeHandlers);
+  };
+}
+
+function useGesture(handlers, config) {
+  const hook = createUseGesture([dragAction, pinchAction, scrollAction, wheelAction, moveAction, hoverAction]);
+  return hook(handlers, config || {});
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/input-control/utils.js
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Gets a CSS cursor value based on a drag direction.
+ *
+ * @param  dragDirection The drag direction.
+ * @return  The CSS cursor value.
+ */
+
+function getDragCursor(dragDirection) {
+  let dragCursor = 'ns-resize';
+
+  switch (dragDirection) {
+    case 'n':
+    case 's':
+      dragCursor = 'ns-resize';
+      break;
+
+    case 'e':
+    case 'w':
+      dragCursor = 'ew-resize';
+      break;
+  }
+
+  return dragCursor;
+}
+/**
+ * Custom hook that renders a drag cursor when dragging.
+ *
+ * @param {boolean} isDragging    The dragging state.
+ * @param {string}  dragDirection The drag direction.
+ *
+ * @return {string} The CSS cursor value.
+ */
+
+function useDragCursor(isDragging, dragDirection) {
+  const dragCursor = getDragCursor(dragDirection);
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    if (isDragging) {
+      document.documentElement.style.cursor = dragCursor;
+    } else {
+      // @ts-expect-error
+      document.documentElement.style.cursor = null;
+    }
+  }, [isDragging]);
+  return dragCursor;
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/input-control/reducer/state.js
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+const initialStateReducer = state => state;
+const initialInputControlState = {
+  _event: {},
+  error: null,
+  initialValue: '',
+  isDirty: false,
+  isDragEnabled: false,
+  isDragging: false,
+  isPressEnterToChange: false,
+  value: ''
+};
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/input-control/reducer/actions.js
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+const CHANGE = 'CHANGE';
+const COMMIT = 'COMMIT';
+const DRAG_END = 'DRAG_END';
+const DRAG_START = 'DRAG_START';
+const DRAG = 'DRAG';
+const INVALIDATE = 'INVALIDATE';
+const PRESS_DOWN = 'PRESS_DOWN';
+const PRESS_ENTER = 'PRESS_ENTER';
+const PRESS_UP = 'PRESS_UP';
+const RESET = 'RESET';
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/input-control/reducer/reducer.js
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+/**
+ * Prepares initialState for the reducer.
+ *
+ * @param  initialState The initial state.
+ * @return Prepared initialState for the reducer
+ */
+
+function mergeInitialState() {
+  let initialState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialInputControlState;
+  const {
+    value
+  } = initialState;
+  return { ...initialInputControlState,
+    ...initialState,
+    initialValue: value
+  };
+}
+/**
+ * Creates a reducer that opens the channel for external state subscription
+ * and modification.
+ *
+ * This technique uses the "stateReducer" design pattern:
+ * https://kentcdodds.com/blog/the-state-reducer-pattern/
+ *
+ * @param  composedStateReducers A custom reducer that can subscribe and modify state.
+ * @return The reducer.
+ */
+
+
+function inputControlStateReducer(composedStateReducers) {
+  return (state, action) => {
+    const nextState = { ...state
+    };
+
+    switch (action.type) {
+      /**
+       * Keyboard events
+       */
+      case PRESS_UP:
+        nextState.isDirty = false;
+        break;
+
+      case PRESS_DOWN:
+        nextState.isDirty = false;
+        break;
+
+      /**
+       * Drag events
+       */
+
+      case DRAG_START:
+        nextState.isDragging = true;
+        break;
+
+      case DRAG_END:
+        nextState.isDragging = false;
+        break;
+
+      /**
+       * Input events
+       */
+
+      case CHANGE:
+        nextState.error = null;
+        nextState.value = action.payload.value;
+
+        if (state.isPressEnterToChange) {
+          nextState.isDirty = true;
+        }
+
+        break;
+
+      case COMMIT:
+        nextState.value = action.payload.value;
+        nextState.isDirty = false;
+        break;
+
+      case RESET:
+        nextState.error = null;
+        nextState.isDirty = false;
+        nextState.value = action.payload.value || state.initialValue;
+        break;
+
+      /**
+       * Validation
+       */
+
+      case INVALIDATE:
+        nextState.error = action.payload.error;
+        break;
+    }
+
+    if (action.payload.event) {
+      nextState._event = action.payload.event;
+    }
+    /**
+     * Send the nextState + action to the composedReducers via
+     * this "bridge" mechanism. This allows external stateReducers
+     * to hook into actions, and modify state if needed.
+     */
+
+
+    return composedStateReducers(nextState, action);
+  };
+}
+/**
+ * A custom hook that connects and external stateReducer with an internal
+ * reducer. This hook manages the internal state of InputControl.
+ * However, by connecting an external stateReducer function, other
+ * components can react to actions as well as modify state before it is
+ * applied.
+ *
+ * This technique uses the "stateReducer" design pattern:
+ * https://kentcdodds.com/blog/the-state-reducer-pattern/
+ *
+ * @param  stateReducer An external state reducer.
+ * @param  initialState The initial state for the reducer.
+ * @return State, dispatch, and a collection of actions.
+ */
+
+
+function useInputControlStateReducer() {
+  let stateReducer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialStateReducer;
+  let initialState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : initialInputControlState;
+  const [state, dispatch] = (0,external_wp_element_namespaceObject.useReducer)(inputControlStateReducer(stateReducer), mergeInitialState(initialState));
+
+  const createChangeEvent = type => (nextValue, event) => {
+    /**
+     * Persist allows for the (Synthetic) event to be used outside of
+     * this function call.
+     * https://reactjs.org/docs/events.html#event-pooling
+     */
+    if (event && event.persist) {
+      event.persist();
+    }
+
+    dispatch({
+      type,
+      payload: {
+        value: nextValue,
+        event
+      }
+    });
+  };
+
+  const createKeyEvent = type => event => {
+    /**
+     * Persist allows for the (Synthetic) event to be used outside of
+     * this function call.
+     * https://reactjs.org/docs/events.html#event-pooling
+     */
+    if (event && event.persist) {
+      event.persist();
+    }
+
+    dispatch({
+      type,
+      payload: {
+        event
+      }
+    });
+  };
+
+  const createDragEvent = type => payload => {
+    dispatch({
+      type,
+      payload
+    });
+  };
+  /**
+   * Actions for the reducer
+   */
+
+
+  const change = createChangeEvent(CHANGE);
+
+  const invalidate = (error, event) => dispatch({
+    type: INVALIDATE,
+    payload: {
+      error,
+      event
+    }
+  });
+
+  const reset = createChangeEvent(RESET);
+  const commit = createChangeEvent(COMMIT);
+  const dragStart = createDragEvent(DRAG_START);
+  const drag = createDragEvent(DRAG);
+  const dragEnd = createDragEvent(DRAG_END);
+  const pressUp = createKeyEvent(PRESS_UP);
+  const pressDown = createKeyEvent(PRESS_DOWN);
+  const pressEnter = createKeyEvent(PRESS_ENTER);
+  return {
+    change,
+    commit,
+    dispatch,
+    drag,
+    dragEnd,
+    dragStart,
+    invalidate,
+    pressDown,
+    pressEnter,
+    pressUp,
+    reset,
+    state
+  };
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/hooks/use-update-effect.js
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * A `React.useEffect` that will not run on the first render.
+ * Source:
+ * https://github.com/reakit/reakit/blob/HEAD/packages/reakit-utils/src/useUpdateEffect.ts
+ *
+ * @param {import('react').EffectCallback} effect
+ * @param {import('react').DependencyList} deps
+ */
+
+function use_update_effect_useUpdateEffect(effect, deps) {
+  const mounted = (0,external_wp_element_namespaceObject.useRef)(false);
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    if (mounted.current) {
+      return effect();
+    }
+
+    mounted.current = true;
+    return undefined;
+  }, deps);
+}
+
+/* harmony default export */ var use_update_effect = (use_update_effect_useUpdateEffect);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/input-control/input-field.js
+
+
+
+/**
+ * External dependencies
+ */
+
+
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+function InputField(_ref, ref) {
+  let {
+    disabled = false,
+    dragDirection = 'n',
+    dragThreshold = 10,
+    id,
+    isDragEnabled = false,
+    isFocused,
+    isPressEnterToChange = false,
+    onBlur = external_lodash_namespaceObject.noop,
+    onChange = external_lodash_namespaceObject.noop,
+    onDrag = external_lodash_namespaceObject.noop,
+    onDragEnd = external_lodash_namespaceObject.noop,
+    onDragStart = external_lodash_namespaceObject.noop,
+    onFocus = external_lodash_namespaceObject.noop,
+    onKeyDown = external_lodash_namespaceObject.noop,
+    onValidate = external_lodash_namespaceObject.noop,
+    size = 'default',
+    setIsFocused,
+    stateReducer = state => state,
+    value: valueProp,
+    type,
+    ...props
+  } = _ref;
+  const {
+    // State.
+    state,
+    // Actions.
+    change,
+    commit,
+    drag,
+    dragEnd,
+    dragStart,
+    invalidate,
+    pressDown,
+    pressEnter,
+    pressUp,
+    reset
+  } = useInputControlStateReducer(stateReducer, {
+    isDragEnabled,
+    value: valueProp,
+    isPressEnterToChange
+  });
+  const {
+    _event,
+    value,
+    isDragging,
+    isDirty
+  } = state;
+  const wasDirtyOnBlur = (0,external_wp_element_namespaceObject.useRef)(false);
+  const dragCursor = useDragCursor(isDragging, dragDirection);
+  /*
+   * Handles synchronization of external and internal value state.
+   * If not focused and did not hold a dirty value[1] on blur
+   * updates the value from the props. Otherwise if not holding
+   * a dirty value[1] propagates the value and event through onChange.
+   * [1] value is only made dirty if isPressEnterToChange is true
+   */
+
+  use_update_effect(() => {
+    if (valueProp === value) {
+      return;
+    }
+
+    if (!isFocused && !wasDirtyOnBlur.current) {
+      commit(valueProp, _event);
+    } else if (!isDirty) {
+      onChange(value, {
+        event: _event
+      });
+      wasDirtyOnBlur.current = false;
+    }
+  }, [value, isDirty, isFocused, valueProp]);
+
+  const handleOnBlur = event => {
+    onBlur(event);
+    setIsFocused === null || setIsFocused === void 0 ? void 0 : setIsFocused(false);
+    /**
+     * If isPressEnterToChange is set, this commits the value to
+     * the onChange callback.
+     */
+
+    if (isDirty || !event.target.validity.valid) {
+      wasDirtyOnBlur.current = true;
+      handleOnCommit(event);
+    }
+  };
+
+  const handleOnFocus = event => {
+    onFocus(event);
+    setIsFocused === null || setIsFocused === void 0 ? void 0 : setIsFocused(true);
+  };
+
+  const handleOnChange = event => {
+    const nextValue = event.target.value;
+    change(nextValue, event);
+  };
+
+  const handleOnCommit = event => {
+    const nextValue = event.currentTarget.value;
+
+    try {
+      onValidate(nextValue);
+      commit(nextValue, event);
+    } catch (err) {
+      invalidate(err, event);
+    }
+  };
+
+  const handleOnKeyDown = event => {
+    const {
+      key
+    } = event;
+    onKeyDown(event);
+
+    switch (key) {
+      case 'ArrowUp':
+        pressUp(event);
+        break;
+
+      case 'ArrowDown':
+        pressDown(event);
+        break;
+
+      case 'Enter':
+        pressEnter(event);
+
+        if (isPressEnterToChange) {
+          event.preventDefault();
+          handleOnCommit(event);
+        }
+
+        break;
+
+      case 'Escape':
+        if (isPressEnterToChange && isDirty) {
+          event.preventDefault();
+          reset(valueProp, event);
+        }
+
+        break;
+    }
+  };
+
+  const dragGestureProps = use_gesture_react_esm_useDrag(dragProps => {
+    const {
+      distance,
+      dragging,
+      event,
+      target
+    } = dragProps; // The `target` prop always references the `input` element while, by
+    // default, the `dragProps.event.target` property would reference the real
+    // event target (i.e. any DOM element that the pointer is hovering while
+    // dragging). Ensuring that the `target` is always the `input` element
+    // allows consumers of `InputControl` (or any higher-level control) to
+    // check the input's validity by accessing `event.target.validity.valid`.
+
+    dragProps.event = { ...dragProps.event,
+      target
+    };
+    if (!distance) return;
+    event.stopPropagation();
+    /**
+     * Quick return if no longer dragging.
+     * This prevents unnecessary value calculations.
+     */
+
+    if (!dragging) {
+      onDragEnd(dragProps);
+      dragEnd(dragProps);
+      return;
+    }
+
+    onDrag(dragProps);
+    drag(dragProps);
+
+    if (!isDragging) {
+      onDragStart(dragProps);
+      dragStart(dragProps);
+    }
+  }, {
+    axis: dragDirection === 'e' || dragDirection === 'w' ? 'x' : 'y',
+    threshold: dragThreshold,
+    enabled: isDragEnabled,
+    pointer: {
+      capture: false
+    }
+  });
+  const dragProps = isDragEnabled ? dragGestureProps() : {};
+  /*
+   * Works around the odd UA (e.g. Firefox) that does not focus inputs of
+   * type=number when their spinner arrows are pressed.
+   */
+
+  let handleOnMouseDown;
+
+  if (type === 'number') {
+    handleOnMouseDown = event => {
+      var _props$onMouseDown;
+
+      (_props$onMouseDown = props.onMouseDown) === null || _props$onMouseDown === void 0 ? void 0 : _props$onMouseDown.call(props, event);
+
+      if (event.currentTarget !== event.currentTarget.ownerDocument.activeElement) {
+        event.currentTarget.focus();
+      }
+    };
+  }
+
+  return (0,external_wp_element_namespaceObject.createElement)(Input, extends_extends({}, props, dragProps, {
+    className: "components-input-control__input",
+    disabled: disabled,
+    dragCursor: dragCursor,
+    isDragging: isDragging,
+    id: id,
+    onBlur: handleOnBlur,
+    onChange: handleOnChange,
+    onFocus: handleOnFocus,
+    onKeyDown: handleOnKeyDown,
+    onMouseDown: handleOnMouseDown,
+    ref: ref,
+    inputSize: size,
+    value: value,
+    type: type
+  }));
+}
+
+const ForwardedComponent = (0,external_wp_element_namespaceObject.forwardRef)(InputField);
+/* harmony default export */ var input_field = (ForwardedComponent);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/input-control/index.js
+
+
+
+/**
+ * External dependencies
+ */
+
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+function input_control_useUniqueId(idProp) {
+  const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(InputControl);
+  const id = `inspector-input-control-${instanceId}`;
+  return idProp || id;
+}
+
+function InputControl(_ref, ref) {
+  let {
+    __unstableStateReducer: stateReducer = state => state,
+    __unstableInputWidth,
+    className,
+    disabled = false,
+    hideLabelFromVision = false,
+    id: idProp,
+    isPressEnterToChange = false,
+    label,
+    labelPosition = 'top',
+    onChange = external_lodash_namespaceObject.noop,
+    onValidate = external_lodash_namespaceObject.noop,
+    onKeyDown = external_lodash_namespaceObject.noop,
+    prefix,
+    size = 'default',
+    suffix,
+    value,
+    ...props
+  } = _ref;
+  const [isFocused, setIsFocused] = (0,external_wp_element_namespaceObject.useState)(false);
+  const id = input_control_useUniqueId(idProp);
+  const classes = classnames_default()('components-input-control', className);
+  return (0,external_wp_element_namespaceObject.createElement)(input_base, {
+    __unstableInputWidth: __unstableInputWidth,
+    className: classes,
+    disabled: disabled,
+    gap: 3,
+    hideLabelFromVision: hideLabelFromVision,
+    id: id,
+    isFocused: isFocused,
+    justify: "left",
+    label: label,
+    labelPosition: labelPosition,
+    prefix: prefix,
+    size: size,
+    suffix: suffix
+  }, (0,external_wp_element_namespaceObject.createElement)(input_field, extends_extends({}, props, {
+    className: "components-input-control__input",
+    disabled: disabled,
+    id: id,
+    isFocused: isFocused,
+    isPressEnterToChange: isPressEnterToChange,
+    onChange: onChange,
+    onKeyDown: onKeyDown,
+    onValidate: onValidate,
+    ref: ref,
+    setIsFocused: setIsFocused,
+    size: size,
+    stateReducer: stateReducer,
+    value: value
+  })));
+}
+const input_control_ForwardedComponent = (0,external_wp_element_namespaceObject.forwardRef)(InputControl);
+/* harmony default export */ var input_control = (input_control_ForwardedComponent);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/angle-picker-control/styles/angle-picker-control-styles.js
+
+
+function angle_picker_control_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+const CIRCLE_SIZE = 32;
+const INNER_CIRCLE_SIZE = 3;
+const angle_picker_control_styles_Root = /*#__PURE__*/emotion_styled_base_browser_esm(flex_component,  true ? {
+  target: "e65ony43"
+} : 0)("margin-bottom:", space(2), ";" + ( true ? "" : 0));
+const CircleRoot = emotion_styled_base_browser_esm("div",  true ? {
+  target: "e65ony42"
+} : 0)("border-radius:50%;border:", config_values.borderWidth, " solid ", COLORS.ui.border, ";box-sizing:border-box;cursor:grab;height:", CIRCLE_SIZE, "px;overflow:hidden;width:", CIRCLE_SIZE, "px;" + ( true ? "" : 0));
+const CircleIndicatorWrapper = emotion_styled_base_browser_esm("div",  true ? {
+  target: "e65ony41"
+} : 0)( true ? {
+  name: "1bhd2sw",
+  styles: "box-sizing:border-box;position:relative;width:100%;height:100%"
+} : 0);
+const CircleIndicator = emotion_styled_base_browser_esm("div",  true ? {
+  target: "e65ony40"
+} : 0)("background:", COLORS.admin.theme, ";border-radius:50%;border:", INNER_CIRCLE_SIZE, "px solid ", COLORS.admin.theme, ";bottom:0;box-sizing:border-box;display:block;height:0px;left:0;margin:auto;position:absolute;right:0;top:-", CIRCLE_SIZE / 2, "px;width:0px;" + ( true ? "" : 0));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/angle-picker-control/angle-circle.js
+
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+function AngleCircle(_ref) {
+  let {
+    value,
+    onChange,
+    ...props
+  } = _ref;
+  const angleCircleRef = (0,external_wp_element_namespaceObject.useRef)();
+  const angleCircleCenter = (0,external_wp_element_namespaceObject.useRef)();
+  const previousCursorValue = (0,external_wp_element_namespaceObject.useRef)();
+
+  const setAngleCircleCenter = () => {
+    const rect = angleCircleRef.current.getBoundingClientRect();
+    angleCircleCenter.current = {
+      x: rect.x + rect.width / 2,
+      y: rect.y + rect.height / 2
+    };
+  };
+
+  const changeAngleToPosition = event => {
+    const {
+      x: centerX,
+      y: centerY
+    } = angleCircleCenter.current; // Prevent (drag) mouse events from selecting and accidentally
+    // triggering actions from other elements.
+
+    event.preventDefault(); // Input control needs to lose focus and by preventDefault above, it doesn't.
+
+    event.target.focus();
+    onChange(getAngle(centerX, centerY, event.clientX, event.clientY));
+  };
+
+  const {
+    startDrag,
+    isDragging
+  } = (0,external_wp_compose_namespaceObject.__experimentalUseDragging)({
+    onDragStart: event => {
+      setAngleCircleCenter();
+      changeAngleToPosition(event);
+    },
+    onDragMove: changeAngleToPosition,
+    onDragEnd: changeAngleToPosition
+  });
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    if (isDragging) {
+      if (previousCursorValue.current === undefined) {
+        previousCursorValue.current = document.body.style.cursor;
+      }
+
+      document.body.style.cursor = 'grabbing';
+    } else {
+      document.body.style.cursor = previousCursorValue.current || null;
+      previousCursorValue.current = undefined;
+    }
+  }, [isDragging]);
+  return (
+    /* eslint-disable jsx-a11y/no-static-element-interactions */
+    (0,external_wp_element_namespaceObject.createElement)(CircleRoot, extends_extends({
+      ref: angleCircleRef,
+      onMouseDown: startDrag,
+      className: "components-angle-picker-control__angle-circle",
+      style: isDragging ? {
+        cursor: 'grabbing'
+      } : undefined
+    }, props), (0,external_wp_element_namespaceObject.createElement)(CircleIndicatorWrapper, {
+      style: value ? {
+        transform: `rotate(${value}deg)`
+      } : undefined,
+      className: "components-angle-picker-control__angle-circle-indicator-wrapper",
+      tabIndex: -1
+    }, (0,external_wp_element_namespaceObject.createElement)(CircleIndicator, {
+      className: "components-angle-picker-control__angle-circle-indicator"
+    })))
+    /* eslint-enable jsx-a11y/no-static-element-interactions */
+
+  );
+}
+
+function getAngle(centerX, centerY, pointX, pointY) {
+  const y = pointY - centerY;
+  const x = pointX - centerX;
+  const angleInRadians = Math.atan2(y, x);
+  const angleInDeg = Math.round(angleInRadians * (180 / Math.PI)) + 90;
+
+  if (angleInDeg < 0) {
+    return 360 + angleInDeg;
+  }
+
+  return angleInDeg;
+}
+
+/* harmony default export */ var angle_circle = (AngleCircle);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/spacer/hook.js
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+const isDefined = o => typeof o !== 'undefined' && o !== null;
+
+function useSpacer(props) {
+  const {
+    className,
+    margin,
+    marginBottom = 2,
+    marginLeft,
+    marginRight,
+    marginTop,
+    marginX,
+    marginY,
+    padding,
+    paddingBottom,
+    paddingLeft,
+    paddingRight,
+    paddingTop,
+    paddingX,
+    paddingY,
+    ...otherProps
+  } = useContextSystem(props, 'Spacer');
+  const cx = useCx();
+  const classes = cx(isDefined(margin) && /*#__PURE__*/emotion_react_browser_esm_css("margin:", space(margin), ";" + ( true ? "" : 0),  true ? "" : 0), isDefined(marginY) && /*#__PURE__*/emotion_react_browser_esm_css("margin-bottom:", space(marginY), ";margin-top:", space(marginY), ";" + ( true ? "" : 0),  true ? "" : 0), isDefined(marginX) && /*#__PURE__*/emotion_react_browser_esm_css("margin-left:", space(marginX), ";margin-right:", space(marginX), ";" + ( true ? "" : 0),  true ? "" : 0), isDefined(marginTop) && /*#__PURE__*/emotion_react_browser_esm_css("margin-top:", space(marginTop), ";" + ( true ? "" : 0),  true ? "" : 0), isDefined(marginBottom) && /*#__PURE__*/emotion_react_browser_esm_css("margin-bottom:", space(marginBottom), ";" + ( true ? "" : 0),  true ? "" : 0), isDefined(marginLeft) && /*#__PURE__*/emotion_react_browser_esm_css("margin-left:", space(marginLeft), ";" + ( true ? "" : 0),  true ? "" : 0), isDefined(marginRight) && /*#__PURE__*/emotion_react_browser_esm_css("margin-right:", space(marginRight), ";" + ( true ? "" : 0),  true ? "" : 0), isDefined(padding) && /*#__PURE__*/emotion_react_browser_esm_css("padding:", space(padding), ";" + ( true ? "" : 0),  true ? "" : 0), isDefined(paddingY) && /*#__PURE__*/emotion_react_browser_esm_css("padding-bottom:", space(paddingY), ";padding-top:", space(paddingY), ";" + ( true ? "" : 0),  true ? "" : 0), isDefined(paddingX) && /*#__PURE__*/emotion_react_browser_esm_css("padding-left:", space(paddingX), ";padding-right:", space(paddingX), ";" + ( true ? "" : 0),  true ? "" : 0), isDefined(paddingTop) && /*#__PURE__*/emotion_react_browser_esm_css("padding-top:", space(paddingTop), ";" + ( true ? "" : 0),  true ? "" : 0), isDefined(paddingBottom) && /*#__PURE__*/emotion_react_browser_esm_css("padding-bottom:", space(paddingBottom), ";" + ( true ? "" : 0),  true ? "" : 0), isDefined(paddingLeft) && /*#__PURE__*/emotion_react_browser_esm_css("padding-left:", space(paddingLeft), ";" + ( true ? "" : 0),  true ? "" : 0), isDefined(paddingRight) && /*#__PURE__*/emotion_react_browser_esm_css("padding-right:", space(paddingRight), ";" + ( true ? "" : 0),  true ? "" : 0), className);
+  return { ...otherProps,
+    className: classes
+  };
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/spacer/component.js
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+function Spacer(props, forwardedRef) {
+  const spacerProps = useSpacer(props);
+  return (0,external_wp_element_namespaceObject.createElement)(component, extends_extends({}, spacerProps, {
+    ref: forwardedRef
+  }));
+}
+/**
+ * `Spacer` is a primitive layout component that providers inner (`padding`) or outer (`margin`) space in-between components. It can also be used to adaptively provide space within an `HStack` or `VStack`.
+ *
+ * `Spacer` comes with a bunch of shorthand props to adjust `margin` and `padding`. The values of these props work as a multiplier to the library's grid system (base of `4px`).
+ *
+ * @example
+ * ```jsx
+ * import { Spacer } from `@wordpress/components`
+ *
+ * function Example() {
+ *   return (
+ *     <View>
+ *       <Spacer>
+ *         <Heading>WordPress.org</Heading>
+ *       </Spacer>
+ *       <Text>
+ *         Code is Poetry
+ *       </Text>
+ *     </View>
+ *   );
+ * }
+ * ```
+ */
+
+
+const ConnectedSpacer = contextConnect(Spacer, 'Spacer');
+/* harmony default export */ var spacer_component = (ConnectedSpacer);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/angle-picker-control/index.js
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+
+
+function AnglePickerControl(_ref) {
+  let {
+    className,
+    label = (0,external_wp_i18n_namespaceObject.__)('Angle'),
+    onChange,
+    value
+  } = _ref;
+
+  const handleOnNumberChange = unprocessedValue => {
+    const inputValue = unprocessedValue !== '' ? parseInt(unprocessedValue, 10) : 0;
+    onChange(inputValue);
+  };
+
+  const classes = classnames_default()('components-angle-picker-control', className);
+  return (0,external_wp_element_namespaceObject.createElement)(angle_picker_control_styles_Root, {
+    className: classes
+  }, (0,external_wp_element_namespaceObject.createElement)(flex_block_component, null, (0,external_wp_element_namespaceObject.createElement)(input_control, {
+    label: label,
+    className: "components-angle-picker-control__input-field",
+    max: 360,
+    min: 0,
+    onChange: handleOnNumberChange,
+    size: "__unstable-large",
+    step: "1",
+    value: value,
+    hideHTMLArrows: true,
+    suffix: (0,external_wp_element_namespaceObject.createElement)(spacer_component, {
+      as: text_component,
+      marginBottom: 0,
+      marginRight: space(3),
+      style: {
+        color: 'var( --wp-admin-theme-color )'
+      }
+    }, "\xB0")
+  })), (0,external_wp_element_namespaceObject.createElement)(flex_item_component, {
+    style: {
+      marginLeft: space(4),
+      marginBottom: space(1),
+      marginTop: 'auto'
+    }
+  }, (0,external_wp_element_namespaceObject.createElement)(angle_circle, {
+    "aria-hidden": "true",
+    value: value,
+    onChange: onChange
+  })));
+}
+
+;// CONCATENATED MODULE: external ["wp","keycodes"]
+var external_wp_keycodes_namespaceObject = window["wp"]["keycodes"];
+;// CONCATENATED MODULE: external ["wp","richText"]
+var external_wp_richText_namespaceObject = window["wp"]["richText"];
+;// CONCATENATED MODULE: external ["wp","a11y"]
+var external_wp_a11y_namespaceObject = window["wp"]["a11y"];
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/autocomplete/get-default-use-items.js
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+function filterOptions(search) {
+  let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
+  let maxResults = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 10;
+  const filtered = [];
+
+  for (let i = 0; i < options.length; i++) {
+    const option = options[i]; // Merge label into keywords.
+
+    let {
+      keywords = []
+    } = option;
+
+    if ('string' === typeof option.label) {
+      keywords = [...keywords, option.label];
+    }
+
+    const isMatch = keywords.some(keyword => search.test((0,external_lodash_namespaceObject.deburr)(keyword)));
+
+    if (!isMatch) {
+      continue;
+    }
+
+    filtered.push(option); // Abort early if max reached.
+
+    if (filtered.length === maxResults) {
+      break;
+    }
+  }
+
+  return filtered;
+}
+
+function getDefaultUseItems(autocompleter) {
+  return filterValue => {
+    const [items, setItems] = (0,external_wp_element_namespaceObject.useState)([]);
+    /*
+     * We support both synchronous and asynchronous retrieval of completer options
+     * but internally treat all as async so we maintain a single, consistent code path.
+     *
+     * Because networks can be slow, and the internet is wonderfully unpredictable,
+     * we don't want two promises updating the state at once. This ensures that only
+     * the most recent promise will act on `optionsData`. This doesn't use the state
+     * because `setState` is batched, and so there's no guarantee that setting
+     * `activePromise` in the state would result in it actually being in `this.state`
+     * before the promise resolves and we check to see if this is the active promise or not.
+     */
+
+    (0,external_wp_element_namespaceObject.useLayoutEffect)(() => {
+      const {
+        options,
+        isDebounced
+      } = autocompleter;
+      const loadOptions = (0,external_lodash_namespaceObject.debounce)(() => {
+        const promise = Promise.resolve(typeof options === 'function' ? options(filterValue) : options).then(optionsData => {
+          if (promise.canceled) {
+            return;
+          }
+
+          const keyedOptions = optionsData.map((optionData, optionIndex) => ({
+            key: `${autocompleter.name}-${optionIndex}`,
+            value: optionData,
+            label: autocompleter.getOptionLabel(optionData),
+            keywords: autocompleter.getOptionKeywords ? autocompleter.getOptionKeywords(optionData) : [],
+            isDisabled: autocompleter.isOptionDisabled ? autocompleter.isOptionDisabled(optionData) : false
+          })); // Create a regular expression to filter the options.
+
+          const search = new RegExp('(?:\\b|\\s|^)' + (0,external_lodash_namespaceObject.escapeRegExp)(filterValue), 'i');
+          setItems(filterOptions(search, keyedOptions));
+        });
+        return promise;
+      }, isDebounced ? 250 : 0);
+      const promise = loadOptions();
+      return () => {
+        loadOptions.cancel();
+
+        if (promise) {
+          promise.canceled = true;
+        }
+      };
+    }, [filterValue]);
+    return [items];
+  };
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/autocomplete/autocompleter-ui.js
+
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+function getAutoCompleterUI(autocompleter) {
+  const useItems = autocompleter.useItems ? autocompleter.useItems : getDefaultUseItems(autocompleter);
+
+  function AutocompleterUI(_ref) {
+    let {
+      filterValue,
+      instanceId,
+      listBoxId,
+      className,
+      selectedIndex,
+      onChangeOptions,
+      onSelect,
+      onReset,
+      value,
+      contentRef
+    } = _ref;
+    const [items] = useItems(filterValue);
+    const anchorRef = (0,external_wp_richText_namespaceObject.useAnchorRef)({
+      ref: contentRef,
+      value
+    });
+    (0,external_wp_element_namespaceObject.useLayoutEffect)(() => {
+      onChangeOptions(items);
+    }, [items]);
+
+    if (!items.length > 0) {
+      return null;
+    }
+
+    return (0,external_wp_element_namespaceObject.createElement)(popover, {
+      focusOnMount: false,
+      onClose: onReset,
+      position: "top right",
+      className: "components-autocomplete__popover",
+      anchorRef: anchorRef
+    }, (0,external_wp_element_namespaceObject.createElement)("div", {
+      id: listBoxId,
+      role: "listbox",
+      className: "components-autocomplete__results"
+    }, (0,external_lodash_namespaceObject.map)(items, (option, index) => (0,external_wp_element_namespaceObject.createElement)(build_module_button, {
+      key: option.key,
+      id: `components-autocomplete-item-${instanceId}-${option.key}`,
+      role: "option",
+      "aria-selected": index === selectedIndex,
+      disabled: option.isDisabled,
+      className: classnames_default()('components-autocomplete__result', className, {
+        'is-selected': index === selectedIndex
+      }),
+      onClick: () => onSelect(option)
+    }, option.label))));
+  }
+
+  return AutocompleterUI;
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/autocomplete/index.js
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+/**
+ * A raw completer option.
+ *
+ * @typedef {*} CompleterOption
+ */
+
+/**
+ * @callback FnGetOptions
+ *
+ * @return {(CompleterOption[]|Promise.<CompleterOption[]>)} The completer options or a promise for them.
+ */
+
+/**
+ * @callback FnGetOptionKeywords
+ * @param {CompleterOption} option a completer option.
+ *
+ * @return {string[]} list of key words to search.
+ */
+
+/**
+ * @callback FnIsOptionDisabled
+ * @param {CompleterOption} option a completer option.
+ *
+ * @return {string[]} whether or not the given option is disabled.
+ */
+
+/**
+ * @callback FnGetOptionLabel
+ * @param {CompleterOption} option a completer option.
+ *
+ * @return {(string|Array.<(string|WPElement)>)} list of react components to render.
+ */
+
+/**
+ * @callback FnAllowContext
+ * @param {string} before the string before the auto complete trigger and query.
+ * @param {string} after  the string after the autocomplete trigger and query.
+ *
+ * @return {boolean} true if the completer can handle.
+ */
+
+/**
+ * @typedef {Object} OptionCompletion
+ * @property {'insert-at-caret'|'replace'} action the intended placement of the completion.
+ * @property {OptionCompletionValue}       value  the completion value.
+ */
+
+/**
+ * A completion value.
+ *
+ * @typedef {(string|WPElement|Object)} OptionCompletionValue
+ */
+
+/**
+ * @callback FnGetOptionCompletion
+ * @param {CompleterOption} value the value of the completer option.
+ * @param {string}          query the text value of the autocomplete query.
+ *
+ * @return {(OptionCompletion|OptionCompletionValue)} the completion for the given option. If an
+ * 													   OptionCompletionValue is returned, the
+ * 													   completion action defaults to `insert-at-caret`.
+ */
+
+/**
+ * @typedef {Object} WPCompleter
+ * @property {string}                           name                a way to identify a completer, useful for selective overriding.
+ * @property {?string}                          className           A class to apply to the popup menu.
+ * @property {string}                           triggerPrefix       the prefix that will display the menu.
+ * @property {(CompleterOption[]|FnGetOptions)} options             the completer options or a function to get them.
+ * @property {?FnGetOptionKeywords}             getOptionKeywords   get the keywords for a given option.
+ * @property {?FnIsOptionDisabled}              isOptionDisabled    get whether or not the given option is disabled.
+ * @property {FnGetOptionLabel}                 getOptionLabel      get the label for a given option.
+ * @property {?FnAllowContext}                  allowContext        filter the context under which the autocomplete activates.
+ * @property {FnGetOptionCompletion}            getOptionCompletion get the completion associated with a given option.
+ */
+
+function useAutocomplete(_ref) {
+  let {
+    record,
+    onChange,
+    onReplace,
+    completers,
+    contentRef
+  } = _ref;
+  const debouncedSpeak = (0,external_wp_compose_namespaceObject.useDebounce)(external_wp_a11y_namespaceObject.speak, 500);
+  const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(useAutocomplete);
+  const [selectedIndex, setSelectedIndex] = (0,external_wp_element_namespaceObject.useState)(0);
+  const [filteredOptions, setFilteredOptions] = (0,external_wp_element_namespaceObject.useState)([]);
+  const [filterValue, setFilterValue] = (0,external_wp_element_namespaceObject.useState)('');
+  const [autocompleter, setAutocompleter] = (0,external_wp_element_namespaceObject.useState)(null);
+  const [AutocompleterUI, setAutocompleterUI] = (0,external_wp_element_namespaceObject.useState)(null);
+  const [backspacing, setBackspacing] = (0,external_wp_element_namespaceObject.useState)(false);
+
+  function insertCompletion(replacement) {
+    const end = record.start;
+    const start = end - autocompleter.triggerPrefix.length - filterValue.length;
+    const toInsert = (0,external_wp_richText_namespaceObject.create)({
+      html: (0,external_wp_element_namespaceObject.renderToString)(replacement)
+    });
+    onChange((0,external_wp_richText_namespaceObject.insert)(record, toInsert, start, end));
+  }
+
+  function select(option) {
+    const {
+      getOptionCompletion
+    } = autocompleter || {};
+
+    if (option.isDisabled) {
+      return;
+    }
+
+    if (getOptionCompletion) {
+      const completion = getOptionCompletion(option.value, filterValue);
+      const {
+        action,
+        value
+      } = undefined === completion.action || undefined === completion.value ? {
+        action: 'insert-at-caret',
+        value: completion
+      } : completion;
+
+      if ('replace' === action) {
+        onReplace([value]); // When replacing, the component will unmount, so don't reset
+        // state (below) on an unmounted component.
+
+        return;
+      } else if ('insert-at-caret' === action) {
+        insertCompletion(value);
+      }
+    } // Reset autocomplete state after insertion rather than before
+    // so insertion events don't cause the completion menu to redisplay.
+
+
+    reset();
+  }
+
+  function reset() {
+    setSelectedIndex(0);
+    setFilteredOptions([]);
+    setFilterValue('');
+    setAutocompleter(null);
+    setAutocompleterUI(null);
+  }
+
+  function announce(options) {
+    if (!debouncedSpeak) {
+      return;
+    }
+
+    if (!!options.length) {
+      debouncedSpeak((0,external_wp_i18n_namespaceObject.sprintf)(
+      /* translators: %d: number of results. */
+      (0,external_wp_i18n_namespaceObject._n)('%d result found, use up and down arrow keys to navigate.', '%d results found, use up and down arrow keys to navigate.', options.length), options.length), 'assertive');
+    } else {
+      debouncedSpeak((0,external_wp_i18n_namespaceObject.__)('No results.'), 'assertive');
+    }
+  }
+  /**
+   * Load options for an autocompleter.
+   *
+   * @param {Array} options
+   */
+
+
+  function onChangeOptions(options) {
+    setSelectedIndex(options.length === filteredOptions.length ? selectedIndex : 0);
+    setFilteredOptions(options);
+    announce(options);
+  }
+
+  function handleKeyDown(event) {
+    setBackspacing(event.keyCode === external_wp_keycodes_namespaceObject.BACKSPACE);
+
+    if (!autocompleter) {
+      return;
+    }
+
+    if (filteredOptions.length === 0) {
+      return;
+    }
+
+    if (event.defaultPrevented) {
+      return;
+    }
+
+    switch (event.keyCode) {
+      case external_wp_keycodes_namespaceObject.UP:
+        setSelectedIndex((selectedIndex === 0 ? filteredOptions.length : selectedIndex) - 1);
+        break;
+
+      case external_wp_keycodes_namespaceObject.DOWN:
+        setSelectedIndex((selectedIndex + 1) % filteredOptions.length);
+        break;
+
+      case external_wp_keycodes_namespaceObject.ESCAPE:
+        setAutocompleter(null);
+        setAutocompleterUI(null);
+        event.preventDefault();
+        break;
+
+      case external_wp_keycodes_namespaceObject.ENTER:
+        select(filteredOptions[selectedIndex]);
+        break;
+
+      case external_wp_keycodes_namespaceObject.LEFT:
+      case external_wp_keycodes_namespaceObject.RIGHT:
+        reset();
+        return;
+
+      default:
+        return;
+    } // Any handled keycode should prevent original behavior. This relies on
+    // the early return in the default case.
+
+
+    event.preventDefault();
+  }
+
+  let textContent;
+
+  if ((0,external_wp_richText_namespaceObject.isCollapsed)(record)) {
+    textContent = (0,external_wp_richText_namespaceObject.getTextContent)((0,external_wp_richText_namespaceObject.slice)(record, 0));
+  }
+
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    if (!textContent) {
+      reset();
+      return;
+    }
+
+    const text = (0,external_lodash_namespaceObject.deburr)(textContent);
+    const textAfterSelection = (0,external_wp_richText_namespaceObject.getTextContent)((0,external_wp_richText_namespaceObject.slice)(record, undefined, (0,external_wp_richText_namespaceObject.getTextContent)(record).length));
+    const completer = (0,external_lodash_namespaceObject.find)(completers, _ref2 => {
+      let {
+        triggerPrefix,
+        allowContext
+      } = _ref2;
+      const index = text.lastIndexOf(triggerPrefix);
+
+      if (index === -1) {
+        return false;
+      }
+
+      const textWithoutTrigger = text.slice(index + triggerPrefix.length);
+      const tooDistantFromTrigger = textWithoutTrigger.length > 50; // 50 chars seems to be a good limit.
+      // This is a final barrier to prevent the effect from completing with
+      // an extremely long string, which causes the editor to slow-down
+      // significantly. This could happen, for example, if `matchingWhileBackspacing`
+      // is true and one of the "words" end up being too long. If that's the case,
+      // it will be caught by this guard.
+
+      if (tooDistantFromTrigger) return false;
+      const mismatch = filteredOptions.length === 0;
+      const wordsFromTrigger = textWithoutTrigger.split(/\s/); // We need to allow the effect to run when not backspacing and if there
+      // was a mismatch. i.e when typing a trigger + the match string or when
+      // clicking in an existing trigger word on the page. We do that if we
+      // detect that we have one word from trigger in the current textual context.
+      //
+      // Ex.: "Some text @a" <-- "@a" will be detected as the trigger word and
+      // allow the effect to run. It will run until there's a mismatch.
+
+      const hasOneTriggerWord = wordsFromTrigger.length === 1; // This is used to allow the effect to run when backspacing and if
+      // "touching" a word that "belongs" to a trigger. We consider a "trigger
+      // word" any word up to the limit of 3 from the trigger character.
+      // Anything beyond that is ignored if there's a mismatch. This allows
+      // us to "escape" a mismatch when backspacing, but still imposing some
+      // sane limits.
+      //
+      // Ex: "Some text @marcelo sekkkk" <--- "kkkk" caused a mismatch, but
+      // if the user presses backspace here, it will show the completion popup again.
+
+      const matchingWhileBackspacing = backspacing && textWithoutTrigger.split(/\s/).length <= 3;
+
+      if (mismatch && !(matchingWhileBackspacing || hasOneTriggerWord)) {
+        return false;
+      }
+
+      if (allowContext && !allowContext(text.slice(0, index), textAfterSelection)) {
+        return false;
+      }
+
+      if (/^\s/.test(textWithoutTrigger) || /\s\s+$/.test(textWithoutTrigger)) {
+        return false;
+      }
+
+      return /[\u0000-\uFFFF]*$/.test(textWithoutTrigger);
+    });
+
+    if (!completer) {
+      reset();
+      return;
+    }
+
+    const safeTrigger = (0,external_lodash_namespaceObject.escapeRegExp)(completer.triggerPrefix);
+    const match = text.slice(text.lastIndexOf(completer.triggerPrefix)).match(new RegExp(`${safeTrigger}([\u0000-\uFFFF]*)$`));
+    const query = match && match[1];
+    setAutocompleter(completer);
+    setAutocompleterUI(() => completer !== autocompleter ? getAutoCompleterUI(completer) : AutocompleterUI);
+    setFilterValue(query);
+  }, [textContent]);
+  const {
+    key: selectedKey = ''
+  } = filteredOptions[selectedIndex] || {};
+  const {
+    className
+  } = autocompleter || {};
+  const isExpanded = !!autocompleter && filteredOptions.length > 0;
+  const listBoxId = isExpanded ? `components-autocomplete-listbox-${instanceId}` : null;
+  const activeId = isExpanded ? `components-autocomplete-item-${instanceId}-${selectedKey}` : null;
+  const hasSelection = record.start !== undefined;
+  return {
+    listBoxId,
+    activeId,
+    onKeyDown: handleKeyDown,
+    popover: hasSelection && AutocompleterUI && (0,external_wp_element_namespaceObject.createElement)(AutocompleterUI, {
+      className: className,
+      filterValue: filterValue,
+      instanceId: instanceId,
+      listBoxId: listBoxId,
+      selectedIndex: selectedIndex,
+      onChangeOptions: onChangeOptions,
+      onSelect: select,
+      value: record,
+      contentRef: contentRef,
+      reset: reset
+    })
+  };
+}
+
+function useAutocompleteProps(options) {
+  const ref = (0,external_wp_element_namespaceObject.useRef)();
+  const onKeyDownRef = (0,external_wp_element_namespaceObject.useRef)();
+  const {
+    popover,
+    listBoxId,
+    activeId,
+    onKeyDown
+  } = useAutocomplete({ ...options,
+    contentRef: ref
+  });
+  onKeyDownRef.current = onKeyDown;
+  return {
+    ref: (0,external_wp_compose_namespaceObject.useMergeRefs)([ref, (0,external_wp_compose_namespaceObject.useRefEffect)(element => {
+      function _onKeyDown(event) {
+        onKeyDownRef.current(event);
+      }
+
+      element.addEventListener('keydown', _onKeyDown);
+      return () => {
+        element.removeEventListener('keydown', _onKeyDown);
+      };
+    }, [])]),
+    children: popover,
+    'aria-autocomplete': listBoxId ? 'list' : undefined,
+    'aria-owns': listBoxId,
+    'aria-activedescendant': activeId
+  };
+}
+function Autocomplete(_ref3) {
+  let {
+    children,
+    isSelected,
+    ...options
+  } = _ref3;
+  const {
+    popover,
+    ...props
+  } = useAutocomplete(options);
+  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, children(props), isSelected && popover);
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/font-values.js
+/* harmony default export */ var font_values = ({
+  'default.fontFamily': "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif",
+  'default.fontSize': '13px',
+  'helpText.fontSize': '12px',
+  mobileTextMinFontSize: '16px'
+});
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/font.js
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+/**
+ *
+ * @param {keyof FONT} value Path of value from `FONT`
+ * @return {string} Font rule value
+ */
+
+function font(value) {
+  return (0,external_lodash_namespaceObject.get)(font_values, value, '');
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/base-control/styles/base-control-styles.js
+
+
+function base_control_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+const base_control_styles_Wrapper = emotion_styled_base_browser_esm("div",  true ? {
+  target: "ej5x27r4"
+} : 0)("font-family:", font('default.fontFamily'), ";font-size:", font('default.fontSize'), ";" + ( true ? "" : 0));
+
+const deprecatedMarginField = _ref2 => {
+  let {
+    __nextHasNoMarginBottom = false
+  } = _ref2;
+  return !__nextHasNoMarginBottom && /*#__PURE__*/emotion_react_browser_esm_css("margin-bottom:", space(2), ";" + ( true ? "" : 0),  true ? "" : 0);
+};
+
+const StyledField = emotion_styled_base_browser_esm("div",  true ? {
+  target: "ej5x27r3"
+} : 0)(deprecatedMarginField, " .components-panel__row &{margin-bottom:inherit;}" + ( true ? "" : 0));
+const labelStyles = /*#__PURE__*/emotion_react_browser_esm_css("display:inline-block;margin-bottom:", space(2), ";" + ( true ? "" : 0),  true ? "" : 0);
+const StyledLabel = emotion_styled_base_browser_esm("label",  true ? {
+  target: "ej5x27r2"
+} : 0)(labelStyles, ";" + ( true ? "" : 0));
+
+var base_control_styles_ref =  true ? {
+  name: "11yad0w",
+  styles: "margin-bottom:revert"
+} : 0;
+
+const deprecatedMarginHelp = _ref3 => {
+  let {
+    __nextHasNoMarginBottom = false
+  } = _ref3;
+  return !__nextHasNoMarginBottom && base_control_styles_ref;
+};
+
+const StyledHelp = emotion_styled_base_browser_esm("p",  true ? {
+  target: "ej5x27r1"
+} : 0)("margin-top:", space(2), ";margin-bottom:0;font-size:", font('helpText.fontSize'), ";font-style:normal;color:", COLORS.mediumGray.text, ";", deprecatedMarginHelp, ";" + ( true ? "" : 0));
+const StyledVisualLabel = emotion_styled_base_browser_esm("span",  true ? {
+  target: "ej5x27r0"
+} : 0)(labelStyles, ";" + ( true ? "" : 0));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/base-control/index.js
+
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+/**
+ * `BaseControl` is a component used to generate labels and help text for components handling user inputs.
+ *
+ * @example
+ * // Render a `BaseControl` for a textarea input
+ * import { BaseControl } from '@wordpress/components';
+ *
+ * // The `id` prop is necessary to accessibly associate the label with the textarea
+ * const MyBaseControl = () => (
+ *   <BaseControl id="textarea-1" label="Text" help="Enter some text" __nextHasNoMarginBottom={ true }>
+ *     <textarea id="textarea-1" />
+ *   </BaseControl>
+ * );
+ */
+
+const BaseControl = _ref => {
+  let {
+    __nextHasNoMarginBottom = false,
+    id,
+    label,
+    hideLabelFromVision = false,
+    help,
+    className,
+    children
+  } = _ref;
+  return (0,external_wp_element_namespaceObject.createElement)(base_control_styles_Wrapper, {
+    className: classnames_default()('components-base-control', className)
+  }, (0,external_wp_element_namespaceObject.createElement)(StyledField, {
+    className: "components-base-control__field" // TODO: Official deprecation for this should start after all internal usages have been migrated
+    ,
+    __nextHasNoMarginBottom: __nextHasNoMarginBottom
+  }, label && id && (hideLabelFromVision ? (0,external_wp_element_namespaceObject.createElement)(visually_hidden_component, {
+    as: "label",
+    htmlFor: id
+  }, label) : (0,external_wp_element_namespaceObject.createElement)(StyledLabel, {
+    className: "components-base-control__label",
+    htmlFor: id
+  }, label)), label && !id && (hideLabelFromVision ? (0,external_wp_element_namespaceObject.createElement)(visually_hidden_component, {
+    as: "label"
+  }, label) : (0,external_wp_element_namespaceObject.createElement)(BaseControl.VisualLabel, null, label)), children), !!help && (0,external_wp_element_namespaceObject.createElement)(StyledHelp, {
+    id: id ? id + '__help' : undefined,
+    className: "components-base-control__help",
+    __nextHasNoMarginBottom: __nextHasNoMarginBottom
+  }, help));
+};
+/**
+ * `BaseControl.VisualLabel` is used to render a purely visual label inside a `BaseControl` component.
+ *
+ * It should only be used in cases where the children being rendered inside `BaseControl` are already accessibly labeled,
+ * e.g., a button, but we want an additional visual label for that section equivalent to the labels `BaseControl` would
+ * otherwise use if the `label` prop was passed.
+ *
+ * @example
+ * import { BaseControl } from '@wordpress/components';
+ *
+ * const MyBaseControl = () => (
+ * 	<BaseControl help="This button is already accessibly labeled.">
+ * 		<BaseControl.VisualLabel>Author</BaseControl.VisualLabel>
+ * 		<Button>Select an author</Button>
+ * 	</BaseControl>
+ * );
+ */
+
+const VisualLabel = _ref2 => {
+  let {
+    className,
+    children
+  } = _ref2;
+  return (0,external_wp_element_namespaceObject.createElement)(StyledVisualLabel, {
+    className: classnames_default()('components-base-control__label', className)
+  }, children);
+};
+BaseControl.VisualLabel = VisualLabel;
+/* harmony default export */ var base_control = (BaseControl);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/link.js
+
+
+/**
+ * WordPress dependencies
+ */
+
+const link_link = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
+  xmlns: "http://www.w3.org/2000/svg",
+  viewBox: "0 0 24 24"
+}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
+  d: "M15.6 7.2H14v1.5h1.6c2 0 3.7 1.7 3.7 3.7s-1.7 3.7-3.7 3.7H14v1.5h1.6c2.8 0 5.2-2.3 5.2-5.2 0-2.9-2.3-5.2-5.2-5.2zM4.7 12.4c0-2 1.7-3.7 3.7-3.7H10V7.2H8.4c-2.9 0-5.2 2.3-5.2 5.2 0 2.9 2.3 5.2 5.2 5.2H10v-1.5H8.4c-2 0-3.7-1.7-3.7-3.7zm4.6.9h5.3v-1.5H9.3v1.5z"
+}));
+/* harmony default export */ var library_link = (link_link);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/link-off.js
+
+
+/**
+ * WordPress dependencies
+ */
+
+const linkOff = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
+  xmlns: "http://www.w3.org/2000/svg",
+  viewBox: "0 0 24 24"
+}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
+  d: "M15.6 7.3h-.7l1.6-3.5-.9-.4-3.9 8.5H9v1.5h2l-1.3 2.8H8.4c-2 0-3.7-1.7-3.7-3.7s1.7-3.7 3.7-3.7H10V7.3H8.4c-2.9 0-5.2 2.3-5.2 5.2 0 2.9 2.3 5.2 5.2 5.2H9l-1.4 3.2.9.4 5.7-12.5h1.4c2 0 3.7 1.7 3.7 3.7s-1.7 3.7-3.7 3.7H14v1.5h1.6c2.9 0 5.2-2.3 5.2-5.2 0-2.9-2.4-5.2-5.2-5.2z"
+}));
+/* harmony default export */ var link_off = (linkOff);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/border-box-control/styles.js
+function border_box_control_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+const BorderBoxControl = /*#__PURE__*/emotion_react_browser_esm_css( true ? "" : 0,  true ? "" : 0);
+const LinkedBorderControl =  true ? {
+  name: "82a6rk",
+  styles: "flex:1"
+} : 0;
+const BorderBoxControlLinkedButton =  true ? {
+  name: "3gg0za",
+  styles: "flex:0;flex-basis:36px;margin-top:7px"
+} : 0;
+
+const BorderBoxStyleWithFallback = border => {
+  const {
+    color = COLORS.gray[200],
+    style = 'solid',
+    width = config_values.borderWidth
+  } = border || {};
+  const clampedWidth = width !== config_values.borderWidth ? `clamp(1px, ${width}, 10px)` : width;
+  const hasVisibleBorder = !!width && width !== '0' || !!color;
+  const borderStyle = hasVisibleBorder ? style || 'solid' : style;
+  return `${color} ${borderStyle} ${clampedWidth}`;
+};
+
+const BorderBoxControlVisualizer = borders => {
+  return /*#__PURE__*/emotion_react_browser_esm_css("position:absolute;top:20px;right:30px;bottom:20px;left:30px;border-top:", BorderBoxStyleWithFallback(borders === null || borders === void 0 ? void 0 : borders.top), ";border-bottom:", BorderBoxStyleWithFallback(borders === null || borders === void 0 ? void 0 : borders.bottom), ";", rtl({
+    borderLeft: BorderBoxStyleWithFallback(borders === null || borders === void 0 ? void 0 : borders.left)
+  })(), " ", rtl({
+    borderRight: BorderBoxStyleWithFallback(borders === null || borders === void 0 ? void 0 : borders.right)
+  })(), ";" + ( true ? "" : 0),  true ? "" : 0);
+};
+const BorderBoxControlSplitControls = /*#__PURE__*/emotion_react_browser_esm_css("position:relative;flex:1;", rtl({
+  marginRight: space(3)
+}, {
+  marginLeft: space(3)
+})(), ";" + ( true ? "" : 0),  true ? "" : 0);
+const CenteredBorderControl =  true ? {
+  name: "1nwbfnf",
+  styles: "grid-column:span 2;margin:0 auto"
+} : 0;
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/border-box-control/border-box-control-linked-button/hook.js
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+function useBorderBoxControlLinkedButton(props) {
+  const {
+    className,
+    ...otherProps
+  } = useContextSystem(props, 'BorderBoxControlLinkedButton'); // Generate class names.
+
+  const cx = useCx();
+  const classes = (0,external_wp_element_namespaceObject.useMemo)(() => {
+    return cx(BorderBoxControlLinkedButton, className);
+  }, [className]);
+  return { ...otherProps,
+    className: classes
+  };
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/border-box-control/border-box-control-linked-button/component.js
+
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+
+const component_BorderBoxControlLinkedButton = (props, forwardedRef) => {
+  const {
+    className,
+    isLinked,
+    ...buttonProps
+  } = useBorderBoxControlLinkedButton(props);
+  const label = isLinked ? (0,external_wp_i18n_namespaceObject.__)('Unlink sides') : (0,external_wp_i18n_namespaceObject.__)('Link sides');
+  return (0,external_wp_element_namespaceObject.createElement)(tooltip, {
+    text: label
+  }, (0,external_wp_element_namespaceObject.createElement)(component, {
+    className: className
+  }, (0,external_wp_element_namespaceObject.createElement)(build_module_button, extends_extends({}, buttonProps, {
+    variant: isLinked ? 'primary' : 'secondary',
+    isSmall: true,
+    icon: isLinked ? library_link : link_off,
+    iconSize: 16,
+    "aria-label": label,
+    ref: forwardedRef
+  }))));
+};
+
+const ConnectedBorderBoxControlLinkedButton = contextConnect(component_BorderBoxControlLinkedButton, 'BorderBoxControlLinkedButton');
+/* harmony default export */ var border_box_control_linked_button_component = (ConnectedBorderBoxControlLinkedButton);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/border-box-control/border-box-control-visualizer/hook.js
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+function useBorderBoxControlVisualizer(props) {
+  const {
+    className,
+    value,
+    ...otherProps
+  } = useContextSystem(props, 'BorderBoxControlVisualizer'); // Generate class names.
+
+  const cx = useCx();
+  const classes = (0,external_wp_element_namespaceObject.useMemo)(() => {
+    return cx(BorderBoxControlVisualizer(value), className);
+  }, [className, value, rtl.watch()]);
+  return { ...otherProps,
+    className: classes,
+    value
+  };
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/border-box-control/border-box-control-visualizer/component.js
+
+
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+const component_BorderBoxControlVisualizer = (props, forwardedRef) => {
+  const {
+    value,
+    ...otherProps
+  } = useBorderBoxControlVisualizer(props);
+  return (0,external_wp_element_namespaceObject.createElement)(component, extends_extends({}, otherProps, {
+    ref: forwardedRef
+  }));
+};
+
+const ConnectedBorderBoxControlVisualizer = contextConnect(component_BorderBoxControlVisualizer, 'BorderBoxControlVisualizer');
+/* harmony default export */ var border_box_control_visualizer_component = (ConnectedBorderBoxControlVisualizer);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/close-small.js
+
+
+/**
+ * WordPress dependencies
+ */
+
+const closeSmall = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
+  xmlns: "http://www.w3.org/2000/svg",
+  viewBox: "0 0 24 24"
+}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
+  d: "M12 13.06l3.712 3.713 1.061-1.06L13.061 12l3.712-3.712-1.06-1.06L12 10.938 8.288 7.227l-1.061 1.06L10.939 12l-3.712 3.712 1.06 1.061L12 13.061z"
+}));
+/* harmony default export */ var close_small = (closeSmall);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/line-solid.js
+
+
+/**
+ * WordPress dependencies
+ */
+
+const lineSolid = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
+  xmlns: "http://www.w3.org/2000/svg",
+  width: "24",
+  height: "24",
+  fill: "none"
+}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
+  d: "M5 11.25h14v1.5H5z"
+}));
+/* harmony default export */ var line_solid = (lineSolid);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/line-dashed.js
+
+
+/**
+ * WordPress dependencies
+ */
+
+const lineDashed = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
+  xmlns: "http://www.w3.org/2000/svg",
+  width: "24",
+  height: "24",
+  fill: "none"
+}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
+  fillRule: "evenodd",
+  d: "M5 11.25h3v1.5H5v-1.5zm5.5 0h3v1.5h-3v-1.5zm8.5 0h-3v1.5h3v-1.5z",
+  clipRule: "evenodd"
+}));
+/* harmony default export */ var line_dashed = (lineDashed);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/line-dotted.js
+
+
+/**
+ * WordPress dependencies
+ */
+
+const lineDotted = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
+  xmlns: "http://www.w3.org/2000/svg",
+  width: "24",
+  height: "24",
+  fill: "none"
+}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
+  fillRule: "evenodd",
+  d: "M5.25 11.25h1.5v1.5h-1.5v-1.5zm3 0h1.5v1.5h-1.5v-1.5zm4.5 0h-1.5v1.5h1.5v-1.5zm1.5 0h1.5v1.5h-1.5v-1.5zm4.5 0h-1.5v1.5h1.5v-1.5z",
+  clipRule: "evenodd"
+}));
+/* harmony default export */ var line_dotted = (lineDotted);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/number-control/styles/number-control-styles.js
+
+
+function number_control_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
+
+// @ts-nocheck
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+var number_control_styles_ref =  true ? {
+  name: "euqsgg",
+  styles: "input[type='number']::-webkit-outer-spin-button,input[type='number']::-webkit-inner-spin-button{-webkit-appearance:none!important;margin:0!important;}input[type='number']{-moz-appearance:textfield;}"
+} : 0;
+
+const htmlArrowStyles = _ref2 => {
+  let {
+    hideHTMLArrows
+  } = _ref2;
+  if (!hideHTMLArrows) return ``;
+  return number_control_styles_ref;
+};
+
+const number_control_styles_Input = /*#__PURE__*/emotion_styled_base_browser_esm(input_control,  true ? {
+  target: "ep48uk90"
+} : 0)(htmlArrowStyles, ";" + ( true ? "" : 0));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/math.js
+/**
+ * External dependencies
+ */
+
+/**
+ * Parses and retrieves a number value.
+ *
+ * @param {unknown} value The incoming value.
+ *
+ * @return {number} The parsed number value.
+ */
+
+function getNumber(value) {
+  const number = Number(value);
+  return isNaN(number) ? 0 : number;
+}
+/**
+ * Safely adds 2 values.
+ *
+ * @param {Array<number|string>} args Values to add together.
+ *
+ * @return {number} The sum of values.
+ */
+
+function add() {
+  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
+    args[_key] = arguments[_key];
+  }
+
+  return args.reduce(
+  /** @type {(sum:number, arg: number|string) => number} */
+  (sum, arg) => sum + getNumber(arg), 0);
+}
+/**
+ * Safely subtracts 2 values.
+ *
+ * @param {Array<number|string>} args Values to subtract together.
+ *
+ * @return {number} The difference of the values.
+ */
+
+function subtract() {
+  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
+    args[_key2] = arguments[_key2];
+  }
+
+  return args.reduce(
+  /** @type {(diff:number, arg: number|string, index:number) => number} */
+  (diff, arg, index) => {
+    const value = getNumber(arg);
+    return index === 0 ? value : diff - value;
+  }, 0);
+}
+/**
+ * Determines the decimal position of a number value.
+ *
+ * @param {number} value The number to evaluate.
+ *
+ * @return {number} The number of decimal places.
+ */
+
+function getPrecision(value) {
+  const split = (value + '').split('.');
+  return split[1] !== undefined ? split[1].length : 0;
+}
+/**
+ * Clamps a value based on a min/max range with rounding
+ *
+ * @param {number} value The value.
+ * @param {number} min   The minimum range.
+ * @param {number} max   The maximum range.
+ * @param {number} step  A multiplier for the value.
+ *
+ * @return {number} The rounded and clamped value.
+ */
+
+
+function roundClamp() {
+  let value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
+  let min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Infinity;
+  let max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Infinity;
+  let step = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
+  const baseValue = getNumber(value);
+  const stepValue = getNumber(step);
+  const precision = getPrecision(step);
+  const rounded = Math.round(baseValue / stepValue) * stepValue;
+  const clampedValue = (0,external_lodash_namespaceObject.clamp)(rounded, min, max);
+  return precision ? getNumber(clampedValue.toFixed(precision)) : clampedValue;
+}
+/**
+ * Clamps a value based on a min/max range with rounding.
+ * Returns a string.
+ *
+ * @param {Parameters<typeof roundClamp>} args Arguments for roundClamp().
+ * @return {string} The rounded and clamped value.
+ */
+
+function roundClampString() {
+  return roundClamp(...arguments).toString();
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/values.js
+/* eslint-disable jsdoc/valid-types */
+
+/**
+ * Determines if a value is null or undefined.
+ *
+ * @template T
+ *
+ * @param {T | null | undefined} value The value to check.
+ * @return {value is T} Whether value is not null or undefined.
+ */
+function isValueDefined(value) {
+  return value !== undefined && value !== null;
+}
+/* eslint-enable jsdoc/valid-types */
+
+/* eslint-disable jsdoc/valid-types */
+
+/**
+ * Determines if a value is empty, null, or undefined.
+ *
+ * @template T
+ *
+ * @param {T | "" | null | undefined} value The value to check.
+ * @return {value is T} Whether value is empty.
+ */
+
+function isValueEmpty(value) {
+  const isEmptyString = value === '';
+  return !isValueDefined(value) || isEmptyString;
+}
+/* eslint-enable jsdoc/valid-types */
+
+/**
+ * Get the first defined/non-null value from an array.
+ *
+ * @template T
+ *
+ * @param {Array<T | null | undefined>} values        Values to derive from.
+ * @param {T}                           fallbackValue Fallback value if there are no defined values.
+ * @return {T} A defined value or the fallback value.
+ */
+
+function getDefinedValue() {
+  var _values$find;
+
+  let values = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
+  let fallbackValue = arguments.length > 1 ? arguments[1] : undefined;
+  return (_values$find = values.find(isValueDefined)) !== null && _values$find !== void 0 ? _values$find : fallbackValue;
+}
+/**
+ * @param {string} [locale]
+ * @return {[RegExp, RegExp]} The delimiter and decimal regexp
+ */
+
+const getDelimiterAndDecimalRegex = locale => {
+  const formatted = Intl.NumberFormat(locale).format(1000.1);
+  const delimiter = formatted[1];
+  const decimal = formatted[formatted.length - 2];
+  return [new RegExp(`\\${delimiter}`, 'g'), new RegExp(`\\${decimal}`, 'g')];
+}; // https://en.wikipedia.org/wiki/Decimal_separator#Current_standards
+
+
+const INTERNATIONAL_THOUSANDS_DELIMITER = / /g;
+const ARABIC_NUMERAL_LOCALES = (/* unused pure expression or super */ null && (['ar', 'fa', 'ur', 'ckb', 'ps']));
+const EASTERN_ARABIC_NUMBERS = /([۰-۹]|[٠-٩])/g;
+/**
+ * Checks to see if a value is a numeric value (`number` or `string`).
+ *
+ * Intentionally ignores whether the thousands delimiters are only
+ * in the thousands marks.
+ *
+ * @param {any}    value
+ * @param {string} [locale]
+ * @return {boolean} Whether value is numeric.
+ */
+
+function isValueNumeric(value) {
+  let locale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : window.navigator.language;
+
+  if (ARABIC_NUMERAL_LOCALES.some(l => locale.startsWith(l))) {
+    locale = 'en-GB';
+
+    if (EASTERN_ARABIC_NUMBERS.test(value)) {
+      value = value.replace(/[٠-٩]/g, (
+      /** @type {string} */
+      d) => '٠١٢٣٤٥٦٧٨٩'.indexOf(d)).replace(/[۰-۹]/g, (
+      /** @type {string} */
+      d) => '۰۱۲۳۴۵۶۷۸۹'.indexOf(d)).replace(/٬/g, ',').replace(/٫/g, '.');
+    }
+  }
+
+  const [delimiterRegexp, decimalRegexp] = getDelimiterAndDecimalRegex(locale);
+  const valueToCheck = typeof value === 'string' ? value.replace(delimiterRegexp, '').replace(decimalRegexp, '.').replace(INTERNATIONAL_THOUSANDS_DELIMITER, '') : value;
+  return !isNaN(parseFloat(valueToCheck)) && isFinite(valueToCheck);
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/number-control/index.js
+
+
+// @ts-nocheck
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+function NumberControl(_ref, ref) {
+  let {
+    __unstableStateReducer: stateReducerProp,
+    className,
+    dragDirection = 'n',
+    hideHTMLArrows = false,
+    isDragEnabled = true,
+    isShiftStepEnabled = true,
+    label,
+    max = Infinity,
+    min = -Infinity,
+    required = false,
+    shiftStep = 10,
+    step = 1,
+    type: typeProp = 'number',
+    value: valueProp,
+    ...props
+  } = _ref;
+  const isStepAny = step === 'any';
+  const baseStep = isStepAny ? 1 : parseFloat(step);
+  const baseValue = roundClamp(0, min, max, baseStep);
+
+  const constrainValue = (value, stepOverride) => {
+    // When step is "any" clamp the value, otherwise round and clamp it.
+    return isStepAny ? Math.min(max, Math.max(min, value)) : roundClamp(value, min, max, stepOverride !== null && stepOverride !== void 0 ? stepOverride : baseStep);
+  };
+
+  const autoComplete = typeProp === 'number' ? 'off' : null;
+  const classes = classnames_default()('components-number-control', className);
+  /**
+   * "Middleware" function that intercepts updates from InputControl.
+   * This allows us to tap into actions to transform the (next) state for
+   * InputControl.
+   *
+   * @param {Object} state  State from InputControl
+   * @param {Object} action Action triggering state change
+   * @return {Object} The updated state to apply to InputControl
+   */
+
+  const numberControlStateReducer = (state, action) => {
+    const nextState = { ...state
+    };
+    const {
+      type,
+      payload
+    } = action;
+    const event = payload === null || payload === void 0 ? void 0 : payload.event;
+    const currentValue = nextState.value;
+    /**
+     * Handles custom UP and DOWN Keyboard events
+     */
+
+    if (type === PRESS_UP || type === PRESS_DOWN) {
+      const enableShift = event.shiftKey && isShiftStepEnabled;
+      const incrementalValue = enableShift ? parseFloat(shiftStep) * baseStep : baseStep;
+      let nextValue = isValueEmpty(currentValue) ? baseValue : currentValue;
+
+      if (event !== null && event !== void 0 && event.preventDefault) {
+        event.preventDefault();
+      }
+
+      if (type === PRESS_UP) {
+        nextValue = add(nextValue, incrementalValue);
+      }
+
+      if (type === PRESS_DOWN) {
+        nextValue = subtract(nextValue, incrementalValue);
+      }
+
+      nextState.value = constrainValue(nextValue, enableShift ? incrementalValue : null);
+    }
+    /**
+     * Handles drag to update events
+     */
+
+
+    if (type === DRAG && isDragEnabled) {
+      const [x, y] = payload.delta;
+      const enableShift = payload.shiftKey && isShiftStepEnabled;
+      const modifier = enableShift ? parseFloat(shiftStep) * baseStep : baseStep;
+      let directionModifier;
+      let delta;
+
+      switch (dragDirection) {
+        case 'n':
+          delta = y;
+          directionModifier = -1;
+          break;
+
+        case 'e':
+          delta = x;
+          directionModifier = (0,external_wp_i18n_namespaceObject.isRTL)() ? -1 : 1;
+          break;
+
+        case 's':
+          delta = y;
+          directionModifier = 1;
+          break;
+
+        case 'w':
+          delta = x;
+          directionModifier = (0,external_wp_i18n_namespaceObject.isRTL)() ? 1 : -1;
+          break;
+      }
+
+      if (delta !== 0) {
+        delta = Math.ceil(Math.abs(delta)) * Math.sign(delta);
+        const distance = delta * modifier * directionModifier;
+        nextState.value = constrainValue(add(currentValue, distance), enableShift ? modifier : null);
+      }
+    }
+    /**
+     * Handles commit (ENTER key press or blur)
+     */
+
+
+    if (type === PRESS_ENTER || type === COMMIT) {
+      const applyEmptyValue = required === false && currentValue === '';
+      nextState.value = applyEmptyValue ? currentValue : constrainValue(currentValue);
+    }
+
+    return nextState;
+  };
+
+  return (0,external_wp_element_namespaceObject.createElement)(number_control_styles_Input, extends_extends({
+    autoComplete: autoComplete,
+    inputMode: "numeric"
+  }, props, {
+    className: classes,
+    dragDirection: dragDirection,
+    hideHTMLArrows: hideHTMLArrows,
+    isDragEnabled: isDragEnabled,
+    label: label,
+    max: max,
+    min: min,
+    ref: ref,
+    required: required,
+    step: step,
+    type: typeProp,
+    value: valueProp,
+    __unstableStateReducer: (state, action) => {
+      var _stateReducerProp;
+
+      const baseState = numberControlStateReducer(state, action);
+      return (_stateReducerProp = stateReducerProp === null || stateReducerProp === void 0 ? void 0 : stateReducerProp(baseState, action)) !== null && _stateReducerProp !== void 0 ? _stateReducerProp : baseState;
+    }
+  }));
+}
+/* harmony default export */ var number_control = ((0,external_wp_element_namespaceObject.forwardRef)(NumberControl));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/unit-control/styles/unit-control-styles.js
+
+
+function unit_control_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+const unit_control_styles_Root = emotion_styled_base_browser_esm("div",  true ? {
+  target: "e1bagdl33"
+} : 0)( true ? {
+  name: "100d0a9",
+  styles: "box-sizing:border-box;position:relative"
+} : 0);
+
+const paddingStyles = _ref2 => {
+  let {
+    disableUnits,
+    size
+  } = _ref2;
+  const paddings = {
+    default: {
+      paddingRight: 8
+    },
+    small: {
+      paddingRight: 8
+    },
+    '__unstable-large': {
+      paddingRight: disableUnits ? 16 : 8
+    }
+  };
+  return /*#__PURE__*/emotion_react_browser_esm_css(rtl(paddings[size])(), ";" + ( true ? "" : 0),  true ? "" : 0);
+};
+
+var unit_control_styles_ref =  true ? {
+  name: "1y65o8",
+  styles: "&::-webkit-outer-spin-button,&::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}"
+} : 0;
+
+const arrowStyles = _ref3 => {
+  let {
+    disableUnits
+  } = _ref3;
+  if (disableUnits) return '';
+  return unit_control_styles_ref;
+}; // TODO: Resolve need to use &&& to increase specificity
+// https://github.com/WordPress/gutenberg/issues/18483
+
+
+const ValueInput = /*#__PURE__*/emotion_styled_base_browser_esm(number_control,  true ? {
+  target: "e1bagdl32"
+} : 0)("&&&{input{appearance:none;-moz-appearance:textfield;display:block;width:100%;", arrowStyles, ";", paddingStyles, ";}}" + ( true ? "" : 0));
+const baseUnitLabelStyles = /*#__PURE__*/emotion_react_browser_esm_css("appearance:none;background:transparent;border-radius:2px;border:none;box-sizing:border-box;color:", COLORS.darkGray[500], ";display:block;font-size:8px;letter-spacing:-0.5px;outline:none;padding:2px 1px;text-align-last:center;text-transform:uppercase;width:20px;", rtl({
+  borderTopLeftRadius: 0,
+  borderBottomLeftRadius: 0
+})(), ";" + ( true ? "" : 0),  true ? "" : 0);
+const UnitLabel = emotion_styled_base_browser_esm("div",  true ? {
+  target: "e1bagdl31"
+} : 0)("&&&{pointer-events:none;", baseUnitLabelStyles, ";}" + ( true ? "" : 0));
+const UnitSelect = emotion_styled_base_browser_esm("select",  true ? {
+  target: "e1bagdl30"
+} : 0)("&&&{", baseUnitLabelStyles, ";cursor:pointer;border:1px solid transparent;height:100%;&:hover{background-color:", COLORS.lightGray[300], ";}&:focus{border-color:", COLORS.ui.borderFocus, ";outline:2px solid transparent;outline-offset:0;}&:disabled{cursor:initial;&:hover{background-color:transparent;}}}" + ( true ? "" : 0));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/border-control/styles.js
+function border_control_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+const styles_labelStyles =  true ? {
+  name: "f3vz0n",
+  styles: "font-weight:500"
+} : 0;
+const borderControl =  true ? {
+  name: "bjn8wh",
+  styles: "position:relative"
+} : 0;
+const innerWrapper = () => /*#__PURE__*/emotion_react_browser_esm_css("border:", config_values.borderWidth, " solid ", COLORS.gray[200], ";border-radius:2px;flex:1 0 40%;background:#fff;", unit_control_styles_Root, "{flex:1;", rtl({
+  marginLeft: 0
+})(), ";}" + ( true ? "" : 0),  true ? "" : 0);
+const styles_wrapperWidth = width => {
+  return /*#__PURE__*/emotion_react_browser_esm_css("width:", width, ";flex:0 0 auto;" + ( true ? "" : 0),  true ? "" : 0);
+};
+const borderControlDropdown = () => /*#__PURE__*/emotion_react_browser_esm_css("background:#fff;", rtl({
+  borderRadius: `1px 0 0 1px`,
+  borderRight: `${config_values.borderWidth} solid ${COLORS.gray[200]}`
+}, {
+  borderRadius: `0 1px 1px 0`,
+  borderLeft: `${config_values.borderWidth} solid ${COLORS.gray[200]}`
+})(), " &&>button{padding:", space(1), ";border-radius:inherit;}" + ( true ? "" : 0),  true ? "" : 0);
+const colorIndicatorBorder = border => {
+  const {
+    color,
+    style
+  } = border || {};
+  const fallbackColor = !!style && style !== 'none' ? COLORS.gray[300] : undefined;
+  return /*#__PURE__*/emotion_react_browser_esm_css("border-style:", style === 'none' ? 'solid' : style, ";border-color:", color || fallbackColor, ";" + ( true ? "" : 0),  true ? "" : 0);
+};
+const colorIndicatorWrapper = border => {
+  const {
+    style
+  } = border || {};
+  return /*#__PURE__*/emotion_react_browser_esm_css("border-radius:9999px;border:2px solid transparent;", style ? colorIndicatorBorder(border) : undefined, " width:28px;height:28px;padding:2px;&>span{background:linear-gradient(\n\t\t\t\t-45deg,\n\t\t\t\ttransparent 48%,\n\t\t\t\trgb( 0 0 0 / 20% ) 48%,\n\t\t\t\trgb( 0 0 0 / 20% ) 52%,\n\t\t\t\ttransparent 52%\n\t\t\t);}" + ( true ? "" : 0),  true ? "" : 0);
+};
+const borderControlPopover =  true ? {
+  name: "1phacrs",
+  styles: "&&>div>div{padding:0;}"
+} : 0;
+const borderControlPopoverControls = /*#__PURE__*/emotion_react_browser_esm_css("padding:", space(2), ";>div:first-of-type>", StyledLabel, "{margin-bottom:0;", styles_labelStyles, ";}&& ", StyledLabel, "+button:not( .has-text ){min-width:24px;padding:0;}" + ( true ? "" : 0),  true ? "" : 0);
+const borderControlPopoverContent = /*#__PURE__*/emotion_react_browser_esm_css( true ? "" : 0,  true ? "" : 0);
+const borderColorIndicator = /*#__PURE__*/emotion_react_browser_esm_css( true ? "" : 0,  true ? "" : 0);
+const resetButton = /*#__PURE__*/emotion_react_browser_esm_css("justify-content:center;width:100%;&&{border-top:", config_values.borderWidth, " solid ", COLORS.gray[200], ";height:46px;}" + ( true ? "" : 0),  true ? "" : 0);
+const borderWidthControl = () => /*#__PURE__*/emotion_react_browser_esm_css("&&& ", BackdropUI, "{border:none;}&&& input{", rtl({
+  paddingRight: 0
+})(), ";}" + ( true ? "" : 0),  true ? "" : 0);
+const borderControlStylePicker = /*#__PURE__*/emotion_react_browser_esm_css(StyledLabel, "{", styles_labelStyles, ";}" + ( true ? "" : 0),  true ? "" : 0);
+const borderStyleButton =  true ? {
+  name: "1486260",
+  styles: "&&&&&{min-width:30px;width:30px;height:30px;padding:3px;}"
+} : 0;
+const borderSlider = () => /*#__PURE__*/emotion_react_browser_esm_css("flex:1 1 60%;", rtl({
+  marginRight: space(3)
+})(), " ", StyledField, "{margin-bottom:0;font-size:0;display:flex;}" + ( true ? "" : 0),  true ? "" : 0);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/border-control/border-control-style-picker/hook.js
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+function useBorderControlStylePicker(props) {
+  const {
+    className,
+    ...otherProps
+  } = useContextSystem(props, 'BorderControlStylePicker'); // Generate class names.
+
+  const cx = useCx();
+  const classes = (0,external_wp_element_namespaceObject.useMemo)(() => {
+    return cx(borderControlStylePicker, className);
+  }, [className, cx]);
+  const buttonClassName = (0,external_wp_element_namespaceObject.useMemo)(() => {
+    return cx(borderStyleButton);
+  }, [cx]);
+  return { ...otherProps,
+    className: classes,
+    buttonClassName
+  };
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/border-control/border-control-style-picker/component.js
+
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+
+
+const BORDER_STYLES = [{
+  label: (0,external_wp_i18n_namespaceObject.__)('Solid'),
+  icon: line_solid,
+  value: 'solid'
+}, {
+  label: (0,external_wp_i18n_namespaceObject.__)('Dashed'),
+  icon: line_dashed,
+  value: 'dashed'
+}, {
+  label: (0,external_wp_i18n_namespaceObject.__)('Dotted'),
+  icon: line_dotted,
+  value: 'dotted'
+}];
+
+const component_Label = props => {
+  const {
+    label,
+    hideLabelFromVision
+  } = props;
+
+  if (!label) {
+    return null;
+  }
+
+  return hideLabelFromVision ? (0,external_wp_element_namespaceObject.createElement)(visually_hidden_component, {
+    as: "label"
+  }, label) : (0,external_wp_element_namespaceObject.createElement)(StyledLabel, null, label);
+};
+
+const BorderControlStylePicker = (props, forwardedRef) => {
+  const {
+    buttonClassName,
+    hideLabelFromVision,
+    label,
+    onChange,
+    value,
+    ...otherProps
+  } = useBorderControlStylePicker(props);
+  return (0,external_wp_element_namespaceObject.createElement)(component, extends_extends({}, otherProps, {
+    ref: forwardedRef
+  }), (0,external_wp_element_namespaceObject.createElement)(component_Label, {
+    label: label,
+    hideLabelFromVision: hideLabelFromVision
+  }), (0,external_wp_element_namespaceObject.createElement)(flex_component, {
+    justify: "flex-start",
+    gap: 1
+  }, BORDER_STYLES.map(borderStyle => (0,external_wp_element_namespaceObject.createElement)(build_module_button, {
+    key: borderStyle.value,
+    className: buttonClassName,
+    icon: borderStyle.icon,
+    isSmall: true,
+    isPressed: borderStyle.value === value,
+    onClick: () => onChange(borderStyle.value === value ? undefined : borderStyle.value),
+    "aria-label": borderStyle.label,
+    label: borderStyle.label,
+    showTooltip: true
+  }))));
+};
+
+const ConnectedBorderControlStylePicker = contextConnect(BorderControlStylePicker, 'BorderControlStylePicker');
+/* harmony default export */ var border_control_style_picker_component = (ConnectedBorderControlStylePicker);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/color-indicator/index.js
+
+
+// @ts-nocheck
+
+/**
+ * External dependencies
+ */
+
+
+const ColorIndicator = _ref => {
+  let {
+    className,
+    colorValue,
+    ...props
+  } = _ref;
+  return (0,external_wp_element_namespaceObject.createElement)("span", extends_extends({
+    className: classnames_default()('component-color-indicator', className),
+    style: {
+      background: colorValue
+    }
+  }, props));
+};
+
+/* harmony default export */ var color_indicator = (ColorIndicator);
+
+;// CONCATENATED MODULE: ./node_modules/colord/plugins/a11y.mjs
+var a11y_o=function(o){var t=o/255;return t<.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)},a11y_t=function(t){return.2126*a11y_o(t.r)+.7152*a11y_o(t.g)+.0722*a11y_o(t.b)};/* harmony default export */ function a11y(o){o.prototype.luminance=function(){return o=a11y_t(this.rgba),void 0===(r=2)&&(r=0),void 0===n&&(n=Math.pow(10,r)),Math.round(n*o)/n+0;var o,r,n},o.prototype.contrast=function(r){void 0===r&&(r="#FFF");var n,a,i,e,v,u,d,c=r instanceof o?r:new o(r);return e=this.rgba,v=c.toRgb(),u=a11y_t(e),d=a11y_t(v),n=u>d?(u+.05)/(d+.05):(d+.05)/(u+.05),void 0===(a=2)&&(a=0),void 0===i&&(i=Math.pow(10,a)),Math.floor(i*n)/i+0},o.prototype.isReadable=function(o,t){return void 0===o&&(o="#FFF"),void 0===t&&(t={}),this.contrast(o)>=(e=void 0===(i=(r=t).size)?"normal":i,"AAA"===(a=void 0===(n=r.level)?"AA":n)&&"normal"===e?7:"AA"===a&&"large"===e?3:4.5);var r,n,a,i,e}}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/dropdown/index.js
+
+
+// @ts-nocheck
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+function useObservableState(initialState, onStateChange) {
+  const [state, setState] = (0,external_wp_element_namespaceObject.useState)(initialState);
+  return [state, value => {
+    setState(value);
+
+    if (onStateChange) {
+      onStateChange(value);
+    }
+  }];
+}
+
+function Dropdown(props) {
+  var _popoverProps$anchorR;
+
+  const {
+    renderContent,
+    renderToggle,
+    position = 'bottom right',
+    className,
+    contentClassName,
+    expandOnMobile,
+    headerTitle,
+    focusOnMount,
+    popoverProps,
+    onClose,
+    onToggle
+  } = props;
+  const containerRef = (0,external_wp_element_namespaceObject.useRef)();
+  const [isOpen, setIsOpen] = useObservableState(false, onToggle);
+  (0,external_wp_element_namespaceObject.useEffect)(() => () => {
+    if (onToggle) {
+      onToggle(false);
+    }
+  }, []);
+
+  function toggle() {
+    setIsOpen(!isOpen);
+  }
+  /**
+   * Closes the popover when focus leaves it unless the toggle was pressed or
+   * focus has moved to a separate dialog. The former is to let the toggle
+   * handle closing the popover and the latter is to preserve presence in
+   * case a dialog has opened, allowing focus to return when it's dismissed.
+   */
+
+
+  function closeIfFocusOutside() {
+    const {
+      ownerDocument
+    } = containerRef.current;
+    const dialog = ownerDocument.activeElement.closest('[role="dialog"]');
+
+    if (!containerRef.current.contains(ownerDocument.activeElement) && (!dialog || dialog.contains(containerRef.current))) {
+      close();
+    }
+  }
+
+  function close() {
+    if (onClose) {
+      onClose();
+    }
+
+    setIsOpen(false);
+  }
+
+  const args = {
+    isOpen,
+    onToggle: toggle,
+    onClose: close
+  };
+  return (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: classnames_default()('components-dropdown', className),
+    ref: containerRef // Some UAs focus the closest focusable parent when the toggle is
+    // clicked. Making this div focusable ensures such UAs will focus
+    // it and `closeIfFocusOutside` can tell if the toggle was clicked.
+    ,
+    tabIndex: "-1"
+  }, renderToggle(args), isOpen && (0,external_wp_element_namespaceObject.createElement)(popover, extends_extends({
+    position: position,
+    onClose: close,
+    onFocusOutside: closeIfFocusOutside,
+    expandOnMobile: expandOnMobile,
+    headerTitle: headerTitle,
+    focusOnMount: focusOnMount
+  }, popoverProps, {
+    anchorRef: (_popoverProps$anchorR = popoverProps === null || popoverProps === void 0 ? void 0 : popoverProps.anchorRef) !== null && _popoverProps$anchorR !== void 0 ? _popoverProps$anchorR : containerRef.current,
+    className: classnames_default()('components-dropdown__content', popoverProps ? popoverProps.className : undefined, contentClassName)
+  }), renderContent(args)));
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/settings.js
+
+
+/**
+ * WordPress dependencies
+ */
+
+const settings = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
+  xmlns: "http://www.w3.org/2000/svg",
+  viewBox: "0 0 24 24"
+}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
+  d: "M14.5 13.8c-1.1 0-2.1.7-2.4 1.8H4V17h8.1c.3 1 1.3 1.8 2.4 1.8s2.1-.7 2.4-1.8H20v-1.5h-3.1c-.3-1-1.3-1.7-2.4-1.7zM11.9 7c-.3-1-1.3-1.8-2.4-1.8S7.4 6 7.1 7H4v1.5h3.1c.3 1 1.3 1.8 2.4 1.8s2.1-.7 2.4-1.8H20V7h-8.1z"
+}));
+/* harmony default export */ var library_settings = (settings);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/h-stack/utils.js
+/**
+ * External dependencies
+ */
+
+/** @type {import('./types').Alignments} */
+
+const utils_ALIGNMENTS = {
+  bottom: {
+    align: 'flex-end',
+    justify: 'center'
+  },
+  bottomLeft: {
+    align: 'flex-start',
+    justify: 'flex-end'
+  },
+  bottomRight: {
+    align: 'flex-end',
+    justify: 'flex-end'
+  },
+  center: {
+    align: 'center',
+    justify: 'center'
+  },
+  edge: {
+    align: 'center',
+    justify: 'space-between'
+  },
+  left: {
+    align: 'center',
+    justify: 'flex-start'
+  },
+  right: {
+    align: 'center',
+    justify: 'flex-end'
+  },
+  stretch: {
+    align: 'stretch'
+  },
+  top: {
+    align: 'flex-start',
+    justify: 'center'
+  },
+  topLeft: {
+    align: 'flex-start',
+    justify: 'flex-start'
+  },
+  topRight: {
+    align: 'flex-start',
+    justify: 'flex-end'
+  }
+};
+/** @type {import('./types').Alignments} */
+
+const V_ALIGNMENTS = {
+  bottom: {
+    justify: 'flex-end',
+    align: 'center'
+  },
+  bottomLeft: {
+    justify: 'flex-start',
+    align: 'flex-end'
+  },
+  bottomRight: {
+    justify: 'flex-end',
+    align: 'flex-end'
+  },
+  center: {
+    justify: 'center',
+    align: 'center'
+  },
+  edge: {
+    justify: 'space-between',
+    align: 'center'
+  },
+  left: {
+    justify: 'center',
+    align: 'flex-start'
+  },
+  right: {
+    justify: 'center',
+    align: 'flex-end'
+  },
+  stretch: {
+    justify: 'stretch'
+  },
+  top: {
+    justify: 'flex-start',
+    align: 'center'
+  },
+  topLeft: {
+    justify: 'flex-start',
+    align: 'flex-start'
+  },
+  topRight: {
+    justify: 'flex-start',
+    align: 'flex-end'
+  }
+};
+/* eslint-disable jsdoc/valid-types */
+
+/**
+ * @param {import('./types').HStackAlignment | import('react').CSSProperties[ 'alignItems' ]} alignment         Where to align.
+ * @param {import('../flex/types').FlexDirection}                                             [direction='row'] Direction to align.
+ * @return {import('./types').AlignmentProps} Alignment props.
+ */
+
+/* eslint-enable jsdoc/valid-types */
+
+function getAlignmentProps(alignment) {
+  let direction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'row';
+
+  if ((0,external_lodash_namespaceObject.isNil)(alignment)) {
+    return {};
+  }
+
+  const isVertical = direction === 'column';
+  const props = isVertical ? V_ALIGNMENTS : utils_ALIGNMENTS;
+  const alignmentProps = alignment in props ? props[
+  /** @type {keyof typeof ALIGNMENTS} */
+  alignment] : {
+    align: alignment
+  };
+  return alignmentProps;
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/ui/utils/get-valid-children.js
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Gets a collection of available children elements from a React component's children prop.
+ *
+ * @param  children
+ *
+ * @return An array of available children.
+ */
+
+function getValidChildren(children) {
+  if (typeof children === 'string') return [children];
+  return external_wp_element_namespaceObject.Children.toArray(children).filter(child => (0,external_wp_element_namespaceObject.isValidElement)(child));
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/h-stack/hook.js
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+/**
+ *
+ * @param {import('../ui/context').WordPressComponentProps<import('./types').Props, 'div'>} props
+ */
+
+function useHStack(props) {
+  const {
+    alignment = 'edge',
+    children,
+    direction,
+    spacing = 2,
+    ...otherProps
+  } = useContextSystem(props, 'HStack');
+  const align = getAlignmentProps(alignment, direction);
+  const validChildren = getValidChildren(children);
+  const clonedChildren = validChildren.map( // @ts-ignore
+  (
+  /** @type {import('react').ReactElement} */
+  child, index) => {
+    const _key = child.key || `hstack-${index}`;
+
+    const _isSpacer = hasConnectNamespace(child, ['Spacer']);
+
+    if (_isSpacer) {
+      return (0,external_wp_element_namespaceObject.createElement)(flex_item_component, extends_extends({
+        isBlock: true,
+        key: _key
+      }, child.props));
+    }
+
+    return child;
+  });
+  const propsForFlex = {
+    children: clonedChildren,
+    direction,
+    justify: 'center',
+    ...align,
+    ...otherProps,
+    gap: spacing
+  };
+  const flexProps = useFlex(propsForFlex);
+  return flexProps;
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/h-stack/component.js
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+/**
+ * @param {import('../ui/context').WordPressComponentProps<import('./types').Props, 'div'>} props
+ * @param {import('react').ForwardedRef<any>}                                               forwardedRef
+ */
+
+function HStack(props, forwardedRef) {
+  const hStackProps = useHStack(props);
+  return (0,external_wp_element_namespaceObject.createElement)(component, extends_extends({}, hStackProps, {
+    ref: forwardedRef
+  }));
+}
+/**
+ * `HStack` (Horizontal Stack) arranges child elements in a horizontal line.
+ *
+ * `HStack` can render anything inside.
+ *
+ * @example
+ * ```jsx
+ * import {
+ * 	__experimentalHStack as HStack,
+ * 	__experimentalText as Text,
+ * } from `@wordpress/components`;
+ *
+ * function Example() {
+ * 	return (
+ * 		<HStack>
+ * 			<Text>Code</Text>
+ * 			<Text>is</Text>
+ * 			<Text>Poetry</Text>
+ * 		</HStack>
+ * 	);
+ * }
+ * ```
+ */
+
+
+const ConnectedHStack = contextConnect(HStack, 'HStack');
+/* harmony default export */ var h_stack_component = (ConnectedHStack);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/icon/index.js
+/**
+ * WordPress dependencies
+ */
+
+/** @typedef {{icon: JSX.Element, size?: number} & import('@wordpress/primitives').SVGProps} IconProps */
+
+/**
+ * Return an SVG icon.
+ *
+ * @param {IconProps} props icon is the SVG component to render
+ *                          size is a number specifiying the icon size in pixels
+ *                          Other props will be passed to wrapped SVG component
+ *
+ * @return {JSX.Element}  Icon component
+ */
+
+function icon_Icon(_ref) {
+  let {
+    icon,
+    size = 24,
+    ...props
+  } = _ref;
+  return (0,external_wp_element_namespaceObject.cloneElement)(icon, {
+    width: size,
+    height: size,
+    ...props
+  });
+}
+
+/* harmony default export */ var icons_build_module_icon = (icon_Icon);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/chevron-down.js
+
+
+/**
+ * WordPress dependencies
+ */
+
+const chevronDown = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
+  viewBox: "0 0 24 24",
+  xmlns: "http://www.w3.org/2000/svg"
+}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
+  d: "M17.5 11.6L12 16l-5.5-4.4.9-1.2L12 14l4.5-3.6 1 1.2z"
+}));
+/* harmony default export */ var chevron_down = (chevronDown);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/select-control/styles/select-control-styles.js
+
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+const select_control_styles_disabledStyles = _ref => {
+  let {
+    disabled
+  } = _ref;
+  if (!disabled) return '';
+  return /*#__PURE__*/emotion_react_browser_esm_css({
+    color: COLORS.ui.textDisabled
+  },  true ? "" : 0,  true ? "" : 0);
+};
+
+const select_control_styles_fontSizeStyles = _ref2 => {
+  let {
+    selectSize
+  } = _ref2;
+  const sizes = {
+    default: '13px',
+    small: '11px',
+    '__unstable-large': '13px'
+  };
+  const fontSize = sizes[selectSize];
+  const fontSizeMobile = '16px';
+  if (!fontSize) return '';
+  return /*#__PURE__*/emotion_react_browser_esm_css("font-size:", fontSizeMobile, ";@media ( min-width: 600px ){font-size:", fontSize, ";}" + ( true ? "" : 0),  true ? "" : 0);
+};
+
+const select_control_styles_sizeStyles = _ref3 => {
+  let {
+    selectSize
+  } = _ref3;
+  const sizes = {
+    default: {
+      height: 30,
+      lineHeight: 1,
+      minHeight: 30
+    },
+    small: {
+      height: 24,
+      lineHeight: 1,
+      minHeight: 24
+    },
+    '__unstable-large': {
+      height: 40,
+      lineHeight: 1,
+      minHeight: 40
+    }
+  };
+  const style = sizes[selectSize] || sizes.default;
+  return /*#__PURE__*/emotion_react_browser_esm_css(style,  true ? "" : 0,  true ? "" : 0);
+};
+
+const sizePaddings = _ref4 => {
+  let {
+    selectSize = 'default'
+  } = _ref4;
+  const sizes = {
+    default: {
+      paddingLeft: 8,
+      paddingRight: 24
+    },
+    small: {
+      paddingLeft: 8,
+      paddingRight: 24
+    },
+    '__unstable-large': {
+      paddingLeft: 16,
+      paddingRight: 32
+    }
+  };
+  return rtl(sizes[selectSize]);
+}; // TODO: Resolve need to use &&& to increase specificity
+// https://github.com/WordPress/gutenberg/issues/18483
+
+
+const Select = emotion_styled_base_browser_esm("select",  true ? {
+  target: "e1mv6sxx1"
+} : 0)("&&&{appearance:none;background:transparent;box-sizing:border-box;border:none;box-shadow:none!important;color:", COLORS.black, ";display:block;font-family:inherit;margin:0;width:100%;", select_control_styles_disabledStyles, ";", select_control_styles_fontSizeStyles, ";", select_control_styles_sizeStyles, ";", sizePaddings, ";}" + ( true ? "" : 0));
+const DownArrowWrapper = emotion_styled_base_browser_esm("div",  true ? {
+  target: "e1mv6sxx0"
+} : 0)("align-items:center;bottom:0;box-sizing:border-box;display:flex;padding:0 4px;pointer-events:none;position:absolute;top:0;", rtl({
+  right: 0
+}), " svg{display:block;}" + ( true ? "" : 0));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/select-control/index.js
+
+
+
+/**
+ * External dependencies
+ */
+
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+function select_control_useUniqueId(idProp) {
+  const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(SelectControl);
+  const id = `inspector-select-control-${instanceId}`;
+  return idProp || id;
+}
+
+function SelectControl(_ref, ref) {
+  let {
+    className,
+    disabled = false,
+    help,
+    hideLabelFromVision,
+    id: idProp,
+    label,
+    multiple = false,
+    onBlur = external_lodash_namespaceObject.noop,
+    onChange = external_lodash_namespaceObject.noop,
+    onFocus = external_lodash_namespaceObject.noop,
+    options = [],
+    size = 'default',
+    value: valueProp,
+    labelPosition = 'top',
+    children,
+    prefix,
+    suffix,
+    ...props
+  } = _ref;
+  const [isFocused, setIsFocused] = (0,external_wp_element_namespaceObject.useState)(false);
+  const id = select_control_useUniqueId(idProp);
+  const helpId = help ? `${id}__help` : undefined; // Disable reason: A select with an onchange throws a warning.
+
+  if ((0,external_lodash_namespaceObject.isEmpty)(options) && !children) return null;
+
+  const handleOnBlur = event => {
+    onBlur(event);
+    setIsFocused(false);
+  };
+
+  const handleOnFocus = event => {
+    onFocus(event);
+    setIsFocused(true);
+  };
+
+  const handleOnChange = event => {
+    if (multiple) {
+      const selectedOptions = Array.from(event.target.options).filter(_ref2 => {
+        let {
+          selected
+        } = _ref2;
+        return selected;
+      });
+      const newValues = selectedOptions.map(_ref3 => {
+        let {
+          value
+        } = _ref3;
+        return value;
+      });
+      onChange(newValues);
+      return;
+    }
+
+    onChange(event.target.value, {
+      event
+    });
+  };
+
+  const classes = classnames_default()('components-select-control', className);
+  /* eslint-disable jsx-a11y/no-onchange */
+
+  return (0,external_wp_element_namespaceObject.createElement)(base_control, {
+    help: help,
+    id: id
+  }, (0,external_wp_element_namespaceObject.createElement)(input_base, {
+    className: classes,
+    disabled: disabled,
+    hideLabelFromVision: hideLabelFromVision,
+    id: id,
+    isFocused: isFocused,
+    label: label,
+    size: size,
+    suffix: suffix || (0,external_wp_element_namespaceObject.createElement)(DownArrowWrapper, null, (0,external_wp_element_namespaceObject.createElement)(icons_build_module_icon, {
+      icon: chevron_down,
+      size: 18
+    })),
+    prefix: prefix,
+    labelPosition: labelPosition
+  }, (0,external_wp_element_namespaceObject.createElement)(Select, extends_extends({}, props, {
+    "aria-describedby": helpId,
+    className: "components-select-control__input",
+    disabled: disabled,
+    id: id,
+    multiple: multiple,
+    onBlur: handleOnBlur,
+    onChange: handleOnChange,
+    onFocus: handleOnFocus,
+    ref: ref,
+    selectSize: size,
+    value: valueProp
+  }), children || options.map((option, index) => {
+    const key = option.id || `${option.label}-${option.value}-${index}`;
+    return (0,external_wp_element_namespaceObject.createElement)("option", {
+      key: key,
+      value: option.value,
+      disabled: option.disabled
+    }, option.label);
+  }))));
+  /* eslint-enable jsx-a11y/no-onchange */
+}
+
+const select_control_ForwardedComponent = (0,external_wp_element_namespaceObject.forwardRef)(SelectControl);
+/* harmony default export */ var select_control = (select_control_ForwardedComponent);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/hooks/use-controlled-state.js
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+/**
+ * @template T
+ * @typedef Options
+ * @property {T | undefined} initial  Initial value
+ * @property {T | ""}        fallback Fallback value
+ */
+
+/** @type {Readonly<{ initial: undefined, fallback: '' }>} */
+
+const defaultOptions = {
+  initial: undefined,
+
+  /**
+   * Defaults to empty string, as that is preferred for usage with
+   * <input />, <textarea />, and <select /> form elements.
+   */
+  fallback: ''
+};
+/**
+ * Custom hooks for "controlled" components to track and consolidate internal
+ * state and incoming values. This is useful for components that render
+ * `input`, `textarea`, or `select` HTML elements.
+ *
+ * https://reactjs.org/docs/forms.html#controlled-components
+ *
+ * At first, a component using useControlledState receives an initial prop
+ * value, which is used as initial internal state.
+ *
+ * This internal state can be maintained and updated without
+ * relying on new incoming prop values.
+ *
+ * Unlike the basic useState hook, useControlledState's state can
+ * be updated if a new incoming prop value is changed.
+ *
+ * @template T
+ *
+ * @param {T | undefined} currentState             The current value.
+ * @param {Options<T>}    [options=defaultOptions] Additional options for the hook.
+ *
+ * @return {[T | "", (nextState: T) => void]} The controlled value and the value setter.
+ */
+
+function useControlledState(currentState) {
+  let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultOptions;
+  const {
+    initial,
+    fallback
+  } = { ...defaultOptions,
+    ...options
+  };
+  const [internalState, setInternalState] = (0,external_wp_element_namespaceObject.useState)(currentState);
+  const hasCurrentState = isValueDefined(currentState);
+  /*
+   * Resets internal state if value every changes from uncontrolled <-> controlled.
+   */
+
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    if (hasCurrentState && internalState) {
+      setInternalState(undefined);
+    }
+  }, [hasCurrentState, internalState]);
+  const state = getDefinedValue([currentState, internalState, initial], fallback);
+  /* eslint-disable jsdoc/no-undefined-types */
+
+  /** @type {(nextState: T) => void} */
+
+  const setState = nextState => {
+    if (!hasCurrentState) {
+      setInternalState(nextState);
+    }
+  };
+  /* eslint-enable jsdoc/no-undefined-types */
+
+
+  return [state, setState];
+}
+
+/* harmony default export */ var use_controlled_state = (useControlledState);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/range-control/utils.js
+// @ts-nocheck
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+/**
+ * A float supported clamp function for a specific value.
+ *
+ * @param {number|null} value The value to clamp.
+ * @param {number}      min   The minimum value.
+ * @param {number}      max   The maximum value.
+ *
+ * @return {number} A (float) number
+ */
+
+function floatClamp(value, min, max) {
+  if (typeof value !== 'number') {
+    return null;
+  }
+
+  return parseFloat((0,external_lodash_namespaceObject.clamp)(value, min, max));
+}
+/**
+ * Hook to store a clamped value, derived from props.
+ *
+ * @param {Object} settings         Hook settings.
+ * @param {number} settings.min     The minimum value.
+ * @param {number} settings.max     The maximum value.
+ * @param {number} settings.value   The current value.
+ * @param {any}    settings.initial The initial value.
+ *
+ * @return {[*, Function]} The controlled value and the value setter.
+ */
+
+function useControlledRangeValue(_ref) {
+  let {
+    min,
+    max,
+    value: valueProp,
+    initial
+  } = _ref;
+  const [state, setInternalState] = use_controlled_state(floatClamp(valueProp, min, max), {
+    initial,
+    fallback: null
+  });
+  const setState = (0,external_wp_element_namespaceObject.useCallback)(nextValue => {
+    if (nextValue === null) {
+      setInternalState(null);
+    } else {
+      setInternalState(floatClamp(nextValue, min, max));
+    }
+  }, [min, max]);
+  return [state, setState];
+}
+/**
+ * Hook to encapsulate the debouncing "hover" to better handle the showing
+ * and hiding of the Tooltip.
+ *
+ * @param {Object}   settings                     Hook settings.
+ * @param {Function} [settings.onShow=noop]       A callback function invoked when the element is shown.
+ * @param {Function} [settings.onHide=noop]       A callback function invoked when the element is hidden.
+ * @param {Function} [settings.onMouseMove=noop]  A callback function invoked when the mouse is moved.
+ * @param {Function} [settings.onMouseLeave=noop] A callback function invoked when the mouse is moved out of the element.
+ * @param {number}   [settings.timeout=300]       Timeout before the element is shown or hidden.
+ *
+ * @return {Object} Bound properties for use on a React.Node.
+ */
+
+function useDebouncedHoverInteraction(_ref2) {
+  let {
+    onHide = external_lodash_namespaceObject.noop,
+    onMouseLeave = external_lodash_namespaceObject.noop,
+    onMouseMove = external_lodash_namespaceObject.noop,
+    onShow = external_lodash_namespaceObject.noop,
+    timeout = 300
+  } = _ref2;
+  const [show, setShow] = (0,external_wp_element_namespaceObject.useState)(false);
+  const timeoutRef = (0,external_wp_element_namespaceObject.useRef)();
+  const setDebouncedTimeout = (0,external_wp_element_namespaceObject.useCallback)(callback => {
+    window.clearTimeout(timeoutRef.current);
+    timeoutRef.current = setTimeout(callback, timeout);
+  }, [timeout]);
+  const handleOnMouseMove = (0,external_wp_element_namespaceObject.useCallback)(event => {
+    onMouseMove(event);
+    setDebouncedTimeout(() => {
+      if (!show) {
+        setShow(true);
+        onShow();
+      }
+    });
+  }, []);
+  const handleOnMouseLeave = (0,external_wp_element_namespaceObject.useCallback)(event => {
+    onMouseLeave(event);
+    setDebouncedTimeout(() => {
+      setShow(false);
+      onHide();
+    });
+  }, []);
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    return () => {
+      window.clearTimeout(timeoutRef.current);
+    };
+  });
+  return {
+    onMouseMove: handleOnMouseMove,
+    onMouseLeave: handleOnMouseLeave
+  };
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/range-control/styles/range-control-styles.js
+
+
+function range_control_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
+
+// @ts-nocheck
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+const rangeHeightValue = 30;
+const railHeight = 4;
+
+const rangeHeight = () => /*#__PURE__*/emotion_react_browser_esm_css({
+  height: rangeHeightValue,
+  minHeight: rangeHeightValue
+},  true ? "" : 0,  true ? "" : 0);
+
+const thumbSize = 12;
+const range_control_styles_Root = emotion_styled_base_browser_esm("div",  true ? {
+  target: "exqw8y214"
+} : 0)( true ? {
+  name: "17z6zai",
+  styles: "-webkit-tap-highlight-color:transparent;box-sizing:border-box;align-items:flex-start;display:inline-flex;justify-content:flex-start;padding:0;position:relative;touch-action:none;width:100%"
+} : 0);
+
+const wrapperColor = _ref4 => {
+  let {
+    color: colorProp = COLORS.ui.borderFocus
+  } = _ref4;
+  return /*#__PURE__*/emotion_react_browser_esm_css({
+    color: colorProp
+  },  true ? "" : 0,  true ? "" : 0);
+};
+
+const wrapperMargin = _ref5 => {
+  let {
+    marks
+  } = _ref5;
+  return /*#__PURE__*/emotion_react_browser_esm_css({
+    marginBottom: marks ? 16 : null
+  },  true ? "" : 0,  true ? "" : 0);
+};
+
+const range_control_styles_Wrapper = emotion_styled_base_browser_esm("div",  true ? {
+  target: "exqw8y213"
+} : 0)("box-sizing:border-box;color:", COLORS.blue.medium.focus, ";display:block;flex:1;position:relative;width:100%;", wrapperColor, ";", rangeHeight, ";", wrapperMargin, ";" + ( true ? "" : 0));
+const BeforeIconWrapper = emotion_styled_base_browser_esm("span",  true ? {
+  target: "exqw8y212"
+} : 0)("margin-top:", railHeight, "px;", rtl({
+  marginRight: 6
+}), ";" + ( true ? "" : 0));
+const AfterIconWrapper = emotion_styled_base_browser_esm("span",  true ? {
+  target: "exqw8y211"
+} : 0)("margin-top:", railHeight, "px;", rtl({
+  marginLeft: 6
+}), ";" + ( true ? "" : 0));
+
+const railBackgroundColor = _ref6 => {
+  let {
+    disabled,
+    railColor
+  } = _ref6;
+  let background = railColor || null;
+
+  if (disabled) {
+    background = COLORS.lightGray[400];
+  }
+
+  return /*#__PURE__*/emotion_react_browser_esm_css({
+    background
+  },  true ? "" : 0,  true ? "" : 0);
+};
+
+const Rail = emotion_styled_base_browser_esm("span",  true ? {
+  target: "exqw8y210"
+} : 0)("background-color:", COLORS.lightGray[600], ";box-sizing:border-box;left:0;pointer-events:none;right:0;display:block;height:", railHeight, "px;position:absolute;margin-top:", (rangeHeightValue - railHeight) / 2, "px;top:0;border-radius:", railHeight, "px;", railBackgroundColor, ";" + ( true ? "" : 0));
+
+const trackBackgroundColor = _ref7 => {
+  let {
+    disabled,
+    trackColor
+  } = _ref7;
+  let background = trackColor || 'currentColor';
+
+  if (disabled) {
+    background = COLORS.lightGray[800];
+  }
+
+  return /*#__PURE__*/emotion_react_browser_esm_css({
+    background
+  },  true ? "" : 0,  true ? "" : 0);
+};
+
+const Track = emotion_styled_base_browser_esm("span",  true ? {
+  target: "exqw8y29"
+} : 0)("background-color:currentColor;border-radius:", railHeight, "px;box-sizing:border-box;height:", railHeight, "px;pointer-events:none;display:block;position:absolute;margin-top:", (rangeHeightValue - railHeight) / 2, "px;top:0;", trackBackgroundColor, ";" + ( true ? "" : 0));
+const MarksWrapper = emotion_styled_base_browser_esm("span",  true ? {
+  target: "exqw8y28"
+} : 0)( true ? {
+  name: "1xuuvmv",
+  styles: "box-sizing:border-box;display:block;pointer-events:none;position:relative;width:100%;user-select:none"
+} : 0);
+
+const markFill = _ref8 => {
+  let {
+    disabled,
+    isFilled
+  } = _ref8;
+  let backgroundColor = isFilled ? 'currentColor' : COLORS.lightGray[600];
+
+  if (disabled) {
+    backgroundColor = COLORS.lightGray[800];
+  }
+
+  return /*#__PURE__*/emotion_react_browser_esm_css({
+    backgroundColor
+  },  true ? "" : 0,  true ? "" : 0);
+};
+
+const Mark = emotion_styled_base_browser_esm("span",  true ? {
+  target: "exqw8y27"
+} : 0)("box-sizing:border-box;height:", thumbSize, "px;left:0;position:absolute;top:-4px;width:1px;", markFill, ";" + ( true ? "" : 0));
+
+const markLabelFill = _ref9 => {
+  let {
+    isFilled
+  } = _ref9;
+  return /*#__PURE__*/emotion_react_browser_esm_css({
+    color: isFilled ? COLORS.darkGray[300] : COLORS.lightGray[600]
+  },  true ? "" : 0,  true ? "" : 0);
+};
+
+const MarkLabel = emotion_styled_base_browser_esm("span",  true ? {
+  target: "exqw8y26"
+} : 0)("box-sizing:border-box;color:", COLORS.lightGray[600], ";left:0;font-size:11px;position:absolute;top:12px;transform:translateX( -50% );white-space:nowrap;", markLabelFill, ";" + ( true ? "" : 0));
+
+var range_control_styles_ref3 =  true ? {
+  name: "1sb75b3",
+  styles: "background-color:var( --wp-admin-theme-color )"
+} : 0;
+
+const thumbColor = _ref10 => {
+  let {
+    disabled
+  } = _ref10;
+  return disabled ? /*#__PURE__*/emotion_react_browser_esm_css("background-color:", COLORS.lightGray[800], ";" + ( true ? "" : 0),  true ? "" : 0) : range_control_styles_ref3;
+};
+
+const ThumbWrapper = emotion_styled_base_browser_esm("span",  true ? {
+  target: "exqw8y25"
+} : 0)("align-items:center;box-sizing:border-box;display:flex;height:", thumbSize, "px;justify-content:center;margin-top:", (rangeHeightValue - thumbSize) / 2, "px;outline:0;pointer-events:none;position:absolute;top:0;user-select:none;width:", thumbSize, "px;border-radius:50%;", thumbColor, ";", rtl({
+  marginLeft: -10
+}), ";", rtl({
+  transform: 'translateX( 4.5px )'
+}, {
+  transform: 'translateX( -4.5px )'
+}), ";" + ( true ? "" : 0));
+
+const thumbFocus = _ref11 => {
+  let {
+    isFocused
+  } = _ref11;
+  return isFocused ? /*#__PURE__*/emotion_react_browser_esm_css("&::before{content:' ';position:absolute;background-color:var( --wp-admin-theme-color );opacity:0.4;border-radius:50%;height:", thumbSize + 8, "px;width:", thumbSize + 8, "px;top:-4px;left:-4px;}" + ( true ? "" : 0),  true ? "" : 0) : '';
+};
+
+const Thumb = emotion_styled_base_browser_esm("span",  true ? {
+  target: "exqw8y24"
+} : 0)("align-items:center;border-radius:50%;box-sizing:border-box;height:100%;outline:0;position:absolute;user-select:none;width:100%;", thumbColor, ";", thumbFocus, ";" + ( true ? "" : 0));
+const InputRange = emotion_styled_base_browser_esm("input",  true ? {
+  target: "exqw8y23"
+} : 0)("box-sizing:border-box;cursor:pointer;display:block;height:100%;left:0;margin:0 -", thumbSize / 2, "px;opacity:0;outline:none;position:absolute;right:0;top:0;width:calc( 100% + ", thumbSize, "px );" + ( true ? "" : 0));
+
+const tooltipShow = _ref12 => {
+  let {
+    show
+  } = _ref12;
+  return /*#__PURE__*/emotion_react_browser_esm_css({
+    opacity: show ? 1 : 0
+  },  true ? "" : 0,  true ? "" : 0);
+};
+
+var range_control_styles_ref =  true ? {
+  name: "1cypxip",
+  styles: "top:-80%"
+} : 0;
+
+var range_control_styles_ref2 =  true ? {
+  name: "1lr98c4",
+  styles: "bottom:-80%"
+} : 0;
+
+const tooltipPosition = _ref13 => {
+  let {
+    position
+  } = _ref13;
+  const isBottom = position === 'bottom';
+
+  if (isBottom) {
+    return range_control_styles_ref2;
+  }
+
+  return range_control_styles_ref;
+};
+
+const range_control_styles_Tooltip = emotion_styled_base_browser_esm("span",  true ? {
+  target: "exqw8y22"
+} : 0)("background:rgba( 0, 0, 0, 0.8 );border-radius:2px;box-sizing:border-box;color:white;display:inline-block;font-size:12px;min-width:32px;opacity:0;padding:4px 8px;pointer-events:none;position:absolute;text-align:center;transition:opacity 120ms ease;user-select:none;line-height:1.4;", tooltipShow, ";", tooltipPosition, ";", reduceMotion('transition'), ";", rtl({
+  transform: 'translateX(-50%)'
+}, {
+  transform: 'translateX(50%)'
+}), ";" + ( true ? "" : 0)); // @todo: Refactor RangeControl with latest HStack configuration
+// @wordpress/components/ui/hstack.
+
+const InputNumber = /*#__PURE__*/emotion_styled_base_browser_esm(number_control,  true ? {
+  target: "exqw8y21"
+} : 0)("box-sizing:border-box;display:inline-block;font-size:13px;margin-top:0;width:", space(16), "!important;input[type='number']&{", rangeHeight, ";}", rtl({
+  marginLeft: `${space(4)} !important`
+}), ";" + ( true ? "" : 0));
+const ActionRightWrapper = emotion_styled_base_browser_esm("span",  true ? {
+  target: "exqw8y20"
+} : 0)("box-sizing:border-box;display:block;margin-top:0;button,button.is-small{margin-left:0;", rangeHeight, ";}", rtl({
+  marginLeft: 8
+}), ";" + ( true ? "" : 0));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/range-control/input-range.js
+
+
+// @ts-nocheck
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+function input_range_InputRange(_ref, ref) {
+  let {
+    describedBy,
+    label,
+    onHideTooltip = external_lodash_namespaceObject.noop,
+    onMouseLeave = external_lodash_namespaceObject.noop,
+    onMouseMove = external_lodash_namespaceObject.noop,
+    onShowTooltip = external_lodash_namespaceObject.noop,
+    value,
+    ...props
+  } = _ref;
+  const hoverInteractions = useDebouncedHoverInteraction({
+    onHide: onHideTooltip,
+    onMouseLeave,
+    onMouseMove,
+    onShow: onShowTooltip
+  });
+  return (0,external_wp_element_namespaceObject.createElement)(InputRange, extends_extends({}, props, hoverInteractions, {
+    "aria-describedby": describedBy,
+    "aria-label": label,
+    "aria-hidden": false,
+    ref: ref,
+    tabIndex: 0,
+    type: "range",
+    value: value
+  }));
+}
+
+const input_range_ForwardedComponent = (0,external_wp_element_namespaceObject.forwardRef)(input_range_InputRange);
+/* harmony default export */ var input_range = (input_range_ForwardedComponent);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/range-control/mark.js
+
+
+// @ts-nocheck
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+function RangeMark(_ref) {
+  let {
+    className,
+    isFilled = false,
+    label,
+    style = {},
+    ...props
+  } = _ref;
+  const classes = classnames_default()('components-range-control__mark', isFilled && 'is-filled', className);
+  const labelClasses = classnames_default()('components-range-control__mark-label', isFilled && 'is-filled');
+  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(Mark, extends_extends({}, props, {
+    "aria-hidden": "true",
+    className: classes,
+    isFilled: isFilled,
+    style: style
+  })), label && (0,external_wp_element_namespaceObject.createElement)(MarkLabel, {
+    "aria-hidden": "true",
+    className: labelClasses,
+    isFilled: isFilled,
+    style: style
+  }, label));
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/range-control/rail.js
+
+
+// @ts-nocheck
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+function RangeRail(_ref) {
+  let {
+    disabled = false,
+    marks = false,
+    min = 0,
+    max = 100,
+    step = 1,
+    value = 0,
+    ...restProps
+  } = _ref;
+  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(Rail, extends_extends({
+    disabled: disabled
+  }, restProps)), marks && (0,external_wp_element_namespaceObject.createElement)(Marks, {
+    disabled: disabled,
+    marks: marks,
+    min: min,
+    max: max,
+    step: step,
+    value: value
+  }));
+}
+
+function Marks(_ref2) {
+  let {
+    disabled = false,
+    marks = false,
+    min = 0,
+    max = 100,
+    step = 1,
+    value = 0
+  } = _ref2;
+
+  if (step === 'any') {
+    step = 1;
+  }
+
+  const marksData = useMarks({
+    marks,
+    min,
+    max,
+    step,
+    value
+  });
+  return (0,external_wp_element_namespaceObject.createElement)(MarksWrapper, {
+    "aria-hidden": "true",
+    className: "components-range-control__marks"
+  }, marksData.map(mark => (0,external_wp_element_namespaceObject.createElement)(RangeMark, extends_extends({}, mark, {
+    key: mark.key,
+    "aria-hidden": "true",
+    disabled: disabled
+  }))));
+}
+
+function useMarks(_ref3) {
+  let {
+    marks,
+    min = 0,
+    max = 100,
+    step = 1,
+    value = 0
+  } = _ref3;
+
+  if (!marks) {
+    return [];
+  }
+
+  const range = max - min;
+
+  if (!Array.isArray(marks)) {
+    marks = [];
+    const count = 1 + Math.round(range / step);
+
+    while (count > marks.push({
+      value: step * marks.length + min
+    }));
+  }
+
+  const placedMarks = [];
+  marks.forEach((mark, index) => {
+    if (mark.value < min || mark.value > max) {
+      return;
+    }
+
+    const key = `mark-${index}`;
+    const isFilled = mark.value <= value;
+    const offset = `${(mark.value - min) / range * 100}%`;
+    const offsetStyle = {
+      [(0,external_wp_i18n_namespaceObject.isRTL)() ? 'right' : 'left']: offset
+    };
+    placedMarks.push({ ...mark,
+      isFilled,
+      key,
+      style: offsetStyle
+    });
+  });
+  return placedMarks;
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/range-control/tooltip.js
+
+
+// @ts-nocheck
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+function SimpleTooltip(_ref) {
+  let {
+    className,
+    inputRef,
+    tooltipPosition,
+    show = false,
+    style = {},
+    value = 0,
+    renderTooltipContent = v => v,
+    zIndex = 100,
+    ...restProps
+  } = _ref;
+  const position = useTooltipPosition({
+    inputRef,
+    tooltipPosition
+  });
+  const classes = classnames_default()('components-simple-tooltip', className);
+  const styles = { ...style,
+    zIndex
+  };
+  return (0,external_wp_element_namespaceObject.createElement)(range_control_styles_Tooltip, extends_extends({}, restProps, {
+    "aria-hidden": show,
+    className: classes,
+    position: position,
+    show: show,
+    role: "tooltip",
+    style: styles
+  }), renderTooltipContent(value));
+}
+
+function useTooltipPosition(_ref2) {
+  let {
+    inputRef,
+    tooltipPosition
+  } = _ref2;
+  const [position, setPosition] = (0,external_wp_element_namespaceObject.useState)();
+  const setTooltipPosition = (0,external_wp_element_namespaceObject.useCallback)(() => {
+    if (inputRef && inputRef.current) {
+      setPosition(tooltipPosition);
+    }
+  }, [tooltipPosition]);
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    setTooltipPosition();
+  }, [setTooltipPosition]);
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    window.addEventListener('resize', setTooltipPosition);
+    return () => {
+      window.removeEventListener('resize', setTooltipPosition);
+    };
+  });
+  return position;
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/range-control/index.js
+
+
+// @ts-nocheck
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+
+
+
+
+
+function RangeControl(_ref, ref) {
+  var _inputRef$current;
+
+  let {
+    afterIcon,
+    allowReset = false,
+    beforeIcon,
+    className,
+    currentInput,
+    color: colorProp = COLORS.ui.theme,
+    disabled = false,
+    help,
+    initialPosition,
+    isShiftStepEnabled = true,
+    label,
+    hideLabelFromVision = false,
+    marks = false,
+    max = 100,
+    min = 0,
+    onBlur = external_lodash_namespaceObject.noop,
+    onChange = external_lodash_namespaceObject.noop,
+    onFocus = external_lodash_namespaceObject.noop,
+    onMouseMove = external_lodash_namespaceObject.noop,
+    onMouseLeave = external_lodash_namespaceObject.noop,
+    railColor,
+    resetFallbackValue,
+    renderTooltipContent = v => v,
+    showTooltip: showTooltipProp,
+    shiftStep = 10,
+    step = 1,
+    trackColor,
+    value: valueProp,
+    withInputField = true,
+    ...props
+  } = _ref;
+  const [value, setValue] = useControlledRangeValue({
+    min,
+    max,
+    value: valueProp,
+    initial: initialPosition
+  });
+  const isResetPendent = (0,external_wp_element_namespaceObject.useRef)(false);
+
+  if (step === 'any') {
+    // The tooltip and number input field are hidden when the step is "any"
+    // because the decimals get too lengthy to fit well.
+    showTooltipProp = false;
+    withInputField = false;
+  }
+
+  const [showTooltip, setShowTooltip] = (0,external_wp_element_namespaceObject.useState)(showTooltipProp);
+  const [isFocused, setIsFocused] = (0,external_wp_element_namespaceObject.useState)(false);
+  const inputRef = (0,external_wp_element_namespaceObject.useRef)();
+
+  const setRef = nodeRef => {
+    inputRef.current = nodeRef;
+
+    if (ref) {
+      ref(nodeRef);
+    }
+  };
+
+  const isCurrentlyFocused = (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.matches(':focus');
+  const isThumbFocused = !disabled && isFocused;
+  const isValueReset = value === null;
+  const currentValue = value !== undefined ? value : currentInput;
+  const inputSliderValue = isValueReset ? '' : currentValue;
+  const rangeFillValue = isValueReset ? (max - min) / 2 + min : value;
+  const calculatedFillValue = (value - min) / (max - min) * 100;
+  const fillValue = isValueReset ? 50 : calculatedFillValue;
+  const fillValueOffset = `${(0,external_lodash_namespaceObject.clamp)(fillValue, 0, 100)}%`;
+  const classes = classnames_default()('components-range-control', className);
+  const wrapperClasses = classnames_default()('components-range-control__wrapper', !!marks && 'is-marked');
+  const id = (0,external_wp_compose_namespaceObject.useInstanceId)(RangeControl, 'inspector-range-control');
+  const describedBy = !!help ? `${id}__help` : undefined;
+  const enableTooltip = showTooltipProp !== false && (0,external_lodash_namespaceObject.isFinite)(value);
+
+  const handleOnRangeChange = event => {
+    const nextValue = parseFloat(event.target.value);
+    setValue(nextValue);
+    onChange(nextValue);
+  };
+
+  const handleOnChange = nextValue => {
+    nextValue = parseFloat(nextValue);
+    setValue(nextValue);
+    /*
+     * Calls onChange only when nextValue is numeric
+     * otherwise may queue a reset for the blur event.
+     */
+
+    if (!isNaN(nextValue)) {
+      if (nextValue < min || nextValue > max) {
+        nextValue = floatClamp(nextValue, min, max);
+      }
+
+      onChange(nextValue);
+      isResetPendent.current = false;
+    } else if (allowReset) {
+      isResetPendent.current = true;
+    }
+  };
+
+  const handleOnInputNumberBlur = () => {
+    if (isResetPendent.current) {
+      handleOnReset();
+      isResetPendent.current = false;
+    }
+  };
+
+  const handleOnReset = () => {
+    let resetValue = parseFloat(resetFallbackValue);
+    let onChangeResetValue = resetValue;
+
+    if (isNaN(resetValue)) {
+      resetValue = null;
+      onChangeResetValue = undefined;
+    }
+
+    setValue(resetValue);
+    /**
+     * Previously, this callback would always receive undefined as
+     * an argument. This behavior is unexpected, specifically
+     * when resetFallbackValue is defined.
+     *
+     * The value of undefined is not ideal. Passing it through
+     * to internal <input /> elements would change it from a
+     * controlled component to an uncontrolled component.
+     *
+     * For now, to minimize unexpected regressions, we're going to
+     * preserve the undefined callback argument, except when a
+     * resetFallbackValue is defined.
+     */
+
+    onChange(onChangeResetValue);
+  };
+
+  const handleShowTooltip = () => setShowTooltip(true);
+
+  const handleHideTooltip = () => setShowTooltip(false);
+
+  const handleOnBlur = event => {
+    onBlur(event);
+    setIsFocused(false);
+    handleHideTooltip();
+  };
+
+  const handleOnFocus = event => {
+    onFocus(event);
+    setIsFocused(true);
+    handleShowTooltip();
+  };
+
+  const offsetStyle = {
+    [(0,external_wp_i18n_namespaceObject.isRTL)() ? 'right' : 'left']: fillValueOffset
+  };
+  return (0,external_wp_element_namespaceObject.createElement)(base_control, {
+    className: classes,
+    label: label,
+    hideLabelFromVision: hideLabelFromVision,
+    id: id,
+    help: help
+  }, (0,external_wp_element_namespaceObject.createElement)(range_control_styles_Root, {
+    className: "components-range-control__root"
+  }, beforeIcon && (0,external_wp_element_namespaceObject.createElement)(BeforeIconWrapper, null, (0,external_wp_element_namespaceObject.createElement)(build_module_icon, {
+    icon: beforeIcon
+  })), (0,external_wp_element_namespaceObject.createElement)(range_control_styles_Wrapper, {
+    className: wrapperClasses,
+    color: colorProp,
+    marks: !!marks
+  }, (0,external_wp_element_namespaceObject.createElement)(input_range, extends_extends({}, props, {
+    className: "components-range-control__slider",
+    describedBy: describedBy,
+    disabled: disabled,
+    id: id,
+    label: label,
+    max: max,
+    min: min,
+    onBlur: handleOnBlur,
+    onChange: handleOnRangeChange,
+    onFocus: handleOnFocus,
+    onMouseMove: onMouseMove,
+    onMouseLeave: onMouseLeave,
+    ref: setRef,
+    step: step,
+    value: inputSliderValue
+  })), (0,external_wp_element_namespaceObject.createElement)(RangeRail, {
+    "aria-hidden": true,
+    disabled: disabled,
+    marks: marks,
+    max: max,
+    min: min,
+    railColor: railColor,
+    step: step,
+    value: rangeFillValue
+  }), (0,external_wp_element_namespaceObject.createElement)(Track, {
+    "aria-hidden": true,
+    className: "components-range-control__track",
+    disabled: disabled,
+    style: {
+      width: fillValueOffset
+    },
+    trackColor: trackColor
+  }), (0,external_wp_element_namespaceObject.createElement)(ThumbWrapper, {
+    style: offsetStyle,
+    disabled: disabled
+  }, (0,external_wp_element_namespaceObject.createElement)(Thumb, {
+    "aria-hidden": true,
+    isFocused: isThumbFocused,
+    disabled: disabled
+  })), enableTooltip && (0,external_wp_element_namespaceObject.createElement)(SimpleTooltip, {
+    className: "components-range-control__tooltip",
+    inputRef: inputRef,
+    tooltipPosition: "bottom",
+    renderTooltipContent: renderTooltipContent,
+    show: isCurrentlyFocused || showTooltip,
+    style: offsetStyle,
+    value: value
+  })), afterIcon && (0,external_wp_element_namespaceObject.createElement)(AfterIconWrapper, null, (0,external_wp_element_namespaceObject.createElement)(build_module_icon, {
+    icon: afterIcon
+  })), withInputField && (0,external_wp_element_namespaceObject.createElement)(InputNumber, {
+    "aria-label": label,
+    className: "components-range-control__number",
+    disabled: disabled,
+    inputMode: "decimal",
+    isShiftStepEnabled: isShiftStepEnabled,
+    max: max,
+    min: min,
+    onBlur: handleOnInputNumberBlur,
+    onChange: handleOnChange,
+    shiftStep: shiftStep,
+    step: step,
+    value: inputSliderValue
+  }), allowReset && (0,external_wp_element_namespaceObject.createElement)(ActionRightWrapper, null, (0,external_wp_element_namespaceObject.createElement)(build_module_button, {
+    className: "components-range-control__reset",
+    disabled: disabled || value === undefined,
+    variant: "secondary",
+    isSmall: true,
+    onClick: handleOnReset
+  }, (0,external_wp_i18n_namespaceObject.__)('Reset')))));
+}
+
+const range_control_ForwardedComponent = (0,external_wp_element_namespaceObject.forwardRef)(RangeControl);
+/* harmony default export */ var range_control = (range_control_ForwardedComponent);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/color-picker/styles.js
+
+
+function color_picker_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+
+
+
+const NumberControlWrapper = /*#__PURE__*/emotion_styled_base_browser_esm(number_control,  true ? {
+  target: "ez9hsf46"
+} : 0)(Container, "{width:", space(24), ";}" + ( true ? "" : 0));
+const styles_SelectControl = /*#__PURE__*/emotion_styled_base_browser_esm(select_control,  true ? {
+  target: "ez9hsf45"
+} : 0)("margin-left:", space(-2), ";width:5em;", BackdropUI, "{display:none;}" + ( true ? "" : 0));
+const styles_RangeControl = /*#__PURE__*/emotion_styled_base_browser_esm(range_control,  true ? {
+  target: "ez9hsf44"
+} : 0)("flex:1;", StyledField, "{margin-bottom:0;}" + ( true ? "" : 0)); // All inputs should be the same height so this should be changed at the component level.
+// That involves changing heights of multiple input types probably buttons too etc.
+// So until that is done we are already using the new height on the color picker so it matches the mockups.
+
+const inputHeightStyle = `
+&&& ${Input} {
+	height: 40px;
+}`; // Make the Hue circle picker not go out of the bar.
+
+const interactiveHueStyles = `
+.react-colorful__interactive {
+	width: calc( 100% - ${space(2)} );
+	margin-left: ${space(1)};
+}`;
+const AuxiliaryColorArtefactWrapper = emotion_styled_base_browser_esm("div",  true ? {
+  target: "ez9hsf43"
+} : 0)("padding:", space(2), " ", space(4), ";" + ( true ? "" : 0));
+const ColorfulWrapper = emotion_styled_base_browser_esm("div",  true ? {
+  target: "ez9hsf42"
+} : 0)("width:216px;.react-colorful{display:flex;flex-direction:column;align-items:center;width:216px;height:auto;}.react-colorful__saturation{width:100%;border-radius:0;height:216px;margin-bottom:", space(4), ";border-bottom:none;}.react-colorful__hue,.react-colorful__alpha{width:184px;height:16px;border-radius:16px;margin-bottom:", space(2), ";}.react-colorful__pointer{height:16px;width:16px;border:none;box-shadow:0 0 2px 0 rgba( 0, 0, 0, 0.25 );outline:2px solid transparent;}.react-colorful__pointer-fill{box-shadow:inset 0 0 0 ", config_values.borderWidthFocus, " #fff;}", interactiveHueStyles, " ", StyledField, "{margin-bottom:0;}", inputHeightStyle, ";" + ( true ? "" : 0));
+const DetailsControlButton = /*#__PURE__*/emotion_styled_base_browser_esm(build_module_button,  true ? {
+  target: "ez9hsf41"
+} : 0)("&&&&&{min-width:", space(6), ";padding:0;}" + ( true ? "" : 0));
+const ColorHexInputControl = /*#__PURE__*/emotion_styled_base_browser_esm(input_control,  true ? {
+  target: "ez9hsf40"
+} : 0)( true ? {
+  name: "1287a6j",
+  styles: "width:8em"
+} : 0);
+
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getWindow.js
+function getWindow_getWindow(node) {
+  if (node == null) {
+    return window;
+  }
+
+  if (node.toString() !== '[object Window]') {
+    var ownerDocument = node.ownerDocument;
+    return ownerDocument ? ownerDocument.defaultView || window : window;
+  }
+
+  return node;
+}
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js
+
+
+function isElement(node) {
+  var OwnElement = getWindow_getWindow(node).Element;
+  return node instanceof OwnElement || node instanceof Element;
+}
+
+function isHTMLElement(node) {
+  var OwnElement = getWindow_getWindow(node).HTMLElement;
+  return node instanceof OwnElement || node instanceof HTMLElement;
+}
+
+function isShadowRoot(node) {
+  // IE 11 has no ShadowRoot
+  if (typeof ShadowRoot === 'undefined') {
+    return false;
+  }
+
+  var OwnElement = getWindow_getWindow(node).ShadowRoot;
+  return node instanceof OwnElement || node instanceof ShadowRoot;
+}
+
+
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/math.js
+var math_max = Math.max;
+var math_min = Math.min;
+var round = Math.round;
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/userAgent.js
+function getUAString() {
+  var uaData = navigator.userAgentData;
+
+  if (uaData != null && uaData.brands) {
+    return uaData.brands.map(function (item) {
+      return item.brand + "/" + item.version;
+    }).join(' ');
+  }
+
+  return navigator.userAgent;
+}
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js
+
+function isLayoutViewport() {
+  return !/^((?!chrome|android).)*safari/i.test(getUAString());
+}
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js
+
+
+
+
+function getBoundingClientRect(element, includeScale, isFixedStrategy) {
+  if (includeScale === void 0) {
+    includeScale = false;
+  }
+
+  if (isFixedStrategy === void 0) {
+    isFixedStrategy = false;
+  }
+
+  var clientRect = element.getBoundingClientRect();
+  var scaleX = 1;
+  var scaleY = 1;
+
+  if (includeScale && isHTMLElement(element)) {
+    scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;
+    scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;
+  }
+
+  var _ref = isElement(element) ? getWindow_getWindow(element) : window,
+      visualViewport = _ref.visualViewport;
+
+  var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;
+  var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;
+  var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;
+  var width = clientRect.width / scaleX;
+  var height = clientRect.height / scaleY;
+  return {
+    width: width,
+    height: height,
+    top: y,
+    right: x + width,
+    bottom: y + height,
+    left: x,
+    x: x,
+    y: y
+  };
+}
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js
+
+function getWindowScroll(node) {
+  var win = getWindow_getWindow(node);
+  var scrollLeft = win.pageXOffset;
+  var scrollTop = win.pageYOffset;
+  return {
+    scrollLeft: scrollLeft,
+    scrollTop: scrollTop
+  };
+}
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js
+function getHTMLElementScroll(element) {
+  return {
+    scrollLeft: element.scrollLeft,
+    scrollTop: element.scrollTop
+  };
+}
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js
+
+
+
+
+function getNodeScroll(node) {
+  if (node === getWindow_getWindow(node) || !isHTMLElement(node)) {
+    return getWindowScroll(node);
+  } else {
+    return getHTMLElementScroll(node);
+  }
+}
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js
+function getNodeName(element) {
+  return element ? (element.nodeName || '').toLowerCase() : null;
+}
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js
+
+function getDocumentElement(element) {
+  // $FlowFixMe[incompatible-return]: assume body is always available
+  return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]
+  element.document) || window.document).documentElement;
+}
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js
+
+
+
+function getWindowScrollBarX(element) {
+  // If <html> has a CSS width greater than the viewport, then this will be
+  // incorrect for RTL.
+  // Popper 1 is broken in this case and never had a bug report so let's assume
+  // it's not an issue. I don't think anyone ever specifies width on <html>
+  // anyway.
+  // Browsers where the left scrollbar doesn't cause an issue report `0` for
+  // this (e.g. Edge 2019, IE11, Safari)
+  return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;
+}
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js
+
+function getComputedStyle_getComputedStyle(element) {
+  return getWindow_getWindow(element).getComputedStyle(element);
+}
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js
+
+function isScrollParent(element) {
+  // Firefox wants us to check `-x` and `-y` variations as well
+  var _getComputedStyle = getComputedStyle_getComputedStyle(element),
+      overflow = _getComputedStyle.overflow,
+      overflowX = _getComputedStyle.overflowX,
+      overflowY = _getComputedStyle.overflowY;
+
+  return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);
+}
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js
+
+
+
+
+
+
+
+
+
+function isElementScaled(element) {
+  var rect = element.getBoundingClientRect();
+  var scaleX = round(rect.width) / element.offsetWidth || 1;
+  var scaleY = round(rect.height) / element.offsetHeight || 1;
+  return scaleX !== 1 || scaleY !== 1;
+} // Returns the composite rect of an element relative to its offsetParent.
+// Composite means it takes into account transforms as well as layout.
+
+
+function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {
+  if (isFixed === void 0) {
+    isFixed = false;
+  }
+
+  var isOffsetParentAnElement = isHTMLElement(offsetParent);
+  var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);
+  var documentElement = getDocumentElement(offsetParent);
+  var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);
+  var scroll = {
+    scrollLeft: 0,
+    scrollTop: 0
+  };
+  var offsets = {
+    x: 0,
+    y: 0
+  };
+
+  if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
+    if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078
+    isScrollParent(documentElement)) {
+      scroll = getNodeScroll(offsetParent);
+    }
+
+    if (isHTMLElement(offsetParent)) {
+      offsets = getBoundingClientRect(offsetParent, true);
+      offsets.x += offsetParent.clientLeft;
+      offsets.y += offsetParent.clientTop;
+    } else if (documentElement) {
+      offsets.x = getWindowScrollBarX(documentElement);
+    }
+  }
+
+  return {
+    x: rect.left + scroll.scrollLeft - offsets.x,
+    y: rect.top + scroll.scrollTop - offsets.y,
+    width: rect.width,
+    height: rect.height
+  };
+}
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js
+ // Returns the layout rect of an element relative to its offsetParent. Layout
+// means it doesn't take into account transforms.
+
+function getLayoutRect(element) {
+  var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.
+  // Fixes https://github.com/popperjs/popper-core/issues/1223
+
+  var width = element.offsetWidth;
+  var height = element.offsetHeight;
+
+  if (Math.abs(clientRect.width - width) <= 1) {
+    width = clientRect.width;
+  }
+
+  if (Math.abs(clientRect.height - height) <= 1) {
+    height = clientRect.height;
+  }
+
+  return {
+    x: element.offsetLeft,
+    y: element.offsetTop,
+    width: width,
+    height: height
+  };
+}
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js
+
+
+
+function getParentNode(element) {
+  if (getNodeName(element) === 'html') {
+    return element;
+  }
+
+  return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle
+    // $FlowFixMe[incompatible-return]
+    // $FlowFixMe[prop-missing]
+    element.assignedSlot || // step into the shadow DOM of the parent of a slotted node
+    element.parentNode || ( // DOM Element detected
+    isShadowRoot(element) ? element.host : null) || // ShadowRoot detected
+    // $FlowFixMe[incompatible-call]: HTMLElement is a Node
+    getDocumentElement(element) // fallback
+
   );
 }
-
-KeyboardShortcutRow.propTypes = propTypes;
-KeyboardShortcutRow.defaultProps = defaultProps;
-
-exports['default'] = (0, _reactWithStyles.withStyles)(function (_ref2) {
-  var color = _ref2.reactDates.color;
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js
+
+
+
+
+function getScrollParent(node) {
+  if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {
+    // $FlowFixMe[incompatible-return]: assume body is always available
+    return node.ownerDocument.body;
+  }
+
+  if (isHTMLElement(node) && isScrollParent(node)) {
+    return node;
+  }
+
+  return getScrollParent(getParentNode(node));
+}
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js
+
+
+
+
+/*
+given a DOM element, return the list of all scroll parents, up the list of ancesors
+until we get to the top window object. This list is what we attach scroll listeners
+to, because if any of these parent elements scroll, we'll need to re-calculate the
+reference element's position.
+*/
+
+function listScrollParents(element, list) {
+  var _element$ownerDocumen;
+
+  if (list === void 0) {
+    list = [];
+  }
+
+  var scrollParent = getScrollParent(element);
+  var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);
+  var win = getWindow_getWindow(scrollParent);
+  var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;
+  var updatedList = list.concat(target);
+  return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here
+  updatedList.concat(listScrollParents(getParentNode(target)));
+}
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js
+
+function isTableElement(element) {
+  return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;
+}
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js
+
+
+
+
+
+
+
+
+function getTrueOffsetParent(element) {
+  if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837
+  getComputedStyle_getComputedStyle(element).position === 'fixed') {
+    return null;
+  }
+
+  return element.offsetParent;
+} // `.offsetParent` reports `null` for fixed elements, while absolute elements
+// return the containing block
+
+
+function getContainingBlock(element) {
+  var isFirefox = /firefox/i.test(getUAString());
+  var isIE = /Trident/i.test(getUAString());
+
+  if (isIE && isHTMLElement(element)) {
+    // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport
+    var elementCss = getComputedStyle_getComputedStyle(element);
+
+    if (elementCss.position === 'fixed') {
+      return null;
+    }
+  }
+
+  var currentNode = getParentNode(element);
+
+  if (isShadowRoot(currentNode)) {
+    currentNode = currentNode.host;
+  }
+
+  while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {
+    var css = getComputedStyle_getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that
+    // create a containing block.
+    // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block
+
+    if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {
+      return currentNode;
+    } else {
+      currentNode = currentNode.parentNode;
+    }
+  }
+
+  return null;
+} // Gets the closest ancestor positioned element. Handles some edge cases,
+// such as table ancestors and cross browser bugs.
+
+
+function getOffsetParent(element) {
+  var window = getWindow_getWindow(element);
+  var offsetParent = getTrueOffsetParent(element);
+
+  while (offsetParent && isTableElement(offsetParent) && getComputedStyle_getComputedStyle(offsetParent).position === 'static') {
+    offsetParent = getTrueOffsetParent(offsetParent);
+  }
+
+  if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle_getComputedStyle(offsetParent).position === 'static')) {
+    return window;
+  }
+
+  return offsetParent || getContainingBlock(element) || window;
+}
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/enums.js
+var enums_top = 'top';
+var bottom = 'bottom';
+var right = 'right';
+var left = 'left';
+var enums_auto = 'auto';
+var basePlacements = [enums_top, bottom, right, left];
+var start = 'start';
+var end = 'end';
+var clippingParents = 'clippingParents';
+var viewport = 'viewport';
+var popper = 'popper';
+var reference = 'reference';
+var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {
+  return acc.concat([placement + "-" + start, placement + "-" + end]);
+}, []);
+var enums_placements = /*#__PURE__*/[].concat(basePlacements, [enums_auto]).reduce(function (acc, placement) {
+  return acc.concat([placement, placement + "-" + start, placement + "-" + end]);
+}, []); // modifiers that need to read the DOM
+
+var beforeRead = 'beforeRead';
+var read = 'read';
+var afterRead = 'afterRead'; // pure-logic modifiers
+
+var beforeMain = 'beforeMain';
+var main = 'main';
+var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)
+
+var beforeWrite = 'beforeWrite';
+var write = 'write';
+var afterWrite = 'afterWrite';
+var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/orderModifiers.js
+ // source: https://stackoverflow.com/questions/49875255
+
+function orderModifiers_order(modifiers) {
+  var map = new Map();
+  var visited = new Set();
+  var result = [];
+  modifiers.forEach(function (modifier) {
+    map.set(modifier.name, modifier);
+  }); // On visiting object, check for its dependencies and visit them recursively
+
+  function sort(modifier) {
+    visited.add(modifier.name);
+    var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);
+    requires.forEach(function (dep) {
+      if (!visited.has(dep)) {
+        var depModifier = map.get(dep);
+
+        if (depModifier) {
+          sort(depModifier);
+        }
+      }
+    });
+    result.push(modifier);
+  }
+
+  modifiers.forEach(function (modifier) {
+    if (!visited.has(modifier.name)) {
+      // check for visited object
+      sort(modifier);
+    }
+  });
+  return result;
+}
+
+function orderModifiers(modifiers) {
+  // order based on dependencies
+  var orderedModifiers = orderModifiers_order(modifiers); // order based on phase
+
+  return modifierPhases.reduce(function (acc, phase) {
+    return acc.concat(orderedModifiers.filter(function (modifier) {
+      return modifier.phase === phase;
+    }));
+  }, []);
+}
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/debounce.js
+function debounce(fn) {
+  var pending;
+  return function () {
+    if (!pending) {
+      pending = new Promise(function (resolve) {
+        Promise.resolve().then(function () {
+          pending = undefined;
+          resolve(fn());
+        });
+      });
+    }
+
+    return pending;
+  };
+}
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/mergeByName.js
+function mergeByName(modifiers) {
+  var merged = modifiers.reduce(function (merged, current) {
+    var existing = merged[current.name];
+    merged[current.name] = existing ? Object.assign({}, existing, current, {
+      options: Object.assign({}, existing.options, current.options),
+      data: Object.assign({}, existing.data, current.data)
+    }) : current;
+    return merged;
+  }, {}); // IE11 does not support Object.values
+
+  return Object.keys(merged).map(function (key) {
+    return merged[key];
+  });
+}
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/createPopper.js
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+var INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';
+var INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';
+var DEFAULT_OPTIONS = {
+  placement: 'bottom',
+  modifiers: [],
+  strategy: 'absolute'
+};
+
+function areValidElements() {
+  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
+    args[_key] = arguments[_key];
+  }
+
+  return !args.some(function (element) {
+    return !(element && typeof element.getBoundingClientRect === 'function');
+  });
+}
+
+function popperGenerator(generatorOptions) {
+  if (generatorOptions === void 0) {
+    generatorOptions = {};
+  }
+
+  var _generatorOptions = generatorOptions,
+      _generatorOptions$def = _generatorOptions.defaultModifiers,
+      defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,
+      _generatorOptions$def2 = _generatorOptions.defaultOptions,
+      defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;
+  return function createPopper(reference, popper, options) {
+    if (options === void 0) {
+      options = defaultOptions;
+    }
+
+    var state = {
+      placement: 'bottom',
+      orderedModifiers: [],
+      options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),
+      modifiersData: {},
+      elements: {
+        reference: reference,
+        popper: popper
+      },
+      attributes: {},
+      styles: {}
+    };
+    var effectCleanupFns = [];
+    var isDestroyed = false;
+    var instance = {
+      state: state,
+      setOptions: function setOptions(setOptionsAction) {
+        var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;
+        cleanupModifierEffects();
+        state.options = Object.assign({}, defaultOptions, state.options, options);
+        state.scrollParents = {
+          reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],
+          popper: listScrollParents(popper)
+        }; // Orders the modifiers based on their dependencies and `phase`
+        // properties
+
+        var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers
+
+        state.orderedModifiers = orderedModifiers.filter(function (m) {
+          return m.enabled;
+        }); // Validate the provided modifiers so that the consumer will get warned
+        // if one of the modifiers is invalid for any reason
+
+        if (false) { var _getComputedStyle, marginTop, marginRight, marginBottom, marginLeft, flipModifier, modifiers; }
+
+        runModifierEffects();
+        return instance.update();
+      },
+      // Sync update – it will always be executed, even if not necessary. This
+      // is useful for low frequency updates where sync behavior simplifies the
+      // logic.
+      // For high frequency updates (e.g. `resize` and `scroll` events), always
+      // prefer the async Popper#update method
+      forceUpdate: function forceUpdate() {
+        if (isDestroyed) {
+          return;
+        }
+
+        var _state$elements = state.elements,
+            reference = _state$elements.reference,
+            popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements
+        // anymore
+
+        if (!areValidElements(reference, popper)) {
+          if (false) {}
+
+          return;
+        } // Store the reference and popper rects to be read by modifiers
+
+
+        state.rects = {
+          reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),
+          popper: getLayoutRect(popper)
+        }; // Modifiers have the ability to reset the current update cycle. The
+        // most common use case for this is the `flip` modifier changing the
+        // placement, which then needs to re-run all the modifiers, because the
+        // logic was previously ran for the previous placement and is therefore
+        // stale/incorrect
+
+        state.reset = false;
+        state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier
+        // is filled with the initial data specified by the modifier. This means
+        // it doesn't persist and is fresh on each update.
+        // To ensure persistent data, use `${name}#persistent`
+
+        state.orderedModifiers.forEach(function (modifier) {
+          return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);
+        });
+        var __debug_loops__ = 0;
+
+        for (var index = 0; index < state.orderedModifiers.length; index++) {
+          if (false) {}
+
+          if (state.reset === true) {
+            state.reset = false;
+            index = -1;
+            continue;
+          }
+
+          var _state$orderedModifie = state.orderedModifiers[index],
+              fn = _state$orderedModifie.fn,
+              _state$orderedModifie2 = _state$orderedModifie.options,
+              _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,
+              name = _state$orderedModifie.name;
+
+          if (typeof fn === 'function') {
+            state = fn({
+              state: state,
+              options: _options,
+              name: name,
+              instance: instance
+            }) || state;
+          }
+        }
+      },
+      // Async and optimistically optimized update – it will not be executed if
+      // not necessary (debounced to run at most once-per-tick)
+      update: debounce(function () {
+        return new Promise(function (resolve) {
+          instance.forceUpdate();
+          resolve(state);
+        });
+      }),
+      destroy: function destroy() {
+        cleanupModifierEffects();
+        isDestroyed = true;
+      }
+    };
+
+    if (!areValidElements(reference, popper)) {
+      if (false) {}
+
+      return instance;
+    }
+
+    instance.setOptions(options).then(function (state) {
+      if (!isDestroyed && options.onFirstUpdate) {
+        options.onFirstUpdate(state);
+      }
+    }); // Modifiers have the ability to execute arbitrary code before the first
+    // update cycle runs. They will be executed in the same order as the update
+    // cycle. This is useful when a modifier adds some persistent data that
+    // other modifiers need to use, but the modifier is run after the dependent
+    // one.
+
+    function runModifierEffects() {
+      state.orderedModifiers.forEach(function (_ref3) {
+        var name = _ref3.name,
+            _ref3$options = _ref3.options,
+            options = _ref3$options === void 0 ? {} : _ref3$options,
+            effect = _ref3.effect;
+
+        if (typeof effect === 'function') {
+          var cleanupFn = effect({
+            state: state,
+            name: name,
+            instance: instance,
+            options: options
+          });
+
+          var noopFn = function noopFn() {};
+
+          effectCleanupFns.push(cleanupFn || noopFn);
+        }
+      });
+    }
+
+    function cleanupModifierEffects() {
+      effectCleanupFns.forEach(function (fn) {
+        return fn();
+      });
+      effectCleanupFns = [];
+    }
+
+    return instance;
+  };
+}
+var createPopper = /*#__PURE__*/(/* unused pure expression or super */ null && (popperGenerator())); // eslint-disable-next-line import/no-unused-modules
+
+
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/modifiers/eventListeners.js
+ // eslint-disable-next-line import/no-unused-modules
+
+var passive = {
+  passive: true
+};
+
+function effect(_ref) {
+  var state = _ref.state,
+      instance = _ref.instance,
+      options = _ref.options;
+  var _options$scroll = options.scroll,
+      scroll = _options$scroll === void 0 ? true : _options$scroll,
+      _options$resize = options.resize,
+      resize = _options$resize === void 0 ? true : _options$resize;
+  var window = getWindow_getWindow(state.elements.popper);
+  var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);
+
+  if (scroll) {
+    scrollParents.forEach(function (scrollParent) {
+      scrollParent.addEventListener('scroll', instance.update, passive);
+    });
+  }
+
+  if (resize) {
+    window.addEventListener('resize', instance.update, passive);
+  }
+
+  return function () {
+    if (scroll) {
+      scrollParents.forEach(function (scrollParent) {
+        scrollParent.removeEventListener('scroll', instance.update, passive);
+      });
+    }
+
+    if (resize) {
+      window.removeEventListener('resize', instance.update, passive);
+    }
+  };
+} // eslint-disable-next-line import/no-unused-modules
+
+
+/* harmony default export */ var eventListeners = ({
+  name: 'eventListeners',
+  enabled: true,
+  phase: 'write',
+  fn: function fn() {},
+  effect: effect,
+  data: {}
+});
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/getBasePlacement.js
+
+function getBasePlacement(placement) {
+  return placement.split('-')[0];
+}
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/getVariation.js
+function getVariation(placement) {
+  return placement.split('-')[1];
+}
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js
+function getMainAxisFromPlacement(placement) {
+  return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';
+}
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/computeOffsets.js
+
+
+
+
+function computeOffsets(_ref) {
+  var reference = _ref.reference,
+      element = _ref.element,
+      placement = _ref.placement;
+  var basePlacement = placement ? getBasePlacement(placement) : null;
+  var variation = placement ? getVariation(placement) : null;
+  var commonX = reference.x + reference.width / 2 - element.width / 2;
+  var commonY = reference.y + reference.height / 2 - element.height / 2;
+  var offsets;
+
+  switch (basePlacement) {
+    case enums_top:
+      offsets = {
+        x: commonX,
+        y: reference.y - element.height
+      };
+      break;
+
+    case bottom:
+      offsets = {
+        x: commonX,
+        y: reference.y + reference.height
+      };
+      break;
+
+    case right:
+      offsets = {
+        x: reference.x + reference.width,
+        y: commonY
+      };
+      break;
+
+    case left:
+      offsets = {
+        x: reference.x - element.width,
+        y: commonY
+      };
+      break;
+
+    default:
+      offsets = {
+        x: reference.x,
+        y: reference.y
+      };
+  }
+
+  var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;
+
+  if (mainAxis != null) {
+    var len = mainAxis === 'y' ? 'height' : 'width';
+
+    switch (variation) {
+      case start:
+        offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);
+        break;
+
+      case end:
+        offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);
+        break;
+
+      default:
+    }
+  }
+
+  return offsets;
+}
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js
+
+
+function popperOffsets(_ref) {
+  var state = _ref.state,
+      name = _ref.name;
+  // Offsets are the actual position the popper needs to have to be
+  // properly positioned near its reference element
+  // This is the most basic placement, and will be adjusted by
+  // the modifiers in the next step
+  state.modifiersData[name] = computeOffsets({
+    reference: state.rects.reference,
+    element: state.rects.popper,
+    strategy: 'absolute',
+    placement: state.placement
+  });
+} // eslint-disable-next-line import/no-unused-modules
+
+
+/* harmony default export */ var modifiers_popperOffsets = ({
+  name: 'popperOffsets',
+  enabled: true,
+  phase: 'read',
+  fn: popperOffsets,
+  data: {}
+});
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/modifiers/computeStyles.js
+
+
+
+
+
+
+
+ // eslint-disable-next-line import/no-unused-modules
+
+var unsetSides = {
+  top: 'auto',
+  right: 'auto',
+  bottom: 'auto',
+  left: 'auto'
+}; // Round the offsets to the nearest suitable subpixel based on the DPR.
+// Zooming can change the DPR, but it seems to report a value that will
+// cleanly divide the values into the appropriate subpixels.
+
+function roundOffsetsByDPR(_ref) {
+  var x = _ref.x,
+      y = _ref.y;
+  var win = window;
+  var dpr = win.devicePixelRatio || 1;
+  return {
+    x: round(x * dpr) / dpr || 0,
+    y: round(y * dpr) / dpr || 0
+  };
+}
+
+function mapToStyles(_ref2) {
+  var _Object$assign2;
+
+  var popper = _ref2.popper,
+      popperRect = _ref2.popperRect,
+      placement = _ref2.placement,
+      variation = _ref2.variation,
+      offsets = _ref2.offsets,
+      position = _ref2.position,
+      gpuAcceleration = _ref2.gpuAcceleration,
+      adaptive = _ref2.adaptive,
+      roundOffsets = _ref2.roundOffsets,
+      isFixed = _ref2.isFixed;
+  var _offsets$x = offsets.x,
+      x = _offsets$x === void 0 ? 0 : _offsets$x,
+      _offsets$y = offsets.y,
+      y = _offsets$y === void 0 ? 0 : _offsets$y;
+
+  var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({
+    x: x,
+    y: y
+  }) : {
+    x: x,
+    y: y
+  };
+
+  x = _ref3.x;
+  y = _ref3.y;
+  var hasX = offsets.hasOwnProperty('x');
+  var hasY = offsets.hasOwnProperty('y');
+  var sideX = left;
+  var sideY = enums_top;
+  var win = window;
+
+  if (adaptive) {
+    var offsetParent = getOffsetParent(popper);
+    var heightProp = 'clientHeight';
+    var widthProp = 'clientWidth';
+
+    if (offsetParent === getWindow_getWindow(popper)) {
+      offsetParent = getDocumentElement(popper);
+
+      if (getComputedStyle_getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {
+        heightProp = 'scrollHeight';
+        widthProp = 'scrollWidth';
+      }
+    } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it
+
+
+    offsetParent = offsetParent;
+
+    if (placement === enums_top || (placement === left || placement === right) && variation === end) {
+      sideY = bottom;
+      var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]
+      offsetParent[heightProp];
+      y -= offsetY - popperRect.height;
+      y *= gpuAcceleration ? 1 : -1;
+    }
+
+    if (placement === left || (placement === enums_top || placement === bottom) && variation === end) {
+      sideX = right;
+      var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]
+      offsetParent[widthProp];
+      x -= offsetX - popperRect.width;
+      x *= gpuAcceleration ? 1 : -1;
+    }
+  }
+
+  var commonStyles = Object.assign({
+    position: position
+  }, adaptive && unsetSides);
+
+  var _ref4 = roundOffsets === true ? roundOffsetsByDPR({
+    x: x,
+    y: y
+  }) : {
+    x: x,
+    y: y
+  };
+
+  x = _ref4.x;
+  y = _ref4.y;
+
+  if (gpuAcceleration) {
+    var _Object$assign;
+
+    return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? "translate(" + x + "px, " + y + "px)" : "translate3d(" + x + "px, " + y + "px, 0)", _Object$assign));
+  }
+
+  return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + "px" : '', _Object$assign2[sideX] = hasX ? x + "px" : '', _Object$assign2.transform = '', _Object$assign2));
+}
+
+function computeStyles(_ref5) {
+  var state = _ref5.state,
+      options = _ref5.options;
+  var _options$gpuAccelerat = options.gpuAcceleration,
+      gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,
+      _options$adaptive = options.adaptive,
+      adaptive = _options$adaptive === void 0 ? true : _options$adaptive,
+      _options$roundOffsets = options.roundOffsets,
+      roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;
+
+  if (false) { var transitionProperty; }
+
+  var commonStyles = {
+    placement: getBasePlacement(state.placement),
+    variation: getVariation(state.placement),
+    popper: state.elements.popper,
+    popperRect: state.rects.popper,
+    gpuAcceleration: gpuAcceleration,
+    isFixed: state.options.strategy === 'fixed'
+  };
+
+  if (state.modifiersData.popperOffsets != null) {
+    state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {
+      offsets: state.modifiersData.popperOffsets,
+      position: state.options.strategy,
+      adaptive: adaptive,
+      roundOffsets: roundOffsets
+    })));
+  }
+
+  if (state.modifiersData.arrow != null) {
+    state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {
+      offsets: state.modifiersData.arrow,
+      position: 'absolute',
+      adaptive: false,
+      roundOffsets: roundOffsets
+    })));
+  }
+
+  state.attributes.popper = Object.assign({}, state.attributes.popper, {
+    'data-popper-placement': state.placement
+  });
+} // eslint-disable-next-line import/no-unused-modules
+
+
+/* harmony default export */ var modifiers_computeStyles = ({
+  name: 'computeStyles',
+  enabled: true,
+  phase: 'beforeWrite',
+  fn: computeStyles,
+  data: {}
+});
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/modifiers/applyStyles.js
+
+ // This modifier takes the styles prepared by the `computeStyles` modifier
+// and applies them to the HTMLElements such as popper and arrow
+
+function applyStyles(_ref) {
+  var state = _ref.state;
+  Object.keys(state.elements).forEach(function (name) {
+    var style = state.styles[name] || {};
+    var attributes = state.attributes[name] || {};
+    var element = state.elements[name]; // arrow is optional + virtual elements
+
+    if (!isHTMLElement(element) || !getNodeName(element)) {
+      return;
+    } // Flow doesn't support to extend this property, but it's the most
+    // effective way to apply styles to an HTMLElement
+    // $FlowFixMe[cannot-write]
+
+
+    Object.assign(element.style, style);
+    Object.keys(attributes).forEach(function (name) {
+      var value = attributes[name];
+
+      if (value === false) {
+        element.removeAttribute(name);
+      } else {
+        element.setAttribute(name, value === true ? '' : value);
+      }
+    });
+  });
+}
+
+function applyStyles_effect(_ref2) {
+  var state = _ref2.state;
+  var initialStyles = {
+    popper: {
+      position: state.options.strategy,
+      left: '0',
+      top: '0',
+      margin: '0'
+    },
+    arrow: {
+      position: 'absolute'
+    },
+    reference: {}
+  };
+  Object.assign(state.elements.popper.style, initialStyles.popper);
+  state.styles = initialStyles;
+
+  if (state.elements.arrow) {
+    Object.assign(state.elements.arrow.style, initialStyles.arrow);
+  }
+
+  return function () {
+    Object.keys(state.elements).forEach(function (name) {
+      var element = state.elements[name];
+      var attributes = state.attributes[name] || {};
+      var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them
+
+      var style = styleProperties.reduce(function (style, property) {
+        style[property] = '';
+        return style;
+      }, {}); // arrow is optional + virtual elements
+
+      if (!isHTMLElement(element) || !getNodeName(element)) {
+        return;
+      }
+
+      Object.assign(element.style, style);
+      Object.keys(attributes).forEach(function (attribute) {
+        element.removeAttribute(attribute);
+      });
+    });
+  };
+} // eslint-disable-next-line import/no-unused-modules
+
+
+/* harmony default export */ var modifiers_applyStyles = ({
+  name: 'applyStyles',
+  enabled: true,
+  phase: 'write',
+  fn: applyStyles,
+  effect: applyStyles_effect,
+  requires: ['computeStyles']
+});
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/modifiers/offset.js
+
+ // eslint-disable-next-line import/no-unused-modules
+
+function distanceAndSkiddingToXY(placement, rects, offset) {
+  var basePlacement = getBasePlacement(placement);
+  var invertDistance = [left, enums_top].indexOf(basePlacement) >= 0 ? -1 : 1;
+
+  var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {
+    placement: placement
+  })) : offset,
+      skidding = _ref[0],
+      distance = _ref[1];
+
+  skidding = skidding || 0;
+  distance = (distance || 0) * invertDistance;
+  return [left, right].indexOf(basePlacement) >= 0 ? {
+    x: distance,
+    y: skidding
+  } : {
+    x: skidding,
+    y: distance
+  };
+}
+
+function offset(_ref2) {
+  var state = _ref2.state,
+      options = _ref2.options,
+      name = _ref2.name;
+  var _options$offset = options.offset,
+      offset = _options$offset === void 0 ? [0, 0] : _options$offset;
+  var data = enums_placements.reduce(function (acc, placement) {
+    acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);
+    return acc;
+  }, {});
+  var _data$state$placement = data[state.placement],
+      x = _data$state$placement.x,
+      y = _data$state$placement.y;
+
+  if (state.modifiersData.popperOffsets != null) {
+    state.modifiersData.popperOffsets.x += x;
+    state.modifiersData.popperOffsets.y += y;
+  }
+
+  state.modifiersData[name] = data;
+} // eslint-disable-next-line import/no-unused-modules
+
+
+/* harmony default export */ var modifiers_offset = ({
+  name: 'offset',
+  enabled: true,
+  phase: 'main',
+  requires: ['popperOffsets'],
+  fn: offset
+});
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js
+var getOppositePlacement_hash = {
+  left: 'right',
+  right: 'left',
+  bottom: 'top',
+  top: 'bottom'
+};
+function getOppositePlacement(placement) {
+  return placement.replace(/left|right|bottom|top/g, function (matched) {
+    return getOppositePlacement_hash[matched];
+  });
+}
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js
+var getOppositeVariationPlacement_hash = {
+  start: 'end',
+  end: 'start'
+};
+function getOppositeVariationPlacement(placement) {
+  return placement.replace(/start|end/g, function (matched) {
+    return getOppositeVariationPlacement_hash[matched];
+  });
+}
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js
+
+
+
+
+function getViewportRect(element, strategy) {
+  var win = getWindow_getWindow(element);
+  var html = getDocumentElement(element);
+  var visualViewport = win.visualViewport;
+  var width = html.clientWidth;
+  var height = html.clientHeight;
+  var x = 0;
+  var y = 0;
+
+  if (visualViewport) {
+    width = visualViewport.width;
+    height = visualViewport.height;
+    var layoutViewport = isLayoutViewport();
+
+    if (layoutViewport || !layoutViewport && strategy === 'fixed') {
+      x = visualViewport.offsetLeft;
+      y = visualViewport.offsetTop;
+    }
+  }
+
+  return {
+    width: width,
+    height: height,
+    x: x + getWindowScrollBarX(element),
+    y: y
+  };
+}
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js
+
+
+
+
+ // Gets the entire size of the scrollable document area, even extending outside
+// of the `<html>` and `<body>` rect bounds if horizontally scrollable
+
+function getDocumentRect(element) {
+  var _element$ownerDocumen;
+
+  var html = getDocumentElement(element);
+  var winScroll = getWindowScroll(element);
+  var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;
+  var width = math_max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);
+  var height = math_max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);
+  var x = -winScroll.scrollLeft + getWindowScrollBarX(element);
+  var y = -winScroll.scrollTop;
+
+  if (getComputedStyle_getComputedStyle(body || html).direction === 'rtl') {
+    x += math_max(html.clientWidth, body ? body.clientWidth : 0) - width;
+  }
+
+  return {
+    width: width,
+    height: height,
+    x: x,
+    y: y
+  };
+}
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/contains.js
+
+function contains_contains(parent, child) {
+  var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method
+
+  if (parent.contains(child)) {
+    return true;
+  } // then fallback to custom implementation with Shadow DOM support
+  else if (rootNode && isShadowRoot(rootNode)) {
+      var next = child;
+
+      do {
+        if (next && parent.isSameNode(next)) {
+          return true;
+        } // $FlowFixMe[prop-missing]: need a better way to handle this...
+
+
+        next = next.parentNode || next.host;
+      } while (next);
+    } // Give up, the result is false
+
+
+  return false;
+}
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/rectToClientRect.js
+function rectToClientRect(rect) {
+  return Object.assign({}, rect, {
+    left: rect.x,
+    top: rect.y,
+    right: rect.x + rect.width,
+    bottom: rect.y + rect.height
+  });
+}
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+function getInnerBoundingClientRect(element, strategy) {
+  var rect = getBoundingClientRect(element, false, strategy === 'fixed');
+  rect.top = rect.top + element.clientTop;
+  rect.left = rect.left + element.clientLeft;
+  rect.bottom = rect.top + element.clientHeight;
+  rect.right = rect.left + element.clientWidth;
+  rect.width = element.clientWidth;
+  rect.height = element.clientHeight;
+  rect.x = rect.left;
+  rect.y = rect.top;
+  return rect;
+}
+
+function getClientRectFromMixedType(element, clippingParent, strategy) {
+  return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));
+} // A "clipping parent" is an overflowable container with the characteristic of
+// clipping (or hiding) overflowing elements with a position different from
+// `initial`
+
+
+function getClippingParents(element) {
+  var clippingParents = listScrollParents(getParentNode(element));
+  var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle_getComputedStyle(element).position) >= 0;
+  var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;
+
+  if (!isElement(clipperElement)) {
+    return [];
+  } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414
+
+
+  return clippingParents.filter(function (clippingParent) {
+    return isElement(clippingParent) && contains_contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';
+  });
+} // Gets the maximum area that the element is visible in due to any number of
+// clipping parents
+
+
+function getClippingRect(element, boundary, rootBoundary, strategy) {
+  var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);
+  var clippingParents = [].concat(mainClippingParents, [rootBoundary]);
+  var firstClippingParent = clippingParents[0];
+  var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {
+    var rect = getClientRectFromMixedType(element, clippingParent, strategy);
+    accRect.top = math_max(rect.top, accRect.top);
+    accRect.right = math_min(rect.right, accRect.right);
+    accRect.bottom = math_min(rect.bottom, accRect.bottom);
+    accRect.left = math_max(rect.left, accRect.left);
+    return accRect;
+  }, getClientRectFromMixedType(element, firstClippingParent, strategy));
+  clippingRect.width = clippingRect.right - clippingRect.left;
+  clippingRect.height = clippingRect.bottom - clippingRect.top;
+  clippingRect.x = clippingRect.left;
+  clippingRect.y = clippingRect.top;
+  return clippingRect;
+}
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js
+function getFreshSideObject() {
+  return {
+    top: 0,
+    right: 0,
+    bottom: 0,
+    left: 0
+  };
+}
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js
+
+function mergePaddingObject(paddingObject) {
+  return Object.assign({}, getFreshSideObject(), paddingObject);
+}
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/expandToHashMap.js
+function expandToHashMap(value, keys) {
+  return keys.reduce(function (hashMap, key) {
+    hashMap[key] = value;
+    return hashMap;
+  }, {});
+}
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/detectOverflow.js
+
+
+
+
+
+
+
+
+ // eslint-disable-next-line import/no-unused-modules
+
+function detectOverflow(state, options) {
+  if (options === void 0) {
+    options = {};
+  }
+
+  var _options = options,
+      _options$placement = _options.placement,
+      placement = _options$placement === void 0 ? state.placement : _options$placement,
+      _options$strategy = _options.strategy,
+      strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,
+      _options$boundary = _options.boundary,
+      boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,
+      _options$rootBoundary = _options.rootBoundary,
+      rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,
+      _options$elementConte = _options.elementContext,
+      elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,
+      _options$altBoundary = _options.altBoundary,
+      altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,
+      _options$padding = _options.padding,
+      padding = _options$padding === void 0 ? 0 : _options$padding;
+  var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));
+  var altContext = elementContext === popper ? reference : popper;
+  var popperRect = state.rects.popper;
+  var element = state.elements[altBoundary ? altContext : elementContext];
+  var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);
+  var referenceClientRect = getBoundingClientRect(state.elements.reference);
+  var popperOffsets = computeOffsets({
+    reference: referenceClientRect,
+    element: popperRect,
+    strategy: 'absolute',
+    placement: placement
+  });
+  var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));
+  var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect
+  // 0 or negative = within the clipping rect
+
+  var overflowOffsets = {
+    top: clippingClientRect.top - elementClientRect.top + paddingObject.top,
+    bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,
+    left: clippingClientRect.left - elementClientRect.left + paddingObject.left,
+    right: elementClientRect.right - clippingClientRect.right + paddingObject.right
+  };
+  var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element
+
+  if (elementContext === popper && offsetData) {
+    var offset = offsetData[placement];
+    Object.keys(overflowOffsets).forEach(function (key) {
+      var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;
+      var axis = [enums_top, bottom].indexOf(key) >= 0 ? 'y' : 'x';
+      overflowOffsets[key] += offset[axis] * multiply;
+    });
+  }
+
+  return overflowOffsets;
+}
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js
+
+
+
+
+function computeAutoPlacement(state, options) {
+  if (options === void 0) {
+    options = {};
+  }
+
+  var _options = options,
+      placement = _options.placement,
+      boundary = _options.boundary,
+      rootBoundary = _options.rootBoundary,
+      padding = _options.padding,
+      flipVariations = _options.flipVariations,
+      _options$allowedAutoP = _options.allowedAutoPlacements,
+      allowedAutoPlacements = _options$allowedAutoP === void 0 ? enums_placements : _options$allowedAutoP;
+  var variation = getVariation(placement);
+  var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {
+    return getVariation(placement) === variation;
+  }) : basePlacements;
+  var allowedPlacements = placements.filter(function (placement) {
+    return allowedAutoPlacements.indexOf(placement) >= 0;
+  });
+
+  if (allowedPlacements.length === 0) {
+    allowedPlacements = placements;
+
+    if (false) {}
+  } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...
+
+
+  var overflows = allowedPlacements.reduce(function (acc, placement) {
+    acc[placement] = detectOverflow(state, {
+      placement: placement,
+      boundary: boundary,
+      rootBoundary: rootBoundary,
+      padding: padding
+    })[getBasePlacement(placement)];
+    return acc;
+  }, {});
+  return Object.keys(overflows).sort(function (a, b) {
+    return overflows[a] - overflows[b];
+  });
+}
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/modifiers/flip.js
+
+
+
+
+
+
+ // eslint-disable-next-line import/no-unused-modules
+
+function getExpandedFallbackPlacements(placement) {
+  if (getBasePlacement(placement) === enums_auto) {
+    return [];
+  }
+
+  var oppositePlacement = getOppositePlacement(placement);
+  return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];
+}
+
+function flip(_ref) {
+  var state = _ref.state,
+      options = _ref.options,
+      name = _ref.name;
+
+  if (state.modifiersData[name]._skip) {
+    return;
+  }
+
+  var _options$mainAxis = options.mainAxis,
+      checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,
+      _options$altAxis = options.altAxis,
+      checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,
+      specifiedFallbackPlacements = options.fallbackPlacements,
+      padding = options.padding,
+      boundary = options.boundary,
+      rootBoundary = options.rootBoundary,
+      altBoundary = options.altBoundary,
+      _options$flipVariatio = options.flipVariations,
+      flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,
+      allowedAutoPlacements = options.allowedAutoPlacements;
+  var preferredPlacement = state.options.placement;
+  var basePlacement = getBasePlacement(preferredPlacement);
+  var isBasePlacement = basePlacement === preferredPlacement;
+  var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));
+  var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {
+    return acc.concat(getBasePlacement(placement) === enums_auto ? computeAutoPlacement(state, {
+      placement: placement,
+      boundary: boundary,
+      rootBoundary: rootBoundary,
+      padding: padding,
+      flipVariations: flipVariations,
+      allowedAutoPlacements: allowedAutoPlacements
+    }) : placement);
+  }, []);
+  var referenceRect = state.rects.reference;
+  var popperRect = state.rects.popper;
+  var checksMap = new Map();
+  var makeFallbackChecks = true;
+  var firstFittingPlacement = placements[0];
+
+  for (var i = 0; i < placements.length; i++) {
+    var placement = placements[i];
+
+    var _basePlacement = getBasePlacement(placement);
+
+    var isStartVariation = getVariation(placement) === start;
+    var isVertical = [enums_top, bottom].indexOf(_basePlacement) >= 0;
+    var len = isVertical ? 'width' : 'height';
+    var overflow = detectOverflow(state, {
+      placement: placement,
+      boundary: boundary,
+      rootBoundary: rootBoundary,
+      altBoundary: altBoundary,
+      padding: padding
+    });
+    var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : enums_top;
+
+    if (referenceRect[len] > popperRect[len]) {
+      mainVariationSide = getOppositePlacement(mainVariationSide);
+    }
+
+    var altVariationSide = getOppositePlacement(mainVariationSide);
+    var checks = [];
+
+    if (checkMainAxis) {
+      checks.push(overflow[_basePlacement] <= 0);
+    }
+
+    if (checkAltAxis) {
+      checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);
+    }
+
+    if (checks.every(function (check) {
+      return check;
+    })) {
+      firstFittingPlacement = placement;
+      makeFallbackChecks = false;
+      break;
+    }
+
+    checksMap.set(placement, checks);
+  }
+
+  if (makeFallbackChecks) {
+    // `2` may be desired in some cases – research later
+    var numberOfChecks = flipVariations ? 3 : 1;
+
+    var _loop = function _loop(_i) {
+      var fittingPlacement = placements.find(function (placement) {
+        var checks = checksMap.get(placement);
+
+        if (checks) {
+          return checks.slice(0, _i).every(function (check) {
+            return check;
+          });
+        }
+      });
+
+      if (fittingPlacement) {
+        firstFittingPlacement = fittingPlacement;
+        return "break";
+      }
+    };
+
+    for (var _i = numberOfChecks; _i > 0; _i--) {
+      var _ret = _loop(_i);
+
+      if (_ret === "break") break;
+    }
+  }
+
+  if (state.placement !== firstFittingPlacement) {
+    state.modifiersData[name]._skip = true;
+    state.placement = firstFittingPlacement;
+    state.reset = true;
+  }
+} // eslint-disable-next-line import/no-unused-modules
+
+
+/* harmony default export */ var modifiers_flip = ({
+  name: 'flip',
+  enabled: true,
+  phase: 'main',
+  fn: flip,
+  requiresIfExists: ['offset'],
+  data: {
+    _skip: false
+  }
+});
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/getAltAxis.js
+function getAltAxis(axis) {
+  return axis === 'x' ? 'y' : 'x';
+}
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/within.js
+
+function within(min, value, max) {
+  return math_max(min, math_min(value, max));
+}
+function withinMaxClamp(min, value, max) {
+  var v = within(min, value, max);
+  return v > max ? max : v;
+}
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js
+
+
+
+
+
+
+
+
+
+
+
+
+function preventOverflow(_ref) {
+  var state = _ref.state,
+      options = _ref.options,
+      name = _ref.name;
+  var _options$mainAxis = options.mainAxis,
+      checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,
+      _options$altAxis = options.altAxis,
+      checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,
+      boundary = options.boundary,
+      rootBoundary = options.rootBoundary,
+      altBoundary = options.altBoundary,
+      padding = options.padding,
+      _options$tether = options.tether,
+      tether = _options$tether === void 0 ? true : _options$tether,
+      _options$tetherOffset = options.tetherOffset,
+      tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;
+  var overflow = detectOverflow(state, {
+    boundary: boundary,
+    rootBoundary: rootBoundary,
+    padding: padding,
+    altBoundary: altBoundary
+  });
+  var basePlacement = getBasePlacement(state.placement);
+  var variation = getVariation(state.placement);
+  var isBasePlacement = !variation;
+  var mainAxis = getMainAxisFromPlacement(basePlacement);
+  var altAxis = getAltAxis(mainAxis);
+  var popperOffsets = state.modifiersData.popperOffsets;
+  var referenceRect = state.rects.reference;
+  var popperRect = state.rects.popper;
+  var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {
+    placement: state.placement
+  })) : tetherOffset;
+  var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {
+    mainAxis: tetherOffsetValue,
+    altAxis: tetherOffsetValue
+  } : Object.assign({
+    mainAxis: 0,
+    altAxis: 0
+  }, tetherOffsetValue);
+  var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;
+  var data = {
+    x: 0,
+    y: 0
+  };
+
+  if (!popperOffsets) {
+    return;
+  }
+
+  if (checkMainAxis) {
+    var _offsetModifierState$;
+
+    var mainSide = mainAxis === 'y' ? enums_top : left;
+    var altSide = mainAxis === 'y' ? bottom : right;
+    var len = mainAxis === 'y' ? 'height' : 'width';
+    var offset = popperOffsets[mainAxis];
+    var min = offset + overflow[mainSide];
+    var max = offset - overflow[altSide];
+    var additive = tether ? -popperRect[len] / 2 : 0;
+    var minLen = variation === start ? referenceRect[len] : popperRect[len];
+    var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go
+    // outside the reference bounds
+
+    var arrowElement = state.elements.arrow;
+    var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {
+      width: 0,
+      height: 0
+    };
+    var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();
+    var arrowPaddingMin = arrowPaddingObject[mainSide];
+    var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want
+    // to include its full size in the calculation. If the reference is small
+    // and near the edge of a boundary, the popper can overflow even if the
+    // reference is not overflowing as well (e.g. virtual elements with no
+    // width or height)
+
+    var arrowLen = within(0, referenceRect[len], arrowRect[len]);
+    var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;
+    var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;
+    var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);
+    var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;
+    var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;
+    var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;
+    var tetherMax = offset + maxOffset - offsetModifierValue;
+    var preventedOffset = within(tether ? math_min(min, tetherMin) : min, offset, tether ? math_max(max, tetherMax) : max);
+    popperOffsets[mainAxis] = preventedOffset;
+    data[mainAxis] = preventedOffset - offset;
+  }
+
+  if (checkAltAxis) {
+    var _offsetModifierState$2;
+
+    var _mainSide = mainAxis === 'x' ? enums_top : left;
+
+    var _altSide = mainAxis === 'x' ? bottom : right;
+
+    var _offset = popperOffsets[altAxis];
+
+    var _len = altAxis === 'y' ? 'height' : 'width';
+
+    var _min = _offset + overflow[_mainSide];
+
+    var _max = _offset - overflow[_altSide];
+
+    var isOriginSide = [enums_top, left].indexOf(basePlacement) !== -1;
+
+    var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;
+
+    var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;
+
+    var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;
+
+    var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);
+
+    popperOffsets[altAxis] = _preventedOffset;
+    data[altAxis] = _preventedOffset - _offset;
+  }
+
+  state.modifiersData[name] = data;
+} // eslint-disable-next-line import/no-unused-modules
+
+
+/* harmony default export */ var modifiers_preventOverflow = ({
+  name: 'preventOverflow',
+  enabled: true,
+  phase: 'main',
+  fn: preventOverflow,
+  requiresIfExists: ['offset']
+});
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/modifiers/arrow.js
+
+
+
+
+
+
+
+
+
+ // eslint-disable-next-line import/no-unused-modules
+
+var toPaddingObject = function toPaddingObject(padding, state) {
+  padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {
+    placement: state.placement
+  })) : padding;
+  return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));
+};
+
+function arrow(_ref) {
+  var _state$modifiersData$;
+
+  var state = _ref.state,
+      name = _ref.name,
+      options = _ref.options;
+  var arrowElement = state.elements.arrow;
+  var popperOffsets = state.modifiersData.popperOffsets;
+  var basePlacement = getBasePlacement(state.placement);
+  var axis = getMainAxisFromPlacement(basePlacement);
+  var isVertical = [left, right].indexOf(basePlacement) >= 0;
+  var len = isVertical ? 'height' : 'width';
+
+  if (!arrowElement || !popperOffsets) {
+    return;
+  }
+
+  var paddingObject = toPaddingObject(options.padding, state);
+  var arrowRect = getLayoutRect(arrowElement);
+  var minProp = axis === 'y' ? enums_top : left;
+  var maxProp = axis === 'y' ? bottom : right;
+  var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];
+  var startDiff = popperOffsets[axis] - state.rects.reference[axis];
+  var arrowOffsetParent = getOffsetParent(arrowElement);
+  var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;
+  var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is
+  // outside of the popper bounds
+
+  var min = paddingObject[minProp];
+  var max = clientSize - arrowRect[len] - paddingObject[maxProp];
+  var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;
+  var offset = within(min, center, max); // Prevents breaking syntax highlighting...
+
+  var axisProp = axis;
+  state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);
+}
+
+function arrow_effect(_ref2) {
+  var state = _ref2.state,
+      options = _ref2.options;
+  var _options$element = options.element,
+      arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;
+
+  if (arrowElement == null) {
+    return;
+  } // CSS selector
+
+
+  if (typeof arrowElement === 'string') {
+    arrowElement = state.elements.popper.querySelector(arrowElement);
+
+    if (!arrowElement) {
+      return;
+    }
+  }
+
+  if (false) {}
+
+  if (!contains_contains(state.elements.popper, arrowElement)) {
+    if (false) {}
+
+    return;
+  }
+
+  state.elements.arrow = arrowElement;
+} // eslint-disable-next-line import/no-unused-modules
+
+
+/* harmony default export */ var modifiers_arrow = ({
+  name: 'arrow',
+  enabled: true,
+  phase: 'main',
+  fn: arrow,
+  effect: arrow_effect,
+  requires: ['popperOffsets'],
+  requiresIfExists: ['preventOverflow']
+});
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/modifiers/hide.js
+
+
+
+function getSideOffsets(overflow, rect, preventedOffsets) {
+  if (preventedOffsets === void 0) {
+    preventedOffsets = {
+      x: 0,
+      y: 0
+    };
+  }
+
+  return {
+    top: overflow.top - rect.height - preventedOffsets.y,
+    right: overflow.right - rect.width + preventedOffsets.x,
+    bottom: overflow.bottom - rect.height + preventedOffsets.y,
+    left: overflow.left - rect.width - preventedOffsets.x
+  };
+}
+
+function isAnySideFullyClipped(overflow) {
+  return [enums_top, right, bottom, left].some(function (side) {
+    return overflow[side] >= 0;
+  });
+}
+
+function hide(_ref) {
+  var state = _ref.state,
+      name = _ref.name;
+  var referenceRect = state.rects.reference;
+  var popperRect = state.rects.popper;
+  var preventedOffsets = state.modifiersData.preventOverflow;
+  var referenceOverflow = detectOverflow(state, {
+    elementContext: 'reference'
+  });
+  var popperAltOverflow = detectOverflow(state, {
+    altBoundary: true
+  });
+  var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);
+  var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);
+  var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);
+  var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);
+  state.modifiersData[name] = {
+    referenceClippingOffsets: referenceClippingOffsets,
+    popperEscapeOffsets: popperEscapeOffsets,
+    isReferenceHidden: isReferenceHidden,
+    hasPopperEscaped: hasPopperEscaped
+  };
+  state.attributes.popper = Object.assign({}, state.attributes.popper, {
+    'data-popper-reference-hidden': isReferenceHidden,
+    'data-popper-escaped': hasPopperEscaped
+  });
+} // eslint-disable-next-line import/no-unused-modules
+
+
+/* harmony default export */ var modifiers_hide = ({
+  name: 'hide',
+  enabled: true,
+  phase: 'main',
+  requiresIfExists: ['preventOverflow'],
+  fn: hide
+});
+;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/popper.js
+
+
+
+
+
+
+
+
+
+
+var defaultModifiers = [eventListeners, modifiers_popperOffsets, modifiers_computeStyles, modifiers_applyStyles, modifiers_offset, modifiers_flip, modifiers_preventOverflow, modifiers_arrow, modifiers_hide];
+var popper_createPopper = /*#__PURE__*/popperGenerator({
+  defaultModifiers: defaultModifiers
+}); // eslint-disable-next-line import/no-unused-modules
+
+ // eslint-disable-next-line import/no-unused-modules
+
+ // eslint-disable-next-line import/no-unused-modules
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit/es/Disclosure/DisclosureState.js
+
+
+
+
+
+
+
+
+function useLastValue(value) {
+  var lastValue = (0,external_React_.useRef)(null);
+  useIsomorphicEffect(function () {
+    lastValue.current = value;
+  }, [value]);
+  return lastValue;
+}
+
+function useDisclosureState(initialState) {
+  if (initialState === void 0) {
+    initialState = {};
+  }
+
+  var _useSealedState = useSealedState(initialState),
+      _useSealedState$visib = _useSealedState.visible,
+      initialVisible = _useSealedState$visib === void 0 ? false : _useSealedState$visib,
+      _useSealedState$anima = _useSealedState.animated,
+      initialAnimated = _useSealedState$anima === void 0 ? false : _useSealedState$anima,
+      sealed = _objectWithoutPropertiesLoose(_useSealedState, ["visible", "animated"]);
+
+  var id = unstable_useIdState(sealed);
+
+  var _React$useState = (0,external_React_.useState)(initialVisible),
+      visible = _React$useState[0],
+      setVisible = _React$useState[1];
+
+  var _React$useState2 = (0,external_React_.useState)(initialAnimated),
+      animated = _React$useState2[0],
+      setAnimated = _React$useState2[1];
+
+  var _React$useState3 = (0,external_React_.useState)(false),
+      animating = _React$useState3[0],
+      setAnimating = _React$useState3[1];
+
+  var lastVisible = useLastValue(visible);
+  var visibleHasChanged = lastVisible.current != null && lastVisible.current !== visible;
+
+  if (animated && !animating && visibleHasChanged) {
+    // Sets animating to true when when visible is updated
+    setAnimating(true);
+  }
+
+  (0,external_React_.useEffect)(function () {
+    if (typeof animated === "number" && animating) {
+      var timeout = setTimeout(function () {
+        return setAnimating(false);
+      }, animated);
+      return function () {
+        clearTimeout(timeout);
+      };
+    }
+
+    if (animated && animating && "production" === "development") { var _timeout; }
+
+    return function () {};
+  }, [animated, animating]);
+  var show = (0,external_React_.useCallback)(function () {
+    return setVisible(true);
+  }, []);
+  var hide = (0,external_React_.useCallback)(function () {
+    return setVisible(false);
+  }, []);
+  var toggle = (0,external_React_.useCallback)(function () {
+    return setVisible(function (v) {
+      return !v;
+    });
+  }, []);
+  var stopAnimation = (0,external_React_.useCallback)(function () {
+    return setAnimating(false);
+  }, []);
+  return _objectSpread2(_objectSpread2({}, id), {}, {
+    visible: visible,
+    animated: animated,
+    animating: animating,
+    show: show,
+    hide: hide,
+    toggle: toggle,
+    setVisible: setVisible,
+    setAnimated: setAnimated,
+    stopAnimation: stopAnimation
+  });
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit/es/Dialog/DialogState.js
+
+
+
+
+
+
+
+
+
+function useDialogState(initialState) {
+  if (initialState === void 0) {
+    initialState = {};
+  }
+
+  var _useSealedState = useSealedState(initialState),
+      _useSealedState$modal = _useSealedState.modal,
+      initialModal = _useSealedState$modal === void 0 ? true : _useSealedState$modal,
+      sealed = _objectWithoutPropertiesLoose(_useSealedState, ["modal"]);
+
+  var disclosure = useDisclosureState(sealed);
+
+  var _React$useState = (0,external_React_.useState)(initialModal),
+      modal = _React$useState[0],
+      setModal = _React$useState[1];
+
+  var disclosureRef = (0,external_React_.useRef)(null);
+  return _objectSpread2(_objectSpread2({}, disclosure), {}, {
+    modal: modal,
+    setModal: setModal,
+    unstable_disclosureRef: disclosureRef
+  });
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit/es/Popover/PopoverState.js
+
+
+
+
+
+
+
+
+
+
+
+
+
+var isSafari = isUA("Mac") && !isUA("Chrome") && isUA("Safari");
+
+function PopoverState_applyStyles(styles) {
+  return function (prevStyles) {
+    if (styles && !shallowEqual(prevStyles, styles)) {
+      return styles;
+    }
+
+    return prevStyles;
+  };
+}
+
+function usePopoverState(initialState) {
+  if (initialState === void 0) {
+    initialState = {};
+  }
+
+  var _useSealedState = useSealedState(initialState),
+      _useSealedState$gutte = _useSealedState.gutter,
+      gutter = _useSealedState$gutte === void 0 ? 12 : _useSealedState$gutte,
+      _useSealedState$place = _useSealedState.placement,
+      sealedPlacement = _useSealedState$place === void 0 ? "bottom" : _useSealedState$place,
+      _useSealedState$unsta = _useSealedState.unstable_flip,
+      flip = _useSealedState$unsta === void 0 ? true : _useSealedState$unsta,
+      sealedOffset = _useSealedState.unstable_offset,
+      _useSealedState$unsta2 = _useSealedState.unstable_preventOverflow,
+      preventOverflow = _useSealedState$unsta2 === void 0 ? true : _useSealedState$unsta2,
+      _useSealedState$unsta3 = _useSealedState.unstable_fixed,
+      fixed = _useSealedState$unsta3 === void 0 ? false : _useSealedState$unsta3,
+      _useSealedState$modal = _useSealedState.modal,
+      modal = _useSealedState$modal === void 0 ? false : _useSealedState$modal,
+      sealed = _objectWithoutPropertiesLoose(_useSealedState, ["gutter", "placement", "unstable_flip", "unstable_offset", "unstable_preventOverflow", "unstable_fixed", "modal"]);
+
+  var popper = (0,external_React_.useRef)(null);
+  var referenceRef = (0,external_React_.useRef)(null);
+  var popoverRef = (0,external_React_.useRef)(null);
+  var arrowRef = (0,external_React_.useRef)(null);
+
+  var _React$useState = (0,external_React_.useState)(sealedPlacement),
+      originalPlacement = _React$useState[0],
+      place = _React$useState[1];
+
+  var _React$useState2 = (0,external_React_.useState)(sealedPlacement),
+      placement = _React$useState2[0],
+      setPlacement = _React$useState2[1];
+
+  var _React$useState3 = (0,external_React_.useState)(sealedOffset || [0, gutter]),
+      offset = _React$useState3[0];
+
+  var _React$useState4 = (0,external_React_.useState)({
+    position: "fixed",
+    left: "100%",
+    top: "100%"
+  }),
+      popoverStyles = _React$useState4[0],
+      setPopoverStyles = _React$useState4[1];
+
+  var _React$useState5 = (0,external_React_.useState)({}),
+      arrowStyles = _React$useState5[0],
+      setArrowStyles = _React$useState5[1];
+
+  var dialog = useDialogState(_objectSpread2({
+    modal: modal
+  }, sealed));
+  var update = (0,external_React_.useCallback)(function () {
+    if (popper.current) {
+      popper.current.forceUpdate();
+      return true;
+    }
+
+    return false;
+  }, []);
+  var updateState = (0,external_React_.useCallback)(function (state) {
+    if (state.placement) {
+      setPlacement(state.placement);
+    }
+
+    if (state.styles) {
+      setPopoverStyles(PopoverState_applyStyles(state.styles.popper));
+
+      if (arrowRef.current) {
+        setArrowStyles(PopoverState_applyStyles(state.styles.arrow));
+      }
+    }
+  }, []);
+  useIsomorphicEffect(function () {
+    if (referenceRef.current && popoverRef.current) {
+      popper.current = popper_createPopper(referenceRef.current, popoverRef.current, {
+        // https://popper.js.org/docs/v2/constructors/#options
+        placement: originalPlacement,
+        strategy: fixed ? "fixed" : "absolute",
+        // Safari needs styles to be applied in the first render, otherwise
+        // hovering over the popover when it gets visible for the first time
+        // will change its dimensions unexpectedly.
+        onFirstUpdate: isSafari ? updateState : undefined,
+        modifiers: [{
+          // https://popper.js.org/docs/v2/modifiers/event-listeners/
+          name: "eventListeners",
+          enabled: dialog.visible
+        }, {
+          // https://popper.js.org/docs/v2/modifiers/apply-styles/
+          name: "applyStyles",
+          enabled: false
+        }, {
+          // https://popper.js.org/docs/v2/modifiers/flip/
+          name: "flip",
+          enabled: flip,
+          options: {
+            padding: 8
+          }
+        }, {
+          // https://popper.js.org/docs/v2/modifiers/offset/
+          name: "offset",
+          options: {
+            offset: offset
+          }
+        }, {
+          // https://popper.js.org/docs/v2/modifiers/prevent-overflow/
+          name: "preventOverflow",
+          enabled: preventOverflow,
+          options: {
+            tetherOffset: function tetherOffset() {
+              var _arrowRef$current;
+
+              return ((_arrowRef$current = arrowRef.current) === null || _arrowRef$current === void 0 ? void 0 : _arrowRef$current.clientWidth) || 0;
+            }
+          }
+        }, {
+          // https://popper.js.org/docs/v2/modifiers/arrow/
+          name: "arrow",
+          enabled: !!arrowRef.current,
+          options: {
+            element: arrowRef.current
+          }
+        }, {
+          // https://popper.js.org/docs/v2/modifiers/#custom-modifiers
+          name: "updateState",
+          phase: "write",
+          requires: ["computeStyles"],
+          enabled: dialog.visible && "production" !== "test",
+          fn: function fn(_ref) {
+            var state = _ref.state;
+            return updateState(state);
+          }
+        }]
+      });
+    }
+
+    return function () {
+      if (popper.current) {
+        popper.current.destroy();
+        popper.current = null;
+      }
+    };
+  }, [originalPlacement, fixed, dialog.visible, flip, offset, preventOverflow]); // Ensure that the popover will be correctly positioned with an additional
+  // update.
+
+  (0,external_React_.useEffect)(function () {
+    if (!dialog.visible) return undefined;
+    var id = window.requestAnimationFrame(function () {
+      var _popper$current;
+
+      (_popper$current = popper.current) === null || _popper$current === void 0 ? void 0 : _popper$current.forceUpdate();
+    });
+    return function () {
+      window.cancelAnimationFrame(id);
+    };
+  }, [dialog.visible]);
+  return _objectSpread2(_objectSpread2({}, dialog), {}, {
+    unstable_referenceRef: referenceRef,
+    unstable_popoverRef: popoverRef,
+    unstable_arrowRef: arrowRef,
+    unstable_popoverStyles: popoverStyles,
+    unstable_arrowStyles: arrowStyles,
+    unstable_update: update,
+    unstable_originalPlacement: originalPlacement,
+    placement: placement,
+    place: place
+  });
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit/es/__globalState-300469f0.js
+var globalState = {
+  currentTooltipId: null,
+  listeners: new Set(),
+  subscribe: function subscribe(listener) {
+    var _this = this;
+
+    this.listeners.add(listener);
+    return function () {
+      _this.listeners.delete(listener);
+    };
+  },
+  show: function show(id) {
+    this.currentTooltipId = id;
+    this.listeners.forEach(function (listener) {
+      return listener(id);
+    });
+  },
+  hide: function hide(id) {
+    if (this.currentTooltipId === id) {
+      this.currentTooltipId = null;
+      this.listeners.forEach(function (listener) {
+        return listener(null);
+      });
+    }
+  }
+};
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit/es/Tooltip/TooltipState.js
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+function useTooltipState(initialState) {
+  if (initialState === void 0) {
+    initialState = {};
+  }
+
+  var _useSealedState = useSealedState(initialState),
+      _useSealedState$place = _useSealedState.placement,
+      placement = _useSealedState$place === void 0 ? "top" : _useSealedState$place,
+      _useSealedState$unsta = _useSealedState.unstable_timeout,
+      initialTimeout = _useSealedState$unsta === void 0 ? 0 : _useSealedState$unsta,
+      sealed = _objectWithoutPropertiesLoose(_useSealedState, ["placement", "unstable_timeout"]);
+
+  var _React$useState = (0,external_React_.useState)(initialTimeout),
+      timeout = _React$useState[0],
+      setTimeout = _React$useState[1];
+
+  var showTimeout = (0,external_React_.useRef)(null);
+  var hideTimeout = (0,external_React_.useRef)(null);
+
+  var _usePopoverState = usePopoverState(_objectSpread2(_objectSpread2({}, sealed), {}, {
+    placement: placement
+  })),
+      modal = _usePopoverState.modal,
+      setModal = _usePopoverState.setModal,
+      popover = _objectWithoutPropertiesLoose(_usePopoverState, ["modal", "setModal"]);
+
+  var clearTimeouts = (0,external_React_.useCallback)(function () {
+    if (showTimeout.current !== null) {
+      window.clearTimeout(showTimeout.current);
+    }
+
+    if (hideTimeout.current !== null) {
+      window.clearTimeout(hideTimeout.current);
+    }
+  }, []);
+  var hide = (0,external_React_.useCallback)(function () {
+    clearTimeouts();
+    popover.hide(); // Let's give some time so people can move from a reference to another
+    // and still show tooltips immediately
+
+    hideTimeout.current = window.setTimeout(function () {
+      globalState.hide(popover.baseId);
+    }, timeout);
+  }, [clearTimeouts, popover.hide, timeout, popover.baseId]);
+  var show = (0,external_React_.useCallback)(function () {
+    clearTimeouts();
+
+    if (!timeout || globalState.currentTooltipId) {
+      // If there's no timeout or a tooltip visible already, we can show this
+      // immediately
+      globalState.show(popover.baseId);
+      popover.show();
+    } else {
+      // There may be a reference with focus whose tooltip is still not visible
+      // In this case, we want to update it before it gets shown.
+      globalState.show(null); // Otherwise, wait a little bit to show the tooltip
+
+      showTimeout.current = window.setTimeout(function () {
+        globalState.show(popover.baseId);
+        popover.show();
+      }, timeout);
+    }
+  }, [clearTimeouts, timeout, popover.show, popover.baseId]);
+  (0,external_React_.useEffect)(function () {
+    return globalState.subscribe(function (id) {
+      if (id !== popover.baseId) {
+        clearTimeouts();
+
+        if (popover.visible) {
+          // Make sure there will be only one tooltip visible
+          popover.hide();
+        }
+      }
+    });
+  }, [popover.baseId, clearTimeouts, popover.visible, popover.hide]);
+  (0,external_React_.useEffect)(function () {
+    return function () {
+      clearTimeouts();
+      globalState.hide(popover.baseId);
+    };
+  }, [clearTimeouts, popover.baseId]);
+  return _objectSpread2(_objectSpread2({}, popover), {}, {
+    hide: hide,
+    show: show,
+    unstable_timeout: timeout,
+    unstable_setTimeout: setTimeout
+  });
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit/es/__keys-d101cb3b.js
+// Automatically generated
+var TOOLTIP_STATE_KEYS = ["baseId", "unstable_idCountRef", "visible", "animated", "animating", "setBaseId", "show", "hide", "toggle", "setVisible", "setAnimated", "stopAnimation", "unstable_disclosureRef", "unstable_referenceRef", "unstable_popoverRef", "unstable_arrowRef", "unstable_popoverStyles", "unstable_arrowStyles", "unstable_originalPlacement", "unstable_update", "placement", "place", "unstable_timeout", "unstable_setTimeout"];
+var TOOLTIP_KEYS = [].concat(TOOLTIP_STATE_KEYS, ["unstable_portal"]);
+var TOOLTIP_ARROW_KEYS = TOOLTIP_STATE_KEYS;
+var TOOLTIP_REFERENCE_KEYS = TOOLTIP_ARROW_KEYS;
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit/es/Tooltip/TooltipReference.js
+
+
+
+
+
+
+
+
+
+
+var useTooltipReference = createHook({
+  name: "TooltipReference",
+  compose: useRole,
+  keys: TOOLTIP_REFERENCE_KEYS,
+  useProps: function useProps(options, _ref) {
+    var htmlRef = _ref.ref,
+        htmlOnFocus = _ref.onFocus,
+        htmlOnBlur = _ref.onBlur,
+        htmlOnMouseEnter = _ref.onMouseEnter,
+        htmlOnMouseLeave = _ref.onMouseLeave,
+        htmlProps = _objectWithoutPropertiesLoose(_ref, ["ref", "onFocus", "onBlur", "onMouseEnter", "onMouseLeave"]);
+
+    var onFocusRef = useLiveRef(htmlOnFocus);
+    var onBlurRef = useLiveRef(htmlOnBlur);
+    var onMouseEnterRef = useLiveRef(htmlOnMouseEnter);
+    var onMouseLeaveRef = useLiveRef(htmlOnMouseLeave);
+    var onFocus = (0,external_React_.useCallback)(function (event) {
+      var _onFocusRef$current, _options$show;
+
+      (_onFocusRef$current = onFocusRef.current) === null || _onFocusRef$current === void 0 ? void 0 : _onFocusRef$current.call(onFocusRef, event);
+      if (event.defaultPrevented) return;
+      (_options$show = options.show) === null || _options$show === void 0 ? void 0 : _options$show.call(options);
+    }, [options.show]);
+    var onBlur = (0,external_React_.useCallback)(function (event) {
+      var _onBlurRef$current, _options$hide;
+
+      (_onBlurRef$current = onBlurRef.current) === null || _onBlurRef$current === void 0 ? void 0 : _onBlurRef$current.call(onBlurRef, event);
+      if (event.defaultPrevented) return;
+      (_options$hide = options.hide) === null || _options$hide === void 0 ? void 0 : _options$hide.call(options);
+    }, [options.hide]);
+    var onMouseEnter = (0,external_React_.useCallback)(function (event) {
+      var _onMouseEnterRef$curr, _options$show2;
+
+      (_onMouseEnterRef$curr = onMouseEnterRef.current) === null || _onMouseEnterRef$curr === void 0 ? void 0 : _onMouseEnterRef$curr.call(onMouseEnterRef, event);
+      if (event.defaultPrevented) return;
+      (_options$show2 = options.show) === null || _options$show2 === void 0 ? void 0 : _options$show2.call(options);
+    }, [options.show]);
+    var onMouseLeave = (0,external_React_.useCallback)(function (event) {
+      var _onMouseLeaveRef$curr, _options$hide2;
+
+      (_onMouseLeaveRef$curr = onMouseLeaveRef.current) === null || _onMouseLeaveRef$curr === void 0 ? void 0 : _onMouseLeaveRef$curr.call(onMouseLeaveRef, event);
+      if (event.defaultPrevented) return;
+      (_options$hide2 = options.hide) === null || _options$hide2 === void 0 ? void 0 : _options$hide2.call(options);
+    }, [options.hide]);
+    return _objectSpread2({
+      ref: useForkRef(options.unstable_referenceRef, htmlRef),
+      tabIndex: 0,
+      onFocus: onFocus,
+      onBlur: onBlur,
+      onMouseEnter: onMouseEnter,
+      onMouseLeave: onMouseLeave,
+      "aria-describedby": options.baseId
+    }, htmlProps);
+  }
+});
+var TooltipReference = createComponent({
+  as: "div",
+  useHook: useTooltipReference
+});
+
+
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/ui/tooltip/context.js
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * @type {import('react').Context<{ tooltip?: import('reakit').TooltipState }>}
+ */
+
+const TooltipContext = (0,external_wp_element_namespaceObject.createContext)({});
+const useTooltipContext = () => (0,external_wp_element_namespaceObject.useContext)(TooltipContext);
+
+;// CONCATENATED MODULE: ./node_modules/reakit/es/__keys-e6a5cfbe.js
+// Automatically generated
+var DISCLOSURE_STATE_KEYS = ["baseId", "unstable_idCountRef", "visible", "animated", "animating", "setBaseId", "show", "hide", "toggle", "setVisible", "setAnimated", "stopAnimation"];
+var DISCLOSURE_KEYS = DISCLOSURE_STATE_KEYS;
+var DISCLOSURE_CONTENT_KEYS = DISCLOSURE_KEYS;
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit/es/Disclosure/DisclosureContent.js
+
+
+
+
+
+
+
+
+
+
+var useDisclosureContent = createHook({
+  name: "DisclosureContent",
+  compose: useRole,
+  keys: DISCLOSURE_CONTENT_KEYS,
+  useProps: function useProps(options, _ref) {
+    var htmlOnTransitionEnd = _ref.onTransitionEnd,
+        htmlOnAnimationEnd = _ref.onAnimationEnd,
+        htmlStyle = _ref.style,
+        htmlProps = _objectWithoutPropertiesLoose(_ref, ["onTransitionEnd", "onAnimationEnd", "style"]);
+
+    var animating = options.animated && options.animating;
+
+    var _React$useState = (0,external_React_.useState)(null),
+        transition = _React$useState[0],
+        setTransition = _React$useState[1];
+
+    var hidden = !options.visible && !animating;
+    var style = hidden ? _objectSpread2({
+      display: "none"
+    }, htmlStyle) : htmlStyle;
+    var onTransitionEndRef = useLiveRef(htmlOnTransitionEnd);
+    var onAnimationEndRef = useLiveRef(htmlOnAnimationEnd);
+    var raf = (0,external_React_.useRef)(0);
+    (0,external_React_.useEffect)(function () {
+      if (!options.animated) return undefined; // Double RAF is needed so the browser has enough time to paint the
+      // default styles before processing the `data-enter` attribute. Otherwise
+      // it wouldn't be considered a transition.
+      // See https://github.com/reakit/reakit/issues/643
+
+      raf.current = window.requestAnimationFrame(function () {
+        raf.current = window.requestAnimationFrame(function () {
+          if (options.visible) {
+            setTransition("enter");
+          } else if (animating) {
+            setTransition("leave");
+          } else {
+            setTransition(null);
+          }
+        });
+      });
+      return function () {
+        return window.cancelAnimationFrame(raf.current);
+      };
+    }, [options.animated, options.visible, animating]);
+    var onEnd = (0,external_React_.useCallback)(function (event) {
+      if (!isSelfTarget(event)) return;
+      if (!animating) return; // Ignores number animated
+
+      if (options.animated === true) {
+        var _options$stopAnimatio;
+
+        (_options$stopAnimatio = options.stopAnimation) === null || _options$stopAnimatio === void 0 ? void 0 : _options$stopAnimatio.call(options);
+      }
+    }, [options.animated, animating, options.stopAnimation]);
+    var onTransitionEnd = (0,external_React_.useCallback)(function (event) {
+      var _onTransitionEndRef$c;
+
+      (_onTransitionEndRef$c = onTransitionEndRef.current) === null || _onTransitionEndRef$c === void 0 ? void 0 : _onTransitionEndRef$c.call(onTransitionEndRef, event);
+      onEnd(event);
+    }, [onEnd]);
+    var onAnimationEnd = (0,external_React_.useCallback)(function (event) {
+      var _onAnimationEndRef$cu;
+
+      (_onAnimationEndRef$cu = onAnimationEndRef.current) === null || _onAnimationEndRef$cu === void 0 ? void 0 : _onAnimationEndRef$cu.call(onAnimationEndRef, event);
+      onEnd(event);
+    }, [onEnd]);
+    return _objectSpread2({
+      id: options.baseId,
+      "data-enter": transition === "enter" ? "" : undefined,
+      "data-leave": transition === "leave" ? "" : undefined,
+      onTransitionEnd: onTransitionEnd,
+      onAnimationEnd: onAnimationEnd,
+      hidden: hidden,
+      style: style
+    }, htmlProps);
+  }
+});
+var DisclosureContent = createComponent({
+  as: "div",
+  useHook: useDisclosureContent
+});
+
+
+
+;// CONCATENATED MODULE: external "ReactDOM"
+var external_ReactDOM_namespaceObject = window["ReactDOM"];
+;// CONCATENATED MODULE: ./node_modules/reakit/es/Portal/Portal.js
+
+
+
+
+
+function getBodyElement() {
+  return canUseDOM ? document.body : null;
+}
+
+var PortalContext = /*#__PURE__*/(0,external_React_.createContext)(getBodyElement());
+function Portal(_ref) {
+  var children = _ref.children;
+  // if it's a nested portal, context is the parent portal
+  // otherwise it's document.body
+  // https://github.com/reakit/reakit/issues/513
+  var context = (0,external_React_.useContext)(PortalContext) || getBodyElement();
+
+  var _React$useState = (0,external_React_.useState)(function () {
+    if (canUseDOM) {
+      var element = document.createElement("div");
+      element.className = Portal.__className;
+      return element;
+    } // ssr
+
+
+    return null;
+  }),
+      hostNode = _React$useState[0];
+
+  useIsomorphicEffect(function () {
+    if (!hostNode || !context) return undefined;
+    context.appendChild(hostNode);
+    return function () {
+      context.removeChild(hostNode);
+    };
+  }, [hostNode, context]);
+
+  if (hostNode) {
+    return /*#__PURE__*/(0,external_ReactDOM_namespaceObject.createPortal)( /*#__PURE__*/(0,external_React_.createElement)(PortalContext.Provider, {
+      value: hostNode
+    }, children), hostNode);
+  } // ssr
+
+
+  return null;
+}
+Portal.__className = "__reakit-portal";
+Portal.__selector = "." + Portal.__className;
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit/es/Tooltip/Tooltip.js
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+function globallyHideTooltipOnEscape(event) {
+  if (event.defaultPrevented) return;
+
+  if (event.key === "Escape") {
+    globalState.show(null);
+  }
+}
+
+var useTooltip = createHook({
+  name: "Tooltip",
+  compose: useDisclosureContent,
+  keys: TOOLTIP_KEYS,
+  useOptions: function useOptions(_ref) {
+    var _ref$unstable_portal = _ref.unstable_portal,
+        unstable_portal = _ref$unstable_portal === void 0 ? true : _ref$unstable_portal,
+        options = _objectWithoutPropertiesLoose(_ref, ["unstable_portal"]);
+
+    return _objectSpread2({
+      unstable_portal: unstable_portal
+    }, options);
+  },
+  useProps: function useProps(options, _ref2) {
+    var htmlRef = _ref2.ref,
+        htmlStyle = _ref2.style,
+        htmlWrapElement = _ref2.wrapElement,
+        htmlProps = _objectWithoutPropertiesLoose(_ref2, ["ref", "style", "wrapElement"]);
+
+    (0,external_React_.useEffect)(function () {
+      var _options$unstable_pop;
+
+      var document = getDocument((_options$unstable_pop = options.unstable_popoverRef) === null || _options$unstable_pop === void 0 ? void 0 : _options$unstable_pop.current);
+      document.addEventListener("keydown", globallyHideTooltipOnEscape);
+    }, []);
+    var wrapElement = (0,external_React_.useCallback)(function (element) {
+      if (options.unstable_portal) {
+        element = /*#__PURE__*/(0,external_React_.createElement)(Portal, null, element);
+      }
+
+      if (htmlWrapElement) {
+        return htmlWrapElement(element);
+      }
+
+      return element;
+    }, [options.unstable_portal, htmlWrapElement]);
+    return _objectSpread2({
+      ref: useForkRef(options.unstable_popoverRef, htmlRef),
+      role: "tooltip",
+      style: _objectSpread2(_objectSpread2({}, options.unstable_popoverStyles), {}, {
+        pointerEvents: "none"
+      }, htmlStyle),
+      wrapElement: wrapElement
+    }, htmlProps);
+  }
+});
+var Tooltip_Tooltip = createComponent({
+  as: "div",
+  memo: true,
+  useHook: useTooltip
+});
+
+
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/ui/shortcut/component.js
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+function component_Shortcut(props, forwardedRef) {
+  const {
+    as: asProp = 'span',
+    shortcut,
+    className,
+    ...otherProps
+  } = useContextSystem(props, 'Shortcut');
+
+  if (!shortcut) {
+    return null;
+  }
+
+  let displayText;
+  let ariaLabel;
+
+  if (typeof shortcut === 'string') {
+    displayText = shortcut;
+  } else {
+    displayText = shortcut.display;
+    ariaLabel = shortcut.ariaLabel;
+  }
+
+  return (0,external_wp_element_namespaceObject.createElement)(component, extends_extends({
+    as: asProp,
+    className: className,
+    "aria-label": ariaLabel,
+    ref: forwardedRef
+  }, otherProps), displayText);
+}
+
+const ConnectedShortcut = contextConnect(component_Shortcut, 'Shortcut');
+/* harmony default export */ var shortcut_component = (ConnectedShortcut);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/z-index.js
+const Flyout = 10000;
+const z_index_Tooltip = 1000002;
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/ui/tooltip/styles.js
+
+
+function tooltip_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+const TooltipContent = /*#__PURE__*/emotion_react_browser_esm_css("z-index:", z_index_Tooltip, ";box-sizing:border-box;opacity:0;outline:none;transform-origin:top center;transition:opacity ", config_values.transitionDurationFastest, " ease;&[data-enter]{opacity:1;}" + ( true ? "" : 0),  true ? "" : 0);
+const TooltipPopoverView = emotion_styled_base_browser_esm("div",  true ? {
+  target: "e7tfjmw1"
+} : 0)("background:rgba( 0, 0, 0, 0.8 );border-radius:2px;box-shadow:0 0 0 1px rgba( 255, 255, 255, 0.04 );color:", COLORS.white, ";padding:4px 8px;" + ( true ? "" : 0));
+const noOutline =  true ? {
+  name: "12mkfdx",
+  styles: "outline:none"
+} : 0;
+const TooltipShortcut = /*#__PURE__*/emotion_styled_base_browser_esm(shortcut_component,  true ? {
+  target: "e7tfjmw0"
+} : 0)("display:inline-block;margin-left:", space(1), ";" + ( true ? "" : 0));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/ui/tooltip/content.js
+
+
+
+/**
+ * External dependencies
+ */
+// eslint-disable-next-line no-restricted-imports
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+const {
+  TooltipPopoverView: content_TooltipPopoverView
+} = tooltip_styles_namespaceObject;
+/**
+ *
+ * @param {import('../context').WordPressComponentProps<import('./types').ContentProps, 'div'>} props
+ * @param {import('react').ForwardedRef<any>}                                                   forwardedRef
+ */
+
+function content_TooltipContent(props, forwardedRef) {
+  const {
+    children,
+    className,
+    ...otherProps
+  } = useContextSystem(props, 'TooltipContent');
+  const {
+    tooltip
+  } = useTooltipContext();
+  const cx = useCx();
+  const classes = cx(TooltipContent, className);
+  return (0,external_wp_element_namespaceObject.createElement)(Tooltip_Tooltip, extends_extends({
+    as: component
+  }, otherProps, tooltip, {
+    className: classes,
+    ref: forwardedRef
+  }), (0,external_wp_element_namespaceObject.createElement)(content_TooltipPopoverView, null, children));
+}
+
+/* harmony default export */ var tooltip_content = (contextConnect(content_TooltipContent, 'TooltipContent'));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/ui/tooltip/component.js
+
+
+
+/**
+ * External dependencies
+ */
+// eslint-disable-next-line no-restricted-imports
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+/**
+ * @param {import('../context').WordPressComponentProps<import('./types').Props, 'div'>} props
+ * @param {import('react').ForwardedRef<any>}                                            forwardedRef
+ */
+
+function component_Tooltip(props, forwardedRef) {
+  const {
+    animated = true,
+    animationDuration = 160,
+    baseId,
+    children,
+    content,
+    focusable = true,
+    gutter = 4,
+    id,
+    modal = true,
+    placement,
+    visible = false,
+    shortcut,
+    ...otherProps
+  } = useContextSystem(props, 'Tooltip');
+  const tooltip = useTooltipState({
+    animated: animated ? animationDuration : undefined,
+    baseId: baseId || id,
+    gutter,
+    placement,
+    visible,
+    ...otherProps
+  });
+  const contextProps = (0,external_wp_element_namespaceObject.useMemo)(() => ({
+    tooltip
+  }), [tooltip]);
+  return (0,external_wp_element_namespaceObject.createElement)(TooltipContext.Provider, {
+    value: contextProps
+  }, content && (0,external_wp_element_namespaceObject.createElement)(tooltip_content, {
+    unstable_portal: modal,
+    ref: forwardedRef
+  }, content, shortcut && (0,external_wp_element_namespaceObject.createElement)(TooltipShortcut, {
+    shortcut: shortcut
+  })), children && (0,external_wp_element_namespaceObject.createElement)(TooltipReference, extends_extends({}, tooltip, children.props, {
+    // @ts-ignore If ref doesn't exist that's fine with us, it'll just be undefined, but it can exist on ReactElement and there's no reason to try to scope this (it'll just overcomplicate things)
+    ref: children === null || children === void 0 ? void 0 : children.ref
+  }), referenceProps => {
+    if (!focusable) {
+      referenceProps.tabIndex = undefined;
+    }
+
+    return (0,external_wp_element_namespaceObject.cloneElement)(children, referenceProps);
+  }));
+}
+/**
+ * `Tooltip` is a component that provides context for a user interface element.
+ *
+ * @example
+ * ```jsx
+ * import { Tooltip, Text } from `@wordpress/components/ui`;
+ *
+ * function Example() {
+ * 	return (
+ * 		<Tooltip content="Code is Poetry">
+ * 			<Text>WordPress.org</Text>
+ * 		</Tooltip>
+ * 	)
+ * }
+ * ```
+ */
+
+
+const ConnectedTooltip = contextConnect(component_Tooltip, 'Tooltip');
+/* harmony default export */ var tooltip_component = (ConnectedTooltip);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/color-picker/color-display.js
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+
+const ValueDisplay = _ref => {
+  let {
+    values
+  } = _ref;
+  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, values.map(_ref2 => {
+    let [value, abbreviation] = _ref2;
+    return (0,external_wp_element_namespaceObject.createElement)(flex_item_component, {
+      key: abbreviation,
+      isBlock: true,
+      display: "flex"
+    }, (0,external_wp_element_namespaceObject.createElement)(text_component, {
+      color: COLORS.ui.theme
+    }, abbreviation), (0,external_wp_element_namespaceObject.createElement)(text_component, null, value));
+  }));
+};
+
+const HslDisplay = _ref3 => {
+  let {
+    color,
+    enableAlpha
+  } = _ref3;
+  const {
+    h,
+    s,
+    l,
+    a
+  } = color.toHsl();
+  const values = [[Math.floor(h), 'H'], [Math.round(s * 100), 'S'], [Math.round(l * 100), 'L']];
+
+  if (enableAlpha) {
+    values.push([Math.round(a * 100), 'A']);
+  }
+
+  return (0,external_wp_element_namespaceObject.createElement)(ValueDisplay, {
+    values: values
+  });
+};
+
+const RgbDisplay = _ref4 => {
+  let {
+    color,
+    enableAlpha
+  } = _ref4;
+  const {
+    r,
+    g,
+    b,
+    a
+  } = color.toRgb();
+  const values = [[r, 'R'], [g, 'G'], [b, 'B']];
+
+  if (enableAlpha) {
+    values.push([Math.round(a * 100), 'A']);
+  }
+
+  return (0,external_wp_element_namespaceObject.createElement)(ValueDisplay, {
+    values: values
+  });
+};
+
+const HexDisplay = _ref5 => {
+  let {
+    color
+  } = _ref5;
+  const colorWithoutHash = color.toHex().slice(1).toUpperCase();
+  return (0,external_wp_element_namespaceObject.createElement)(flex_item_component, null, (0,external_wp_element_namespaceObject.createElement)(text_component, {
+    color: COLORS.ui.theme
+  }, "#"), (0,external_wp_element_namespaceObject.createElement)(text_component, null, colorWithoutHash));
+};
+
+const getComponent = colorType => {
+  switch (colorType) {
+    case 'hsl':
+      return HslDisplay;
+
+    case 'rgb':
+      return RgbDisplay;
+
+    default:
+    case 'hex':
+      return HexDisplay;
+  }
+};
+
+const ColorDisplay = _ref6 => {
+  let {
+    color,
+    colorType,
+    enableAlpha
+  } = _ref6;
+  const [copiedColor, setCopiedColor] = (0,external_wp_element_namespaceObject.useState)(null);
+  const copyTimer = (0,external_wp_element_namespaceObject.useRef)();
+  const props = {
+    color,
+    enableAlpha
+  };
+  const Component = getComponent(colorType);
+  const copyRef = (0,external_wp_compose_namespaceObject.useCopyToClipboard)(() => {
+    switch (colorType) {
+      case 'hsl':
+        {
+          return color.toHslString();
+        }
+
+      case 'rgb':
+        {
+          return color.toRgbString();
+        }
+
+      default:
+      case 'hex':
+        {
+          return color.toHex();
+        }
+    }
+  }, () => {
+    if (copyTimer.current) {
+      clearTimeout(copyTimer.current);
+    }
+
+    setCopiedColor(color.toHex());
+    copyTimer.current = setTimeout(() => {
+      setCopiedColor(null);
+      copyTimer.current = undefined;
+    }, 3000);
+  });
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    // Clear copyTimer on component unmount.
+    return () => {
+      if (copyTimer.current) {
+        clearTimeout(copyTimer.current);
+      }
+    };
+  }, []);
+  return (0,external_wp_element_namespaceObject.createElement)(tooltip_component, {
+    content: (0,external_wp_element_namespaceObject.createElement)(text_component, {
+      color: "white"
+    }, copiedColor === color.toHex() ? (0,external_wp_i18n_namespaceObject.__)('Copied!') : (0,external_wp_i18n_namespaceObject.__)('Copy'))
+  }, (0,external_wp_element_namespaceObject.createElement)(flex_component, {
+    justify: "flex-start",
+    gap: space(1),
+    ref: copyRef,
+    style: {
+      height: 30
+    }
+  }, (0,external_wp_element_namespaceObject.createElement)(Component, props)));
+};
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/color-picker/input-with-slider.js
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+const InputWithSlider = _ref => {
+  let {
+    min,
+    max,
+    label,
+    abbreviation,
+    onChange,
+    value
+  } = _ref;
+  return (0,external_wp_element_namespaceObject.createElement)(spacer_component, {
+    as: h_stack_component,
+    spacing: 4
+  }, (0,external_wp_element_namespaceObject.createElement)(NumberControlWrapper, {
+    min: min,
+    max: max,
+    label: label,
+    hideLabelFromVision: true,
+    value: value,
+    onChange: onChange,
+    prefix: (0,external_wp_element_namespaceObject.createElement)(spacer_component, {
+      as: text_component,
+      paddingLeft: space(3.5),
+      color: COLORS.ui.theme,
+      lineHeight: 1
+    }, abbreviation),
+    hideHTMLArrows: true
+  }), (0,external_wp_element_namespaceObject.createElement)(styles_RangeControl, {
+    label: label,
+    hideLabelFromVision: true,
+    min: min,
+    max: max,
+    value: value,
+    onChange: onChange,
+    withInputField: false
+  }));
+};
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/color-picker/rgb-input.js
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+const RgbInput = _ref => {
+  let {
+    color,
+    onChange,
+    enableAlpha
+  } = _ref;
+  const {
+    r,
+    g,
+    b,
+    a
+  } = color.toRgb();
+  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(InputWithSlider, {
+    min: 0,
+    max: 255,
+    label: "Red",
+    abbreviation: "R",
+    value: r,
+    onChange: nextR => onChange(w({
+      r: nextR,
+      g,
+      b,
+      a
+    }))
+  }), (0,external_wp_element_namespaceObject.createElement)(InputWithSlider, {
+    min: 0,
+    max: 255,
+    label: "Green",
+    abbreviation: "G",
+    value: g,
+    onChange: nextG => onChange(w({
+      r,
+      g: nextG,
+      b,
+      a
+    }))
+  }), (0,external_wp_element_namespaceObject.createElement)(InputWithSlider, {
+    min: 0,
+    max: 255,
+    label: "Blue",
+    abbreviation: "B",
+    value: b,
+    onChange: nextB => onChange(w({
+      r,
+      g,
+      b: nextB,
+      a
+    }))
+  }), enableAlpha && (0,external_wp_element_namespaceObject.createElement)(InputWithSlider, {
+    min: 0,
+    max: 100,
+    label: "Alpha",
+    abbreviation: "A",
+    value: Math.trunc(a * 100),
+    onChange: nextA => onChange(w({
+      r,
+      g,
+      b,
+      a: nextA / 100
+    }))
+  }));
+};
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/color-picker/hsl-input.js
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+const HslInput = _ref => {
+  let {
+    color,
+    onChange,
+    enableAlpha
+  } = _ref;
+  const {
+    h,
+    s,
+    l,
+    a
+  } = color.toHsl();
+  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(InputWithSlider, {
+    min: 0,
+    max: 359,
+    label: "Hue",
+    abbreviation: "H",
+    value: h,
+    onChange: nextH => {
+      onChange(w({
+        h: nextH,
+        s,
+        l,
+        a
+      }));
+    }
+  }), (0,external_wp_element_namespaceObject.createElement)(InputWithSlider, {
+    min: 0,
+    max: 100,
+    label: "Saturation",
+    abbreviation: "S",
+    value: s,
+    onChange: nextS => {
+      onChange(w({
+        h,
+        s: nextS,
+        l,
+        a
+      }));
+    }
+  }), (0,external_wp_element_namespaceObject.createElement)(InputWithSlider, {
+    min: 0,
+    max: 100,
+    label: "Lightness",
+    abbreviation: "L",
+    value: l,
+    onChange: nextL => {
+      onChange(w({
+        h,
+        s,
+        l: nextL,
+        a
+      }));
+    }
+  }), enableAlpha && (0,external_wp_element_namespaceObject.createElement)(InputWithSlider, {
+    min: 0,
+    max: 100,
+    label: "Alpha",
+    abbreviation: "A",
+    value: Math.trunc(100 * a),
+    onChange: nextA => {
+      onChange(w({
+        h,
+        s,
+        l,
+        a: nextA / 100
+      }));
+    }
+  }));
+};
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/color-picker/hex-input.js
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+const HexInput = _ref => {
+  let {
+    color,
+    onChange,
+    enableAlpha
+  } = _ref;
+
+  const handleChange = nextValue => {
+    if (!nextValue) return;
+    const hexValue = nextValue.startsWith('#') ? nextValue : '#' + nextValue;
+    onChange(w(hexValue));
+  };
+
+  return (0,external_wp_element_namespaceObject.createElement)(ColorHexInputControl, {
+    prefix: (0,external_wp_element_namespaceObject.createElement)(spacer_component, {
+      as: text_component,
+      marginLeft: space(3.5),
+      color: COLORS.ui.theme,
+      lineHeight: 1
+    }, "#"),
+    value: color.toHex().slice(1).toUpperCase(),
+    onChange: handleChange,
+    maxLength: enableAlpha ? 9 : 7,
+    label: (0,external_wp_i18n_namespaceObject.__)('Hex color'),
+    hideLabelFromVision: true
+  });
+};
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/color-picker/color-input.js
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+const ColorInput = _ref => {
+  let {
+    colorType,
+    color,
+    onChange,
+    enableAlpha
+  } = _ref;
+  const props = {
+    color,
+    onChange,
+    enableAlpha
+  };
+
+  switch (colorType) {
+    case 'hsl':
+      return (0,external_wp_element_namespaceObject.createElement)(HslInput, props);
+
+    case 'rgb':
+      return (0,external_wp_element_namespaceObject.createElement)(RgbInput, props);
+
+    default:
+    case 'hex':
+      return (0,external_wp_element_namespaceObject.createElement)(HexInput, props);
+  }
+};
+
+;// CONCATENATED MODULE: ./node_modules/react-colorful/dist/index.mjs
+function dist_u(){return(dist_u=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e}).apply(this,arguments)}function dist_c(e,r){if(null==e)return{};var t,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r.indexOf(t=a[n])>=0||(o[t]=e[t]);return o}function dist_i(e){var t=(0,external_React_.useRef)(e),n=(0,external_React_.useRef)(function(e){t.current&&t.current(e)});return t.current=e,n.current}var dist_s=function(e,r,t){return void 0===r&&(r=0),void 0===t&&(t=1),e>t?t:e<r?r:e},dist_f=function(e){return"touches"in e},dist_v=function(e){return e&&e.ownerDocument.defaultView||self},dist_d=function(e,r,t){var n=e.getBoundingClientRect(),o=dist_f(r)?function(e,r){for(var t=0;t<e.length;t++)if(e[t].identifier===r)return e[t];return e[0]}(r.touches,t):r;return{left:dist_s((o.pageX-(n.left+dist_v(e).pageXOffset))/n.width),top:dist_s((o.pageY-(n.top+dist_v(e).pageYOffset))/n.height)}},dist_h=function(e){!dist_f(e)&&e.preventDefault()},dist_m=external_React_.memo(function(o){var a=o.onMove,l=o.onKey,s=dist_c(o,["onMove","onKey"]),m=(0,external_React_.useRef)(null),g=dist_i(a),p=dist_i(l),b=(0,external_React_.useRef)(null),_=(0,external_React_.useRef)(!1),x=(0,external_React_.useMemo)(function(){var e=function(e){dist_h(e),(dist_f(e)?e.touches.length>0:e.buttons>0)&&m.current?g(dist_d(m.current,e,b.current)):t(!1)},r=function(){return t(!1)};function t(t){var n=_.current,o=dist_v(m.current),a=t?o.addEventListener:o.removeEventListener;a(n?"touchmove":"mousemove",e),a(n?"touchend":"mouseup",r)}return[function(e){var r=e.nativeEvent,n=m.current;if(n&&(dist_h(r),!function(e,r){return r&&!dist_f(e)}(r,_.current)&&n)){if(dist_f(r)){_.current=!0;var o=r.changedTouches||[];o.length&&(b.current=o[0].identifier)}n.focus(),g(dist_d(n,r,b.current)),t(!0)}},function(e){var r=e.which||e.keyCode;r<37||r>40||(e.preventDefault(),p({left:39===r?.05:37===r?-.05:0,top:40===r?.05:38===r?-.05:0}))},t]},[p,g]),C=x[0],E=x[1],H=x[2];return (0,external_React_.useEffect)(function(){return H},[H]),external_React_.createElement("div",dist_u({},s,{onTouchStart:C,onMouseDown:C,className:"react-colorful__interactive",ref:m,onKeyDown:E,tabIndex:0,role:"slider"}))}),dist_g=function(e){return e.filter(Boolean).join(" ")},dist_p=function(r){var t=r.color,n=r.left,o=r.top,a=void 0===o?.5:o,l=dist_g(["react-colorful__pointer",r.className]);return external_React_.createElement("div",{className:l,style:{top:100*a+"%",left:100*n+"%"}},external_React_.createElement("div",{className:"react-colorful__pointer-fill",style:{backgroundColor:t}}))},dist_b=function(e,r,t){return void 0===r&&(r=0),void 0===t&&(t=Math.pow(10,r)),Math.round(t*e)/t},_={grad:.9,turn:360,rad:360/(2*Math.PI)},dist_x=function(e){return L(C(e))},C=function(e){return"#"===e[0]&&(e=e.substring(1)),e.length<6?{r:parseInt(e[0]+e[0],16),g:parseInt(e[1]+e[1],16),b:parseInt(e[2]+e[2],16),a:4===e.length?dist_b(parseInt(e[3]+e[3],16)/255,2):1}:{r:parseInt(e.substring(0,2),16),g:parseInt(e.substring(2,4),16),b:parseInt(e.substring(4,6),16),a:8===e.length?dist_b(parseInt(e.substring(6,8),16)/255,2):1}},dist_E=function(e,r){return void 0===r&&(r="deg"),Number(e)*(_[r]||1)},dist_H=function(e){var r=/hsla?\(?\s*(-?\d*\.?\d+)(deg|rad|grad|turn)?[,\s]+(-?\d*\.?\d+)%?[,\s]+(-?\d*\.?\d+)%?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i.exec(e);return r?dist_N({h:dist_E(r[1],r[2]),s:Number(r[3]),l:Number(r[4]),a:void 0===r[5]?1:Number(r[5])/(r[6]?100:1)}):{h:0,s:0,v:0,a:1}},dist_M=dist_H,dist_N=function(e){var r=e.s,t=e.l;return{h:e.h,s:(r*=(t<50?t:100-t)/100)>0?2*r/(t+r)*100:0,v:t+r,a:e.a}},dist_w=function(e){return K(dist_I(e))},dist_y=function(e){var r=e.s,t=e.v,n=e.a,o=(200-r)*t/100;return{h:dist_b(e.h),s:dist_b(o>0&&o<200?r*t/100/(o<=100?o:200-o)*100:0),l:dist_b(o/2),a:dist_b(n,2)}},q=function(e){var r=dist_y(e);return"hsl("+r.h+", "+r.s+"%, "+r.l+"%)"},dist_k=function(e){var r=dist_y(e);return"hsla("+r.h+", "+r.s+"%, "+r.l+"%, "+r.a+")"},dist_I=function(e){var r=e.h,t=e.s,n=e.v,o=e.a;r=r/360*6,t/=100,n/=100;var a=Math.floor(r),l=n*(1-t),u=n*(1-(r-a)*t),c=n*(1-(1-r+a)*t),i=a%6;return{r:dist_b(255*[n,u,l,l,c,n][i]),g:dist_b(255*[c,n,n,u,l,l][i]),b:dist_b(255*[l,l,c,n,n,u][i]),a:dist_b(o,2)}},O=function(e){var r=/hsva?\(?\s*(-?\d*\.?\d+)(deg|rad|grad|turn)?[,\s]+(-?\d*\.?\d+)%?[,\s]+(-?\d*\.?\d+)%?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i.exec(e);return r?A({h:dist_E(r[1],r[2]),s:Number(r[3]),v:Number(r[4]),a:void 0===r[5]?1:Number(r[5])/(r[6]?100:1)}):{h:0,s:0,v:0,a:1}},dist_j=O,z=function(e){var r=/rgba?\(?\s*(-?\d*\.?\d+)(%)?[,\s]+(-?\d*\.?\d+)(%)?[,\s]+(-?\d*\.?\d+)(%)?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i.exec(e);return r?L({r:Number(r[1])/(r[2]?100/255:1),g:Number(r[3])/(r[4]?100/255:1),b:Number(r[5])/(r[6]?100/255:1),a:void 0===r[7]?1:Number(r[7])/(r[8]?100:1)}):{h:0,s:0,v:0,a:1}},B=z,D=function(e){var r=e.toString(16);return r.length<2?"0"+r:r},K=function(e){var r=e.r,t=e.g,n=e.b,o=e.a,a=o<1?D(dist_b(255*o)):"";return"#"+D(r)+D(t)+D(n)+a},L=function(e){var r=e.r,t=e.g,n=e.b,o=e.a,a=Math.max(r,t,n),l=a-Math.min(r,t,n),u=l?a===r?(t-n)/l:a===t?2+(n-r)/l:4+(r-t)/l:0;return{h:dist_b(60*(u<0?u+6:u)),s:dist_b(a?l/a*100:0),v:dist_b(a/255*100),a:o}},A=function(e){return{h:dist_b(e.h),s:dist_b(e.s),v:dist_b(e.v),a:dist_b(e.a,2)}},dist_S=external_React_.memo(function(r){var t=r.hue,n=r.onChange,o=dist_g(["react-colorful__hue",r.className]);return external_React_.createElement("div",{className:o},external_React_.createElement(dist_m,{onMove:function(e){n({h:360*e.left})},onKey:function(e){n({h:dist_s(t+360*e.left,0,360)})},"aria-label":"Hue","aria-valuenow":dist_b(t),"aria-valuemax":"360","aria-valuemin":"0"},external_React_.createElement(dist_p,{className:"react-colorful__hue-pointer",left:t/360,color:q({h:t,s:100,v:100,a:1})})))}),T=external_React_.memo(function(r){var t=r.hsva,n=r.onChange,o={backgroundColor:q({h:t.h,s:100,v:100,a:1})};return external_React_.createElement("div",{className:"react-colorful__saturation",style:o},external_React_.createElement(dist_m,{onMove:function(e){n({s:100*e.left,v:100-100*e.top})},onKey:function(e){n({s:dist_s(t.s+100*e.left,0,100),v:dist_s(t.v-100*e.top,0,100)})},"aria-label":"Color","aria-valuetext":"Saturation "+dist_b(t.s)+"%, Brightness "+dist_b(t.v)+"%"},external_React_.createElement(dist_p,{className:"react-colorful__saturation-pointer",top:1-t.v/100,left:t.s/100,color:q(t)})))}),F=function(e,r){if(e===r)return!0;for(var t in e)if(e[t]!==r[t])return!1;return!0},P=function(e,r){return e.replace(/\s/g,"")===r.replace(/\s/g,"")},X=function(e,r){return e.toLowerCase()===r.toLowerCase()||F(C(e),C(r))};function Y(e,t,l){var u=dist_i(l),c=(0,external_React_.useState)(function(){return e.toHsva(t)}),s=c[0],f=c[1],v=(0,external_React_.useRef)({color:t,hsva:s});(0,external_React_.useEffect)(function(){if(!e.equal(t,v.current.color)){var r=e.toHsva(t);v.current={hsva:r,color:t},f(r)}},[t,e]),(0,external_React_.useEffect)(function(){var r;F(s,v.current.hsva)||e.equal(r=e.fromHsva(s),v.current.color)||(v.current={hsva:s,color:r},u(r))},[s,e,u]);var d=(0,external_React_.useCallback)(function(e){f(function(r){return Object.assign({},r,e)})},[]);return[s,d]}var R,dist_V="undefined"!=typeof window?external_React_.useLayoutEffect:external_React_.useEffect,dist_$=function(){return R||( true?__webpack_require__.nc:0)},G=function(e){R=e},J=new Map,Q=function(e){dist_V(function(){var r=e.current?e.current.ownerDocument:document;if(void 0!==r&&!J.has(r)){var t=r.createElement("style");t.innerHTML='.react-colorful{position:relative;display:flex;flex-direction:column;width:200px;height:200px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.react-colorful__saturation{position:relative;flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(0deg,#000,transparent),linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.react-colorful__alpha-gradient,.react-colorful__pointer-fill{content:"";position:absolute;left:0;top:0;right:0;bottom:0;pointer-events:none;border-radius:inherit}.react-colorful__alpha-gradient,.react-colorful__saturation{box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}.react-colorful__alpha,.react-colorful__hue{position:relative;height:24px}.react-colorful__hue{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.react-colorful__last-control{border-radius:0 0 8px 8px}.react-colorful__interactive{position:absolute;left:0;top:0;right:0;bottom:0;border-radius:inherit;outline:none;touch-action:none}.react-colorful__pointer{position:absolute;z-index:1;box-sizing:border-box;width:28px;height:28px;transform:translate(-50%,-50%);background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2)}.react-colorful__interactive:focus .react-colorful__pointer{transform:translate(-50%,-50%) scale(1.1)}.react-colorful__alpha,.react-colorful__alpha-pointer{background-color:#fff;background-image:url(\'data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill-opacity=".05"><path d="M8 0h8v8H8zM0 8h8v8H0z"/></svg>\')}.react-colorful__saturation-pointer{z-index:3}.react-colorful__hue-pointer{z-index:2}',J.set(r,t);var n=dist_$();n&&t.setAttribute("nonce",n),r.head.appendChild(t)}},[])},U=function(t){var n=t.className,o=t.colorModel,a=t.color,l=void 0===a?o.defaultColor:a,i=t.onChange,s=dist_c(t,["className","colorModel","color","onChange"]),f=(0,external_React_.useRef)(null);Q(f);var v=Y(o,l,i),d=v[0],h=v[1],m=dist_g(["react-colorful",n]);return external_React_.createElement("div",dist_u({},s,{ref:f,className:m}),external_React_.createElement(T,{hsva:d,onChange:h}),external_React_.createElement(dist_S,{hue:d.h,onChange:h,className:"react-colorful__last-control"}))},W={defaultColor:"000",toHsva:dist_x,fromHsva:function(e){return dist_w({h:e.h,s:e.s,v:e.v,a:1})},equal:X},Z=function(r){return e.createElement(U,dist_u({},r,{colorModel:W}))},ee=function(r){var t=r.className,n=r.hsva,o=r.onChange,a={backgroundImage:"linear-gradient(90deg, "+dist_k(Object.assign({},n,{a:0}))+", "+dist_k(Object.assign({},n,{a:1}))+")"},l=dist_g(["react-colorful__alpha",t]),u=dist_b(100*n.a);return external_React_.createElement("div",{className:l},external_React_.createElement("div",{className:"react-colorful__alpha-gradient",style:a}),external_React_.createElement(dist_m,{onMove:function(e){o({a:e.left})},onKey:function(e){o({a:dist_s(n.a+e.left)})},"aria-label":"Alpha","aria-valuetext":u+"%","aria-valuenow":u,"aria-valuemin":"0","aria-valuemax":"100"},external_React_.createElement(dist_p,{className:"react-colorful__alpha-pointer",left:n.a,color:dist_k(n)})))},re=function(t){var n=t.className,o=t.colorModel,a=t.color,l=void 0===a?o.defaultColor:a,i=t.onChange,s=dist_c(t,["className","colorModel","color","onChange"]),f=(0,external_React_.useRef)(null);Q(f);var v=Y(o,l,i),d=v[0],h=v[1],m=dist_g(["react-colorful",n]);return external_React_.createElement("div",dist_u({},s,{ref:f,className:m}),external_React_.createElement(T,{hsva:d,onChange:h}),external_React_.createElement(dist_S,{hue:d.h,onChange:h}),external_React_.createElement(ee,{hsva:d,onChange:h,className:"react-colorful__last-control"}))},te={defaultColor:"0001",toHsva:dist_x,fromHsva:dist_w,equal:X},ne=function(r){return e.createElement(re,dist_u({},r,{colorModel:te}))},oe={defaultColor:{h:0,s:0,l:0,a:1},toHsva:dist_N,fromHsva:dist_y,equal:F},ae=function(r){return e.createElement(re,dist_u({},r,{colorModel:oe}))},le={defaultColor:"hsla(0, 0%, 0%, 1)",toHsva:dist_H,fromHsva:dist_k,equal:P},ue=function(r){return e.createElement(re,dist_u({},r,{colorModel:le}))},ce={defaultColor:{h:0,s:0,l:0},toHsva:function(e){return dist_N({h:e.h,s:e.s,l:e.l,a:1})},fromHsva:function(e){return{h:(r=dist_y(e)).h,s:r.s,l:r.l};var r},equal:F},ie=function(r){return e.createElement(U,dist_u({},r,{colorModel:ce}))},se={defaultColor:"hsl(0, 0%, 0%)",toHsva:dist_M,fromHsva:q,equal:P},fe=function(r){return e.createElement(U,dist_u({},r,{colorModel:se}))},ve={defaultColor:{h:0,s:0,v:0,a:1},toHsva:function(e){return e},fromHsva:A,equal:F},de=function(r){return e.createElement(re,dist_u({},r,{colorModel:ve}))},he={defaultColor:"hsva(0, 0%, 0%, 1)",toHsva:O,fromHsva:function(e){var r=A(e);return"hsva("+r.h+", "+r.s+"%, "+r.v+"%, "+r.a+")"},equal:P},me=function(r){return e.createElement(re,dist_u({},r,{colorModel:he}))},ge={defaultColor:{h:0,s:0,v:0},toHsva:function(e){return{h:e.h,s:e.s,v:e.v,a:1}},fromHsva:function(e){var r=A(e);return{h:r.h,s:r.s,v:r.v}},equal:F},pe=function(r){return e.createElement(U,dist_u({},r,{colorModel:ge}))},be={defaultColor:"hsv(0, 0%, 0%)",toHsva:dist_j,fromHsva:function(e){var r=A(e);return"hsv("+r.h+", "+r.s+"%, "+r.v+"%)"},equal:P},_e=function(r){return e.createElement(U,dist_u({},r,{colorModel:be}))},xe={defaultColor:{r:0,g:0,b:0,a:1},toHsva:L,fromHsva:dist_I,equal:F},Ce=function(r){return e.createElement(re,dist_u({},r,{colorModel:xe}))},Ee={defaultColor:"rgba(0, 0, 0, 1)",toHsva:z,fromHsva:function(e){var r=dist_I(e);return"rgba("+r.r+", "+r.g+", "+r.b+", "+r.a+")"},equal:P},He=function(r){return external_React_.createElement(re,dist_u({},r,{colorModel:Ee}))},Me={defaultColor:{r:0,g:0,b:0},toHsva:function(e){return L({r:e.r,g:e.g,b:e.b,a:1})},fromHsva:function(e){return{r:(r=dist_I(e)).r,g:r.g,b:r.b};var r},equal:F},Ne=function(r){return e.createElement(U,dist_u({},r,{colorModel:Me}))},we={defaultColor:"rgb(0, 0, 0)",toHsva:B,fromHsva:function(e){var r=dist_I(e);return"rgb("+r.r+", "+r.g+", "+r.b+")"},equal:P},ye=function(r){return external_React_.createElement(U,dist_u({},r,{colorModel:we}))},qe=/^#?([0-9A-F]{3,8})$/i,ke=function(r){var t=r.color,l=void 0===t?"":t,s=r.onChange,f=r.onBlur,v=r.escape,d=r.validate,h=r.format,m=r.process,g=dist_c(r,["color","onChange","onBlur","escape","validate","format","process"]),p=o(function(){return v(l)}),b=p[0],_=p[1],x=dist_i(s),C=dist_i(f),E=a(function(e){var r=v(e.target.value);_(r),d(r)&&x(m?m(r):r)},[v,m,d,x]),H=a(function(e){d(e.target.value)||_(v(l)),C(e)},[l,v,d,C]);return n(function(){_(v(l))},[l,v]),e.createElement("input",dist_u({},g,{value:h?h(b):b,spellCheck:"false",onChange:E,onBlur:H}))},Ie=function(e){return"#"+e},Oe=function(r){var t=r.prefixed,n=r.alpha,o=dist_c(r,["prefixed","alpha"]),l=a(function(e){return e.replace(/([^0-9A-F]+)/gi,"").substring(0,n?8:6)},[n]),i=a(function(e){return function(e,r){var t=qe.exec(e),n=t?t[1].length:0;return 3===n||6===n||!!r&&4===n||!!r&&8===n}(e,n)},[n]);return e.createElement(ke,dist_u({},o,{escape:l,format:t?Ie:void 0,process:Ie,validate:i}))};
+//# sourceMappingURL=index.module.js.map
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/color-picker/picker.js
+
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+const Picker = _ref => {
+  let {
+    color,
+    enableAlpha,
+    onChange
+  } = _ref;
+  const Component = enableAlpha ? He : ye;
+  const rgbColor = (0,external_wp_element_namespaceObject.useMemo)(() => color.toRgbString(), [color]);
+  return (0,external_wp_element_namespaceObject.createElement)(Component, {
+    color: rgbColor,
+    onChange: nextColor => {
+      onChange(w(nextColor));
+    }
+  });
+};
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/hooks/use-controlled-value.js
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Simplified and improved implementation of useControlledState.
+ *
+ * @param  props
+ * @param  props.defaultValue
+ * @param  props.value
+ * @param  props.onChange
+ * @return The controlled value and the value setter.
+ */
+function useControlledValue(_ref) {
+  let {
+    defaultValue,
+    onChange,
+    value: valueProp
+  } = _ref;
+  const hasValue = typeof valueProp !== 'undefined';
+  const initialValue = hasValue ? valueProp : defaultValue;
+  const [state, setState] = (0,external_wp_element_namespaceObject.useState)(initialValue);
+  const value = hasValue ? valueProp : state;
+  let setValue;
+
+  if (hasValue && typeof onChange === 'function') {
+    setValue = onChange;
+  } else if (!hasValue && typeof onChange === 'function') {
+    setValue = nextValue => {
+      onChange(nextValue);
+      setState(nextValue);
+    };
+  } else {
+    setValue = setState;
+  }
+
+  return [value, setValue];
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/color-picker/component.js
+
+
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+
+
+
+k([names]);
+const options = [{
+  label: 'RGB',
+  value: 'rgb'
+}, {
+  label: 'HSL',
+  value: 'hsl'
+}, {
+  label: 'Hex',
+  value: 'hex'
+}];
+
+const ColorPicker = (props, forwardedRef) => {
+  const {
+    enableAlpha = false,
+    color: colorProp,
+    onChange,
+    defaultValue = '#fff',
+    copyFormat,
+    ...divProps
+  } = useContextSystem(props, 'ColorPicker'); // Use a safe default value for the color and remove the possibility of `undefined`.
+
+  const [color, setColor] = useControlledValue({
+    onChange,
+    value: colorProp,
+    defaultValue
+  });
+  const safeColordColor = (0,external_wp_element_namespaceObject.useMemo)(() => {
+    return w(color || '');
+  }, [color]);
+  const debouncedSetColor = (0,external_wp_compose_namespaceObject.useDebounce)(setColor);
+  const handleChange = (0,external_wp_element_namespaceObject.useCallback)(nextValue => {
+    debouncedSetColor(nextValue.toHex());
+  }, [debouncedSetColor]);
+  const [showInputs, setShowInputs] = (0,external_wp_element_namespaceObject.useState)(false);
+  const [colorType, setColorType] = (0,external_wp_element_namespaceObject.useState)(copyFormat || 'hex');
+  return (0,external_wp_element_namespaceObject.createElement)(ColorfulWrapper, extends_extends({
+    ref: forwardedRef
+  }, divProps), (0,external_wp_element_namespaceObject.createElement)(Picker, {
+    onChange: handleChange,
+    color: safeColordColor,
+    enableAlpha: enableAlpha
+  }), (0,external_wp_element_namespaceObject.createElement)(AuxiliaryColorArtefactWrapper, null, (0,external_wp_element_namespaceObject.createElement)(h_stack_component, {
+    justify: "space-between"
+  }, showInputs ? (0,external_wp_element_namespaceObject.createElement)(styles_SelectControl, {
+    options: options,
+    value: colorType,
+    onChange: nextColorType => setColorType(nextColorType),
+    label: (0,external_wp_i18n_namespaceObject.__)('Color format'),
+    hideLabelFromVision: true
+  }) : (0,external_wp_element_namespaceObject.createElement)(ColorDisplay, {
+    color: safeColordColor,
+    colorType: copyFormat || colorType,
+    enableAlpha: enableAlpha
+  }), (0,external_wp_element_namespaceObject.createElement)(DetailsControlButton, {
+    isSmall: true,
+    onClick: () => setShowInputs(!showInputs),
+    icon: library_settings,
+    isPressed: showInputs,
+    label: showInputs ? (0,external_wp_i18n_namespaceObject.__)('Hide detailed inputs') : (0,external_wp_i18n_namespaceObject.__)('Show detailed inputs')
+  })), (0,external_wp_element_namespaceObject.createElement)(spacer_component, {
+    margin: 4
+  }), showInputs && (0,external_wp_element_namespaceObject.createElement)(ColorInput, {
+    colorType: colorType,
+    color: safeColordColor,
+    onChange: handleChange,
+    enableAlpha: enableAlpha
+  })));
+};
+
+const ConnectedColorPicker = contextConnect(ColorPicker, 'ColorPicker');
+/* harmony default export */ var color_picker_component = (ConnectedColorPicker);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/color-picker/use-deprecated-props.js
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+function isLegacyProps(props) {
+  var _props$color;
+
+  return typeof props.onChangeComplete !== 'undefined' || typeof props.disableAlpha !== 'undefined' || typeof ((_props$color = props.color) === null || _props$color === void 0 ? void 0 : _props$color.hex) === 'string';
+}
+
+function getColorFromLegacyProps(props) {
+  if (typeof (props === null || props === void 0 ? void 0 : props.color) === 'undefined') {
+    return undefined;
+  }
+
+  if (typeof props.color === 'string') {
+    return props.color;
+  }
+
+  if (props.color.hex) {
+    return props.color.hex;
+  }
+
+  return undefined;
+}
+
+const transformColorStringToLegacyColor = memize_default()(color => {
+  const colordColor = w(color);
+  const hex = colordColor.toHex();
+  const rgb = colordColor.toRgb();
+  const hsv = colordColor.toHsv();
+  const hsl = colordColor.toHsl();
+  return {
+    hex,
+    rgb,
+    hsv,
+    hsl,
+    source: 'hex',
+    oldHue: hsl.h
+  };
+});
+function use_deprecated_props_useDeprecatedProps(props) {
+  const onChange = (0,external_wp_element_namespaceObject.useCallback)(color => {
+    var _props$onChange;
+
+    if (isLegacyProps(props)) {
+      return props.onChangeComplete(transformColorStringToLegacyColor(color));
+    }
+
+    return (_props$onChange = props.onChange) === null || _props$onChange === void 0 ? void 0 : _props$onChange.call(props, color);
+  }, [props.onChangeComplete, props.onChange]);
+  const color = (0,external_wp_element_namespaceObject.useMemo)(() => {
+    return isLegacyProps(props) ? getColorFromLegacyProps(props) : props.color;
+  }, [props.color]);
+  const enableAlpha = (0,external_wp_element_namespaceObject.useMemo)(() => {
+    return isLegacyProps(props) ? !props.disableAlpha : props.enableAlpha;
+  }, [props.disableAlpha, props.enableAlpha]);
+  return { ...(isLegacyProps(props) ? {} : props),
+    onChange,
+    color,
+    enableAlpha
+  };
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/color-picker/legacy-adapter.js
+
+
+/**
+ * Internal dependencies
+ */
+
+
+const LegacyAdapter = props => {
+  return (0,external_wp_element_namespaceObject.createElement)(color_picker_component, use_deprecated_props_useDeprecatedProps(props));
+};
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/check.js
+
+
+/**
+ * WordPress dependencies
+ */
+
+const check = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
+  xmlns: "http://www.w3.org/2000/svg",
+  viewBox: "0 0 24 24"
+}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
+  d: "M16.7 7.1l-6.3 8.5-3.3-2.5-.9 1.2 4.5 3.4L17.9 8z"
+}));
+/* harmony default export */ var library_check = (check);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/circular-option-picker/index.js
+
+
+// @ts-nocheck
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+function Option(_ref) {
+  let {
+    className,
+    isSelected,
+    selectedIconProps,
+    tooltipText,
+    ...additionalProps
+  } = _ref;
+  const optionButton = (0,external_wp_element_namespaceObject.createElement)(build_module_button, extends_extends({
+    isPressed: isSelected,
+    className: "components-circular-option-picker__option"
+  }, additionalProps));
+  return (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: classnames_default()(className, 'components-circular-option-picker__option-wrapper')
+  }, tooltipText ? (0,external_wp_element_namespaceObject.createElement)(tooltip, {
+    text: tooltipText
+  }, optionButton) : optionButton, isSelected && (0,external_wp_element_namespaceObject.createElement)(icons_build_module_icon, extends_extends({
+    icon: library_check
+  }, selectedIconProps ? selectedIconProps : {})));
+}
+
+function DropdownLinkAction(_ref2) {
+  let {
+    buttonProps,
+    className,
+    dropdownProps,
+    linkText
+  } = _ref2;
+  return (0,external_wp_element_namespaceObject.createElement)(Dropdown, extends_extends({
+    className: classnames_default()('components-circular-option-picker__dropdown-link-action', className),
+    renderToggle: _ref3 => {
+      let {
+        isOpen,
+        onToggle
+      } = _ref3;
+      return (0,external_wp_element_namespaceObject.createElement)(build_module_button, extends_extends({
+        "aria-expanded": isOpen,
+        "aria-haspopup": "true",
+        onClick: onToggle,
+        variant: "link"
+      }, buttonProps), linkText);
+    }
+  }, dropdownProps));
+}
+
+function ButtonAction(_ref4) {
+  let {
+    className,
+    children,
+    ...additionalProps
+  } = _ref4;
+  return (0,external_wp_element_namespaceObject.createElement)(build_module_button, extends_extends({
+    className: classnames_default()('components-circular-option-picker__clear', className),
+    isSmall: true,
+    variant: "secondary"
+  }, additionalProps), children);
+}
+
+function CircularOptionPicker(_ref5) {
+  let {
+    actions,
+    className,
+    options,
+    children
+  } = _ref5;
+  return (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: classnames_default()('components-circular-option-picker', className)
+  }, (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: "components-circular-option-picker__swatches"
+  }, options), children, actions && (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: "components-circular-option-picker__custom-clear-wrapper"
+  }, actions));
+}
+CircularOptionPicker.Option = Option;
+CircularOptionPicker.ButtonAction = ButtonAction;
+CircularOptionPicker.DropdownLinkAction = DropdownLinkAction;
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/v-stack/hook.js
+/**
+ * Internal dependencies
+ */
+
+
+/**
+ *
+ * @param {import('../ui/context').WordPressComponentProps<import('./types').Props, 'div'>} props
+ */
+
+function useVStack(props) {
+  const {
+    expanded = false,
+    ...otherProps
+  } = useContextSystem(props, 'VStack');
+  const hStackProps = useHStack({
+    direction: 'column',
+    expanded,
+    ...otherProps
+  });
+  return hStackProps;
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/v-stack/component.js
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+/**
+ * @param {import('../ui/context').WordPressComponentProps<import('./types').Props, 'div'>} props
+ * @param {import('react').ForwardedRef<any>}                                               forwardedRef
+ */
+
+function VStack(props, forwardedRef) {
+  const vStackProps = useVStack(props);
+  return (0,external_wp_element_namespaceObject.createElement)(component, extends_extends({}, vStackProps, {
+    ref: forwardedRef
+  }));
+}
+/**
+ * `VStack` (or Vertical Stack) is a layout component that arranges child elements in a vertical line.
+ *
+ * `VStack` can render anything inside.
+ *
+ * @example
+ * ```jsx
+ * import {
+ * 	__experimentalText as Text,
+ * 	__experimentalVStack as VStack,
+ * } from `@wordpress/components`;
+ *
+ * function Example() {
+ * 	return (
+ * 		<VStack>
+ * 			<Text>Code</Text>
+ * 			<Text>is</Text>
+ * 			<Text>Poetry</Text>
+ * 		</VStack>
+ * 	);
+ * }
+ * ```
+ */
+
+
+const ConnectedVStack = contextConnect(VStack, 'VStack');
+/* harmony default export */ var v_stack_component = (ConnectedVStack);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/truncate/component.js
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+/**
+ * @param {import('../ui/context').WordPressComponentProps<import('./types').Props, 'span'>} props
+ * @param {import('react').ForwardedRef<any>}                                                forwardedRef
+ */
+
+function component_Truncate(props, forwardedRef) {
+  const truncateProps = useTruncate(props);
+  return (0,external_wp_element_namespaceObject.createElement)(component, extends_extends({
+    as: "span"
+  }, truncateProps, {
+    ref: forwardedRef
+  }));
+}
+/**
+ * `Truncate` is a typography primitive that trims text content.
+ * For almost all cases, it is recommended that `Text`, `Heading`, or
+ * `Subheading` is used to render text content. However,`Truncate` is
+ * available for custom implementations.
+ *
+ * @example
+ * ```jsx
+ * import { __experimentalTruncate as Truncate } from `@wordpress/components`;
+ *
+ * function Example() {
+ * 	return (
+ * 		<Truncate>
+ * 			Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc ex
+ * 			neque, vulputate a diam et, luctus convallis lacus. Vestibulum ac
+ * 			mollis mi. Morbi id elementum massa.
+ * 		</Truncate>
+ * 	);
+ * }
+ * ```
+ */
+
+
+const ConnectedTruncate = contextConnect(component_Truncate, 'Truncate');
+/* harmony default export */ var truncate_component = (ConnectedTruncate);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/heading/hook.js
+/**
+ * Internal dependencies
+ */
+
+
+
+
+function useHeading(props) {
+  const {
+    as: asProp,
+    level = 2,
+    ...otherProps
+  } = useContextSystem(props, 'Heading');
+  const as = asProp || `h${level}`;
+  const a11yProps = {};
+
+  if (typeof as === 'string' && as[0] !== 'h') {
+    // If not a semantic `h` element, add a11y props:
+    a11yProps.role = 'heading';
+    a11yProps['aria-level'] = typeof level === 'string' ? parseInt(level) : level;
+  }
+
+  const textProps = useText({
+    color: COLORS.darkGray.heading,
+    size: getHeadingFontSize(level),
+    isBlock: true,
+    weight: config_values.fontWeightHeading,
+    ...otherProps
+  });
+  return { ...textProps,
+    ...a11yProps,
+    as
+  };
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/heading/component.js
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+function UnconnectedHeading(props, forwardedRef) {
+  const headerProps = useHeading(props);
+  return (0,external_wp_element_namespaceObject.createElement)(component, extends_extends({}, headerProps, {
+    ref: forwardedRef
+  }));
+}
+/**
+ * `Heading` renders headings and titles using the library's typography system.
+ *
+ * @example
+ * ```jsx
+ * import { __experimentalHeading as Heading } from "@wordpress/components";
+ *
+ * function Example() {
+ *   return <Heading>Code is Poetry</Heading>;
+ * }
+ * ```
+ */
+
+
+const Heading = contextConnect(UnconnectedHeading, 'Heading');
+/* harmony default export */ var heading_component = (Heading);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/color-palette/styles.js
+
+
+function color_palette_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+const ColorHeading = /*#__PURE__*/emotion_styled_base_browser_esm(heading_component,  true ? {
+  target: "e1uu5br00"
+} : 0)( true ? {
+  name: "13lxv2o",
+  styles: "text-transform:uppercase;line-height:24px;font-weight:500;&&&{font-size:11px;margin-bottom:0;}"
+} : 0);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/color-palette/index.js
+
+
+// @ts-nocheck
+
+/**
+ * External dependencies
+ */
+
+
+
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+
+
+k([names, a11y]);
+
+function SinglePalette(_ref) {
+  let {
+    className,
+    clearColor,
+    colors,
+    onChange,
+    value,
+    actions
+  } = _ref;
+  const colorOptions = (0,external_wp_element_namespaceObject.useMemo)(() => {
+    return (0,external_lodash_namespaceObject.map)(colors, _ref2 => {
+      let {
+        color,
+        name
+      } = _ref2;
+      const colordColor = w(color);
+      return (0,external_wp_element_namespaceObject.createElement)(CircularOptionPicker.Option, {
+        key: color,
+        isSelected: value === color,
+        selectedIconProps: value === color ? {
+          fill: colordColor.contrast() > colordColor.contrast('#000') ? '#fff' : '#000'
+        } : {},
+        tooltipText: name || // translators: %s: color hex code e.g: "#f00".
+        (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('Color code: %s'), color),
+        style: {
+          backgroundColor: color,
+          color
+        },
+        onClick: value === color ? clearColor : () => onChange(color),
+        "aria-label": name ? // translators: %s: The name of the color e.g: "vivid red".
+        (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('Color: %s'), name) : // translators: %s: color hex code e.g: "#f00".
+        (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('Color code: %s'), color)
+      });
+    });
+  }, [colors, value, onChange, clearColor]);
+  return (0,external_wp_element_namespaceObject.createElement)(CircularOptionPicker, {
+    className: className,
+    options: colorOptions,
+    actions: actions
+  });
+}
+
+function MultiplePalettes(_ref3) {
+  let {
+    className,
+    clearColor,
+    colors,
+    onChange,
+    value,
+    actions
+  } = _ref3;
+  return (0,external_wp_element_namespaceObject.createElement)(v_stack_component, {
+    spacing: 3,
+    className: className
+  }, colors.map((_ref4, index) => {
+    let {
+      name,
+      colors: colorPalette
+    } = _ref4;
+    return (0,external_wp_element_namespaceObject.createElement)(v_stack_component, {
+      spacing: 2,
+      key: index
+    }, (0,external_wp_element_namespaceObject.createElement)(ColorHeading, null, name), (0,external_wp_element_namespaceObject.createElement)(SinglePalette, {
+      clearColor: clearColor,
+      colors: colorPalette,
+      onChange: onChange,
+      value: value,
+      actions: colors.length === index + 1 ? actions : null
+    }));
+  }));
+}
+
+function CustomColorPickerDropdown(_ref5) {
+  let {
+    isRenderedInSidebar,
+    ...props
+  } = _ref5;
+  return (0,external_wp_element_namespaceObject.createElement)(Dropdown, extends_extends({
+    contentClassName: classnames_default()('components-color-palette__custom-color-dropdown-content', {
+      'is-rendered-in-sidebar': isRenderedInSidebar
+    })
+  }, props));
+}
+
+const extractColorNameFromCurrentValue = function (currentValue) {
+  let colors = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
+  let showMultiplePalettes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
+
+  if (!currentValue) {
+    return '';
+  } // Normalize format of `colors` to simplify the following loop
+
+
+  const colorPalettes = showMultiplePalettes ? colors : [{
+    colors
+  }];
+
+  for (const {
+    colors: paletteColors
+  } of colorPalettes) {
+    for (const {
+      name: colorName,
+      color: colorValue
+    } of paletteColors) {
+      if (w(currentValue).toHex() === w(colorValue).toHex()) {
+        return colorName;
+      }
+    }
+  } // translators: shown when the user has picked a custom color (i.e not in the palette of colors).
+
+
+  return (0,external_wp_i18n_namespaceObject.__)('Custom');
+};
+
+function ColorPalette(_ref6) {
+  let {
+    clearable = true,
+    className,
+    colors,
+    disableCustomColors = false,
+    enableAlpha,
+    onChange,
+    value,
+    __experimentalHasMultipleOrigins = false,
+    __experimentalIsRenderedInSidebar = false
+  } = _ref6;
+  const clearColor = (0,external_wp_element_namespaceObject.useCallback)(() => onChange(undefined), [onChange]);
+  const showMultiplePalettes = __experimentalHasMultipleOrigins && (colors === null || colors === void 0 ? void 0 : colors.length);
+  const Component = showMultiplePalettes ? MultiplePalettes : SinglePalette;
+
+  const renderCustomColorPicker = () => (0,external_wp_element_namespaceObject.createElement)(LegacyAdapter, {
+    color: value,
+    onChange: color => onChange(color),
+    enableAlpha: enableAlpha
+  });
+
+  let dropdownPosition;
+
+  if (__experimentalIsRenderedInSidebar) {
+    dropdownPosition = 'bottom left';
+  }
+
+  const colordColor = w(value);
+  const valueWithoutLeadingHash = value !== null && value !== void 0 && value.startsWith('#') ? value.substring(1) : value !== null && value !== void 0 ? value : '';
+  const buttonLabelName = (0,external_wp_element_namespaceObject.useMemo)(() => extractColorNameFromCurrentValue(value, colors, showMultiplePalettes), [value, colors, showMultiplePalettes]);
+  const customColorAccessibleLabel = !!valueWithoutLeadingHash ? (0,external_wp_i18n_namespaceObject.sprintf)( // translators: %1$s: The name of the color e.g: "vivid red". %2$s: The color's hex code e.g: "#f00".
+  (0,external_wp_i18n_namespaceObject.__)('Custom color picker. The currently selected color is called "%1$s" and has a value of "%2$s".'), buttonLabelName, valueWithoutLeadingHash) : (0,external_wp_i18n_namespaceObject.__)('Custom color picker.');
+  return (0,external_wp_element_namespaceObject.createElement)(v_stack_component, {
+    spacing: 3,
+    className: className
+  }, !disableCustomColors && (0,external_wp_element_namespaceObject.createElement)(CustomColorPickerDropdown, {
+    position: dropdownPosition,
+    isRenderedInSidebar: __experimentalIsRenderedInSidebar,
+    renderContent: renderCustomColorPicker,
+    renderToggle: _ref7 => {
+      let {
+        isOpen,
+        onToggle
+      } = _ref7;
+      return (0,external_wp_element_namespaceObject.createElement)(flex_component, {
+        as: 'button',
+        justify: "space-between",
+        align: "flex-start",
+        className: "components-color-palette__custom-color",
+        "aria-expanded": isOpen,
+        "aria-haspopup": "true",
+        onClick: onToggle,
+        "aria-label": customColorAccessibleLabel,
+        style: {
+          background: value,
+          color: colordColor.contrast() > colordColor.contrast('#000') ? '#fff' : '#000'
+        }
+      }, (0,external_wp_element_namespaceObject.createElement)(flex_item_component, {
+        isBlock: true,
+        as: truncate_component,
+        className: "components-color-palette__custom-color-name"
+      }, buttonLabelName), (0,external_wp_element_namespaceObject.createElement)(flex_item_component, {
+        as: "span",
+        className: "components-color-palette__custom-color-value"
+      }, valueWithoutLeadingHash));
+    }
+  }), (0,external_wp_element_namespaceObject.createElement)(Component, {
+    clearable: clearable,
+    clearColor: clearColor,
+    colors: colors,
+    onChange: onChange,
+    value: value,
+    actions: !!clearable && (0,external_wp_element_namespaceObject.createElement)(CircularOptionPicker.ButtonAction, {
+      onClick: clearColor
+    }, (0,external_wp_i18n_namespaceObject.__)('Clear'))
+  }));
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/unit-control/utils.js
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+const isWeb = external_wp_element_namespaceObject.Platform.OS === 'web';
+const allUnits = {
+  px: {
+    value: 'px',
+    label: isWeb ? 'px' : (0,external_wp_i18n_namespaceObject.__)('Pixels (px)'),
+    a11yLabel: (0,external_wp_i18n_namespaceObject.__)('Pixels (px)'),
+    step: 1
+  },
+  '%': {
+    value: '%',
+    label: isWeb ? '%' : (0,external_wp_i18n_namespaceObject.__)('Percentage (%)'),
+    a11yLabel: (0,external_wp_i18n_namespaceObject.__)('Percent (%)'),
+    step: 0.1
+  },
+  em: {
+    value: 'em',
+    label: isWeb ? 'em' : (0,external_wp_i18n_namespaceObject.__)('Relative to parent font size (em)'),
+    a11yLabel: (0,external_wp_i18n_namespaceObject._x)('ems', 'Relative to parent font size (em)'),
+    step: 0.01
+  },
+  rem: {
+    value: 'rem',
+    label: isWeb ? 'rem' : (0,external_wp_i18n_namespaceObject.__)('Relative to root font size (rem)'),
+    a11yLabel: (0,external_wp_i18n_namespaceObject._x)('rems', 'Relative to root font size (rem)'),
+    step: 0.01
+  },
+  vw: {
+    value: 'vw',
+    label: isWeb ? 'vw' : (0,external_wp_i18n_namespaceObject.__)('Viewport width (vw)'),
+    a11yLabel: (0,external_wp_i18n_namespaceObject.__)('Viewport width (vw)'),
+    step: 0.1
+  },
+  vh: {
+    value: 'vh',
+    label: isWeb ? 'vh' : (0,external_wp_i18n_namespaceObject.__)('Viewport height (vh)'),
+    a11yLabel: (0,external_wp_i18n_namespaceObject.__)('Viewport height (vh)'),
+    step: 0.1
+  },
+  vmin: {
+    value: 'vmin',
+    label: isWeb ? 'vmin' : (0,external_wp_i18n_namespaceObject.__)('Viewport smallest dimension (vmin)'),
+    a11yLabel: (0,external_wp_i18n_namespaceObject.__)('Viewport smallest dimension (vmin)'),
+    step: 0.1
+  },
+  vmax: {
+    value: 'vmax',
+    label: isWeb ? 'vmax' : (0,external_wp_i18n_namespaceObject.__)('Viewport largest dimension (vmax)'),
+    a11yLabel: (0,external_wp_i18n_namespaceObject.__)('Viewport largest dimension (vmax)'),
+    step: 0.1
+  },
+  ch: {
+    value: 'ch',
+    label: isWeb ? 'ch' : (0,external_wp_i18n_namespaceObject.__)('Width of the zero (0) character (ch)'),
+    a11yLabel: (0,external_wp_i18n_namespaceObject.__)('Width of the zero (0) character (ch)'),
+    step: 0.01
+  },
+  ex: {
+    value: 'ex',
+    label: isWeb ? 'ex' : (0,external_wp_i18n_namespaceObject.__)('x-height of the font (ex)'),
+    a11yLabel: (0,external_wp_i18n_namespaceObject.__)('x-height of the font (ex)'),
+    step: 0.01
+  },
+  cm: {
+    value: 'cm',
+    label: isWeb ? 'cm' : (0,external_wp_i18n_namespaceObject.__)('Centimeters (cm)'),
+    a11yLabel: (0,external_wp_i18n_namespaceObject.__)('Centimeters (cm)'),
+    step: 0.001
+  },
+  mm: {
+    value: 'mm',
+    label: isWeb ? 'mm' : (0,external_wp_i18n_namespaceObject.__)('Millimeters (mm)'),
+    a11yLabel: (0,external_wp_i18n_namespaceObject.__)('Millimeters (mm)'),
+    step: 0.1
+  },
+  in: {
+    value: 'in',
+    label: isWeb ? 'in' : (0,external_wp_i18n_namespaceObject.__)('Inches (in)'),
+    a11yLabel: (0,external_wp_i18n_namespaceObject.__)('Inches (in)'),
+    step: 0.001
+  },
+  pc: {
+    value: 'pc',
+    label: isWeb ? 'pc' : (0,external_wp_i18n_namespaceObject.__)('Picas (pc)'),
+    a11yLabel: (0,external_wp_i18n_namespaceObject.__)('Picas (pc)'),
+    step: 1
+  },
+  pt: {
+    value: 'pt',
+    label: isWeb ? 'pt' : (0,external_wp_i18n_namespaceObject.__)('Points (pt)'),
+    a11yLabel: (0,external_wp_i18n_namespaceObject.__)('Points (pt)'),
+    step: 1
+  }
+};
+/**
+ * An array of all available CSS length units.
+ */
+
+const ALL_CSS_UNITS = Object.values(allUnits);
+/**
+ * Units of measurements. `a11yLabel` is used by screenreaders.
+ */
+
+const CSS_UNITS = [allUnits.px, allUnits['%'], allUnits.em, allUnits.rem, allUnits.vw, allUnits.vh];
+const DEFAULT_UNIT = allUnits.px;
+/**
+ * Handles legacy value + unit handling.
+ * This component use to manage both incoming value and units separately.
+ *
+ * Moving forward, ideally the value should be a string that contains both
+ * the value and unit, example: '10px'
+ *
+ * @param  rawValue     The raw value as a string (may or may not contain the unit)
+ * @param  fallbackUnit The unit used as a fallback, if not unit is detected in the `value`
+ * @param  allowedUnits Units to derive from.
+ * @return The extracted quantity and unit. The quantity can be `undefined` in case the raw value
+ * could not be parsed to a number correctly. The unit can be `undefined` in case the unit parse
+ * from the raw value could not be matched against the list of allowed units.
+ */
+
+function getParsedQuantityAndUnit(rawValue, fallbackUnit, allowedUnits) {
+  const initialValue = fallbackUnit ? `${rawValue !== null && rawValue !== void 0 ? rawValue : ''}${fallbackUnit}` : rawValue;
+  return parseQuantityAndUnitFromRawValue(initialValue, allowedUnits);
+}
+/**
+ * Checks if units are defined.
+ *
+ * @param  units List of units.
+ * @return Whether the list actually contains any units.
+ */
+
+function hasUnits(units) {
+  // Although the `isArray` check shouldn't be necessary (given the signature of
+  // this typed function), it's better to stay on the side of caution, since
+  // this function may be called from un-typed environments.
+  return Array.isArray(units) && !!units.length;
+}
+/**
+ * Parses a quantity and unit from a raw string value, given a list of allowed
+ * units and otherwise falling back to the default unit.
+ *
+ * @param  rawValue     The raw value as a string (may or may not contain the unit)
+ * @param  allowedUnits Units to derive from.
+ * @return The extracted quantity and unit. The quantity can be `undefined` in case the raw value
+ * could not be parsed to a number correctly. The unit can be `undefined` in case the unit parsed
+ * from the raw value could not be matched against the list of allowed units.
+ */
+
+function parseQuantityAndUnitFromRawValue(rawValue) {
+  var _trimmedValue, _unitMatch$;
+
+  let allowedUnits = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ALL_CSS_UNITS;
+  let trimmedValue;
+  let quantityToReturn;
+
+  if (typeof rawValue !== 'undefined' || rawValue === null) {
+    trimmedValue = `${rawValue}`.trim();
+    const parsedQuantity = parseFloat(trimmedValue);
+    quantityToReturn = !isFinite(parsedQuantity) ? undefined : parsedQuantity;
+  }
+
+  const unitMatch = (_trimmedValue = trimmedValue) === null || _trimmedValue === void 0 ? void 0 : _trimmedValue.match(/[\d.\-\+]*\s*(.*)/);
+  const matchedUnit = unitMatch === null || unitMatch === void 0 ? void 0 : (_unitMatch$ = unitMatch[1]) === null || _unitMatch$ === void 0 ? void 0 : _unitMatch$.toLowerCase();
+  let unitToReturn;
+
+  if (hasUnits(allowedUnits)) {
+    const match = allowedUnits.find(item => item.value === matchedUnit);
+    unitToReturn = match === null || match === void 0 ? void 0 : match.value;
+  } else {
+    unitToReturn = DEFAULT_UNIT.value;
+  }
+
+  return [quantityToReturn, unitToReturn];
+}
+/**
+ * Parses quantity and unit from a raw value. Validates parsed value, using fallback
+ * value if invalid.
+ *
+ * @param  rawValue         The next value.
+ * @param  allowedUnits     Units to derive from.
+ * @param  fallbackQuantity The fallback quantity, used in case it's not possible to parse a valid quantity from the raw value.
+ * @param  fallbackUnit     The fallback unit, used in case it's not possible to parse a valid unit from the raw value.
+ * @return The extracted quantity and unit. The quantity can be `undefined` in case the raw value
+ * could not be parsed to a number correctly, and the `fallbackQuantity` was also `undefined`. The
+ * unit can be `undefined` only if the unit parsed from the raw value could not be matched against
+ * the list of allowed units, the `fallbackQuantity` is also `undefined` and the list of
+ * `allowedUnits` is passed empty.
+ */
+
+function getValidParsedQuantityAndUnit(rawValue, allowedUnits, fallbackQuantity, fallbackUnit) {
+  const [parsedQuantity, parsedUnit] = parseQuantityAndUnitFromRawValue(rawValue, allowedUnits); // The parsed value from `parseQuantityAndUnitFromRawValue` should now be
+  // either a real number or undefined. If undefined, use the fallback value.
+
+  const quantityToReturn = parsedQuantity !== null && parsedQuantity !== void 0 ? parsedQuantity : fallbackQuantity; // If no unit is parsed from the raw value, or if the fallback unit is not
+  // defined, use the first value from the list of allowed units as fallback.
+
+  let unitToReturn = parsedUnit || fallbackUnit;
+
+  if (!unitToReturn && hasUnits(allowedUnits)) {
+    unitToReturn = allowedUnits[0].value;
+  }
+
+  return [quantityToReturn, unitToReturn];
+}
+/**
+ * Takes a unit value and finds the matching accessibility label for the
+ * unit abbreviation.
+ *
+ * @param  unit Unit value (example: `px`)
+ * @return a11y label for the unit abbreviation
+ */
+
+function getAccessibleLabelForUnit(unit) {
+  const match = ALL_CSS_UNITS.find(item => item.value === unit);
+  return match !== null && match !== void 0 && match.a11yLabel ? match === null || match === void 0 ? void 0 : match.a11yLabel : match === null || match === void 0 ? void 0 : match.value;
+}
+/**
+ * Filters available units based on values defined a list of allowed unit values.
+ *
+ * @param  allowedUnitValues Collection of allowed unit value strings.
+ * @param  availableUnits    Collection of available unit objects.
+ * @return Filtered units.
+ */
+
+function filterUnitsWithSettings() {
+  let allowedUnitValues = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
+  let availableUnits = arguments.length > 1 ? arguments[1] : undefined;
+  // Although the `isArray` check shouldn't be necessary (given the signature of
+  // this typed function), it's better to stay on the side of caution, since
+  // this function may be called from un-typed environments.
+  return Array.isArray(availableUnits) ? availableUnits.filter(unit => allowedUnitValues.includes(unit.value)) : [];
+}
+/**
+ * Custom hook to retrieve and consolidate units setting from add_theme_support().
+ * TODO: ideally this hook shouldn't be needed
+ * https://github.com/WordPress/gutenberg/pull/31822#discussion_r633280823
+ *
+ * @param  args                An object containing units, settingPath & defaultUnits.
+ * @param  args.units          Collection of all potentially available units.
+ * @param  args.availableUnits Collection of unit value strings for filtering available units.
+ * @param  args.defaultValues  Collection of default values for defined units. Example: `{ px: 350, em: 15 }`.
+ *
+ * @return Filtered list of units, with their default values updated following the `defaultValues`
+ * argument's property.
+ */
+
+const useCustomUnits = _ref => {
+  let {
+    units = ALL_CSS_UNITS,
+    availableUnits = [],
+    defaultValues
+  } = _ref;
+  const customUnitsToReturn = filterUnitsWithSettings(availableUnits, units);
+
+  if (defaultValues) {
+    customUnitsToReturn.forEach((unit, i) => {
+      if (defaultValues[unit.value]) {
+        const [parsedDefaultValue] = parseQuantityAndUnitFromRawValue(defaultValues[unit.value]);
+        customUnitsToReturn[i].default = parsedDefaultValue;
+      }
+    });
+  }
+
+  return customUnitsToReturn;
+};
+/**
+ * Get available units with the unit for the currently selected value
+ * prepended if it is not available in the list of units.
+ *
+ * This is useful to ensure that the current value's unit is always
+ * accurately displayed in the UI, even if the intention is to hide
+ * the availability of that unit.
+ *
+ * @param  rawValue   Selected value to parse.
+ * @param  legacyUnit Legacy unit value, if rawValue needs it appended.
+ * @param  units      List of available units.
+ *
+ * @return A collection of units containing the unit for the current value.
+ */
+
+function getUnitsWithCurrentUnit(rawValue, legacyUnit) {
+  let units = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ALL_CSS_UNITS;
+  const unitsToReturn = Array.isArray(units) ? [...units] : [];
+  const [, currentUnit] = getParsedQuantityAndUnit(rawValue, legacyUnit, ALL_CSS_UNITS);
+
+  if (currentUnit && !unitsToReturn.some(unit => unit.value === currentUnit)) {
+    if (allUnits[currentUnit]) {
+      unitsToReturn.unshift(allUnits[currentUnit]);
+    }
+  }
+
+  return unitsToReturn;
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/border-control/border-control-dropdown/hook.js
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+function useBorderControlDropdown(props) {
+  const {
+    border,
+    className,
+    colors,
+    contentClassName,
+    onChange,
+    previousStyleSelection,
+    ...otherProps
+  } = useContextSystem(props, 'BorderControlDropdown');
+  const [widthValue] = parseQuantityAndUnitFromRawValue(border === null || border === void 0 ? void 0 : border.width);
+  const hasZeroWidth = widthValue === 0;
+
+  const onColorChange = color => {
+    const style = (border === null || border === void 0 ? void 0 : border.style) === 'none' ? previousStyleSelection : border === null || border === void 0 ? void 0 : border.style;
+    const width = hasZeroWidth && !!color ? '1px' : border === null || border === void 0 ? void 0 : border.width;
+    onChange({
+      color,
+      style,
+      width
+    });
+  };
+
+  const onStyleChange = style => {
+    const width = hasZeroWidth && !!style ? '1px' : border === null || border === void 0 ? void 0 : border.width;
+    onChange({ ...border,
+      style,
+      width
+    });
+  };
+
+  const onReset = () => {
+    onChange({ ...border,
+      color: undefined,
+      style: undefined
+    });
+  }; // Generate class names.
+
+
+  const cx = useCx();
+  const classes = (0,external_wp_element_namespaceObject.useMemo)(() => {
+    return cx(borderControlDropdown(), className);
+  }, [className, cx]);
+  const indicatorClassName = (0,external_wp_element_namespaceObject.useMemo)(() => {
+    return cx(borderColorIndicator);
+  }, [cx]);
+  const indicatorWrapperClassName = (0,external_wp_element_namespaceObject.useMemo)(() => {
+    return cx(colorIndicatorWrapper(border));
+  }, [border, cx]);
+  const popoverClassName = (0,external_wp_element_namespaceObject.useMemo)(() => {
+    return cx(borderControlPopover, contentClassName);
+  }, [cx, contentClassName]);
+  const popoverControlsClassName = (0,external_wp_element_namespaceObject.useMemo)(() => {
+    return cx(borderControlPopoverControls);
+  }, [cx]);
+  const popoverContentClassName = (0,external_wp_element_namespaceObject.useMemo)(() => {
+    return cx(borderControlPopoverContent);
+  }, [cx]);
+  const resetButtonClassName = (0,external_wp_element_namespaceObject.useMemo)(() => {
+    return cx(resetButton);
+  }, [cx]);
+  return { ...otherProps,
+    border,
+    className: classes,
+    colors,
+    indicatorClassName,
+    indicatorWrapperClassName,
+    onColorChange,
+    onStyleChange,
+    onReset,
+    popoverClassName,
+    popoverContentClassName,
+    popoverControlsClassName,
+    resetButtonClassName
+  };
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/border-control/border-control-dropdown/component.js
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+
+
+
+
+
+
+const component_noop = () => undefined;
+
+const getColorObject = (colorValue, colors, hasMultipleColorOrigins) => {
+  if (!colorValue || !colors) {
+    return;
+  }
+
+  if (hasMultipleColorOrigins) {
+    let matchedColor;
+    colors.some(origin => origin.colors.some(color => {
+      if (color.color === colorValue) {
+        matchedColor = color;
+        return true;
+      }
+
+      return false;
+    }));
+    return matchedColor;
+  }
+
+  return colors.find(color => color.color === colorValue);
+};
+
+const getToggleAriaLabel = (colorValue, colorObject, style, isStyleEnabled) => {
+  if (isStyleEnabled) {
+    if (colorObject) {
+      return style ? (0,external_wp_i18n_namespaceObject.sprintf)( // translators: %1$s: The name of the color e.g. "vivid red". %2$s: The color's hex code e.g.: "#f00:". %3$s: The current border style selection e.g. "solid".
+      'Border color and style picker. The currently selected color is called "%1$s" and has a value of "%2$s". The currently selected style is "%3$s".', colorObject.name, colorObject.color, style) : (0,external_wp_i18n_namespaceObject.sprintf)( // translators: %1$s: The name of the color e.g. "vivid red". %2$s: The color's hex code e.g.: "#f00:".
+      'Border color and style picker. The currently selected color is called "%1$s" and has a value of "%2$s".', colorObject.name, colorObject.color);
+    }
+
+    if (colorValue) {
+      return style ? (0,external_wp_i18n_namespaceObject.sprintf)( // translators: %1$s: The color's hex code e.g.: "#f00:". %2$s: The current border style selection e.g. "solid".
+      'Border color and style picker. The currently selected color has a value of "%1$s". The currently selected style is "%2$s".', colorValue, style) : (0,external_wp_i18n_namespaceObject.sprintf)( // translators: %1$s: The color's hex code e.g.: "#f00:".
+      'Border color and style picker. The currently selected color has a value of "%1$s".', colorValue);
+    }
+
+    return (0,external_wp_i18n_namespaceObject.__)('Border color and style picker.');
+  }
+
+  if (colorObject) {
+    return (0,external_wp_i18n_namespaceObject.sprintf)( // translators: %1$s: The name of the color e.g. "vivid red". %2$s: The color's hex code e.g.: "#f00:".
+    'Border color picker. The currently selected color is called "%1$s" and has a value of "%2$s".', colorObject.name, colorObject.color);
+  }
+
+  if (colorValue) {
+    return (0,external_wp_i18n_namespaceObject.sprintf)( // translators: %1$s: The color's hex code e.g.: "#f00:".
+    'Border color picker. The currently selected color has a value of "%1$s".', colorValue);
+  }
+
+  return (0,external_wp_i18n_namespaceObject.__)('Border color picker.');
+};
+
+const BorderControlDropdown = (props, forwardedRef) => {
+  const {
+    __experimentalHasMultipleOrigins,
+    __experimentalIsRenderedInSidebar,
+    border,
+    colors,
+    disableCustomColors,
+    enableAlpha,
+    indicatorClassName,
+    indicatorWrapperClassName,
+    onReset,
+    onColorChange,
+    onStyleChange,
+    popoverClassName,
+    popoverContentClassName,
+    popoverControlsClassName,
+    resetButtonClassName,
+    showDropdownHeader,
+    enableStyle = true,
+    ...otherProps
+  } = useBorderControlDropdown(props);
+  const {
+    color,
+    style
+  } = border || {};
+  const colorObject = getColorObject(color, colors, !!__experimentalHasMultipleOrigins);
+  const toggleAriaLabel = getToggleAriaLabel(color, colorObject, style, enableStyle);
+  const dropdownPosition = __experimentalIsRenderedInSidebar ? 'bottom left' : undefined;
+
+  const renderToggle = _ref => {
+    let {
+      onToggle = component_noop
+    } = _ref;
+    return (0,external_wp_element_namespaceObject.createElement)(build_module_button, {
+      onClick: onToggle,
+      variant: "tertiary",
+      "aria-label": toggleAriaLabel,
+      position: dropdownPosition
+    }, (0,external_wp_element_namespaceObject.createElement)("span", {
+      className: indicatorWrapperClassName
+    }, (0,external_wp_element_namespaceObject.createElement)(color_indicator, {
+      className: indicatorClassName,
+      colorValue: color
+    })));
+  };
+
+  const renderContent = _ref2 => {
+    let {
+      onClose
+    } = _ref2;
+    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(v_stack_component, {
+      className: popoverControlsClassName,
+      spacing: 6
+    }, showDropdownHeader ? (0,external_wp_element_namespaceObject.createElement)(h_stack_component, null, (0,external_wp_element_namespaceObject.createElement)(StyledLabel, null, (0,external_wp_i18n_namespaceObject.__)('Border color')), (0,external_wp_element_namespaceObject.createElement)(build_module_button, {
+      isSmall: true,
+      label: (0,external_wp_i18n_namespaceObject.__)('Close border color'),
+      icon: close_small,
+      onClick: onClose
+    })) : undefined, (0,external_wp_element_namespaceObject.createElement)(ColorPalette, {
+      className: popoverContentClassName,
+      value: color,
+      onChange: onColorChange,
+      colors,
+      disableCustomColors,
+      __experimentalHasMultipleOrigins: __experimentalHasMultipleOrigins,
+      __experimentalIsRenderedInSidebar: __experimentalIsRenderedInSidebar,
+      clearable: false,
+      enableAlpha: enableAlpha
+    }), enableStyle && (0,external_wp_element_namespaceObject.createElement)(border_control_style_picker_component, {
+      label: (0,external_wp_i18n_namespaceObject.__)('Style'),
+      value: style,
+      onChange: onStyleChange
+    })), (0,external_wp_element_namespaceObject.createElement)(build_module_button, {
+      className: resetButtonClassName,
+      variant: "tertiary",
+      onClick: () => {
+        onReset();
+        onClose();
+      }
+    }, (0,external_wp_i18n_namespaceObject.__)('Reset to default')));
+  };
+
+  return (0,external_wp_element_namespaceObject.createElement)(Dropdown, extends_extends({
+    renderToggle: renderToggle,
+    renderContent: renderContent,
+    contentClassName: popoverClassName
+  }, otherProps, {
+    ref: forwardedRef
+  }));
+};
+
+const ConnectedBorderControlDropdown = contextConnect(BorderControlDropdown, 'BorderControlDropdown');
+/* harmony default export */ var border_control_dropdown_component = (ConnectedBorderControlDropdown);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/unit-control/unit-select-control.js
+
+
+
+/**
+ * External dependencies
+ */
+
+
+
+function UnitSelectControl(_ref) {
+  let {
+    className,
+    isUnitSelectTabbable: isTabbable = true,
+    onChange,
+    size = 'default',
+    unit = 'px',
+    units = CSS_UNITS,
+    ...props
+  } = _ref;
+
+  if (!hasUnits(units) || (units === null || units === void 0 ? void 0 : units.length) === 1) {
+    return (0,external_wp_element_namespaceObject.createElement)(UnitLabel, {
+      className: "components-unit-control__unit-label",
+      selectSize: size
+    }, unit);
+  }
+
+  const handleOnChange = event => {
+    const {
+      value: unitValue
+    } = event.target;
+    const data = units.find(option => option.value === unitValue);
+    onChange === null || onChange === void 0 ? void 0 : onChange(unitValue, {
+      event,
+      data
+    });
+  };
+
+  const classes = classnames_default()('components-unit-control__select', className);
+  return (0,external_wp_element_namespaceObject.createElement)(UnitSelect, extends_extends({
+    className: classes,
+    onChange: handleOnChange,
+    selectSize: size,
+    tabIndex: isTabbable ? undefined : -1,
+    value: unit
+  }, props), units.map(option => (0,external_wp_element_namespaceObject.createElement)("option", {
+    value: option.value,
+    key: option.value
+  }, option.label)));
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/unit-control/index.js
+
+
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+
+function UnforwardedUnitControl(unitControlProps, forwardedRef) {
+  const {
+    __unstableStateReducer: stateReducerProp,
+    autoComplete = 'off',
+    className,
+    disabled = false,
+    disableUnits = false,
+    isPressEnterToChange = false,
+    isResetValueOnUnitChange = false,
+    isUnitSelectTabbable = true,
+    label,
+    onChange: onChangeProp,
+    onUnitChange,
+    size = 'default',
+    style,
+    unit: unitProp,
+    units: unitsProp = CSS_UNITS,
+    value: valueProp,
+    onBlur: onBlurProp,
+    ...props
+  } = unitControlProps;
+
+  if ('unit' in unitControlProps) {
+    external_wp_deprecated_default()('UnitControl unit prop', {
+      since: '5.6',
+      hint: 'The unit should be provided within the `value` prop.',
+      version: '6.2'
+    });
+  } // The `value` prop, in theory, should not be `null`, but the following line
+  // ensures it fallback to `undefined` in case a consumer of `UnitControl`
+  // still passes `null` as a `value`.
+
+
+  const nonNullValueProp = valueProp !== null && valueProp !== void 0 ? valueProp : undefined;
+  const units = (0,external_wp_element_namespaceObject.useMemo)(() => getUnitsWithCurrentUnit(nonNullValueProp, unitProp, unitsProp), [nonNullValueProp, unitProp, unitsProp]);
+  const [parsedQuantity, parsedUnit] = getParsedQuantityAndUnit(nonNullValueProp, unitProp, units);
+  const [unit, setUnit] = use_controlled_state(unitProp, {
+    initial: parsedUnit,
+    fallback: ''
+  });
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    if (parsedUnit !== undefined) {
+      setUnit(parsedUnit);
+    }
+  }, [parsedUnit]); // Stores parsed value for hand-off in state reducer.
+
+  const refParsedQuantity = (0,external_wp_element_namespaceObject.useRef)(undefined);
+  const classes = classnames_default()('components-unit-control', className);
+
+  const handleOnQuantityChange = (nextQuantityValue, changeProps) => {
+    if (nextQuantityValue === '' || typeof nextQuantityValue === 'undefined' || nextQuantityValue === null) {
+      onChangeProp === null || onChangeProp === void 0 ? void 0 : onChangeProp('', changeProps);
+      return;
+    }
+    /*
+     * Customizing the onChange callback.
+     * This allows as to broadcast a combined value+unit to onChange.
+     */
+
+
+    const onChangeValue = getValidParsedQuantityAndUnit(nextQuantityValue, units, parsedQuantity, unit).join('');
+    onChangeProp === null || onChangeProp === void 0 ? void 0 : onChangeProp(onChangeValue, changeProps);
+  };
+
+  const handleOnUnitChange = (nextUnitValue, changeProps) => {
+    const {
+      data
+    } = changeProps;
+    let nextValue = `${parsedQuantity !== null && parsedQuantity !== void 0 ? parsedQuantity : ''}${nextUnitValue}`;
+
+    if (isResetValueOnUnitChange && (data === null || data === void 0 ? void 0 : data.default) !== undefined) {
+      nextValue = `${data.default}${nextUnitValue}`;
+    }
+
+    onChangeProp === null || onChangeProp === void 0 ? void 0 : onChangeProp(nextValue, changeProps);
+    onUnitChange === null || onUnitChange === void 0 ? void 0 : onUnitChange(nextUnitValue, changeProps);
+    setUnit(nextUnitValue);
+  };
+
+  const mayUpdateUnit = event => {
+    if (!isNaN(Number(event.currentTarget.value))) {
+      refParsedQuantity.current = undefined;
+      return;
+    }
+
+    const [validParsedQuantity, validParsedUnit] = getValidParsedQuantityAndUnit(event.currentTarget.value, units, parsedQuantity, unit);
+    refParsedQuantity.current = validParsedQuantity;
+
+    if (isPressEnterToChange && validParsedUnit !== unit) {
+      const data = Array.isArray(units) ? units.find(option => option.value === validParsedUnit) : undefined;
+      const changeProps = {
+        event,
+        data
+      };
+      onChangeProp === null || onChangeProp === void 0 ? void 0 : onChangeProp(`${validParsedQuantity !== null && validParsedQuantity !== void 0 ? validParsedQuantity : ''}${validParsedUnit}`, changeProps);
+      onUnitChange === null || onUnitChange === void 0 ? void 0 : onUnitChange(validParsedUnit, changeProps);
+      setUnit(validParsedUnit);
+    }
+  };
+
+  const handleOnBlur = event => {
+    mayUpdateUnit(event);
+    onBlurProp === null || onBlurProp === void 0 ? void 0 : onBlurProp(event);
+  };
+
+  const handleOnKeyDown = event => {
+    const {
+      key
+    } = event;
+
+    if (key === 'Enter') {
+      mayUpdateUnit(event);
+    }
+  };
+  /**
+   * "Middleware" function that intercepts updates from InputControl.
+   * This allows us to tap into actions to transform the (next) state for
+   * InputControl.
+   *
+   * @param  state  State from InputControl
+   * @param  action Action triggering state change
+   * @return The updated state to apply to InputControl
+   */
+
+
+  const unitControlStateReducer = (state, action) => {
+    const nextState = { ...state
+    };
+    /*
+     * On commits (when pressing ENTER and on blur if
+     * isPressEnterToChange is true), if a parse has been performed
+     * then use that result to update the state.
+     */
+
+    if (action.type === COMMIT) {
+      if (refParsedQuantity.current !== undefined) {
+        var _refParsedQuantity$cu;
+
+        nextState.value = ((_refParsedQuantity$cu = refParsedQuantity.current) !== null && _refParsedQuantity$cu !== void 0 ? _refParsedQuantity$cu : '').toString();
+        refParsedQuantity.current = undefined;
+      }
+    }
+
+    return nextState;
+  };
+
+  let stateReducer = unitControlStateReducer;
+
+  if (stateReducerProp) {
+    stateReducer = (state, action) => {
+      const baseState = unitControlStateReducer(state, action);
+      return stateReducerProp(baseState, action);
+    };
+  }
+
+  const inputSuffix = !disableUnits ? (0,external_wp_element_namespaceObject.createElement)(UnitSelectControl, {
+    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Select unit'),
+    disabled: disabled,
+    isUnitSelectTabbable: isUnitSelectTabbable,
+    onChange: handleOnUnitChange,
+    size: size,
+    unit: unit,
+    units: units,
+    onBlur: onBlurProp
+  }) : null;
+  let step = props.step;
+  /*
+   * If no step prop has been passed, lookup the active unit and
+   * try to get step from `units`, or default to a value of `1`
+   */
+
+  if (!step && units) {
+    var _activeUnit$step;
+
+    const activeUnit = units.find(option => option.value === unit);
+    step = (_activeUnit$step = activeUnit === null || activeUnit === void 0 ? void 0 : activeUnit.step) !== null && _activeUnit$step !== void 0 ? _activeUnit$step : 1;
+  }
+
+  return (0,external_wp_element_namespaceObject.createElement)(unit_control_styles_Root, {
+    className: "components-unit-control-wrapper",
+    style: style
+  }, (0,external_wp_element_namespaceObject.createElement)(ValueInput, extends_extends({
+    "aria-label": label,
+    type: isPressEnterToChange ? 'text' : 'number'
+  }, (0,external_lodash_namespaceObject.omit)(props, ['children']), {
+    autoComplete: autoComplete,
+    className: classes,
+    disabled: disabled,
+    disableUnits: disableUnits,
+    isPressEnterToChange: isPressEnterToChange,
+    label: label,
+    onBlur: handleOnBlur,
+    onKeyDown: handleOnKeyDown,
+    onChange: handleOnQuantityChange,
+    ref: forwardedRef,
+    size: size,
+    suffix: inputSuffix,
+    value: parsedQuantity !== null && parsedQuantity !== void 0 ? parsedQuantity : '',
+    step: step,
+    __unstableStateReducer: stateReducer
+  })));
+}
+/**
+ * `UnitControl` allows the user to set a numeric quantity as well as a unit (e.g. `px`).
+ *
+ *
+ * @example
+ * ```jsx
+ * import { __experimentalUnitControl as UnitControl } from '@wordpress/components';
+ * import { useState } from '@wordpress/element';
+ *
+ * const Example = () => {
+ *   const [ value, setValue ] = useState( '10px' );
+ *
+ *   return <UnitControl onChange={ setValue } value={ value } />;
+ * };
+ * ```
+ */
+
+
+const UnitControl = (0,external_wp_element_namespaceObject.forwardRef)(UnforwardedUnitControl);
+
+/* harmony default export */ var unit_control = (UnitControl);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/border-control/border-control/hook.js
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+const sanitizeBorder = border => {
+  const hasNoWidth = (border === null || border === void 0 ? void 0 : border.width) === undefined || border.width === '';
+  const hasNoColor = (border === null || border === void 0 ? void 0 : border.color) === undefined; // If width and color are undefined, unset any style selection as well.
+
+  if (hasNoWidth && hasNoColor) {
+    return undefined;
+  }
+
+  return border;
+};
+
+function useBorderControl(props) {
+  const {
+    className,
+    isCompact,
+    onChange,
+    shouldSanitizeBorder = true,
+    value: border,
+    width,
+    ...otherProps
+  } = useContextSystem(props, 'BorderControl');
+  const [widthValue, originalWidthUnit] = parseQuantityAndUnitFromRawValue(border === null || border === void 0 ? void 0 : border.width);
+  const widthUnit = originalWidthUnit || 'px';
+  const hadPreviousZeroWidth = widthValue === 0;
+  const [colorSelection, setColorSelection] = (0,external_wp_element_namespaceObject.useState)();
+  const [styleSelection, setStyleSelection] = (0,external_wp_element_namespaceObject.useState)();
+  const onBorderChange = (0,external_wp_element_namespaceObject.useCallback)(newBorder => {
+    if (shouldSanitizeBorder) {
+      return onChange(sanitizeBorder(newBorder));
+    }
+
+    onChange(newBorder);
+  }, [onChange, shouldSanitizeBorder, sanitizeBorder]);
+  const onWidthChange = (0,external_wp_element_namespaceObject.useCallback)(newWidth => {
+    const newWidthValue = newWidth === '' ? undefined : newWidth;
+    const [parsedValue] = parseQuantityAndUnitFromRawValue(newWidth);
+    const hasZeroWidth = parsedValue === 0;
+    const updatedBorder = { ...border,
+      width: newWidthValue
+    }; // Setting the border width explicitly to zero will also set the
+    // border style to `none` and clear the border color.
+
+    if (hasZeroWidth && !hadPreviousZeroWidth) {
+      // Before clearing the color and style selections, keep track of
+      // the current selections so they can be restored when the width
+      // changes to a non-zero value.
+      setColorSelection(border === null || border === void 0 ? void 0 : border.color);
+      setStyleSelection(border === null || border === void 0 ? void 0 : border.style); // Clear the color and style border properties.
+
+      updatedBorder.color = undefined;
+      updatedBorder.style = 'none';
+    } // Selection has changed from zero border width to non-zero width.
+
+
+    if (!hasZeroWidth && hadPreviousZeroWidth) {
+      // Restore previous border color and style selections if width
+      // is now not zero.
+      if (updatedBorder.color === undefined) {
+        updatedBorder.color = colorSelection;
+      }
+
+      if (updatedBorder.style === 'none') {
+        updatedBorder.style = styleSelection;
+      }
+    }
+
+    onBorderChange(updatedBorder);
+  }, [border, hadPreviousZeroWidth, onBorderChange]);
+  const onSliderChange = (0,external_wp_element_namespaceObject.useCallback)(value => {
+    onWidthChange(`${value}${widthUnit}`);
+  }, [onWidthChange, widthUnit]); // Generate class names.
+
+  const cx = useCx();
+  const classes = (0,external_wp_element_namespaceObject.useMemo)(() => {
+    return cx(borderControl, className);
+  }, [className, cx]);
+  const innerWrapperClassName = (0,external_wp_element_namespaceObject.useMemo)(() => {
+    const wrapperWidth = isCompact ? '90px' : width;
+    const widthStyle = !!wrapperWidth && styles_wrapperWidth(wrapperWidth);
+    return cx(innerWrapper(), widthStyle);
+  }, [isCompact, width, cx]);
+  const widthControlClassName = (0,external_wp_element_namespaceObject.useMemo)(() => {
+    return cx(borderWidthControl());
+  }, [cx]);
+  const sliderClassName = (0,external_wp_element_namespaceObject.useMemo)(() => {
+    return cx(borderSlider());
+  }, [cx]);
+  return { ...otherProps,
+    className: classes,
+    innerWrapperClassName,
+    onBorderChange,
+    onSliderChange,
+    onWidthChange,
+    previousStyleSelection: styleSelection,
+    sliderClassName,
+    value: border,
+    widthControlClassName,
+    widthUnit,
+    widthValue
+  };
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/border-control/border-control/component.js
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+
+
+
+
+const BorderLabel = props => {
+  const {
+    label,
+    hideLabelFromVision
+  } = props;
+
+  if (!label) {
+    return null;
+  }
+
+  return hideLabelFromVision ? (0,external_wp_element_namespaceObject.createElement)(visually_hidden_component, {
+    as: "label"
+  }, label) : (0,external_wp_element_namespaceObject.createElement)(StyledLabel, null, label);
+};
+
+const BorderControl = (props, forwardedRef) => {
+  const {
+    colors,
+    disableCustomColors,
+    enableAlpha,
+    enableStyle = true,
+    hideLabelFromVision,
+    innerWrapperClassName,
+    label,
+    onBorderChange,
+    onSliderChange,
+    onWidthChange,
+    placeholder,
+    popoverContentClassName,
+    previousStyleSelection,
+    showDropdownHeader,
+    sliderClassName,
+    value: border,
+    widthControlClassName,
+    widthUnit,
+    widthValue,
+    withSlider,
+    __experimentalHasMultipleOrigins,
+    __experimentalIsRenderedInSidebar,
+    ...otherProps
+  } = useBorderControl(props);
+  return (0,external_wp_element_namespaceObject.createElement)(component, extends_extends({}, otherProps, {
+    ref: forwardedRef
+  }), (0,external_wp_element_namespaceObject.createElement)(BorderLabel, {
+    label: label,
+    hideLabelFromVision: hideLabelFromVision
+  }), (0,external_wp_element_namespaceObject.createElement)(h_stack_component, {
+    spacing: 3
+  }, (0,external_wp_element_namespaceObject.createElement)(h_stack_component, {
+    className: innerWrapperClassName,
+    alignment: "stretch"
+  }, (0,external_wp_element_namespaceObject.createElement)(border_control_dropdown_component, {
+    border: border,
+    colors: colors,
+    contentClassName: popoverContentClassName,
+    disableCustomColors: disableCustomColors,
+    enableAlpha: enableAlpha,
+    enableStyle: enableStyle,
+    onChange: onBorderChange,
+    previousStyleSelection: previousStyleSelection,
+    showDropdownHeader: showDropdownHeader,
+    __experimentalHasMultipleOrigins: __experimentalHasMultipleOrigins,
+    __experimentalIsRenderedInSidebar: __experimentalIsRenderedInSidebar
+  }), (0,external_wp_element_namespaceObject.createElement)(unit_control, {
+    className: widthControlClassName,
+    min: 0,
+    onChange: onWidthChange,
+    value: (border === null || border === void 0 ? void 0 : border.width) || '',
+    placeholder: placeholder
+  })), withSlider && (0,external_wp_element_namespaceObject.createElement)(range_control, {
+    className: sliderClassName,
+    initialPosition: 0,
+    max: 100,
+    min: 0,
+    onChange: onSliderChange,
+    step: ['px', '%'].includes(widthUnit) ? 1 : 0.1,
+    value: widthValue || undefined,
+    withInputField: false
+  })));
+};
+
+const ConnectedBorderControl = contextConnect(BorderControl, 'BorderControl');
+/* harmony default export */ var border_control_component = (ConnectedBorderControl);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/grid/utils.js
+const grid_utils_ALIGNMENTS = {
+  bottom: {
+    alignItems: 'flex-end',
+    justifyContent: 'center'
+  },
+  bottomLeft: {
+    alignItems: 'flex-start',
+    justifyContent: 'flex-end'
+  },
+  bottomRight: {
+    alignItems: 'flex-end',
+    justifyContent: 'flex-end'
+  },
+  center: {
+    alignItems: 'center',
+    justifyContent: 'center'
+  },
+  spaced: {
+    alignItems: 'center',
+    justifyContent: 'space-between'
+  },
+  left: {
+    alignItems: 'center',
+    justifyContent: 'flex-start'
+  },
+  right: {
+    alignItems: 'center',
+    justifyContent: 'flex-end'
+  },
+  stretch: {
+    alignItems: 'stretch'
+  },
+  top: {
+    alignItems: 'flex-start',
+    justifyContent: 'center'
+  },
+  topLeft: {
+    alignItems: 'flex-start',
+    justifyContent: 'flex-start'
+  },
+  topRight: {
+    alignItems: 'flex-start',
+    justifyContent: 'flex-end'
+  }
+};
+/* eslint-disable jsdoc/valid-types */
+
+/**
+ * @param {keyof typeof ALIGNMENTS | undefined} alignment
+ * @return {{ alignItems?: import('react').CSSProperties['alignItems'], justifyContent?: import('react').CSSProperties['justifyContent']}} CSS props for alignment
+ */
+
+function utils_getAlignmentProps(alignment) {
+  const alignmentProps = alignment ? grid_utils_ALIGNMENTS[alignment] : {};
+  return alignmentProps;
+}
+/* eslint-enable jsdoc/valid-types */
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/grid/hook.js
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+/**
+ * @param {import('../ui/context').WordPressComponentProps<import('./types').Props, 'div'>} props
+ */
+
+function useGrid(props) {
+  const {
+    align,
+    alignment,
+    className,
+    columnGap,
+    columns = 2,
+    gap = 3,
+    isInline = false,
+    justify,
+    rowGap,
+    rows,
+    templateColumns,
+    templateRows,
+    ...otherProps
+  } = useContextSystem(props, 'Grid');
+  const columnsAsArray = Array.isArray(columns) ? columns : [columns];
+  const column = useResponsiveValue(columnsAsArray);
+  const rowsAsArray = Array.isArray(rows) ? rows : [rows];
+  const row = useResponsiveValue(rowsAsArray);
+  const gridTemplateColumns = templateColumns || !!columns && `repeat( ${column}, 1fr )`;
+  const gridTemplateRows = templateRows || !!rows && `repeat( ${row}, 1fr )`;
+  const cx = useCx();
+  const classes = (0,external_wp_element_namespaceObject.useMemo)(() => {
+    const alignmentProps = utils_getAlignmentProps(alignment);
+    const gridClasses = /*#__PURE__*/emotion_react_browser_esm_css({
+      alignItems: align,
+      display: isInline ? 'inline-grid' : 'grid',
+      gap: `calc( ${config_values.gridBase} * ${gap} )`,
+      gridTemplateColumns: gridTemplateColumns || undefined,
+      gridTemplateRows: gridTemplateRows || undefined,
+      gridRowGap: rowGap,
+      gridColumnGap: columnGap,
+      justifyContent: justify,
+      verticalAlign: isInline ? 'middle' : undefined,
+      ...alignmentProps
+    },  true ? "" : 0,  true ? "" : 0);
+    return cx(gridClasses, className);
+  }, [align, alignment, className, columnGap, cx, gap, gridTemplateColumns, gridTemplateRows, isInline, justify, rowGap]);
+  return { ...otherProps,
+    className: classes
+  };
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/grid/component.js
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+/**
+ * @param {import('../ui/context').WordPressComponentProps<import('./types').Props, 'div'>} props
+ * @param {import('react').ForwardedRef<any>}                                               forwardedRef
+ */
+
+function Grid(props, forwardedRef) {
+  const gridProps = useGrid(props);
+  return (0,external_wp_element_namespaceObject.createElement)(component, extends_extends({}, gridProps, {
+    ref: forwardedRef
+  }));
+}
+/**
+ * `Grid` is a primitive layout component that can arrange content in a grid configuration.
+ *
+ * @example
+ * ```jsx
+ * import {
+ * 	__experimentalGrid as Grid,
+ * 	__experimentalText as Text
+ * } from `@wordpress/components`;
+ *
+ * function Example() {
+ * 	return (
+ * 		<Grid columns={ 3 }>
+ * 			<Text>Code</Text>
+ * 			<Text>is</Text>
+ * 			<Text>Poetry</Text>
+ * 		</Grid>
+ * 	);
+ * }
+ * ```
+ */
+
+
+const ConnectedGrid = contextConnect(Grid, 'Grid');
+/* harmony default export */ var grid_component = (ConnectedGrid);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/border-box-control/border-box-control-split-controls/hook.js
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+function useBorderBoxControlSplitControls(props) {
+  const {
+    className,
+    ...otherProps
+  } = useContextSystem(props, 'BorderBoxControlSplitControls'); // Generate class names.
+
+  const cx = useCx();
+  const classes = (0,external_wp_element_namespaceObject.useMemo)(() => {
+    return cx(BorderBoxControlSplitControls, className);
+  }, [className, rtl.watch()]);
+  const centeredClassName = (0,external_wp_element_namespaceObject.useMemo)(() => {
+    return cx(CenteredBorderControl, className);
+  }, []);
+  return { ...otherProps,
+    centeredClassName,
+    className: classes
+  };
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/border-box-control/border-box-control-split-controls/component.js
+
+
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+
+const component_BorderBoxControlSplitControls = (props, forwardedRef) => {
+  const {
+    centeredClassName,
+    colors,
+    disableCustomColors,
+    enableAlpha,
+    enableStyle,
+    onChange,
+    popoverClassNames,
+    value,
+    __experimentalHasMultipleOrigins,
+    __experimentalIsRenderedInSidebar,
+    ...otherProps
+  } = useBorderBoxControlSplitControls(props);
+  const sharedBorderControlProps = {
+    colors,
+    disableCustomColors,
+    enableAlpha,
+    enableStyle,
+    isCompact: true,
+    __experimentalHasMultipleOrigins,
+    __experimentalIsRenderedInSidebar
+  };
+  return (0,external_wp_element_namespaceObject.createElement)(grid_component, extends_extends({}, otherProps, {
+    ref: forwardedRef,
+    gap: 4
+  }), (0,external_wp_element_namespaceObject.createElement)(border_box_control_visualizer_component, {
+    value: value
+  }), (0,external_wp_element_namespaceObject.createElement)(border_control_component, extends_extends({
+    className: centeredClassName,
+    hideLabelFromVision: true,
+    label: (0,external_wp_i18n_namespaceObject.__)('Top border'),
+    onChange: newBorder => onChange(newBorder, 'top'),
+    popoverContentClassName: popoverClassNames === null || popoverClassNames === void 0 ? void 0 : popoverClassNames.top,
+    value: value === null || value === void 0 ? void 0 : value.top
+  }, sharedBorderControlProps)), (0,external_wp_element_namespaceObject.createElement)(border_control_component, extends_extends({
+    hideLabelFromVision: true,
+    label: (0,external_wp_i18n_namespaceObject.__)('Left border'),
+    onChange: newBorder => onChange(newBorder, 'left'),
+    popoverContentClassName: popoverClassNames === null || popoverClassNames === void 0 ? void 0 : popoverClassNames.left,
+    value: value === null || value === void 0 ? void 0 : value.left
+  }, sharedBorderControlProps)), (0,external_wp_element_namespaceObject.createElement)(border_control_component, extends_extends({
+    hideLabelFromVision: true,
+    label: (0,external_wp_i18n_namespaceObject.__)('Right border'),
+    onChange: newBorder => onChange(newBorder, 'right'),
+    popoverContentClassName: popoverClassNames === null || popoverClassNames === void 0 ? void 0 : popoverClassNames.right,
+    value: value === null || value === void 0 ? void 0 : value.right
+  }, sharedBorderControlProps)), (0,external_wp_element_namespaceObject.createElement)(border_control_component, extends_extends({
+    className: centeredClassName,
+    hideLabelFromVision: true,
+    label: (0,external_wp_i18n_namespaceObject.__)('Bottom border'),
+    onChange: newBorder => onChange(newBorder, 'bottom'),
+    popoverContentClassName: popoverClassNames === null || popoverClassNames === void 0 ? void 0 : popoverClassNames.bottom,
+    value: value === null || value === void 0 ? void 0 : value.bottom
+  }, sharedBorderControlProps)));
+};
+
+const ConnectedBorderBoxControlSplitControls = contextConnect(component_BorderBoxControlSplitControls, 'BorderBoxControlSplitControls');
+/* harmony default export */ var border_box_control_split_controls_component = (ConnectedBorderBoxControlSplitControls);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/border-box-control/utils.js
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+const sides = ['top', 'right', 'bottom', 'left'];
+const borderProps = ['color', 'style', 'width'];
+const isEmptyBorder = border => {
+  if (!border) {
+    return true;
+  }
+
+  return !borderProps.some(prop => border[prop] !== undefined);
+};
+const isDefinedBorder = border => {
+  // No border, no worries :)
+  if (!border) {
+    return false;
+  } // If we have individual borders per side within the border object we
+  // need to check whether any of those side borders have been set.
+
+
+  if (hasSplitBorders(border)) {
+    const allSidesEmpty = sides.every(side => isEmptyBorder(border[side]));
+    return !allSidesEmpty;
+  } // If we have a top-level border only, check if that is empty. e.g.
+  // { color: undefined, style: undefined, width: undefined }
+  // Border radius can still be set within the border object as it is
+  // handled separately.
+
+
+  return !isEmptyBorder(border);
+};
+const isCompleteBorder = border => {
+  if (!border) {
+    return false;
+  }
+
+  return borderProps.every(prop => border[prop] !== undefined);
+};
+const hasSplitBorders = function () {
+  let border = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+  return Object.keys(border).some(side => sides.indexOf(side) !== -1);
+};
+const hasMixedBorders = borders => {
+  if (!hasSplitBorders(borders)) {
+    return false;
+  }
+
+  const shorthandBorders = sides.map(side => getShorthandBorderStyle(borders === null || borders === void 0 ? void 0 : borders[side]));
+  return !shorthandBorders.every(border => border === shorthandBorders[0]);
+};
+const getSplitBorders = border => {
+  if (!border || isEmptyBorder(border)) {
+    return undefined;
+  }
+
+  return {
+    top: border,
+    right: border,
+    bottom: border,
+    left: border
+  };
+};
+const getBorderDiff = (original, updated) => {
+  const diff = {};
+
+  if (original.color !== updated.color) {
+    diff.color = updated.color;
+  }
+
+  if (original.style !== updated.style) {
+    diff.style = updated.style;
+  }
+
+  if (original.width !== updated.width) {
+    diff.width = updated.width;
+  }
+
+  return diff;
+};
+const getCommonBorder = borders => {
+  if (!borders) {
+    return undefined;
+  }
+
+  const colors = [];
+  const styles = [];
+  const widths = [];
+  sides.forEach(side => {
+    var _borders$side, _borders$side2, _borders$side3;
+
+    colors.push((_borders$side = borders[side]) === null || _borders$side === void 0 ? void 0 : _borders$side.color);
+    styles.push((_borders$side2 = borders[side]) === null || _borders$side2 === void 0 ? void 0 : _borders$side2.style);
+    widths.push((_borders$side3 = borders[side]) === null || _borders$side3 === void 0 ? void 0 : _borders$side3.width);
+  });
+  const allColorsMatch = colors.every(value => value === colors[0]);
+  const allStylesMatch = styles.every(value => value === styles[0]);
+  const allWidthsMatch = widths.every(value => value === widths[0]);
+  return {
+    color: allColorsMatch ? colors[0] : undefined,
+    style: allStylesMatch ? styles[0] : undefined,
+    width: allWidthsMatch ? widths[0] : undefined
+  };
+};
+const getShorthandBorderStyle = (border, fallbackBorder) => {
+  if (isEmptyBorder(border)) {
+    return fallbackBorder;
+  }
+
+  const {
+    color: fallbackColor,
+    style: fallbackStyle,
+    width: fallbackWidth
+  } = fallbackBorder || {};
+  const {
+    color = fallbackColor,
+    style = fallbackStyle,
+    width = fallbackWidth
+  } = border;
+  const hasVisibleBorder = !!width && width !== '0' || !!color;
+  const borderStyle = hasVisibleBorder ? style || 'solid' : style;
+  return [width, borderStyle, color].filter(Boolean).join(' ');
+};
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/border-box-control/border-box-control/hook.js
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+function useBorderBoxControl(props) {
+  const {
+    className,
+    onChange,
+    value,
+    ...otherProps
+  } = useContextSystem(props, 'BorderBoxControl');
+  const mixedBorders = hasMixedBorders(value);
+  const splitBorders = hasSplitBorders(value);
+  const linkedValue = splitBorders ? getCommonBorder(value) : value;
+  const splitValue = splitBorders ? value : getSplitBorders(value);
+  const [isLinked, setIsLinked] = (0,external_wp_element_namespaceObject.useState)(!mixedBorders);
+
+  const toggleLinked = () => setIsLinked(!isLinked);
+
+  const onLinkedChange = newBorder => {
+    if (!newBorder) {
+      return onChange(undefined);
+    } // If we have all props defined on the new border apply it.
+
+
+    if (!mixedBorders || isCompleteBorder(newBorder)) {
+      return onChange(isEmptyBorder(newBorder) ? undefined : newBorder);
+    } // If we had mixed borders we might have had some shared border props
+    // that we need to maintain. For example; we could have mixed borders
+    // with all the same color but different widths. Then from the linked
+    // control we change the color. We should keep the separate  widths.
+
+
+    const changes = getBorderDiff(linkedValue, newBorder);
+    const updatedBorders = {
+      top: { ...(value === null || value === void 0 ? void 0 : value.top),
+        ...changes
+      },
+      right: { ...(value === null || value === void 0 ? void 0 : value.right),
+        ...changes
+      },
+      bottom: { ...(value === null || value === void 0 ? void 0 : value.bottom),
+        ...changes
+      },
+      left: { ...(value === null || value === void 0 ? void 0 : value.left),
+        ...changes
+      }
+    };
+
+    if (hasMixedBorders(updatedBorders)) {
+      return onChange(updatedBorders);
+    }
+
+    const filteredResult = isEmptyBorder(updatedBorders.top) ? undefined : updatedBorders.top;
+    onChange(filteredResult);
+  };
+
+  const onSplitChange = (newBorder, side) => {
+    const updatedBorders = { ...splitValue,
+      [side]: newBorder
+    };
+
+    if (hasMixedBorders(updatedBorders)) {
+      onChange(updatedBorders);
+    } else {
+      onChange(newBorder);
+    }
+  };
+
+  const cx = useCx();
+  const classes = (0,external_wp_element_namespaceObject.useMemo)(() => {
+    return cx(BorderBoxControl, className);
+  }, [className]);
+  const linkedControlClassName = (0,external_wp_element_namespaceObject.useMemo)(() => {
+    return cx(LinkedBorderControl);
+  }, []);
+  return { ...otherProps,
+    className: classes,
+    hasMixedBorders: mixedBorders,
+    isLinked,
+    linkedControlClassName,
+    onLinkedChange,
+    onSplitChange,
+    toggleLinked,
+    linkedValue,
+    splitValue
+  };
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/border-box-control/border-box-control/component.js
+
+
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+
+
+
+
+
+const component_BorderLabel = props => {
+  const {
+    label,
+    hideLabelFromVision
+  } = props;
+
+  if (!label) {
+    return null;
+  }
+
+  return hideLabelFromVision ? (0,external_wp_element_namespaceObject.createElement)(visually_hidden_component, {
+    as: "label"
+  }, label) : (0,external_wp_element_namespaceObject.createElement)(StyledLabel, null, label);
+};
+
+const component_BorderBoxControl = (props, forwardedRef) => {
+  const {
+    className,
+    colors,
+    disableCustomColors,
+    enableAlpha,
+    enableStyle,
+    hasMixedBorders,
+    hideLabelFromVision,
+    isLinked,
+    label,
+    linkedControlClassName,
+    linkedValue,
+    onLinkedChange,
+    onSplitChange,
+    popoverClassNames,
+    splitValue,
+    toggleLinked,
+    __experimentalHasMultipleOrigins,
+    __experimentalIsRenderedInSidebar,
+    ...otherProps
+  } = useBorderBoxControl(props);
+  return (0,external_wp_element_namespaceObject.createElement)(component, extends_extends({
+    className: className
+  }, otherProps, {
+    ref: forwardedRef
+  }), (0,external_wp_element_namespaceObject.createElement)(component_BorderLabel, {
+    label: label,
+    hideLabelFromVision: hideLabelFromVision
+  }), (0,external_wp_element_namespaceObject.createElement)(h_stack_component, {
+    alignment: 'start',
+    expanded: true,
+    spacing: 0
+  }, isLinked ? (0,external_wp_element_namespaceObject.createElement)(border_control_component, {
+    className: linkedControlClassName,
+    colors: colors,
+    disableCustomColors: disableCustomColors,
+    enableAlpha: enableAlpha,
+    enableStyle: enableStyle,
+    onChange: onLinkedChange,
+    placeholder: hasMixedBorders ? (0,external_wp_i18n_namespaceObject.__)('Mixed') : undefined,
+    popoverContentClassName: popoverClassNames === null || popoverClassNames === void 0 ? void 0 : popoverClassNames.linked,
+    shouldSanitizeBorder: false // This component will handle that.
+    ,
+    value: linkedValue,
+    withSlider: true,
+    width: '110px',
+    __experimentalHasMultipleOrigins: __experimentalHasMultipleOrigins,
+    __experimentalIsRenderedInSidebar: __experimentalIsRenderedInSidebar
+  }) : (0,external_wp_element_namespaceObject.createElement)(border_box_control_split_controls_component, {
+    colors: colors,
+    disableCustomColors: disableCustomColors,
+    enableAlpha: enableAlpha,
+    enableStyle: enableStyle,
+    onChange: onSplitChange,
+    popoverClassNames: popoverClassNames,
+    value: splitValue,
+    __experimentalHasMultipleOrigins: __experimentalHasMultipleOrigins,
+    __experimentalIsRenderedInSidebar: __experimentalIsRenderedInSidebar
+  }), (0,external_wp_element_namespaceObject.createElement)(border_box_control_linked_button_component, {
+    onClick: toggleLinked,
+    isLinked: isLinked
+  })));
+};
+
+const ConnectedBorderBoxControl = contextConnect(component_BorderBoxControl, 'BorderBoxControl');
+/* harmony default export */ var border_box_control_component = (ConnectedBorderBoxControl);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/box-control/styles/box-control-styles.js
+
+
+function box_control_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+const box_control_styles_Root = emotion_styled_base_browser_esm("div",  true ? {
+  target: "e7pk0lh6"
+} : 0)( true ? {
+  name: "14bvcyk",
+  styles: "box-sizing:border-box;max-width:235px;padding-bottom:12px;width:100%"
+} : 0);
+const Header = /*#__PURE__*/emotion_styled_base_browser_esm(flex_component,  true ? {
+  target: "e7pk0lh5"
+} : 0)("color:", COLORS.ui.label, ";margin-bottom:8px;" + ( true ? "" : 0));
+const HeaderControlWrapper = /*#__PURE__*/emotion_styled_base_browser_esm(flex_component,  true ? {
+  target: "e7pk0lh4"
+} : 0)( true ? {
+  name: "aujtid",
+  styles: "min-height:30px;gap:0"
+} : 0);
+const UnitControlWrapper = emotion_styled_base_browser_esm("div",  true ? {
+  target: "e7pk0lh3"
+} : 0)( true ? {
+  name: "112jwab",
+  styles: "box-sizing:border-box;max-width:80px"
+} : 0);
+const LayoutContainer = /*#__PURE__*/emotion_styled_base_browser_esm(flex_component,  true ? {
+  target: "e7pk0lh2"
+} : 0)( true ? {
+  name: "xy18ro",
+  styles: "justify-content:center;padding-top:8px"
+} : 0);
+const Layout = /*#__PURE__*/emotion_styled_base_browser_esm(flex_component,  true ? {
+  target: "e7pk0lh1"
+} : 0)( true ? {
+  name: "3tw5wk",
+  styles: "position:relative;height:100%;width:100%;justify-content:flex-start"
+} : 0);
+
+var box_control_styles_ref =  true ? {
+  name: "1ch9yvl",
+  styles: "border-radius:0"
+} : 0;
+
+var box_control_styles_ref2 =  true ? {
+  name: "tg3mx0",
+  styles: "border-radius:2px"
+} : 0;
+
+const unitControlBorderRadiusStyles = _ref3 => {
+  let {
+    isFirst,
+    isLast,
+    isOnly
+  } = _ref3;
+
+  if (isFirst) {
+    return rtl({
+      borderTopRightRadius: 0,
+      borderBottomRightRadius: 0
+    })();
+  }
+
+  if (isLast) {
+    return rtl({
+      borderTopLeftRadius: 0,
+      borderBottomLeftRadius: 0
+    })();
+  }
+
+  if (isOnly) {
+    return box_control_styles_ref2;
+  }
+
+  return box_control_styles_ref;
+};
+
+const unitControlMarginStyles = _ref4 => {
+  let {
+    isFirst,
+    isOnly
+  } = _ref4;
+  const marginLeft = isFirst || isOnly ? 0 : -1;
+  return rtl({
+    marginLeft
+  })();
+};
+
+const box_control_styles_UnitControl = /*#__PURE__*/emotion_styled_base_browser_esm(unit_control,  true ? {
+  target: "e7pk0lh0"
+} : 0)("max-width:60px;", unitControlBorderRadiusStyles, ";", unitControlMarginStyles, ";" + ( true ? "" : 0));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/box-control/unit-control.js
+
+
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+function BoxUnitControl(_ref) {
+  let {
+    isFirst,
+    isLast,
+    isOnly,
+    onHoverOn = external_lodash_namespaceObject.noop,
+    onHoverOff = external_lodash_namespaceObject.noop,
+    label,
+    value,
+    ...props
+  } = _ref;
+  const bindHoverGesture = useHover(_ref2 => {
+    let {
+      event,
+      ...state
+    } = _ref2;
+
+    if (state.hovering) {
+      onHoverOn(event, state);
+    } else {
+      onHoverOff(event, state);
+    }
+  });
+  return (0,external_wp_element_namespaceObject.createElement)(UnitControlWrapper, bindHoverGesture(), (0,external_wp_element_namespaceObject.createElement)(unit_control_Tooltip, {
+    text: label
+  }, (0,external_wp_element_namespaceObject.createElement)(box_control_styles_UnitControl, extends_extends({
+    "aria-label": label,
+    className: "component-box-control__unit-control",
+    hideHTMLArrows: true,
+    isFirst: isFirst,
+    isLast: isLast,
+    isOnly: isOnly,
+    isPressEnterToChange: true,
+    isResetValueOnUnitChange: false,
+    value: value
+  }, props))));
+}
+
+function unit_control_Tooltip(_ref3) {
+  let {
+    children,
+    text
+  } = _ref3;
+  if (!text) return children;
+  /**
+   * Wrapping the children in a `<div />` as Tooltip as it attempts
+   * to render the <UnitControl />. Using a plain `<div />` appears to
+   * resolve this issue.
+   *
+   * Originally discovered and referenced here:
+   * https://github.com/WordPress/gutenberg/pull/24966#issuecomment-685875026
+   */
+
+  return (0,external_wp_element_namespaceObject.createElement)(tooltip, {
+    text: text,
+    position: "top"
+  }, (0,external_wp_element_namespaceObject.createElement)("div", null, children));
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/box-control/utils.js
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+const LABELS = {
+  all: (0,external_wp_i18n_namespaceObject.__)('All'),
+  top: (0,external_wp_i18n_namespaceObject.__)('Top'),
+  bottom: (0,external_wp_i18n_namespaceObject.__)('Bottom'),
+  left: (0,external_wp_i18n_namespaceObject.__)('Left'),
+  right: (0,external_wp_i18n_namespaceObject.__)('Right'),
+  mixed: (0,external_wp_i18n_namespaceObject.__)('Mixed'),
+  vertical: (0,external_wp_i18n_namespaceObject.__)('Vertical'),
+  horizontal: (0,external_wp_i18n_namespaceObject.__)('Horizontal')
+};
+const DEFAULT_VALUES = {
+  top: undefined,
+  right: undefined,
+  bottom: undefined,
+  left: undefined
+};
+const DEFAULT_VISUALIZER_VALUES = {
+  top: false,
+  right: false,
+  bottom: false,
+  left: false
+};
+const ALL_SIDES = ['top', 'right', 'bottom', 'left'];
+/**
+ * Gets an items with the most occurrence within an array
+ * https://stackoverflow.com/a/20762713
+ *
+ * @param {Array<any>} arr Array of items to check.
+ * @return {any} The item with the most occurrences.
+ */
+
+function mode(arr) {
+  return arr.sort((a, b) => arr.filter(v => v === a).length - arr.filter(v => v === b).length).pop();
+}
+/**
+ * Gets the 'all' input value and unit from values data.
+ *
+ * @param {Object} values         Box values.
+ * @param {Object} selectedUnits  Box units.
+ * @param {Array}  availableSides Available box sides to evaluate.
+ *
+ * @return {string} A value + unit for the 'all' input.
+ */
+
+
+function getAllValue() {
+  let values = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+  let selectedUnits = arguments.length > 1 ? arguments[1] : undefined;
+  let availableSides = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ALL_SIDES;
+  const sides = normalizeSides(availableSides);
+  const parsedQuantitiesAndUnits = sides.map(side => parseQuantityAndUnitFromRawValue(values[side]));
+  const allParsedQuantities = parsedQuantitiesAndUnits.map(value => {
+    var _value$;
+
+    return (_value$ = value[0]) !== null && _value$ !== void 0 ? _value$ : '';
+  });
+  const allParsedUnits = parsedQuantitiesAndUnits.map(value => value[1]);
+  const commonQuantity = allParsedQuantities.every(v => v === allParsedQuantities[0]) ? allParsedQuantities[0] : '';
+  /**
+   * The isNumber check is important. On reset actions, the incoming value
+   * may be null or an empty string.
+   *
+   * Also, the value may also be zero (0), which is considered a valid unit value.
+   *
+   * isNumber() is more specific for these cases, rather than relying on a
+   * simple truthy check.
+   */
+
+  let commonUnit;
+
+  if ((0,external_lodash_namespaceObject.isNumber)(commonQuantity)) {
+    commonUnit = mode(allParsedUnits);
+  } else {
+    var _getAllUnitFallback;
+
+    // Set meaningful unit selection if no commonQuantity and user has previously
+    // selected units without assigning values while controls were unlinked.
+    commonUnit = (_getAllUnitFallback = getAllUnitFallback(selectedUnits)) !== null && _getAllUnitFallback !== void 0 ? _getAllUnitFallback : mode(allParsedUnits);
+  }
+
+  return [commonQuantity, commonUnit].join('');
+}
+/**
+ * Determine the most common unit selection to use as a fallback option.
+ *
+ * @param {Object} selectedUnits Current unit selections for individual sides.
+ * @return {string} Most common unit selection.
+ */
+
+function getAllUnitFallback(selectedUnits) {
+  if (!selectedUnits || typeof selectedUnits !== 'object') {
+    return undefined;
+  }
+
+  const filteredUnits = Object.values(selectedUnits).filter(Boolean);
+  return mode(filteredUnits);
+}
+/**
+ * Checks to determine if values are mixed.
+ *
+ * @param {Object} values        Box values.
+ * @param {Object} selectedUnits Box units.
+ * @param {Array}  sides         Available box sides to evaluate.
+ *
+ * @return {boolean} Whether values are mixed.
+ */
+
+function isValuesMixed() {
+  let values = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+  let selectedUnits = arguments.length > 1 ? arguments[1] : undefined;
+  let sides = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ALL_SIDES;
+  const allValue = getAllValue(values, selectedUnits, sides);
+  const isMixed = isNaN(parseFloat(allValue));
+  return isMixed;
+}
+/**
+ * Checks to determine if values are defined.
+ *
+ * @param {Object} values Box values.
+ *
+ * @return {boolean} Whether values are mixed.
+ */
+
+function isValuesDefined(values) {
+  return values !== undefined && !(0,external_lodash_namespaceObject.isEmpty)(Object.values(values).filter( // Switching units when input is empty causes values only
+  // containing units. This gives false positive on mixed values
+  // unless filtered.
+  value => !!value && /\d/.test(value)));
+}
+/**
+ * Get initial selected side, factoring in whether the sides are linked,
+ * and whether the vertical / horizontal directions are grouped via splitOnAxis.
+ *
+ * @param {boolean} isLinked    Whether the box control's fields are linked.
+ * @param {boolean} splitOnAxis Whether splitting by horizontal or vertical axis.
+ * @return {string} The initial side.
+ */
+
+function getInitialSide(isLinked, splitOnAxis) {
+  let initialSide = 'all';
+
+  if (!isLinked) {
+    initialSide = splitOnAxis ? 'vertical' : 'top';
+  }
+
+  return initialSide;
+}
+/**
+ * Normalizes provided sides configuration to an array containing only top,
+ * right, bottom and left. This essentially just maps `horizontal` or `vertical`
+ * to their appropriate sides to facilitate correctly determining value for
+ * all input control.
+ *
+ * @param {Array} sides Available sides for box control.
+ * @return {Array} Normalized sides configuration.
+ */
+
+function normalizeSides(sides) {
+  const filteredSides = [];
+
+  if (!(sides !== null && sides !== void 0 && sides.length)) {
+    return ALL_SIDES;
+  }
+
+  if (sides.includes('vertical')) {
+    filteredSides.push(...['top', 'bottom']);
+  } else if (sides.includes('horizontal')) {
+    filteredSides.push(...['left', 'right']);
+  } else {
+    const newSides = ALL_SIDES.filter(side => sides.includes(side));
+    filteredSides.push(...newSides);
+  }
+
+  return filteredSides;
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/box-control/all-input-control.js
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+function AllInputControl(_ref) {
+  let {
+    onChange = external_lodash_namespaceObject.noop,
+    onFocus = external_lodash_namespaceObject.noop,
+    onHoverOn = external_lodash_namespaceObject.noop,
+    onHoverOff = external_lodash_namespaceObject.noop,
+    values,
+    sides,
+    selectedUnits,
+    setSelectedUnits,
+    ...props
+  } = _ref;
+  const allValue = getAllValue(values, selectedUnits, sides);
+  const hasValues = isValuesDefined(values);
+  const isMixed = hasValues && isValuesMixed(values, selectedUnits, sides);
+  const allPlaceholder = isMixed ? LABELS.mixed : null;
+
+  const handleOnFocus = event => {
+    onFocus(event, {
+      side: 'all'
+    });
+  }; // Applies a value to an object representing top, right, bottom and left
+  // sides while taking into account any custom side configuration.
+
+
+  const applyValueToSides = (currentValues, newValue) => {
+    const newValues = { ...currentValues
+    };
+
+    if (sides !== null && sides !== void 0 && sides.length) {
+      sides.forEach(side => {
+        if (side === 'vertical') {
+          newValues.top = newValue;
+          newValues.bottom = newValue;
+        } else if (side === 'horizontal') {
+          newValues.left = newValue;
+          newValues.right = newValue;
+        } else {
+          newValues[side] = newValue;
+        }
+      });
+    } else {
+      ALL_SIDES.forEach(side => newValues[side] = newValue);
+    }
+
+    return newValues;
+  };
+
+  const handleOnChange = next => {
+    const isNumeric = !isNaN(parseFloat(next));
+    const nextValue = isNumeric ? next : undefined;
+    const nextValues = applyValueToSides(values, nextValue);
+    onChange(nextValues);
+  }; // Set selected unit so it can be used as fallback by unlinked controls
+  // when individual sides do not have a value containing a unit.
+
+
+  const handleOnUnitChange = unit => {
+    const newUnits = applyValueToSides(selectedUnits, unit);
+    setSelectedUnits(newUnits);
+  };
+
+  const handleOnHoverOn = () => {
+    onHoverOn({
+      top: true,
+      bottom: true,
+      left: true,
+      right: true
+    });
+  };
+
+  const handleOnHoverOff = () => {
+    onHoverOff({
+      top: false,
+      bottom: false,
+      left: false,
+      right: false
+    });
+  };
+
+  return (0,external_wp_element_namespaceObject.createElement)(BoxUnitControl, extends_extends({}, props, {
+    disableUnits: isMixed,
+    isOnly: true,
+    value: allValue,
+    onChange: handleOnChange,
+    onUnitChange: handleOnUnitChange,
+    onFocus: handleOnFocus,
+    onHoverOn: handleOnHoverOn,
+    onHoverOff: handleOnHoverOff,
+    placeholder: allPlaceholder
+  }));
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/box-control/input-controls.js
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+function BoxInputControls(_ref) {
+  let {
+    onChange = external_lodash_namespaceObject.noop,
+    onFocus = external_lodash_namespaceObject.noop,
+    onHoverOn = external_lodash_namespaceObject.noop,
+    onHoverOff = external_lodash_namespaceObject.noop,
+    values,
+    selectedUnits,
+    setSelectedUnits,
+    sides,
+    ...props
+  } = _ref;
+
+  const createHandleOnFocus = side => event => {
+    onFocus(event, {
+      side
+    });
+  };
+
+  const createHandleOnHoverOn = side => () => {
+    onHoverOn({
+      [side]: true
+    });
+  };
+
+  const createHandleOnHoverOff = side => () => {
+    onHoverOff({
+      [side]: false
+    });
+  };
+
+  const handleOnChange = nextValues => {
+    onChange(nextValues);
+  };
+
+  const createHandleOnChange = side => (next, _ref2) => {
+    let {
+      event
+    } = _ref2;
+    const {
+      altKey
+    } = event;
+    const nextValues = { ...values
+    };
+    const isNumeric = !isNaN(parseFloat(next));
+    const nextValue = isNumeric ? next : undefined;
+    nextValues[side] = nextValue;
+    /**
+     * Supports changing pair sides. For example, holding the ALT key
+     * when changing the TOP will also update BOTTOM.
+     */
+
+    if (altKey) {
+      switch (side) {
+        case 'top':
+          nextValues.bottom = nextValue;
+          break;
+
+        case 'bottom':
+          nextValues.top = nextValue;
+          break;
+
+        case 'left':
+          nextValues.right = nextValue;
+          break;
+
+        case 'right':
+          nextValues.left = nextValue;
+          break;
+      }
+    }
+
+    handleOnChange(nextValues);
+  };
+
+  const createHandleOnUnitChange = side => next => {
+    const newUnits = { ...selectedUnits
+    };
+    newUnits[side] = next;
+    setSelectedUnits(newUnits);
+  }; // Filter sides if custom configuration provided, maintaining default order.
+
+
+  const filteredSides = sides !== null && sides !== void 0 && sides.length ? ALL_SIDES.filter(side => sides.includes(side)) : ALL_SIDES;
+  const first = filteredSides[0];
+  const last = filteredSides[filteredSides.length - 1];
+  const only = first === last && first;
+  return (0,external_wp_element_namespaceObject.createElement)(LayoutContainer, {
+    className: "component-box-control__input-controls-wrapper"
+  }, (0,external_wp_element_namespaceObject.createElement)(Layout, {
+    gap: 0,
+    align: "top",
+    className: "component-box-control__input-controls"
+  }, filteredSides.map(side => {
+    const [parsedQuantity, parsedUnit] = parseQuantityAndUnitFromRawValue(values[side]);
+    const computedUnit = values[side] ? parsedUnit : selectedUnits[side];
+    return (0,external_wp_element_namespaceObject.createElement)(BoxUnitControl, extends_extends({}, props, {
+      isFirst: first === side,
+      isLast: last === side,
+      isOnly: only === side,
+      value: [parsedQuantity, computedUnit].join(''),
+      onChange: createHandleOnChange(side),
+      onUnitChange: createHandleOnUnitChange(side),
+      onFocus: createHandleOnFocus(side),
+      onHoverOn: createHandleOnHoverOn(side),
+      onHoverOff: createHandleOnHoverOff(side),
+      label: LABELS[side],
+      key: `box-control-${side}`
+    }));
+  })));
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/box-control/axial-input-controls.js
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+const groupedSides = ['vertical', 'horizontal'];
+function AxialInputControls(_ref) {
+  let {
+    onChange,
+    onFocus,
+    onHoverOn,
+    onHoverOff,
+    values,
+    selectedUnits,
+    setSelectedUnits,
+    sides,
+    ...props
+  } = _ref;
+
+  const createHandleOnFocus = side => event => {
+    if (!onFocus) {
+      return;
+    }
+
+    onFocus(event, {
+      side
+    });
+  };
+
+  const createHandleOnHoverOn = side => () => {
+    if (!onHoverOn) {
+      return;
+    }
+
+    if (side === 'vertical') {
+      onHoverOn({
+        top: true,
+        bottom: true
+      });
+    }
+
+    if (side === 'horizontal') {
+      onHoverOn({
+        left: true,
+        right: true
+      });
+    }
+  };
+
+  const createHandleOnHoverOff = side => () => {
+    if (!onHoverOff) {
+      return;
+    }
+
+    if (side === 'vertical') {
+      onHoverOff({
+        top: false,
+        bottom: false
+      });
+    }
+
+    if (side === 'horizontal') {
+      onHoverOff({
+        left: false,
+        right: false
+      });
+    }
+  };
+
+  const createHandleOnChange = side => next => {
+    if (!onChange) {
+      return;
+    }
+
+    const nextValues = { ...values
+    };
+    const isNumeric = !isNaN(parseFloat(next));
+    const nextValue = isNumeric ? next : undefined;
+
+    if (side === 'vertical') {
+      nextValues.top = nextValue;
+      nextValues.bottom = nextValue;
+    }
+
+    if (side === 'horizontal') {
+      nextValues.left = nextValue;
+      nextValues.right = nextValue;
+    }
+
+    onChange(nextValues);
+  };
+
+  const createHandleOnUnitChange = side => next => {
+    const newUnits = { ...selectedUnits
+    };
+
+    if (side === 'vertical') {
+      newUnits.top = next;
+      newUnits.bottom = next;
+    }
+
+    if (side === 'horizontal') {
+      newUnits.left = next;
+      newUnits.right = next;
+    }
+
+    setSelectedUnits(newUnits);
+  }; // Filter sides if custom configuration provided, maintaining default order.
+
+
+  const filteredSides = sides !== null && sides !== void 0 && sides.length ? groupedSides.filter(side => sides.includes(side)) : groupedSides;
+  const first = filteredSides[0];
+  const last = filteredSides[filteredSides.length - 1];
+  const only = first === last;
+  return (0,external_wp_element_namespaceObject.createElement)(Layout, {
+    gap: 0,
+    align: "top",
+    className: "component-box-control__vertical-horizontal-input-controls"
+  }, filteredSides.map(side => {
+    const [parsedQuantity, parsedUnit] = parseQuantityAndUnitFromRawValue(side === 'vertical' ? values.top : values.left);
+    const selectedUnit = side === 'vertical' ? selectedUnits.top : selectedUnits.left;
+    return (0,external_wp_element_namespaceObject.createElement)(BoxUnitControl, extends_extends({}, props, {
+      isFirst: first === side,
+      isLast: last === side,
+      isOnly: only === side,
+      value: [parsedQuantity, selectedUnit !== null && selectedUnit !== void 0 ? selectedUnit : parsedUnit].join(''),
+      onChange: createHandleOnChange(side),
+      onUnitChange: createHandleOnUnitChange(side),
+      onFocus: createHandleOnFocus(side),
+      onHoverOn: createHandleOnHoverOn(side),
+      onHoverOff: createHandleOnHoverOff(side),
+      label: LABELS[side],
+      key: side
+    }));
+  }));
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/box-control/styles/box-control-icon-styles.js
+
+
+function box_control_icon_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
+
+/**
+ * External dependencies
+ */
+
+const box_control_icon_styles_Root = emotion_styled_base_browser_esm("span",  true ? {
+  target: "eaw9yqk8"
+} : 0)( true ? {
+  name: "1w884gc",
+  styles: "box-sizing:border-box;display:block;width:24px;height:24px;position:relative;padding:4px"
+} : 0);
+const Viewbox = emotion_styled_base_browser_esm("span",  true ? {
+  target: "eaw9yqk7"
+} : 0)( true ? {
+  name: "i6vjox",
+  styles: "box-sizing:border-box;display:block;position:relative;width:100%;height:100%"
+} : 0);
+
+const strokeFocus = _ref => {
+  let {
+    isFocused
+  } = _ref;
+  return /*#__PURE__*/emotion_react_browser_esm_css({
+    backgroundColor: 'currentColor',
+    opacity: isFocused ? 1 : 0.3
+  },  true ? "" : 0,  true ? "" : 0);
+};
+
+const Stroke = emotion_styled_base_browser_esm("span",  true ? {
+  target: "eaw9yqk6"
+} : 0)("box-sizing:border-box;display:block;pointer-events:none;position:absolute;", strokeFocus, ";" + ( true ? "" : 0));
+
+const VerticalStroke = /*#__PURE__*/emotion_styled_base_browser_esm(Stroke,  true ? {
+  target: "eaw9yqk5"
+} : 0)( true ? {
+  name: "1k2w39q",
+  styles: "bottom:3px;top:3px;width:2px"
+} : 0);
+
+const HorizontalStroke = /*#__PURE__*/emotion_styled_base_browser_esm(Stroke,  true ? {
+  target: "eaw9yqk4"
+} : 0)( true ? {
+  name: "1q9b07k",
+  styles: "height:2px;left:3px;right:3px"
+} : 0);
+
+const TopStroke = /*#__PURE__*/emotion_styled_base_browser_esm(HorizontalStroke,  true ? {
+  target: "eaw9yqk3"
+} : 0)( true ? {
+  name: "abcix4",
+  styles: "top:0"
+} : 0);
+const RightStroke = /*#__PURE__*/emotion_styled_base_browser_esm(VerticalStroke,  true ? {
+  target: "eaw9yqk2"
+} : 0)( true ? {
+  name: "1wf8jf",
+  styles: "right:0"
+} : 0);
+const BottomStroke = /*#__PURE__*/emotion_styled_base_browser_esm(HorizontalStroke,  true ? {
+  target: "eaw9yqk1"
+} : 0)( true ? {
+  name: "8tapst",
+  styles: "bottom:0"
+} : 0);
+const LeftStroke = /*#__PURE__*/emotion_styled_base_browser_esm(VerticalStroke,  true ? {
+  target: "eaw9yqk0"
+} : 0)( true ? {
+  name: "1ode3cm",
+  styles: "left:0"
+} : 0);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/box-control/icon.js
+
+
+
+/**
+ * Internal dependencies
+ */
+
+const BASE_ICON_SIZE = 24;
+function BoxControlIcon(_ref) {
+  let {
+    size = 24,
+    side = 'all',
+    sides,
+    ...props
+  } = _ref;
+
+  const isSideDisabled = value => (sides === null || sides === void 0 ? void 0 : sides.length) && !sides.includes(value);
+
+  const hasSide = value => {
+    if (isSideDisabled(value)) {
+      return false;
+    }
+
+    return side === 'all' || side === value;
+  };
+
+  const top = hasSide('top') || hasSide('vertical');
+  const right = hasSide('right') || hasSide('horizontal');
+  const bottom = hasSide('bottom') || hasSide('vertical');
+  const left = hasSide('left') || hasSide('horizontal'); // Simulates SVG Icon scaling.
+
+  const scale = size / BASE_ICON_SIZE;
+  return (0,external_wp_element_namespaceObject.createElement)(box_control_icon_styles_Root, extends_extends({
+    style: {
+      transform: `scale(${scale})`
+    }
+  }, props), (0,external_wp_element_namespaceObject.createElement)(Viewbox, null, (0,external_wp_element_namespaceObject.createElement)(TopStroke, {
+    isFocused: top
+  }), (0,external_wp_element_namespaceObject.createElement)(RightStroke, {
+    isFocused: right
+  }), (0,external_wp_element_namespaceObject.createElement)(BottomStroke, {
+    isFocused: bottom
+  }), (0,external_wp_element_namespaceObject.createElement)(LeftStroke, {
+    isFocused: left
+  })));
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/box-control/linked-button.js
+
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+function LinkedButton(_ref) {
+  let {
+    isLinked,
+    ...props
+  } = _ref;
+  const label = isLinked ? (0,external_wp_i18n_namespaceObject.__)('Unlink Sides') : (0,external_wp_i18n_namespaceObject.__)('Link Sides');
+  return (0,external_wp_element_namespaceObject.createElement)(tooltip, {
+    text: label
+  }, (0,external_wp_element_namespaceObject.createElement)("span", null, (0,external_wp_element_namespaceObject.createElement)(build_module_button, extends_extends({}, props, {
+    className: "component-box-control__linked-button",
+    variant: isLinked ? 'primary' : 'secondary',
+    isSmall: true,
+    icon: isLinked ? library_link : link_off,
+    iconSize: 16,
+    "aria-label": label
+  }))));
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/box-control/styles/box-control-visualizer-styles.js
+
+
+function box_control_visualizer_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+var box_control_visualizer_styles_ref =  true ? {
+  name: "11f5o9n",
+  styles: "bottom:0;left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:1"
+} : 0;
+
+const containerPositionStyles = _ref2 => {
+  let {
+    isPositionAbsolute
+  } = _ref2;
+  if (!isPositionAbsolute) return '';
+  return box_control_visualizer_styles_ref;
+};
+
+const box_control_visualizer_styles_Container = emotion_styled_base_browser_esm("div",  true ? {
+  target: "e1df9b4q5"
+} : 0)("box-sizing:border-box;position:relative;", containerPositionStyles, ";" + ( true ? "" : 0));
+const Side = emotion_styled_base_browser_esm("div",  true ? {
+  target: "e1df9b4q4"
+} : 0)("box-sizing:border-box;background:", COLORS.blue.wordpress[700], ";background:", COLORS.ui.theme, ";filter:brightness( 1 );opacity:0;position:absolute;pointer-events:none;transition:opacity 120ms linear;z-index:1;", _ref3 => {
+  let {
+    isActive
+  } = _ref3;
+  return isActive && `
+		opacity: 0.3;
+	`;
+}, ";" + ( true ? "" : 0));
+const TopView = /*#__PURE__*/emotion_styled_base_browser_esm(Side,  true ? {
+  target: "e1df9b4q3"
+} : 0)( true ? {
+  name: "5i97ct",
+  styles: "top:0;left:0;right:0"
+} : 0);
+const RightView = /*#__PURE__*/emotion_styled_base_browser_esm(Side,  true ? {
+  target: "e1df9b4q2"
+} : 0)("top:0;bottom:0;", rtl({
+  right: 0
+}), ";" + ( true ? "" : 0));
+const BottomView = /*#__PURE__*/emotion_styled_base_browser_esm(Side,  true ? {
+  target: "e1df9b4q1"
+} : 0)( true ? {
+  name: "8cxke2",
+  styles: "bottom:0;left:0;right:0"
+} : 0);
+const LeftView = /*#__PURE__*/emotion_styled_base_browser_esm(Side,  true ? {
+  target: "e1df9b4q0"
+} : 0)("top:0;bottom:0;", rtl({
+  left: 0
+}), ";" + ( true ? "" : 0));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/box-control/visualizer.js
+
+
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+function BoxControlVisualizer(_ref) {
+  let {
+    children,
+    showValues = DEFAULT_VISUALIZER_VALUES,
+    values: valuesProp = DEFAULT_VALUES,
+    ...props
+  } = _ref;
+  const isPositionAbsolute = !children;
+  return (0,external_wp_element_namespaceObject.createElement)(box_control_visualizer_styles_Container, extends_extends({}, props, {
+    isPositionAbsolute: isPositionAbsolute,
+    "aria-hidden": "true"
+  }), (0,external_wp_element_namespaceObject.createElement)(Sides, {
+    showValues: showValues,
+    values: valuesProp
+  }), children);
+}
+
+function Sides(_ref2) {
+  let {
+    showValues = DEFAULT_VISUALIZER_VALUES,
+    values
+  } = _ref2;
+  const {
+    top,
+    right,
+    bottom,
+    left
+  } = values;
+  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(Top, {
+    isVisible: showValues.top,
+    value: top
+  }), (0,external_wp_element_namespaceObject.createElement)(Right, {
+    isVisible: showValues.right,
+    value: right
+  }), (0,external_wp_element_namespaceObject.createElement)(Bottom, {
+    isVisible: showValues.bottom,
+    value: bottom
+  }), (0,external_wp_element_namespaceObject.createElement)(Left, {
+    isVisible: showValues.left,
+    value: left
+  }));
+}
+
+function Top(_ref3) {
+  let {
+    isVisible = false,
+    value
+  } = _ref3;
+  const height = value;
+  const animationProps = useSideAnimation(height);
+  const isActive = animationProps.isActive || isVisible;
+  return (0,external_wp_element_namespaceObject.createElement)(TopView, {
+    isActive: isActive,
+    style: {
+      height
+    }
+  });
+}
+
+function Right(_ref4) {
+  let {
+    isVisible = false,
+    value
+  } = _ref4;
+  const width = value;
+  const animationProps = useSideAnimation(width);
+  const isActive = animationProps.isActive || isVisible;
+  return (0,external_wp_element_namespaceObject.createElement)(RightView, {
+    isActive: isActive,
+    style: {
+      width
+    }
+  });
+}
+
+function Bottom(_ref5) {
+  let {
+    isVisible = false,
+    value
+  } = _ref5;
+  const height = value;
+  const animationProps = useSideAnimation(height);
+  const isActive = animationProps.isActive || isVisible;
+  return (0,external_wp_element_namespaceObject.createElement)(BottomView, {
+    isActive: isActive,
+    style: {
+      height
+    }
+  });
+}
+
+function Left(_ref6) {
+  let {
+    isVisible = false,
+    value
+  } = _ref6;
+  const width = value;
+  const animationProps = useSideAnimation(width);
+  const isActive = animationProps.isActive || isVisible;
+  return (0,external_wp_element_namespaceObject.createElement)(LeftView, {
+    isActive: isActive,
+    style: {
+      width
+    }
+  });
+}
+/**
+ * Custom hook that renders the "flash" animation whenever the value changes.
+ *
+ * @param {string} value Value of (box) side.
+ */
+
+
+function useSideAnimation(value) {
+  const [isActive, setIsActive] = (0,external_wp_element_namespaceObject.useState)(false);
+  const valueRef = (0,external_wp_element_namespaceObject.useRef)(value);
+  const timeoutRef = (0,external_wp_element_namespaceObject.useRef)();
+
+  const clearTimer = () => {
+    if (timeoutRef.current) {
+      window.clearTimeout(timeoutRef.current);
+    }
+  };
+
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    if (value !== valueRef.current) {
+      setIsActive(true);
+      valueRef.current = value;
+      clearTimer();
+      timeoutRef.current = setTimeout(() => {
+        setIsActive(false);
+      }, 400);
+    }
+
+    return () => clearTimer();
+  }, [value]);
+  return {
+    isActive
+  };
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/box-control/index.js
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+const defaultInputProps = {
+  min: 0
+};
+
+function box_control_useUniqueId(idProp) {
+  const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(BoxControl, 'inspector-box-control');
+  return idProp || instanceId;
+}
+
+function BoxControl(_ref) {
+  let {
+    id: idProp,
+    inputProps = defaultInputProps,
+    onChange = external_lodash_namespaceObject.noop,
+    onChangeShowVisualizer = external_lodash_namespaceObject.noop,
+    label = (0,external_wp_i18n_namespaceObject.__)('Box Control'),
+    values: valuesProp,
+    units,
+    sides,
+    splitOnAxis = false,
+    allowReset = true,
+    resetValues = DEFAULT_VALUES
+  } = _ref;
+  const [values, setValues] = use_controlled_state(valuesProp, {
+    fallback: DEFAULT_VALUES
+  });
+  const inputValues = values || DEFAULT_VALUES;
+  const hasInitialValue = isValuesDefined(valuesProp);
+  const hasOneSide = (sides === null || sides === void 0 ? void 0 : sides.length) === 1;
+  const [isDirty, setIsDirty] = (0,external_wp_element_namespaceObject.useState)(hasInitialValue);
+  const [isLinked, setIsLinked] = (0,external_wp_element_namespaceObject.useState)(!hasInitialValue || !isValuesMixed(inputValues) || hasOneSide);
+  const [side, setSide] = (0,external_wp_element_namespaceObject.useState)(getInitialSide(isLinked, splitOnAxis)); // Tracking selected units via internal state allows filtering of CSS unit
+  // only values from being saved while maintaining preexisting unit selection
+  // behaviour. Filtering CSS only values prevents invalid style values.
+
+  const [selectedUnits, setSelectedUnits] = (0,external_wp_element_namespaceObject.useState)({
+    top: parseQuantityAndUnitFromRawValue(valuesProp === null || valuesProp === void 0 ? void 0 : valuesProp.top)[1],
+    right: parseQuantityAndUnitFromRawValue(valuesProp === null || valuesProp === void 0 ? void 0 : valuesProp.right)[1],
+    bottom: parseQuantityAndUnitFromRawValue(valuesProp === null || valuesProp === void 0 ? void 0 : valuesProp.bottom)[1],
+    left: parseQuantityAndUnitFromRawValue(valuesProp === null || valuesProp === void 0 ? void 0 : valuesProp.left)[1]
+  });
+  const id = box_control_useUniqueId(idProp);
+  const headingId = `${id}-heading`;
+
+  const toggleLinked = () => {
+    setIsLinked(!isLinked);
+    setSide(getInitialSide(!isLinked, splitOnAxis));
+  };
+
+  const handleOnFocus = (event, _ref2) => {
+    let {
+      side: nextSide
+    } = _ref2;
+    setSide(nextSide);
+  };
+
+  const handleOnChange = nextValues => {
+    onChange(nextValues);
+    setValues(nextValues);
+    setIsDirty(true);
+  };
+
+  const handleOnHoverOn = function () {
+    let next = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+    onChangeShowVisualizer({ ...DEFAULT_VISUALIZER_VALUES,
+      ...next
+    });
+  };
+
+  const handleOnHoverOff = function () {
+    let next = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+    onChangeShowVisualizer({ ...DEFAULT_VISUALIZER_VALUES,
+      ...next
+    });
+  };
+
+  const handleOnReset = () => {
+    onChange(resetValues);
+    setValues(resetValues);
+    setSelectedUnits(resetValues);
+    setIsDirty(false);
+  };
+
+  const inputControlProps = { ...inputProps,
+    onChange: handleOnChange,
+    onFocus: handleOnFocus,
+    onHoverOn: handleOnHoverOn,
+    onHoverOff: handleOnHoverOff,
+    isLinked,
+    units,
+    selectedUnits,
+    setSelectedUnits,
+    sides,
+    values: inputValues
+  };
+  return (0,external_wp_element_namespaceObject.createElement)(box_control_styles_Root, {
+    id: id,
+    role: "region",
+    "aria-labelledby": headingId
+  }, (0,external_wp_element_namespaceObject.createElement)(Header, {
+    className: "component-box-control__header"
+  }, (0,external_wp_element_namespaceObject.createElement)(flex_item_component, null, (0,external_wp_element_namespaceObject.createElement)(text_component, {
+    id: headingId,
+    className: "component-box-control__label"
+  }, label)), allowReset && (0,external_wp_element_namespaceObject.createElement)(flex_item_component, null, (0,external_wp_element_namespaceObject.createElement)(build_module_button, {
+    className: "component-box-control__reset-button",
+    isSecondary: true,
+    isSmall: true,
+    onClick: handleOnReset,
+    disabled: !isDirty
+  }, (0,external_wp_i18n_namespaceObject.__)('Reset')))), (0,external_wp_element_namespaceObject.createElement)(HeaderControlWrapper, {
+    className: "component-box-control__header-control-wrapper"
+  }, (0,external_wp_element_namespaceObject.createElement)(flex_item_component, null, (0,external_wp_element_namespaceObject.createElement)(BoxControlIcon, {
+    side: side,
+    sides: sides
+  })), isLinked && (0,external_wp_element_namespaceObject.createElement)(flex_block_component, null, (0,external_wp_element_namespaceObject.createElement)(AllInputControl, extends_extends({
+    "aria-label": label
+  }, inputControlProps))), !isLinked && splitOnAxis && (0,external_wp_element_namespaceObject.createElement)(flex_block_component, null, (0,external_wp_element_namespaceObject.createElement)(AxialInputControls, inputControlProps)), !hasOneSide && (0,external_wp_element_namespaceObject.createElement)(flex_item_component, null, (0,external_wp_element_namespaceObject.createElement)(LinkedButton, {
+    onClick: toggleLinked,
+    isLinked: isLinked
+  }))), !isLinked && !splitOnAxis && (0,external_wp_element_namespaceObject.createElement)(BoxInputControls, inputControlProps));
+}
+BoxControl.__Visualizer = BoxControlVisualizer;
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/button-group/index.js
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+function ButtonGroup(_ref, ref) {
+  let {
+    className,
+    ...props
+  } = _ref;
+  const classes = classnames_default()('components-button-group', className);
+  return (0,external_wp_element_namespaceObject.createElement)("div", extends_extends({
+    ref: ref,
+    role: "group",
+    className: classes
+  }, props));
+}
+
+/* harmony default export */ var button_group = ((0,external_wp_element_namespaceObject.forwardRef)(ButtonGroup));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/elevation/styles.js
+function elevation_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
+
+/**
+ * External dependencies
+ */
+
+const Elevation =  true ? {
+  name: "12ip69d",
+  styles: "background:transparent;display:block;margin:0!important;pointer-events:none;position:absolute;will-change:box-shadow"
+} : 0;
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/elevation/hook.js
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+/**
+ * @param {number} value
+ * @return {string} The box shadow value.
+ */
+
+function getBoxShadow(value) {
+  const boxShadowColor = `rgba(0 ,0, 0, ${value / 20})`;
+  const boxShadow = `0 ${value}px ${value * 2}px 0
+	${boxShadowColor}`;
+  return boxShadow;
+}
+/**
+ * @param {import('../ui/context').WordPressComponentProps<import('./types').Props, 'div'>} props
+ */
+
+function useElevation(props) {
+  const {
+    active,
+    borderRadius = 'inherit',
+    className,
+    focus,
+    hover,
+    isInteractive = false,
+    offset = 0,
+    value = 0,
+    ...otherProps
+  } = useContextSystem(props, 'Elevation');
+  const cx = useCx();
+  const classes = (0,external_wp_element_namespaceObject.useMemo)(() => {
+    /** @type {number | undefined} */
+    let hoverValue = !(0,external_lodash_namespaceObject.isNil)(hover) ? hover : value * 2;
+    /** @type {number | undefined} */
+
+    let activeValue = !(0,external_lodash_namespaceObject.isNil)(active) ? active : value / 2;
+
+    if (!isInteractive) {
+      hoverValue = !(0,external_lodash_namespaceObject.isNil)(hover) ? hover : undefined;
+      activeValue = !(0,external_lodash_namespaceObject.isNil)(active) ? active : undefined;
+    }
+
+    const transition = `box-shadow ${config_values.transitionDuration} ${config_values.transitionTimingFunction}`;
+    const sx = {};
+    sx.Base = /*#__PURE__*/emotion_react_browser_esm_css({
+      borderRadius,
+      bottom: offset,
+      boxShadow: getBoxShadow(value),
+      opacity: config_values.elevationIntensity,
+      left: offset,
+      right: offset,
+      top: offset,
+      transition
+    }, reduceMotion('transition'),  true ? "" : 0,  true ? "" : 0);
+
+    if (!(0,external_lodash_namespaceObject.isNil)(hoverValue)) {
+      sx.hover = /*#__PURE__*/emotion_react_browser_esm_css("*:hover>&{box-shadow:", getBoxShadow(hoverValue), ";}" + ( true ? "" : 0),  true ? "" : 0);
+    }
+
+    if (!(0,external_lodash_namespaceObject.isNil)(activeValue)) {
+      sx.active = /*#__PURE__*/emotion_react_browser_esm_css("*:active>&{box-shadow:", getBoxShadow(activeValue), ";}" + ( true ? "" : 0),  true ? "" : 0);
+    }
+
+    if (!(0,external_lodash_namespaceObject.isNil)(focus)) {
+      sx.focus = /*#__PURE__*/emotion_react_browser_esm_css("*:focus>&{box-shadow:", getBoxShadow(focus), ";}" + ( true ? "" : 0),  true ? "" : 0);
+    }
+
+    return cx(Elevation, sx.Base, sx.hover && sx.hover, sx.focus && sx.focus, sx.active && sx.active, className);
+  }, [active, borderRadius, className, cx, focus, hover, isInteractive, offset, value]);
+  return { ...otherProps,
+    className: classes,
+    'aria-hidden': true
+  };
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/elevation/component.js
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+/**
+ * @param {import('../ui/context').WordPressComponentProps<import('./types').Props, 'div'>} props
+ * @param {import('react').ForwardedRef<any>}                                               forwardedRef
+ */
+
+function component_Elevation(props, forwardedRef) {
+  const elevationProps = useElevation(props);
+  return (0,external_wp_element_namespaceObject.createElement)(component, extends_extends({}, elevationProps, {
+    ref: forwardedRef
+  }));
+}
+/**
+ * `Elevation` is a core component that renders shadow, using the library's shadow system.
+ *
+ * The shadow effect is generated using the `value` prop.
+ *
+ * @example
+ * ```jsx
+ * import {
+ *	__experimentalElevation as Elevation,
+ *	__experimentalSurface as Surface,
+ *	__experimentalText as Text,
+ * } from '@wordpress/components';
+ *
+ * function Example() {
+ * 	return (
+ * 		<Surface>
+ * 			<Text>Code is Poetry</Text>
+ * 			<Elevation value={ 5 } />
+ * 		</Surface>
+ * 	);
+ * }
+ * ```
+ */
+
+
+const ConnectedElevation = contextConnect(component_Elevation, 'Elevation');
+/* harmony default export */ var elevation_component = (ConnectedElevation);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/card/styles.js
+function card_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+ // Since the border for `Card` is rendered via the `box-shadow` property
+// (as opposed to the `border` property), the value of the border radius needs
+// to be adjusted by removing 1px (this is because the `box-shadow` renders
+// as an "outer radius").
+
+const adjustedBorderRadius = `calc(${config_values.cardBorderRadius} - 1px)`;
+const Card = /*#__PURE__*/emotion_react_browser_esm_css("box-shadow:0 0 0 1px ", config_values.surfaceBorderColor, ";outline:none;" + ( true ? "" : 0),  true ? "" : 0);
+const styles_Header =  true ? {
+  name: "1showjb",
+  styles: "border-bottom:1px solid;box-sizing:border-box;&:last-child{border-bottom:none;}"
+} : 0;
+const Footer =  true ? {
+  name: "14n5oej",
+  styles: "border-top:1px solid;box-sizing:border-box;&:first-of-type{border-top:none;}"
+} : 0;
+const Content =  true ? {
+  name: "13udsys",
+  styles: "height:100%"
+} : 0;
+const Body =  true ? {
+  name: "6ywzd",
+  styles: "box-sizing:border-box;height:auto;max-height:100%"
+} : 0;
+const Media =  true ? {
+  name: "dq805e",
+  styles: "box-sizing:border-box;overflow:hidden;&>img,&>iframe{display:block;height:auto;max-width:100%;width:100%;}"
+} : 0;
+const Divider =  true ? {
+  name: "c990dr",
+  styles: "box-sizing:border-box;display:block;width:100%"
+} : 0;
+const borderRadius = /*#__PURE__*/emotion_react_browser_esm_css("&:first-of-type{border-top-left-radius:", adjustedBorderRadius, ";border-top-right-radius:", adjustedBorderRadius, ";}&:last-of-type{border-bottom-left-radius:", adjustedBorderRadius, ";border-bottom-right-radius:", adjustedBorderRadius, ";}" + ( true ? "" : 0),  true ? "" : 0);
+const borderColor = /*#__PURE__*/emotion_react_browser_esm_css("border-color:", config_values.colorDivider, ";" + ( true ? "" : 0),  true ? "" : 0);
+const boxShadowless =  true ? {
+  name: "1t90u8d",
+  styles: "box-shadow:none"
+} : 0;
+const borderless =  true ? {
+  name: "1e1ncky",
+  styles: "border:none"
+} : 0;
+const rounded = /*#__PURE__*/emotion_react_browser_esm_css("border-radius:", adjustedBorderRadius, ";" + ( true ? "" : 0),  true ? "" : 0);
+const xSmallCardPadding = /*#__PURE__*/emotion_react_browser_esm_css("padding:", config_values.cardPaddingXSmall, ";" + ( true ? "" : 0),  true ? "" : 0);
+const cardPaddings = {
+  large: /*#__PURE__*/emotion_react_browser_esm_css("padding:", config_values.cardPaddingLarge, ";" + ( true ? "" : 0),  true ? "" : 0),
+  medium: /*#__PURE__*/emotion_react_browser_esm_css("padding:", config_values.cardPaddingMedium, ";" + ( true ? "" : 0),  true ? "" : 0),
+  small: /*#__PURE__*/emotion_react_browser_esm_css("padding:", config_values.cardPaddingSmall, ";" + ( true ? "" : 0),  true ? "" : 0),
+  xSmall: xSmallCardPadding,
+  // The `extraSmall` size is not officially documented, but the following styles
+  // are kept for legacy reasons to support older values of the `size` prop.
+  extraSmall: xSmallCardPadding
+};
+const shady = /*#__PURE__*/emotion_react_browser_esm_css("background-color:", COLORS.lightGray[200], ";" + ( true ? "" : 0),  true ? "" : 0);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/surface/styles.js
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+const Surface = /*#__PURE__*/emotion_react_browser_esm_css("background-color:", config_values.surfaceColor, ";color:", COLORS.darkGray.primary, ";position:relative;" + ( true ? "" : 0),  true ? "" : 0);
+const background = /*#__PURE__*/emotion_react_browser_esm_css("background-color:", config_values.surfaceBackgroundColor, ";" + ( true ? "" : 0),  true ? "" : 0);
+/**
+ * @param {Object}  props
+ * @param {boolean} [props.borderBottom]
+ * @param {boolean} [props.borderLeft]
+ * @param {boolean} [props.borderRight]
+ * @param {boolean} [props.borderTop]
+ */
+
+function getBorders(_ref) {
+  let {
+    borderBottom,
+    borderLeft,
+    borderRight,
+    borderTop
+  } = _ref;
+  const borderStyle = `1px solid ${config_values.surfaceBorderColor}`;
+  return /*#__PURE__*/emotion_react_browser_esm_css({
+    borderBottom: borderBottom ? borderStyle : undefined,
+    borderLeft: borderLeft ? borderStyle : undefined,
+    borderRight: borderRight ? borderStyle : undefined,
+    borderTop: borderTop ? borderStyle : undefined
+  },  true ? "" : 0,  true ? "" : 0);
+}
+const primary = /*#__PURE__*/emotion_react_browser_esm_css( true ? "" : 0,  true ? "" : 0);
+const secondary = /*#__PURE__*/emotion_react_browser_esm_css("background:", config_values.surfaceBackgroundTintColor, ";" + ( true ? "" : 0),  true ? "" : 0);
+const tertiary = /*#__PURE__*/emotion_react_browser_esm_css("background:", config_values.surfaceBackgroundTertiaryColor, ";" + ( true ? "" : 0),  true ? "" : 0);
+/**
+ * @param {string} surfaceBackgroundSize
+ */
+
+const customBackgroundSize = surfaceBackgroundSize => [surfaceBackgroundSize, surfaceBackgroundSize].join(' ');
+/**
+ * @param {string} surfaceBackgroundSizeDotted
+ */
+
+
+const dottedBackground1 = surfaceBackgroundSizeDotted => ['90deg', [config_values.surfaceBackgroundColor, surfaceBackgroundSizeDotted].join(' '), 'transparent 1%'].join(',');
+/**
+ * @param {string} surfaceBackgroundSizeDotted
+ */
+
+
+const dottedBackground2 = surfaceBackgroundSizeDotted => [[config_values.surfaceBackgroundColor, surfaceBackgroundSizeDotted].join(' '), 'transparent 1%'].join(',');
+/**
+ * @param {string} surfaceBackgroundSizeDotted
+ */
+
+
+const dottedBackgroundCombined = surfaceBackgroundSizeDotted => [`linear-gradient( ${dottedBackground1(surfaceBackgroundSizeDotted)} ) center`, `linear-gradient( ${dottedBackground2(surfaceBackgroundSizeDotted)} ) center`, config_values.surfaceBorderBoldColor].join(',');
+/**
+ *
+ * @param {string} surfaceBackgroundSize
+ * @param {string} surfaceBackgroundSizeDotted
+ */
+
+
+const getDotted = (surfaceBackgroundSize, surfaceBackgroundSizeDotted) => /*#__PURE__*/emotion_react_browser_esm_css("background:", dottedBackgroundCombined(surfaceBackgroundSizeDotted), ";background-size:", customBackgroundSize(surfaceBackgroundSize), ";" + ( true ? "" : 0),  true ? "" : 0);
+const gridBackground1 = [`${config_values.surfaceBorderSubtleColor} 1px`, 'transparent 1px'].join(',');
+const gridBackground2 = ['90deg', `${config_values.surfaceBorderSubtleColor} 1px`, 'transparent 1px'].join(',');
+const gridBackgroundCombined = [`linear-gradient( ${gridBackground1} )`, `linear-gradient( ${gridBackground2} )`].join(',');
+/**
+ * @param {string} surfaceBackgroundSize
+ * @return {import('@emotion/react').SerializedStyles} CSS.
+ */
+
+const getGrid = surfaceBackgroundSize => {
+  return /*#__PURE__*/emotion_react_browser_esm_css("background:", config_values.surfaceBackgroundColor, ";background-image:", gridBackgroundCombined, ";background-size:", customBackgroundSize(surfaceBackgroundSize), ";" + ( true ? "" : 0),  true ? "" : 0);
+};
+/**
+ * @param {'dotted' | 'grid' | 'primary' | 'secondary' | 'tertiary'} variant
+ * @param {string}                                                   surfaceBackgroundSize
+ * @param {string}                                                   surfaceBackgroundSizeDotted
+ */
+
+const getVariant = (variant, surfaceBackgroundSize, surfaceBackgroundSizeDotted) => {
+  switch (variant) {
+    case 'dotted':
+      {
+        return getDotted(surfaceBackgroundSize, surfaceBackgroundSizeDotted);
+      }
+
+    case 'grid':
+      {
+        return getGrid(surfaceBackgroundSize);
+      }
+
+    case 'primary':
+      {
+        return primary;
+      }
+
+    case 'secondary':
+      {
+        return secondary;
+      }
+
+    case 'tertiary':
+      {
+        return tertiary;
+      }
+  }
+};
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/surface/hook.js
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+/**
+ * @param {import('../ui/context').WordPressComponentProps<import('./types').Props, 'div'>} props
+ */
+
+function useSurface(props) {
+  const {
+    backgroundSize = 12,
+    borderBottom = false,
+    borderLeft = false,
+    borderRight = false,
+    borderTop = false,
+    className,
+    variant = 'primary',
+    ...otherProps
+  } = useContextSystem(props, 'Surface');
+  const cx = useCx();
+  const classes = (0,external_wp_element_namespaceObject.useMemo)(() => {
+    const sx = {};
+    sx.borders = getBorders({
+      borderBottom,
+      borderLeft,
+      borderRight,
+      borderTop
+    });
+    return cx(Surface, sx.borders, getVariant(variant, `${backgroundSize}px`, `${backgroundSize - 1}px`), className);
+  }, [backgroundSize, borderBottom, borderLeft, borderRight, borderTop, className, cx, variant]);
+  return { ...otherProps,
+    className: classes
+  };
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/card/card/hook.js
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+/**
+ * @param {import('../../ui/context').WordPressComponentProps<import('../types').Props, 'div'>} props
+ */
+
+function card_hook_useDeprecatedProps(_ref) {
+  let {
+    elevation,
+    isElevated,
+    ...otherProps
+  } = _ref;
+
+  /**@type {import('../../ui/context').WordPressComponentProps<import('../types').Props, 'div'>} */
+  const propsToReturn = { ...otherProps
+  };
+  let computedElevation = elevation;
+
+  if (isElevated) {
+    var _computedElevation;
+
+    external_wp_deprecated_default()('Card isElevated prop', {
+      since: '5.9',
+      alternative: 'elevation'
+    });
+    (_computedElevation = computedElevation) !== null && _computedElevation !== void 0 ? _computedElevation : computedElevation = 2;
+  } // The `elevation` prop should only be passed when it's not `undefined`,
+  // otherwise it will override the value that gets derived from `useContextSystem`.
+
+
+  if (typeof computedElevation !== 'undefined') {
+    propsToReturn.elevation = computedElevation;
+  }
+
+  return propsToReturn;
+}
+/**
+ * @param {import('../../ui/context').WordPressComponentProps<import('../types').Props, 'div'>} props
+ */
+
+
+function useCard(props) {
+  const {
+    className,
+    elevation = 0,
+    isBorderless = false,
+    isRounded = true,
+    size = 'medium',
+    ...otherProps
+  } = useContextSystem(card_hook_useDeprecatedProps(props), 'Card');
+  const cx = useCx();
+  const classes = (0,external_wp_element_namespaceObject.useMemo)(() => {
+    return cx(Card, isBorderless && boxShadowless, isRounded && rounded, className);
+  }, [className, cx, isBorderless, isRounded]);
+  const surfaceProps = useSurface({ ...otherProps,
+    className: classes
+  });
+  return { ...surfaceProps,
+    elevation,
+    isBorderless,
+    isRounded,
+    size
+  };
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/card/card/component.js
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+
+
+/**
+ * @param {import('../../ui/context').WordPressComponentProps<import('../types').Props, 'div'>} props
+ * @param {import('react').ForwardedRef<any>}                                                   forwardedRef
+ */
+
+function component_Card(props, forwardedRef) {
+  const {
+    children,
+    elevation,
+    isBorderless,
+    isRounded,
+    size,
+    ...otherProps
+  } = useCard(props);
+  const elevationBorderRadius = isRounded ? config_values.cardBorderRadius : 0;
+  const cx = useCx();
+  const elevationClassName = (0,external_wp_element_namespaceObject.useMemo)(() => cx( /*#__PURE__*/emotion_react_browser_esm_css({
+    borderRadius: elevationBorderRadius
+  },  true ? "" : 0,  true ? "" : 0)), [cx, elevationBorderRadius]);
+  const contextProviderValue = (0,external_wp_element_namespaceObject.useMemo)(() => {
+    const contextProps = {
+      size,
+      isBorderless
+    };
+    return {
+      CardBody: contextProps,
+      CardHeader: contextProps,
+      CardFooter: contextProps
+    };
+  }, [isBorderless, size]);
+  return (0,external_wp_element_namespaceObject.createElement)(ContextSystemProvider, {
+    value: contextProviderValue
+  }, (0,external_wp_element_namespaceObject.createElement)(component, extends_extends({}, otherProps, {
+    ref: forwardedRef
+  }), (0,external_wp_element_namespaceObject.createElement)(component, {
+    className: cx(Content)
+  }, children), (0,external_wp_element_namespaceObject.createElement)(elevation_component, {
+    className: elevationClassName,
+    isInteractive: false,
+    value: elevation ? 1 : 0
+  }), (0,external_wp_element_namespaceObject.createElement)(elevation_component, {
+    className: elevationClassName,
+    isInteractive: false,
+    value: elevation
+  })));
+}
+/**
+ * `Card` provides a flexible and extensible content container.
+ * `Card` also provides a convenient set of sub-components such as `CardBody`,
+ * `CardHeader`, `CardFooter`, and more.
+ *
+ * @example
+ * ```jsx
+ * import {
+ *   Card,
+ *   CardHeader,
+ *   CardBody,
+ *   CardFooter,
+ *   Text,
+ *   Heading,
+ * } from `@wordpress/components`;
+ *
+ * function Example() {
+ *   return (
+ *     <Card>
+ *       <CardHeader>
+ *         <Heading size={ 4 }>Card Title</Heading>
+ *       </CardHeader>
+ *       <CardBody>
+ *         <Text>Card Content</Text>
+ *       </CardBody>
+ *       <CardFooter>
+ *         <Text>Card Footer</Text>
+ *       </CardFooter>
+ *     </Card>
+ *   );
+ * }
+ * ```
+ */
+
+
+const ConnectedCard = contextConnect(component_Card, 'Card');
+/* harmony default export */ var card_component = (ConnectedCard);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/scrollable/styles.js
+function scrollable_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+const scrollableScrollbar = /*#__PURE__*/emotion_react_browser_esm_css("@media only screen and ( min-device-width: 40em ){&::-webkit-scrollbar{height:12px;width:12px;}&::-webkit-scrollbar-track{background-color:transparent;}&::-webkit-scrollbar-track{background:", config_values.colorScrollbarTrack, ";border-radius:8px;}&::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:", config_values.colorScrollbarThumb, ";border:2px solid rgba( 0, 0, 0, 0 );border-radius:7px;}&:hover::-webkit-scrollbar-thumb{background-color:", config_values.colorScrollbarThumbHover, ";}}" + ( true ? "" : 0),  true ? "" : 0);
+const Scrollable =  true ? {
+  name: "13udsys",
+  styles: "height:100%"
+} : 0;
+const styles_Content =  true ? {
+  name: "bjn8wh",
+  styles: "position:relative"
+} : 0;
+const styles_smoothScroll =  true ? {
+  name: "7zq9w",
+  styles: "scroll-behavior:smooth"
+} : 0;
+const scrollX =  true ? {
+  name: "q33xhg",
+  styles: "overflow-x:auto;overflow-y:hidden"
+} : 0;
+const scrollY =  true ? {
+  name: "103x71s",
+  styles: "overflow-x:hidden;overflow-y:auto"
+} : 0;
+const scrollAuto =  true ? {
+  name: "umwchj",
+  styles: "overflow-y:auto"
+} : 0;
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/scrollable/hook.js
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+/* eslint-disable jsdoc/valid-types */
+
+/**
+ * @param {import('../ui/context').WordPressComponentProps<import('./types').Props, 'div'>} props
+ */
+
+/* eslint-enable jsdoc/valid-types */
+
+function useScrollable(props) {
+  const {
+    className,
+    scrollDirection = 'y',
+    smoothScroll = false,
+    ...otherProps
+  } = useContextSystem(props, 'Scrollable');
+  const cx = useCx();
+  const classes = (0,external_wp_element_namespaceObject.useMemo)(() => cx(Scrollable, scrollableScrollbar, smoothScroll && styles_smoothScroll, scrollDirection === 'x' && scrollX, scrollDirection === 'y' && scrollY, scrollDirection === 'auto' && scrollAuto, className), [className, cx, scrollDirection, smoothScroll]);
+  return { ...otherProps,
+    className: classes
+  };
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/scrollable/component.js
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+/**
+ * @param {import('../ui/context').WordPressComponentProps<import('./types').Props, 'div'>} props
+ * @param {import('react').ForwardedRef<any>}                                               forwardedRef
+ */
+
+function component_Scrollable(props, forwardedRef) {
+  const scrollableProps = useScrollable(props);
+  return (0,external_wp_element_namespaceObject.createElement)(component, extends_extends({}, scrollableProps, {
+    ref: forwardedRef
+  }));
+}
+/**
+ * `Scrollable` is a layout component that content in a scrollable container.
+ *
+ * @example
+ * ```jsx
+ * import { __experimentalScrollable as Scrollable } from `@wordpress/components`;
+ *
+ * function Example() {
+ * 	return (
+ * 		<Scrollable style={ { maxHeight: 200 } }>
+ * 			<div style={ { height: 500 } }>...</div>
+ * 		</Scrollable>
+ * 	);
+ * }
+ * ```
+ */
+
+
+const ConnectedScrollable = contextConnect(component_Scrollable, 'Scrollable');
+/* harmony default export */ var scrollable_component = (ConnectedScrollable);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/card/card-body/hook.js
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+/**
+ * @param {import('../../ui/context').WordPressComponentProps<import('../types').BodyProps, 'div'>} props
+ */
+
+function useCardBody(props) {
+  const {
+    className,
+    isScrollable = false,
+    isShady = false,
+    size = 'medium',
+    ...otherProps
+  } = useContextSystem(props, 'CardBody');
+  const cx = useCx();
+  const classes = (0,external_wp_element_namespaceObject.useMemo)(() => cx(Body, borderRadius, cardPaddings[size], isShady && shady, // This classname is added for legacy compatibility reasons.
+  'components-card__body', className), [className, cx, isShady, size]);
+  return { ...otherProps,
+    className: classes,
+    isScrollable
+  };
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/card/card-body/component.js
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+/**
+ * @param {import('../../ui/context').WordPressComponentProps<import('../types').BodyProps, 'div'>} props
+ * @param {import('react').ForwardedRef<any>}                                                       forwardedRef
+ */
+
+function CardBody(props, forwardedRef) {
+  const {
+    isScrollable,
+    ...otherProps
+  } = useCardBody(props);
+
+  if (isScrollable) {
+    return (0,external_wp_element_namespaceObject.createElement)(scrollable_component, extends_extends({}, otherProps, {
+      ref: forwardedRef
+    }));
+  }
+
+  return (0,external_wp_element_namespaceObject.createElement)(component, extends_extends({}, otherProps, {
+    ref: forwardedRef
+  }));
+}
+/**
+ * `CardBody` renders an optional content area for a `Card`.
+ * Multiple `CardBody` components can be used within `Card` if needed.
+ *
+ * @example
+ * ```jsx
+ * import { Card, CardBody } from `@wordpress/components`;
+ *
+ * <Card>
+ * 	<CardBody>
+ * 		...
+ * 	</CardBody>
+ * </Card>
+ * ```
+ */
+
+
+const ConnectedCardBody = contextConnect(CardBody, 'CardBody');
+/* harmony default export */ var card_body_component = (ConnectedCardBody);
+
+;// CONCATENATED MODULE: ./node_modules/reakit/es/Separator/Separator.js
+
+
+
+
+
+
+// Automatically generated
+var SEPARATOR_KEYS = ["orientation"];
+
+var useSeparator = createHook({
+  name: "Separator",
+  compose: useRole,
+  keys: SEPARATOR_KEYS,
+  useOptions: function useOptions(_ref) {
+    var _ref$orientation = _ref.orientation,
+        orientation = _ref$orientation === void 0 ? "horizontal" : _ref$orientation,
+        options = _objectWithoutPropertiesLoose(_ref, ["orientation"]);
+
+    return _objectSpread2({
+      orientation: orientation
+    }, options);
+  },
+  useProps: function useProps(options, htmlProps) {
+    return _objectSpread2({
+      role: "separator",
+      "aria-orientation": options.orientation
+    }, htmlProps);
+  }
+});
+var Separator = createComponent({
+  as: "hr",
+  memo: true,
+  useHook: useSeparator
+});
+
+
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/divider/styles.js
+
+
+function divider_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+const MARGIN_DIRECTIONS = {
+  vertical: {
+    start: 'marginLeft',
+    end: 'marginRight'
+  },
+  horizontal: {
+    start: 'marginTop',
+    end: 'marginBottom'
+  }
+}; // Renders the correct margins given the Divider's `orientation` and the writing direction.
+// When both the generic `margin` and the specific `marginStart|marginEnd` props are defined,
+// the latter will take priority.
+
+const renderMargin = _ref2 => {
+  let {
+    'aria-orientation': orientation = 'horizontal',
+    margin,
+    marginStart,
+    marginEnd
+  } = _ref2;
+  return /*#__PURE__*/emotion_react_browser_esm_css(rtl({
+    [MARGIN_DIRECTIONS[orientation].start]: space(marginStart !== null && marginStart !== void 0 ? marginStart : margin),
+    [MARGIN_DIRECTIONS[orientation].end]: space(marginEnd !== null && marginEnd !== void 0 ? marginEnd : margin)
+  })(),  true ? "" : 0,  true ? "" : 0);
+};
+
+var styles_ref =  true ? {
+  name: "1u4hpl4",
+  styles: "display:inline"
+} : 0;
+
+const renderDisplay = _ref3 => {
+  let {
+    'aria-orientation': orientation = 'horizontal'
+  } = _ref3;
+  return orientation === 'vertical' ? styles_ref : undefined;
+};
+
+const renderBorder = _ref4 => {
+  let {
+    'aria-orientation': orientation = 'horizontal'
+  } = _ref4;
+  return /*#__PURE__*/emotion_react_browser_esm_css({
+    [orientation === 'vertical' ? 'borderRight' : 'borderBottom']: '1px solid currentColor'
+  },  true ? "" : 0,  true ? "" : 0);
+};
+
+const renderSize = _ref5 => {
+  let {
+    'aria-orientation': orientation = 'horizontal'
+  } = _ref5;
+  return /*#__PURE__*/emotion_react_browser_esm_css({
+    height: orientation === 'vertical' ? 'auto' : 0,
+    width: orientation === 'vertical' ? 0 : 'auto'
+  },  true ? "" : 0,  true ? "" : 0);
+};
+
+const DividerView = emotion_styled_base_browser_esm("hr",  true ? {
+  target: "e19on6iw0"
+} : 0)("border:0;margin:0;", renderDisplay, " ", renderBorder, " ", renderSize, " ", renderMargin, ";" + ( true ? "" : 0));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/divider/component.js
+
+
+
+/**
+ * External dependencies
+ */
+// eslint-disable-next-line no-restricted-imports
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+function UnconnectedDivider(props, forwardedRef) {
+  const contextProps = useContextSystem(props, 'Divider');
+  return (0,external_wp_element_namespaceObject.createElement)(Separator, extends_extends({
+    as: DividerView
+  }, contextProps, {
+    ref: forwardedRef
+  }));
+}
+/**
+ * `Divider` is a layout component that separates groups of related content.
+ *
+ * @example
+ * ```js
+ * import {
+ * 		__experimentalDivider as Divider,
+ * 		__experimentalText as Text,
+ * 		__experimentalVStack as VStack,
+ * } from `@wordpress/components`;
+ *
+ * function Example() {
+ * 	return (
+ * 		<VStack spacing={4}>
+ * 			<Text>Some text here</Text>
+ * 			<Divider />
+ * 			<Text>Some more text here</Text>
+ * 		</VStack>
+ * 	);
+ * }
+ * ```
+ */
+
+
+const component_Divider = contextConnect(UnconnectedDivider, 'Divider');
+/* harmony default export */ var divider_component = (component_Divider);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/card/card-divider/hook.js
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+/**
+ * @param {import('../../ui/context').WordPressComponentProps<import('../../divider').DividerProps, 'hr', false>} props
+ */
+
+function useCardDivider(props) {
+  const {
+    className,
+    ...otherProps
+  } = useContextSystem(props, 'CardDivider');
+  const cx = useCx();
+  const classes = (0,external_wp_element_namespaceObject.useMemo)(() => cx(Divider, borderColor, // This classname is added for legacy compatibility reasons.
+  'components-card__divider', className), [className, cx]);
+  return { ...otherProps,
+    className: classes
+  };
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/card/card-divider/component.js
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+/**
+ * @param {import('../../ui/context').WordPressComponentProps<import('../../divider').DividerProps, 'hr', false>} props
+ * @param {import('react').ForwardedRef<any>}                                                                     forwardedRef
+ */
+
+function CardDivider(props, forwardedRef) {
+  const dividerProps = useCardDivider(props);
+  return (0,external_wp_element_namespaceObject.createElement)(divider_component, extends_extends({}, dividerProps, {
+    ref: forwardedRef
+  }));
+}
+/**
+ * `CardDivider` renders an optional divider within a `Card`.
+ * It is typically used to divide multiple `CardBody` components from each other.
+ *
+ * @example
+ * ```jsx
+ * import { Card, CardBody, CardDivider } from `@wordpress/components`;
+ *
+ * <Card>
+ *  <CardBody>...</CardBody>
+ *  <CardDivider />
+ *  <CardBody>...</CardBody>
+ * </Card>
+ * ```
+ */
+
+
+const ConnectedCardDivider = contextConnect(CardDivider, 'CardDivider');
+/* harmony default export */ var card_divider_component = (ConnectedCardDivider);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/card/card-footer/hook.js
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+/**
+ * @param {import('../../ui/context').WordPressComponentProps<import('../types').FooterProps, 'div'>} props
+ */
+
+function useCardFooter(props) {
+  const {
+    className,
+    justify,
+    isBorderless = false,
+    isShady = false,
+    size = 'medium',
+    ...otherProps
+  } = useContextSystem(props, 'CardFooter');
+  const cx = useCx();
+  const classes = (0,external_wp_element_namespaceObject.useMemo)(() => cx(Footer, borderRadius, borderColor, cardPaddings[size], isBorderless && borderless, isShady && shady, // This classname is added for legacy compatibility reasons.
+  'components-card__footer', className), [className, cx, isBorderless, isShady, size]);
+  return { ...otherProps,
+    className: classes,
+    justify
+  };
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/card/card-footer/component.js
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+/**
+ * @param {import('../../ui/context').WordPressComponentProps<import('../types').FooterProps, 'div'>} props
+ * @param {import('react').ForwardedRef<any>}                                                         forwardedRef
+ */
+
+function CardFooter(props, forwardedRef) {
+  const footerProps = useCardFooter(props);
+  return (0,external_wp_element_namespaceObject.createElement)(flex_component, extends_extends({}, footerProps, {
+    ref: forwardedRef
+  }));
+}
+/**
+ * `CardFooter` renders an optional footer within a `Card`.
+ *
+ * @example
+ * ```jsx
+ * import { Card, CardBody, CardFooter } from `@wordpress/components`;
+ *
+ * <Card>
+ * 	<CardBody>...</CardBody>
+ * 	<CardFooter>...</CardFooter>
+ * </Card>
+ * ```
+ */
+
+
+const ConnectedCardFooter = contextConnect(CardFooter, 'CardFooter');
+/* harmony default export */ var card_footer_component = (ConnectedCardFooter);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/card/card-header/hook.js
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+/**
+ * @param {import('../../ui/context').WordPressComponentProps<import('../types').HeaderProps, 'div'>} props
+ */
+
+function useCardHeader(props) {
+  const {
+    className,
+    isBorderless = false,
+    isShady = false,
+    size = 'medium',
+    ...otherProps
+  } = useContextSystem(props, 'CardHeader');
+  const cx = useCx();
+  const classes = (0,external_wp_element_namespaceObject.useMemo)(() => cx(styles_Header, borderRadius, borderColor, cardPaddings[size], isBorderless && borderless, isShady && shady, // This classname is added for legacy compatibility reasons.
+  'components-card__header', className), [className, cx, isBorderless, isShady, size]);
+  return { ...otherProps,
+    className: classes
+  };
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/card/card-header/component.js
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+/**
+ * @param {import('../../ui/context').WordPressComponentProps<import('../types').HeaderProps, 'div'>} props
+ * @param {import('react').ForwardedRef<any>}                                                         forwardedRef
+ */
+
+function CardHeader(props, forwardedRef) {
+  const headerProps = useCardHeader(props);
+  return (0,external_wp_element_namespaceObject.createElement)(flex_component, extends_extends({}, headerProps, {
+    ref: forwardedRef
+  }));
+}
+/**
+ * `CardHeader` renders an optional header within a `Card`.
+ *
+ * @example
+ * ```jsx
+ * import { Card, CardBody, CardHeader } from `@wordpress/components`;
+ *
+ * <Card>
+ * 	<CardHeader>...</CardHeader>
+ * 	<CardBody>...</CardBody>
+ * </Card>
+ * ```
+ */
+
+
+const ConnectedCardHeader = contextConnect(CardHeader, 'CardHeader');
+/* harmony default export */ var card_header_component = (ConnectedCardHeader);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/card/card-media/hook.js
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+/**
+ * @param {import('../../ui/context').WordPressComponentProps<{ children: import('react').ReactNode }, 'div'>} props
+ */
+
+function useCardMedia(props) {
+  const {
+    className,
+    ...otherProps
+  } = useContextSystem(props, 'CardMedia');
+  const cx = useCx();
+  const classes = (0,external_wp_element_namespaceObject.useMemo)(() => cx(Media, borderRadius, // This classname is added for legacy compatibility reasons.
+  'components-card__media', className), [className, cx]);
+  return { ...otherProps,
+    className: classes
+  };
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/card/card-media/component.js
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+/**
+ * @param {import('../../ui/context').WordPressComponentProps<{ children: import('react').ReactNode }, 'div'>} props
+ * @param {import('react').ForwardedRef<any>}                                                                  forwardedRef
+ */
+
+function CardMedia(props, forwardedRef) {
+  const cardMediaProps = useCardMedia(props);
+  return (0,external_wp_element_namespaceObject.createElement)(component, extends_extends({}, cardMediaProps, {
+    ref: forwardedRef
+  }));
+}
+/**
+ * `CardMedia` provides a container for media elements within a `Card`.
+ *
+ * @example
+ * ```jsx
+ * import { Card, CardBody, CardMedia } from '@wordpress/components';
+ *
+ * const Example = () => (
+ *  <Card>
+ *	  <CardMedia>
+ *		  <img src="..." />
+ *    </CardMedia>
+ *    <CardBody>...</CardBody>
+ *  </Card>
+ * );
+ * ```
+ */
+
+
+const ConnectedCardMedia = contextConnect(CardMedia, 'CardMedia');
+/* harmony default export */ var card_media_component = (ConnectedCardMedia);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/reset.js
+
+
+/**
+ * WordPress dependencies
+ */
+
+const reset_reset = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
+  xmlns: "http://www.w3.org/2000/svg",
+  viewBox: "0 0 24 24"
+}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
+  d: "M7 11.5h10V13H7z"
+}));
+/* harmony default export */ var library_reset = (reset_reset);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/checkbox-control/index.js
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+function CheckboxControl(_ref) {
+  let {
+    label,
+    className,
+    heading,
+    checked,
+    indeterminate,
+    help,
+    onChange,
+    ...props
+  } = _ref;
+
+  if (heading) {
+    external_wp_deprecated_default()('`heading` prop in `CheckboxControl`', {
+      alternative: 'a separate element to implement a heading',
+      since: '5.8'
+    });
+  }
+
+  const [showCheckedIcon, setShowCheckedIcon] = (0,external_wp_element_namespaceObject.useState)(false);
+  const [showIndeterminateIcon, setShowIndeterminateIcon] = (0,external_wp_element_namespaceObject.useState)(false); // Run the following callback everytime the `ref` (and the additional
+  // dependencies) change.
+
+  const ref = (0,external_wp_compose_namespaceObject.useRefEffect)(node => {
+    if (!node) {
+      return;
+    } // It cannot be set using an HTML attribute.
+
+
+    node.indeterminate = !!indeterminate;
+    setShowCheckedIcon(node.matches(':checked'));
+    setShowIndeterminateIcon(node.matches(':indeterminate'));
+  }, [checked, indeterminate]);
+  const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(CheckboxControl);
+  const id = `inspector-checkbox-control-${instanceId}`;
+
+  const onChangeValue = event => onChange(event.target.checked);
+
+  return (0,external_wp_element_namespaceObject.createElement)(base_control, {
+    label: heading,
+    id: id,
+    help: help,
+    className: classnames_default()('components-checkbox-control', className)
+  }, (0,external_wp_element_namespaceObject.createElement)("span", {
+    className: "components-checkbox-control__input-container"
+  }, (0,external_wp_element_namespaceObject.createElement)("input", extends_extends({
+    ref: ref,
+    id: id,
+    className: "components-checkbox-control__input",
+    type: "checkbox",
+    value: "1",
+    onChange: onChangeValue,
+    checked: checked,
+    "aria-describedby": !!help ? id + '__help' : undefined
+  }, props)), showIndeterminateIcon ? (0,external_wp_element_namespaceObject.createElement)(icons_build_module_icon, {
+    icon: library_reset,
+    className: "components-checkbox-control__indeterminate",
+    role: "presentation"
+  }) : null, showCheckedIcon ? (0,external_wp_element_namespaceObject.createElement)(icons_build_module_icon, {
+    icon: library_check,
+    className: "components-checkbox-control__checked",
+    role: "presentation"
+  }) : null), (0,external_wp_element_namespaceObject.createElement)("label", {
+    className: "components-checkbox-control__label",
+    htmlFor: id
+  }, label));
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/clipboard-button/index.js
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+const TIMEOUT = 4000;
+function ClipboardButton(_ref) {
+  let {
+    className,
+    children,
+    onCopy,
+    onFinishCopy,
+    text,
+    ...buttonProps
+  } = _ref;
+  external_wp_deprecated_default()('wp.components.ClipboardButton', {
+    since: '5.8',
+    alternative: 'wp.compose.useCopyToClipboard'
+  });
+  const timeoutId = (0,external_wp_element_namespaceObject.useRef)();
+  const ref = (0,external_wp_compose_namespaceObject.useCopyToClipboard)(text, () => {
+    onCopy();
+    clearTimeout(timeoutId.current);
+
+    if (onFinishCopy) {
+      timeoutId.current = setTimeout(() => onFinishCopy(), TIMEOUT);
+    }
+  });
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    clearTimeout(timeoutId.current);
+  }, []);
+  const classes = classnames_default()('components-clipboard-button', className); // Workaround for inconsistent behavior in Safari, where <textarea> is not
+  // the document.activeElement at the moment when the copy event fires.
+  // This causes documentHasSelection() in the copy-handler component to
+  // mistakenly override the ClipboardButton, and copy a serialized string
+  // of the current block instead.
+
+  const focusOnCopyEventTarget = event => {
+    event.target.focus();
+  };
+
+  return (0,external_wp_element_namespaceObject.createElement)(build_module_button, extends_extends({}, buttonProps, {
+    className: classes,
+    ref: ref,
+    onCopy: focusOnCopyEventTarget
+  }), children);
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/plus.js
+
+
+/**
+ * WordPress dependencies
+ */
+
+const plus = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
+  xmlns: "http://www.w3.org/2000/svg",
+  viewBox: "0 0 24 24"
+}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
+  d: "M18 11.2h-5.2V6h-1.6v5.2H6v1.6h5.2V18h1.6v-5.2H18z"
+}));
+/* harmony default export */ var library_plus = (plus);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/more-vertical.js
+
+
+/**
+ * WordPress dependencies
+ */
+
+const moreVertical = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
+  xmlns: "http://www.w3.org/2000/svg",
+  viewBox: "0 0 24 24"
+}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
+  d: "M13 19h-2v-2h2v2zm0-6h-2v-2h2v2zm0-6h-2V5h2v2z"
+}));
+/* harmony default export */ var more_vertical = (moreVertical);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/item-group/styles.js
+function item_group_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+const unstyledButton = /*#__PURE__*/emotion_react_browser_esm_css("appearance:none;border:1px solid transparent;cursor:pointer;background:none;text-align:left;&:hover{color:", COLORS.admin.theme, ";}&:focus{background-color:transparent;color:", COLORS.admin.theme, ";border-color:", COLORS.admin.theme, ";outline:3px solid transparent;}" + ( true ? "" : 0),  true ? "" : 0);
+const itemWrapper =  true ? {
+  name: "1bcj5ek",
+  styles: "width:100%;display:block"
+} : 0;
+const item =  true ? {
+  name: "a5hqs6",
+  styles: "width:100%;display:block;margin:0;color:inherit"
+} : 0;
+const bordered = /*#__PURE__*/emotion_react_browser_esm_css("border:1px solid ", config_values.surfaceBorderColor, ";" + ( true ? "" : 0),  true ? "" : 0);
+const separated = /*#__PURE__*/emotion_react_browser_esm_css(">*:not( marquee )>*{border-bottom:1px solid ", config_values.surfaceBorderColor, ";}>*:last-of-type>*:not( :focus ){border-bottom-color:transparent;}" + ( true ? "" : 0),  true ? "" : 0);
+const styles_borderRadius = config_values.controlBorderRadius;
+const styles_spacedAround = /*#__PURE__*/emotion_react_browser_esm_css("border-radius:", styles_borderRadius, ";" + ( true ? "" : 0),  true ? "" : 0);
+const styles_rounded = /*#__PURE__*/emotion_react_browser_esm_css("border-radius:", styles_borderRadius, ";>*:first-of-type>*{border-top-left-radius:", styles_borderRadius, ";border-top-right-radius:", styles_borderRadius, ";}>*:last-of-type>*{border-bottom-left-radius:", styles_borderRadius, ";border-bottom-right-radius:", styles_borderRadius, ";}" + ( true ? "" : 0),  true ? "" : 0);
+const baseFontHeight = `calc(${config_values.fontSize} * ${config_values.fontLineHeightBase})`;
+/*
+ * Math:
+ * - Use the desired height as the base value
+ * - Subtract the computed height of (default) text
+ * - Subtract the effects of border
+ * - Divide the calculated number by 2, in order to get an individual top/bottom padding
+ */
+
+const paddingY = `calc((${config_values.controlHeight} - ${baseFontHeight} - 2px) / 2)`;
+const paddingYSmall = `calc((${config_values.controlHeightSmall} - ${baseFontHeight} - 2px) / 2)`;
+const paddingYLarge = `calc((${config_values.controlHeightLarge} - ${baseFontHeight} - 2px) / 2)`;
+const itemSizes = {
+  small: /*#__PURE__*/emotion_react_browser_esm_css("padding:", paddingYSmall, " ", config_values.controlPaddingXSmall, ";" + ( true ? "" : 0),  true ? "" : 0),
+  medium: /*#__PURE__*/emotion_react_browser_esm_css("padding:", paddingY, " ", config_values.controlPaddingX, ";" + ( true ? "" : 0),  true ? "" : 0),
+  large: /*#__PURE__*/emotion_react_browser_esm_css("padding:", paddingYLarge, " ", config_values.controlPaddingXLarge, ";" + ( true ? "" : 0),  true ? "" : 0)
+};
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/item-group/item-group/hook.js
+/**
+ * Internal dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+function useItemGroup(props) {
+  const {
+    className,
+    isBordered = false,
+    isRounded = true,
+    isSeparated = false,
+    role = 'list',
+    ...otherProps
+  } = useContextSystem(props, 'ItemGroup');
+  const cx = useCx();
+  const classes = cx(isBordered && bordered, isSeparated && separated, isRounded && styles_rounded, className);
+  return {
+    isBordered,
+    className: classes,
+    role,
+    isSeparated,
+    ...otherProps
+  };
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/item-group/context.js
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+const ItemGroupContext = (0,external_wp_element_namespaceObject.createContext)({
+  size: 'medium'
+});
+const useItemGroupContext = () => (0,external_wp_element_namespaceObject.useContext)(ItemGroupContext);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/item-group/item-group/component.js
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+function ItemGroup(props, forwardedRef) {
+  const {
+    isBordered,
+    isSeparated,
+    size: sizeProp,
+    ...otherProps
+  } = useItemGroup(props);
+  const {
+    size: contextSize
+  } = useItemGroupContext();
+  const spacedAround = !isBordered && !isSeparated;
+  const size = sizeProp || contextSize;
+  const contextValue = {
+    spacedAround,
+    size
+  };
+  return (0,external_wp_element_namespaceObject.createElement)(ItemGroupContext.Provider, {
+    value: contextValue
+  }, (0,external_wp_element_namespaceObject.createElement)(component, extends_extends({}, otherProps, {
+    ref: forwardedRef
+  })));
+}
+
+/* harmony default export */ var item_group_component = (contextConnect(ItemGroup, 'ItemGroup'));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/custom-gradient-bar/constants.js
+const GRADIENT_MARKERS_WIDTH = 16;
+const INSERT_POINT_WIDTH = 16;
+const MINIMUM_ABSOLUTE_LEFT_POSITION = 5;
+const MINIMUM_DISTANCE_BETWEEN_INSERTER_AND_POINT = 10;
+const MINIMUM_DISTANCE_BETWEEN_POINTS = 0;
+const MINIMUM_SIGNIFICANT_MOVE = 5;
+const KEYBOARD_CONTROL_POINT_VARIATION = MINIMUM_DISTANCE_BETWEEN_INSERTER_AND_POINT;
+const MINIMUM_DISTANCE_BETWEEN_INSERTER_AND_MARKER = (INSERT_POINT_WIDTH + GRADIENT_MARKERS_WIDTH) / 2;
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/custom-gradient-bar/utils.js
+/**
+ * Internal dependencies
+ */
+
+/**
+ * Control point for the gradient bar.
+ *
+ * @typedef {Object} ControlPoint
+ * @property {string} color    Color of the control point.
+ * @property {number} position Integer position of the control point as a percentage.
+ */
+
+/**
+ * Color as parsed from the gradient by gradient-parser.
+ *
+ * @typedef {Object} Color
+ * @property {string} r   Red component.
+ * @property {string} g   Green component.
+ * @property {string} b   Green component.
+ * @property {string} [a] Optional alpha component.
+ */
+
+/**
+ * Clamps a number between 0 and 100.
+ *
+ * @param {number} value Value to clamp.
+ *
+ * @return {number} Value clamped between 0 and 100.
+ */
+
+function clampPercent(value) {
+  return Math.max(0, Math.min(100, value));
+}
+/**
+ * Check if a control point is overlapping with another.
+ *
+ * @param {ControlPoint[]} value        Array of control points.
+ * @param {number}         initialIndex Index of the position to test.
+ * @param {number}         newPosition  New position of the control point.
+ * @param {number}         minDistance  Distance considered to be overlapping.
+ *
+ * @return {boolean} True if the point is overlapping.
+ */
+
+function isOverlapping(value, initialIndex, newPosition) {
+  let minDistance = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : MINIMUM_DISTANCE_BETWEEN_POINTS;
+  const initialPosition = value[initialIndex].position;
+  const minPosition = Math.min(initialPosition, newPosition);
+  const maxPosition = Math.max(initialPosition, newPosition);
+  return value.some((_ref, index) => {
+    let {
+      position
+    } = _ref;
+    return index !== initialIndex && (Math.abs(position - newPosition) < minDistance || minPosition < position && position < maxPosition);
+  });
+}
+/**
+ * Adds a control point from an array and returns the new array.
+ *
+ * @param {ControlPoint[]} points   Array of control points.
+ * @param {number}         position Position to insert the new point.
+ * @param {Color}          color    Color to update the control point at index.
+ *
+ * @return {ControlPoint[]} New array of control points.
+ */
+
+function addControlPoint(points, position, color) {
+  const nextIndex = points.findIndex(point => point.position > position);
+  const newPoint = {
+    color,
+    position
+  };
+  const newPoints = points.slice();
+  newPoints.splice(nextIndex - 1, 0, newPoint);
+  return newPoints;
+}
+/**
+ * Removes a control point from an array and returns the new array.
+ *
+ * @param {ControlPoint[]} points Array of control points.
+ * @param {number}         index  Index to remove.
+ *
+ * @return {ControlPoint[]} New array of control points.
+ */
+
+function removeControlPoint(points, index) {
+  return points.filter((point, pointIndex) => {
+    return pointIndex !== index;
+  });
+}
+/**
+ * Updates a control point from an array and returns the new array.
+ *
+ * @param {ControlPoint[]} points   Array of control points.
+ * @param {number}         index    Index to update.
+ * @param {ControlPoint[]} newPoint New control point to replace the index.
+ *
+ * @return {ControlPoint[]} New array of control points.
+ */
+
+function updateControlPoint(points, index, newPoint) {
+  const newValue = points.slice();
+  newValue[index] = newPoint;
+  return newValue;
+}
+/**
+ * Updates the position of a control point from an array and returns the new array.
+ *
+ * @param {ControlPoint[]} points      Array of control points.
+ * @param {number}         index       Index to update.
+ * @param {number}         newPosition Position to move the control point at index.
+ *
+ * @return {ControlPoint[]} New array of control points.
+ */
+
+function updateControlPointPosition(points, index, newPosition) {
+  if (isOverlapping(points, index, newPosition)) {
+    return points;
+  }
+
+  const newPoint = { ...points[index],
+    position: newPosition
+  };
+  return updateControlPoint(points, index, newPoint);
+}
+/**
+ * Updates the position of a control point from an array and returns the new array.
+ *
+ * @param {ControlPoint[]} points   Array of control points.
+ * @param {number}         index    Index to update.
+ * @param {Color}          newColor Color to update the control point at index.
+ *
+ * @return {ControlPoint[]} New array of control points.
+ */
+
+function updateControlPointColor(points, index, newColor) {
+  const newPoint = { ...points[index],
+    color: newColor
+  };
+  return updateControlPoint(points, index, newPoint);
+}
+/**
+ * Updates the position of a control point from an array and returns the new array.
+ *
+ * @param {ControlPoint[]} points   Array of control points.
+ * @param {number}         position Position of the color stop.
+ * @param {string}         newColor Color to update the control point at index.
+ *
+ * @return {ControlPoint[]} New array of control points.
+ */
+
+function updateControlPointColorByPosition(points, position, newColor) {
+  const index = points.findIndex(point => point.position === position);
+  return updateControlPointColor(points, index, newColor);
+}
+/**
+ * Gets the horizontal coordinate when dragging a control point with the mouse.
+ *
+ * @param {number}  mouseXCoordinate       Horizontal coordinate of the mouse position.
+ * @param {Element} containerElement       Container for the gradient picker.
+ * @param {number}  positionedElementWidth Width of the positioned element.
+ *
+ * @return {number} Whole number percentage from the left.
+ */
+
+function getHorizontalRelativeGradientPosition(mouseXCoordinate, containerElement, positionedElementWidth) {
+  if (!containerElement) {
+    return;
+  }
+
+  const {
+    x,
+    width
+  } = containerElement.getBoundingClientRect();
+  const absolutePositionValue = mouseXCoordinate - x - MINIMUM_ABSOLUTE_LEFT_POSITION - positionedElementWidth / 2;
+  const availableWidth = width - MINIMUM_ABSOLUTE_LEFT_POSITION - INSERT_POINT_WIDTH;
+  return Math.round(clampPercent(absolutePositionValue * 100 / availableWidth));
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/custom-gradient-bar/control-points.js
+
+
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+
+
+function ControlPointButton(_ref) {
+  let {
+    isOpen,
+    position,
+    color,
+    ...additionalProps
+  } = _ref;
+  const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(ControlPointButton);
+  const descriptionId = `components-custom-gradient-picker__control-point-button-description-${instanceId}`;
+  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(build_module_button, extends_extends({
+    "aria-label": (0,external_wp_i18n_namespaceObject.sprintf)( // translators: %1$s: gradient position e.g: 70, %2$s: gradient color code e.g: rgb(52,121,151).
+    (0,external_wp_i18n_namespaceObject.__)('Gradient control point at position %1$s%% with color code %2$s.'), position, color),
+    "aria-describedby": descriptionId,
+    "aria-haspopup": "true",
+    "aria-expanded": isOpen,
+    className: classnames_default()('components-custom-gradient-picker__control-point-button', {
+      'is-active': isOpen
+    }),
+    style: {
+      left: `${position}%`
+    }
+  }, additionalProps)), (0,external_wp_element_namespaceObject.createElement)(visually_hidden_component, {
+    id: descriptionId
+  }, (0,external_wp_i18n_namespaceObject.__)('Use your left or right arrow keys or drag and drop with the mouse to change the gradient position. Press the button to change the color or remove the control point.')));
+}
+
+function GradientColorPickerDropdown(_ref2) {
+  let {
+    isRenderedInSidebar,
+    gradientPickerDomRef,
+    ...props
+  } = _ref2;
+  const popoverProps = (0,external_wp_element_namespaceObject.useMemo)(() => {
+    const result = {
+      className: 'components-custom-gradient-picker__color-picker-popover',
+      position: 'top'
+    };
+
+    if (isRenderedInSidebar) {
+      result.anchorRef = gradientPickerDomRef.current;
+      result.position = 'bottom left';
+    }
+
+    return result;
+  }, [gradientPickerDomRef.current, isRenderedInSidebar]);
+  return (0,external_wp_element_namespaceObject.createElement)(CustomColorPickerDropdown, extends_extends({
+    isRenderedInSidebar: isRenderedInSidebar,
+    popoverProps: popoverProps
+  }, props));
+}
+
+function ControlPoints(_ref3) {
+  let {
+    disableRemove,
+    disableAlpha,
+    gradientPickerDomRef,
+    ignoreMarkerPosition,
+    value: controlPoints,
+    onChange,
+    onStartControlPointChange,
+    onStopControlPointChange,
+    __experimentalIsRenderedInSidebar
+  } = _ref3;
+  const controlPointMoveState = (0,external_wp_element_namespaceObject.useRef)();
+
+  const onMouseMove = event => {
+    const relativePosition = getHorizontalRelativeGradientPosition(event.clientX, gradientPickerDomRef.current, GRADIENT_MARKERS_WIDTH);
+    const {
+      initialPosition,
+      index,
+      significantMoveHappened
+    } = controlPointMoveState.current;
+
+    if (!significantMoveHappened && Math.abs(initialPosition - relativePosition) >= MINIMUM_SIGNIFICANT_MOVE) {
+      controlPointMoveState.current.significantMoveHappened = true;
+    }
+
+    onChange(updateControlPointPosition(controlPoints, index, relativePosition));
+  };
+
+  const cleanEventListeners = () => {
+    if (window && window.removeEventListener && controlPointMoveState.current && controlPointMoveState.current.listenersActivated) {
+      window.removeEventListener('mousemove', onMouseMove);
+      window.removeEventListener('mouseup', cleanEventListeners);
+      onStopControlPointChange();
+      controlPointMoveState.current.listenersActivated = false;
+    }
+  };
+
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    return () => {
+      cleanEventListeners();
+    };
+  }, []);
+  return controlPoints.map((point, index) => {
+    const initialPosition = point === null || point === void 0 ? void 0 : point.position;
+    return ignoreMarkerPosition !== initialPosition && (0,external_wp_element_namespaceObject.createElement)(GradientColorPickerDropdown, {
+      gradientPickerDomRef: gradientPickerDomRef,
+      isRenderedInSidebar: __experimentalIsRenderedInSidebar,
+      key: index,
+      onClose: onStopControlPointChange,
+      renderToggle: _ref4 => {
+        let {
+          isOpen,
+          onToggle
+        } = _ref4;
+        return (0,external_wp_element_namespaceObject.createElement)(ControlPointButton, {
+          key: index,
+          onClick: () => {
+            if (controlPointMoveState.current && controlPointMoveState.current.significantMoveHappened) {
+              return;
+            }
+
+            if (isOpen) {
+              onStopControlPointChange();
+            } else {
+              onStartControlPointChange();
+            }
+
+            onToggle();
+          },
+          onMouseDown: () => {
+            if (window && window.addEventListener) {
+              controlPointMoveState.current = {
+                initialPosition,
+                index,
+                significantMoveHappened: false,
+                listenersActivated: true
+              };
+              onStartControlPointChange();
+              window.addEventListener('mousemove', onMouseMove);
+              window.addEventListener('mouseup', cleanEventListeners);
+            }
+          },
+          onKeyDown: event => {
+            if (event.keyCode === external_wp_keycodes_namespaceObject.LEFT) {
+              // Stop propagation of the key press event to avoid focus moving
+              // to another editor area.
+              event.stopPropagation();
+              onChange(updateControlPointPosition(controlPoints, index, clampPercent(point.position - KEYBOARD_CONTROL_POINT_VARIATION)));
+            } else if (event.keyCode === external_wp_keycodes_namespaceObject.RIGHT) {
+              // Stop propagation of the key press event to avoid focus moving
+              // to another editor area.
+              event.stopPropagation();
+              onChange(updateControlPointPosition(controlPoints, index, clampPercent(point.position + KEYBOARD_CONTROL_POINT_VARIATION)));
+            }
+          },
+          isOpen: isOpen,
+          position: point.position,
+          color: point.color
+        });
+      },
+      renderContent: _ref5 => {
+        let {
+          onClose
+        } = _ref5;
+        return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(LegacyAdapter, {
+          enableAlpha: !disableAlpha,
+          color: point.color,
+          onChange: color => {
+            onChange(updateControlPointColor(controlPoints, index, w(color).toRgbString()));
+          }
+        }), !disableRemove && controlPoints.length > 2 && (0,external_wp_element_namespaceObject.createElement)(build_module_button, {
+          className: "components-custom-gradient-picker__remove-control-point",
+          onClick: () => {
+            onChange(removeControlPoint(controlPoints, index));
+            onClose();
+          },
+          variant: "link"
+        }, (0,external_wp_i18n_namespaceObject.__)('Remove Control Point')));
+      }
+    });
+  });
+}
+
+function InsertPoint(_ref6) {
+  let {
+    value: controlPoints,
+    onChange,
+    onOpenInserter,
+    onCloseInserter,
+    insertPosition,
+    disableAlpha,
+    __experimentalIsRenderedInSidebar,
+    gradientPickerDomRef
+  } = _ref6;
+  const [alreadyInsertedPoint, setAlreadyInsertedPoint] = (0,external_wp_element_namespaceObject.useState)(false);
+  return (0,external_wp_element_namespaceObject.createElement)(GradientColorPickerDropdown, {
+    gradientPickerDomRef: gradientPickerDomRef,
+    isRenderedInSidebar: __experimentalIsRenderedInSidebar,
+    className: "components-custom-gradient-picker__inserter",
+    onClose: () => {
+      onCloseInserter();
+    },
+    renderToggle: _ref7 => {
+      let {
+        isOpen,
+        onToggle
+      } = _ref7;
+      return (0,external_wp_element_namespaceObject.createElement)(build_module_button, {
+        "aria-expanded": isOpen,
+        "aria-haspopup": "true",
+        onClick: () => {
+          if (isOpen) {
+            onCloseInserter();
+          } else {
+            setAlreadyInsertedPoint(false);
+            onOpenInserter();
+          }
+
+          onToggle();
+        },
+        className: "components-custom-gradient-picker__insert-point",
+        icon: library_plus,
+        style: {
+          left: insertPosition !== null ? `${insertPosition}%` : undefined
+        }
+      });
+    },
+    renderContent: () => (0,external_wp_element_namespaceObject.createElement)(LegacyAdapter, {
+      enableAlpha: !disableAlpha,
+      onChange: color => {
+        if (!alreadyInsertedPoint) {
+          onChange(addControlPoint(controlPoints, insertPosition, w(color).toRgbString()));
+          setAlreadyInsertedPoint(true);
+        } else {
+          onChange(updateControlPointColorByPosition(controlPoints, insertPosition, w(color).toRgbString()));
+        }
+      }
+    })
+  });
+}
+
+ControlPoints.InsertPoint = InsertPoint;
+/* harmony default export */ var control_points = (ControlPoints);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/custom-gradient-bar/index.js
+
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+function customGradientBarReducer(state, action) {
+  switch (action.type) {
+    case 'MOVE_INSERTER':
+      if (state.id === 'IDLE' || state.id === 'MOVING_INSERTER') {
+        return {
+          id: 'MOVING_INSERTER',
+          insertPosition: action.insertPosition
+        };
+      }
+
+      break;
+
+    case 'STOP_INSERTER_MOVE':
+      if (state.id === 'MOVING_INSERTER') {
+        return {
+          id: 'IDLE'
+        };
+      }
+
+      break;
+
+    case 'OPEN_INSERTER':
+      if (state.id === 'MOVING_INSERTER') {
+        return {
+          id: 'INSERTING_CONTROL_POINT',
+          insertPosition: state.insertPosition
+        };
+      }
+
+      break;
+
+    case 'CLOSE_INSERTER':
+      if (state.id === 'INSERTING_CONTROL_POINT') {
+        return {
+          id: 'IDLE'
+        };
+      }
+
+      break;
+
+    case 'START_CONTROL_CHANGE':
+      if (state.id === 'IDLE') {
+        return {
+          id: 'MOVING_CONTROL_POINT'
+        };
+      }
+
+      break;
+
+    case 'STOP_CONTROL_CHANGE':
+      if (state.id === 'MOVING_CONTROL_POINT') {
+        return {
+          id: 'IDLE'
+        };
+      }
+
+      break;
+  }
+
+  return state;
+}
+
+const customGradientBarReducerInitialState = {
+  id: 'IDLE'
+};
+function CustomGradientBar(_ref) {
+  let {
+    background,
+    hasGradient,
+    value: controlPoints,
+    onChange,
+    disableInserter = false,
+    disableAlpha = false,
+    __experimentalIsRenderedInSidebar
+  } = _ref;
+  const gradientPickerDomRef = (0,external_wp_element_namespaceObject.useRef)();
+  const [gradientBarState, gradientBarStateDispatch] = (0,external_wp_element_namespaceObject.useReducer)(customGradientBarReducer, customGradientBarReducerInitialState);
+
+  const onMouseEnterAndMove = event => {
+    const insertPosition = getHorizontalRelativeGradientPosition(event.clientX, gradientPickerDomRef.current, INSERT_POINT_WIDTH); // If the insert point is close to an existing control point don't show it.
+
+    if ((0,external_lodash_namespaceObject.some)(controlPoints, _ref2 => {
+      let {
+        position
+      } = _ref2;
+      return Math.abs(insertPosition - position) < MINIMUM_DISTANCE_BETWEEN_INSERTER_AND_POINT;
+    })) {
+      if (gradientBarState.id === 'MOVING_INSERTER') {
+        gradientBarStateDispatch({
+          type: 'STOP_INSERTER_MOVE'
+        });
+      }
+
+      return;
+    }
+
+    gradientBarStateDispatch({
+      type: 'MOVE_INSERTER',
+      insertPosition
+    });
+  };
+
+  const onMouseLeave = () => {
+    gradientBarStateDispatch({
+      type: 'STOP_INSERTER_MOVE'
+    });
+  };
+
+  const isMovingInserter = gradientBarState.id === 'MOVING_INSERTER';
+  const isInsertingControlPoint = gradientBarState.id === 'INSERTING_CONTROL_POINT';
+  return (0,external_wp_element_namespaceObject.createElement)("div", {
+    ref: gradientPickerDomRef,
+    className: classnames_default()('components-custom-gradient-picker__gradient-bar', {
+      'has-gradient': hasGradient
+    }),
+    onMouseEnter: onMouseEnterAndMove,
+    onMouseMove: onMouseEnterAndMove,
+    style: {
+      background
+    },
+    onMouseLeave: onMouseLeave
+  }, (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: "components-custom-gradient-picker__markers-container"
+  }, !disableInserter && (isMovingInserter || isInsertingControlPoint) && (0,external_wp_element_namespaceObject.createElement)(control_points.InsertPoint, {
+    __experimentalIsRenderedInSidebar: __experimentalIsRenderedInSidebar,
+    gradientPickerDomRef: gradientPickerDomRef,
+    disableAlpha: disableAlpha,
+    insertPosition: gradientBarState.insertPosition,
+    value: controlPoints,
+    onChange: onChange,
+    onOpenInserter: () => {
+      gradientBarStateDispatch({
+        type: 'OPEN_INSERTER'
+      });
+    },
+    onCloseInserter: () => {
+      gradientBarStateDispatch({
+        type: 'CLOSE_INSERTER'
+      });
+    }
+  }), (0,external_wp_element_namespaceObject.createElement)(control_points, {
+    __experimentalIsRenderedInSidebar: __experimentalIsRenderedInSidebar,
+    disableAlpha: disableAlpha,
+    disableRemove: disableInserter,
+    gradientPickerDomRef: gradientPickerDomRef,
+    ignoreMarkerPosition: isInsertingControlPoint ? gradientBarState.insertPosition : undefined,
+    value: controlPoints,
+    onChange: onChange,
+    onStartControlPointChange: () => {
+      gradientBarStateDispatch({
+        type: 'START_CONTROL_CHANGE'
+      });
+    },
+    onStopControlPointChange: () => {
+      gradientBarStateDispatch({
+        type: 'STOP_CONTROL_CHANGE'
+      });
+    }
+  })));
+}
+
+// EXTERNAL MODULE: ./node_modules/gradient-parser/build/node.js
+var build_node = __webpack_require__(7115);
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/custom-gradient-picker/constants.js
+/**
+ * WordPress dependencies
+ */
+
+const DEFAULT_GRADIENT = 'linear-gradient(135deg, rgba(6, 147, 227, 1) 0%, rgb(155, 81, 224) 100%)';
+const DEFAULT_LINEAR_GRADIENT_ANGLE = 180;
+const HORIZONTAL_GRADIENT_ORIENTATION = {
+  type: 'angular',
+  value: 90
+};
+const GRADIENT_OPTIONS = [{
+  value: 'linear-gradient',
+  label: (0,external_wp_i18n_namespaceObject.__)('Linear')
+}, {
+  value: 'radial-gradient',
+  label: (0,external_wp_i18n_namespaceObject.__)('Radial')
+}];
+const DIRECTIONAL_ORIENTATION_ANGLE_MAP = {
+  top: 0,
+  'top right': 45,
+  'right top': 45,
+  right: 90,
+  'right bottom': 135,
+  'bottom right': 135,
+  bottom: 180,
+  'bottom left': 225,
+  'left bottom': 225,
+  left: 270,
+  'top left': 315,
+  'left top': 315
+};
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/custom-gradient-picker/serializer.js
+/**
+ * External dependencies
+ */
+
+function serializeGradientColor(_ref) {
+  let {
+    type,
+    value
+  } = _ref;
+
+  if (type === 'literal') {
+    return value;
+  }
+
+  if (type === 'hex') {
+    return `#${value}`;
+  }
+
+  return `${type}(${value.join(',')})`;
+}
+function serializeGradientPosition(position) {
+  if (!position) {
+    return '';
+  }
+
+  const {
+    value,
+    type
+  } = position;
+  return `${value}${type}`;
+}
+function serializeGradientColorStop(_ref2) {
+  let {
+    type,
+    value,
+    length
+  } = _ref2;
+  return `${serializeGradientColor({
+    type,
+    value
+  })} ${serializeGradientPosition(length)}`;
+}
+function serializeGradientOrientation(orientation) {
+  if (!orientation || orientation.type !== 'angular') {
+    return;
+  }
+
+  return `${orientation.value}deg`;
+}
+function serializeGradient(_ref3) {
+  let {
+    type,
+    orientation,
+    colorStops
+  } = _ref3;
+  const serializedOrientation = serializeGradientOrientation(orientation);
+  const serializedColorStops = colorStops.sort((colorStop1, colorStop2) => {
+    return (0,external_lodash_namespaceObject.get)(colorStop1, ['length', 'value'], 0) - (0,external_lodash_namespaceObject.get)(colorStop2, ['length', 'value'], 0);
+  }).map(serializeGradientColorStop);
+  return `${type}(${(0,external_lodash_namespaceObject.compact)([serializedOrientation, ...serializedColorStops]).join(',')})`;
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/custom-gradient-picker/utils.js
+/**
+ * External dependencies
+ */
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+k([names]);
+function getLinearGradientRepresentation(gradientAST) {
+  return serializeGradient({
+    type: 'linear-gradient',
+    orientation: HORIZONTAL_GRADIENT_ORIENTATION,
+    colorStops: gradientAST.colorStops
+  });
+}
+
+function hasUnsupportedLength(item) {
+  return item.length === undefined || item.length.type !== '%';
+}
+
+function getGradientAstWithDefault(value) {
+  var _gradientAST$orientat;
+
+  // gradientAST will contain the gradient AST as parsed by gradient-parser npm module.
+  // More information of its structure available at https://www.npmjs.com/package/gradient-parser#ast.
+  let gradientAST;
+
+  try {
+    gradientAST = build_node.parse(value)[0];
+    gradientAST.value = value;
+  } catch (error) {
+    gradientAST = build_node.parse(DEFAULT_GRADIENT)[0];
+    gradientAST.value = DEFAULT_GRADIENT;
+  }
+
+  if (((_gradientAST$orientat = gradientAST.orientation) === null || _gradientAST$orientat === void 0 ? void 0 : _gradientAST$orientat.type) === 'directional') {
+    gradientAST.orientation.type = 'angular';
+    gradientAST.orientation.value = DIRECTIONAL_ORIENTATION_ANGLE_MAP[gradientAST.orientation.value].toString();
+  }
+
+  if (gradientAST.colorStops.some(hasUnsupportedLength)) {
+    const {
+      colorStops
+    } = gradientAST;
+    const step = 100 / (colorStops.length - 1);
+    colorStops.forEach((stop, index) => {
+      stop.length = {
+        value: step * index,
+        type: '%'
+      };
+    });
+    gradientAST.value = serializeGradient(gradientAST);
+  }
+
+  return gradientAST;
+}
+function getGradientAstWithControlPoints(gradientAST, newControlPoints) {
+  return { ...gradientAST,
+    colorStops: newControlPoints.map(_ref => {
+      let {
+        position,
+        color
+      } = _ref;
+      const {
+        r,
+        g,
+        b,
+        a
+      } = w(color).toRgb();
+      return {
+        length: {
+          type: '%',
+          value: position.toString()
+        },
+        type: a < 1 ? 'rgba' : 'rgb',
+        value: a < 1 ? [r, g, b, a] : [r, g, b]
+      };
+    })
+  };
+}
+function getStopCssColor(colorStop) {
+  switch (colorStop.type) {
+    case 'hex':
+      return `#${colorStop.value}`;
+
+    case 'literal':
+      return colorStop.value;
+
+    case 'rgb':
+    case 'rgba':
+      return `${colorStop.type}(${colorStop.value.join(',')})`;
+
+    default:
+      // Should be unreachable if passing an AST from gradient-parser.
+      // See https://github.com/rafaelcaricio/gradient-parser#ast.
+      return 'transparent';
+  }
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/custom-gradient-picker/styles/custom-gradient-picker-styles.js
+
+
+function custom_gradient_picker_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+const SelectWrapper = /*#__PURE__*/emotion_styled_base_browser_esm(flex_block_component,  true ? {
+  target: "e99xvul1"
+} : 0)( true ? {
+  name: "1gvx10y",
+  styles: "flex-grow:5"
+} : 0);
+const AccessoryWrapper = /*#__PURE__*/emotion_styled_base_browser_esm(flex_block_component,  true ? {
+  target: "e99xvul0"
+} : 0)( true ? {
+  name: "1gvx10y",
+  styles: "flex-grow:5"
+} : 0);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/custom-gradient-picker/index.js
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+
+
+
+
+const GradientAnglePicker = _ref => {
+  let {
+    gradientAST,
+    hasGradient,
+    onChange
+  } = _ref;
+  const angle = (0,external_lodash_namespaceObject.get)(gradientAST, ['orientation', 'value'], DEFAULT_LINEAR_GRADIENT_ANGLE);
+
+  const onAngleChange = newAngle => {
+    onChange(serializeGradient({ ...gradientAST,
+      orientation: {
+        type: 'angular',
+        value: newAngle
+      }
+    }));
+  };
+
+  return (0,external_wp_element_namespaceObject.createElement)(AnglePickerControl, {
+    onChange: onAngleChange,
+    labelPosition: "top",
+    value: hasGradient ? angle : ''
+  });
+};
+
+const GradientTypePicker = _ref2 => {
+  let {
+    gradientAST,
+    hasGradient,
+    onChange
+  } = _ref2;
+  const {
+    type
+  } = gradientAST;
+
+  const onSetLinearGradient = () => {
+    onChange(serializeGradient({ ...gradientAST,
+      ...(gradientAST.orientation ? {} : {
+        orientation: HORIZONTAL_GRADIENT_ORIENTATION
+      }),
+      type: 'linear-gradient'
+    }));
+  };
+
+  const onSetRadialGradient = () => {
+    onChange(serializeGradient({ ...(0,external_lodash_namespaceObject.omit)(gradientAST, ['orientation']),
+      type: 'radial-gradient'
+    }));
+  };
+
+  const handleOnChange = next => {
+    if (next === 'linear-gradient') {
+      onSetLinearGradient();
+    }
+
+    if (next === 'radial-gradient') {
+      onSetRadialGradient();
+    }
+  };
+
+  return (0,external_wp_element_namespaceObject.createElement)(select_control, {
+    className: "components-custom-gradient-picker__type-picker",
+    label: (0,external_wp_i18n_namespaceObject.__)('Type'),
+    labelPosition: "top",
+    onChange: handleOnChange,
+    options: GRADIENT_OPTIONS,
+    size: "__unstable-large",
+    value: hasGradient && type
+  });
+};
+
+function CustomGradientPicker(_ref3) {
+  let {
+    value,
+    onChange,
+    __experimentalIsRenderedInSidebar
+  } = _ref3;
+  const gradientAST = getGradientAstWithDefault(value); // On radial gradients the bar should display a linear gradient.
+  // On radial gradients the bar represents a slice of the gradient from the center until the outside.
+  // On liner gradients the bar represents the color stops from left to right independently of the angle.
+
+  const background = getLinearGradientRepresentation(gradientAST);
+  const hasGradient = gradientAST.value !== DEFAULT_GRADIENT; // Control points color option may be hex from presets, custom colors will be rgb.
+  // The position should always be a percentage.
+
+  const controlPoints = gradientAST.colorStops.map(colorStop => ({
+    color: getStopCssColor(colorStop),
+    position: parseInt(colorStop.length.value)
+  }));
+  return (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: "components-custom-gradient-picker"
+  }, (0,external_wp_element_namespaceObject.createElement)(CustomGradientBar, {
+    __experimentalIsRenderedInSidebar: __experimentalIsRenderedInSidebar,
+    background: background,
+    hasGradient: hasGradient,
+    value: controlPoints,
+    onChange: newControlPoints => {
+      onChange(serializeGradient(getGradientAstWithControlPoints(gradientAST, newControlPoints)));
+    }
+  }), (0,external_wp_element_namespaceObject.createElement)(flex_component, {
+    gap: 3,
+    className: "components-custom-gradient-picker__ui-line"
+  }, (0,external_wp_element_namespaceObject.createElement)(SelectWrapper, null, (0,external_wp_element_namespaceObject.createElement)(GradientTypePicker, {
+    gradientAST: gradientAST,
+    hasGradient: hasGradient,
+    onChange: onChange
+  })), (0,external_wp_element_namespaceObject.createElement)(AccessoryWrapper, null, gradientAST.type === 'linear-gradient' && (0,external_wp_element_namespaceObject.createElement)(GradientAnglePicker, {
+    gradientAST: gradientAST,
+    hasGradient: hasGradient,
+    onChange: onChange
+  }))));
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/gradient-picker/index.js
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+function SingleOrigin(_ref) {
+  let {
+    className,
+    clearGradient,
+    gradients,
+    onChange,
+    value,
+    actions,
+    content
+  } = _ref;
+  const gradientOptions = (0,external_wp_element_namespaceObject.useMemo)(() => {
+    return (0,external_lodash_namespaceObject.map)(gradients, _ref2 => {
+      let {
+        gradient,
+        name
+      } = _ref2;
+      return (0,external_wp_element_namespaceObject.createElement)(CircularOptionPicker.Option, {
+        key: gradient,
+        value: gradient,
+        isSelected: value === gradient,
+        tooltipText: name || // translators: %s: gradient code e.g: "linear-gradient(90deg, rgba(98,16,153,1) 0%, rgba(172,110,22,1) 100%);".
+        (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('Gradient code: %s'), gradient),
+        style: {
+          color: 'rgba( 0,0,0,0 )',
+          background: gradient
+        },
+        onClick: value === gradient ? clearGradient : () => onChange(gradient),
+        "aria-label": name ? // translators: %s: The name of the gradient e.g: "Angular red to blue".
+        (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('Gradient: %s'), name) : // translators: %s: gradient code e.g: "linear-gradient(90deg, rgba(98,16,153,1) 0%, rgba(172,110,22,1) 100%);".
+        (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('Gradient code: %s'), gradient)
+      });
+    });
+  }, [gradients, value, onChange, clearGradient]);
+  return (0,external_wp_element_namespaceObject.createElement)(CircularOptionPicker, {
+    className: className,
+    options: gradientOptions,
+    actions: actions
+  }, content);
+}
+
+function MultipleOrigin(_ref3) {
+  let {
+    className,
+    clearGradient,
+    gradients,
+    onChange,
+    value,
+    actions,
+    content
+  } = _ref3;
+  return (0,external_wp_element_namespaceObject.createElement)(v_stack_component, {
+    spacing: 3,
+    className: className
+  }, gradients.map((_ref4, index) => {
+    let {
+      name,
+      gradients: gradientSet
+    } = _ref4;
+    return (0,external_wp_element_namespaceObject.createElement)(v_stack_component, {
+      spacing: 2,
+      key: index
+    }, (0,external_wp_element_namespaceObject.createElement)(ColorHeading, null, name), (0,external_wp_element_namespaceObject.createElement)(SingleOrigin, extends_extends({
+      clearGradient: clearGradient,
+      gradients: gradientSet,
+      onChange: onChange,
+      value: value
+    }, gradients.length === index + 1 ? {
+      actions,
+      content
+    } : {})));
+  }));
+}
+
+function GradientPicker(_ref5) {
+  let {
+    className,
+    gradients,
+    onChange,
+    value,
+    clearable = true,
+    disableCustomGradients = false,
+    __experimentalHasMultipleOrigins,
+    __experimentalIsRenderedInSidebar
+  } = _ref5;
+  const clearGradient = (0,external_wp_element_namespaceObject.useCallback)(() => onChange(undefined), [onChange]);
+  const Component = __experimentalHasMultipleOrigins && gradients !== null && gradients !== void 0 && gradients.length ? MultipleOrigin : SingleOrigin;
+  return (0,external_wp_element_namespaceObject.createElement)(Component, {
+    className: className,
+    clearable: clearable,
+    clearGradient: clearGradient,
+    gradients: gradients,
+    onChange: onChange,
+    value: value,
+    actions: clearable && ((gradients === null || gradients === void 0 ? void 0 : gradients.length) || !disableCustomGradients) && (0,external_wp_element_namespaceObject.createElement)(CircularOptionPicker.ButtonAction, {
+      onClick: clearGradient
+    }, (0,external_wp_i18n_namespaceObject.__)('Clear')),
+    content: !disableCustomGradients && (0,external_wp_element_namespaceObject.createElement)(CustomGradientPicker, {
+      __experimentalIsRenderedInSidebar: __experimentalIsRenderedInSidebar,
+      value: value,
+      onChange: onChange
+    })
+  });
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/menu.js
+
+
+/**
+ * WordPress dependencies
+ */
+
+const menu = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
+  xmlns: "http://www.w3.org/2000/svg",
+  viewBox: "0 0 24 24"
+}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
+  d: "M5 5v1.5h14V5H5zm0 7.8h14v-1.5H5v1.5zM5 19h14v-1.5H5V19z"
+}));
+/* harmony default export */ var library_menu = (menu);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigable-container/container.js
+
+
+// @ts-nocheck
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+const MENU_ITEM_ROLES = ['menuitem', 'menuitemradio', 'menuitemcheckbox'];
+
+function cycleValue(value, total, offset) {
+  const nextValue = value + offset;
+
+  if (nextValue < 0) {
+    return total + nextValue;
+  } else if (nextValue >= total) {
+    return nextValue - total;
+  }
+
+  return nextValue;
+}
+
+class NavigableContainer extends external_wp_element_namespaceObject.Component {
+  constructor() {
+    super(...arguments);
+    this.onKeyDown = this.onKeyDown.bind(this);
+    this.bindContainer = this.bindContainer.bind(this);
+    this.getFocusableContext = this.getFocusableContext.bind(this);
+    this.getFocusableIndex = this.getFocusableIndex.bind(this);
+  }
+
+  componentDidMount() {
+    // We use DOM event listeners instead of React event listeners
+    // because we want to catch events from the underlying DOM tree
+    // The React Tree can be different from the DOM tree when using
+    // portals. Block Toolbars for instance are rendered in a separate
+    // React Trees.
+    this.container.addEventListener('keydown', this.onKeyDown);
+    this.container.addEventListener('focus', this.onFocus);
+  }
+
+  componentWillUnmount() {
+    this.container.removeEventListener('keydown', this.onKeyDown);
+    this.container.removeEventListener('focus', this.onFocus);
+  }
+
+  bindContainer(ref) {
+    const {
+      forwardedRef
+    } = this.props;
+    this.container = ref;
+
+    if ((0,external_lodash_namespaceObject.isFunction)(forwardedRef)) {
+      forwardedRef(ref);
+    } else if (forwardedRef && 'current' in forwardedRef) {
+      forwardedRef.current = ref;
+    }
+  }
+
+  getFocusableContext(target) {
+    const {
+      onlyBrowserTabstops
+    } = this.props;
+    const finder = onlyBrowserTabstops ? external_wp_dom_namespaceObject.focus.tabbable : external_wp_dom_namespaceObject.focus.focusable;
+    const focusables = finder.find(this.container);
+    const index = this.getFocusableIndex(focusables, target);
+
+    if (index > -1 && target) {
+      return {
+        index,
+        target,
+        focusables
+      };
+    }
+
+    return null;
+  }
+
+  getFocusableIndex(focusables, target) {
+    const directIndex = focusables.indexOf(target);
+
+    if (directIndex !== -1) {
+      return directIndex;
+    }
+  }
+
+  onKeyDown(event) {
+    if (this.props.onKeyDown) {
+      this.props.onKeyDown(event);
+    }
+
+    const {
+      getFocusableContext
+    } = this;
+    const {
+      cycle = true,
+      eventToOffset,
+      onNavigate = external_lodash_namespaceObject.noop,
+      stopNavigationEvents
+    } = this.props;
+    const offset = eventToOffset(event); // eventToOffset returns undefined if the event is not handled by the component.
+
+    if (offset !== undefined && stopNavigationEvents) {
+      // Prevents arrow key handlers bound to the document directly interfering.
+      event.stopImmediatePropagation(); // When navigating a collection of items, prevent scroll containers
+      // from scrolling. The preventDefault also prevents Voiceover from
+      // 'handling' the event, as voiceover will try to use arrow keys
+      // for highlighting text.
+
+      const targetRole = event.target.getAttribute('role');
+
+      if (MENU_ITEM_ROLES.includes(targetRole)) {
+        event.preventDefault();
+      }
+    }
+
+    if (!offset) {
+      return;
+    }
+
+    const context = getFocusableContext(event.target.ownerDocument.activeElement);
+
+    if (!context) {
+      return;
+    }
+
+    const {
+      index,
+      focusables
+    } = context;
+    const nextIndex = cycle ? cycleValue(index, focusables.length, offset) : index + offset;
+
+    if (nextIndex >= 0 && nextIndex < focusables.length) {
+      focusables[nextIndex].focus();
+      onNavigate(nextIndex, focusables[nextIndex]);
+    }
+  }
+
+  render() {
+    const {
+      children,
+      ...props
+    } = this.props;
+    return (0,external_wp_element_namespaceObject.createElement)("div", extends_extends({
+      ref: this.bindContainer
+    }, (0,external_lodash_namespaceObject.omit)(props, ['stopNavigationEvents', 'eventToOffset', 'onNavigate', 'onKeyDown', 'cycle', 'onlyBrowserTabstops', 'forwardedRef'])), children);
+  }
+
+}
+
+const forwardedNavigableContainer = (props, ref) => {
+  return (0,external_wp_element_namespaceObject.createElement)(NavigableContainer, extends_extends({}, props, {
+    forwardedRef: ref
+  }));
+};
+
+forwardedNavigableContainer.displayName = 'NavigableContainer';
+/* harmony default export */ var container = ((0,external_wp_element_namespaceObject.forwardRef)(forwardedNavigableContainer));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigable-container/menu.js
+
+
+// @ts-nocheck
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+function NavigableMenu(_ref, ref) {
+  let {
+    role = 'menu',
+    orientation = 'vertical',
+    ...rest
+  } = _ref;
+
+  const eventToOffset = evt => {
+    const {
+      keyCode
+    } = evt;
+    let next = [external_wp_keycodes_namespaceObject.DOWN];
+    let previous = [external_wp_keycodes_namespaceObject.UP];
+
+    if (orientation === 'horizontal') {
+      next = [external_wp_keycodes_namespaceObject.RIGHT];
+      previous = [external_wp_keycodes_namespaceObject.LEFT];
+    }
+
+    if (orientation === 'both') {
+      next = [external_wp_keycodes_namespaceObject.RIGHT, external_wp_keycodes_namespaceObject.DOWN];
+      previous = [external_wp_keycodes_namespaceObject.LEFT, external_wp_keycodes_namespaceObject.UP];
+    }
+
+    if ((0,external_lodash_namespaceObject.includes)(next, keyCode)) {
+      return 1;
+    } else if ((0,external_lodash_namespaceObject.includes)(previous, keyCode)) {
+      return -1;
+    } else if ((0,external_lodash_namespaceObject.includes)([external_wp_keycodes_namespaceObject.DOWN, external_wp_keycodes_namespaceObject.UP, external_wp_keycodes_namespaceObject.LEFT, external_wp_keycodes_namespaceObject.RIGHT], keyCode)) {
+      // Key press should be handled, e.g. have event propagation and
+      // default behavior handled by NavigableContainer but not result
+      // in an offset.
+      return 0;
+    }
+  };
+
+  return (0,external_wp_element_namespaceObject.createElement)(container, extends_extends({
+    ref: ref,
+    stopNavigationEvents: true,
+    onlyBrowserTabstops: false,
+    role: role,
+    "aria-orientation": role === 'presentation' ? null : orientation,
+    eventToOffset: eventToOffset
+  }, rest));
+}
+/* harmony default export */ var navigable_container_menu = ((0,external_wp_element_namespaceObject.forwardRef)(NavigableMenu));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/dropdown-menu/index.js
+
+
+// @ts-nocheck
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+function mergeProps() {
+  let defaultProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+  let props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+  const mergedProps = { ...defaultProps,
+    ...props
+  };
+
+  if (props.className && defaultProps.className) {
+    mergedProps.className = classnames_default()(props.className, defaultProps.className);
+  }
+
+  return mergedProps;
+}
+
+function DropdownMenu(dropdownMenuProps) {
+  const {
+    children,
+    className,
+    controls,
+    icon = library_menu,
+    label,
+    popoverProps,
+    toggleProps,
+    menuProps,
+    disableOpenOnArrowDown = false,
+    text,
+    noIcons
+  } = dropdownMenuProps;
+
+  if ((0,external_lodash_namespaceObject.isEmpty)(controls) && !(0,external_lodash_namespaceObject.isFunction)(children)) {
+    return null;
+  } // Normalize controls to nested array of objects (sets of controls)
+
+
+  let controlSets;
+
+  if (!(0,external_lodash_namespaceObject.isEmpty)(controls)) {
+    controlSets = controls;
+
+    if (!Array.isArray(controlSets[0])) {
+      controlSets = [controlSets];
+    }
+  }
+
+  const mergedPopoverProps = mergeProps({
+    className: 'components-dropdown-menu__popover'
+  }, popoverProps);
+  return (0,external_wp_element_namespaceObject.createElement)(Dropdown, {
+    className: classnames_default()('components-dropdown-menu', className),
+    popoverProps: mergedPopoverProps,
+    renderToggle: _ref => {
+      var _toggleProps$showTool;
+
+      let {
+        isOpen,
+        onToggle
+      } = _ref;
+
+      const openOnArrowDown = event => {
+        if (disableOpenOnArrowDown) {
+          return;
+        }
+
+        if (!isOpen && event.keyCode === external_wp_keycodes_namespaceObject.DOWN) {
+          event.preventDefault();
+          onToggle();
+        }
+      };
+
+      const mergedToggleProps = mergeProps({
+        className: classnames_default()('components-dropdown-menu__toggle', {
+          'is-opened': isOpen
+        })
+      }, toggleProps);
+      return (0,external_wp_element_namespaceObject.createElement)(build_module_button, extends_extends({}, mergedToggleProps, {
+        icon: icon,
+        onClick: event => {
+          onToggle(event);
+
+          if (mergedToggleProps.onClick) {
+            mergedToggleProps.onClick(event);
+          }
+        },
+        onKeyDown: event => {
+          openOnArrowDown(event);
+
+          if (mergedToggleProps.onKeyDown) {
+            mergedToggleProps.onKeyDown(event);
+          }
+        },
+        "aria-haspopup": "true",
+        "aria-expanded": isOpen,
+        label: label,
+        text: text,
+        showTooltip: (_toggleProps$showTool = toggleProps === null || toggleProps === void 0 ? void 0 : toggleProps.showTooltip) !== null && _toggleProps$showTool !== void 0 ? _toggleProps$showTool : true
+      }), mergedToggleProps.children);
+    },
+    renderContent: props => {
+      const mergedMenuProps = mergeProps({
+        'aria-label': label,
+        className: classnames_default()('components-dropdown-menu__menu', {
+          'no-icons': noIcons
+        })
+      }, menuProps);
+      return (0,external_wp_element_namespaceObject.createElement)(navigable_container_menu, extends_extends({}, mergedMenuProps, {
+        role: "menu"
+      }), (0,external_lodash_namespaceObject.isFunction)(children) ? children(props) : null, (0,external_lodash_namespaceObject.flatMap)(controlSets, (controlSet, indexOfSet) => controlSet.map((control, indexOfControl) => (0,external_wp_element_namespaceObject.createElement)(build_module_button, {
+        key: [indexOfSet, indexOfControl].join(),
+        onClick: event => {
+          event.stopPropagation();
+          props.onClose();
+
+          if (control.onClick) {
+            control.onClick();
+          }
+        },
+        className: classnames_default()('components-dropdown-menu__menu-item', {
+          'has-separator': indexOfSet > 0 && indexOfControl === 0,
+          'is-active': control.isActive,
+          'is-icon-only': !control.title
+        }),
+        icon: control.icon,
+        label: control.label,
+        "aria-checked": control.role === 'menuitemcheckbox' || control.role === 'menuitemradio' ? control.isActive : undefined,
+        role: control.role === 'menuitemcheckbox' || control.role === 'menuitemradio' ? control.role : 'menuitem',
+        disabled: control.isDisabled
+      }, control.title))));
+    }
+  });
+}
+
+/* harmony default export */ var dropdown_menu = (DropdownMenu);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/palette-edit/styles.js
+
+
+function palette_edit_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+
+
+
+const IndicatorStyled = /*#__PURE__*/emotion_styled_base_browser_esm(CircularOptionPicker.Option,  true ? {
+  target: "e5bw3229"
+} : 0)("width:", space(6), ";height:", space(6), ";pointer-events:none;" + ( true ? "" : 0));
+const NameInputControl = /*#__PURE__*/emotion_styled_base_browser_esm(input_control,  true ? {
+  target: "e5bw3228"
+} : 0)(Container, "{background:", COLORS.gray[100], ";border-radius:", config_values.controlBorderRadius, ";}", Input, Input, Input, Input, "{height:", space(8), ";}", BackdropUI, BackdropUI, BackdropUI, "{border-color:transparent;box-shadow:none;}" + ( true ? "" : 0));
+const PaletteItem = /*#__PURE__*/emotion_styled_base_browser_esm(component,  true ? {
+  target: "e5bw3227"
+} : 0)("padding:3px 0 3px ", space(3), ";height:calc( 40px - ", config_values.borderWidth, " );border:1px solid ", config_values.surfaceBorderColor, ";border-bottom-color:transparent;&:first-of-type{border-top-left-radius:", config_values.controlBorderRadius, ";border-top-right-radius:", config_values.controlBorderRadius, ";}&:last-of-type{border-bottom-left-radius:", config_values.controlBorderRadius, ";border-bottom-right-radius:", config_values.controlBorderRadius, ";border-bottom-color:", config_values.surfaceBorderColor, ";}&.is-selected+&{border-top-color:transparent;}&.is-selected{border-color:", COLORS.blue.wordpress[700], ";}" + ( true ? "" : 0));
+const NameContainer = emotion_styled_base_browser_esm("div",  true ? {
+  target: "e5bw3226"
+} : 0)("line-height:", space(8), ";margin-left:", space(2), ";margin-right:", space(2), ";white-space:nowrap;overflow:hidden;", PaletteItem, ":hover &{color:var( --wp-admin-theme-color, ", COLORS.blue.wordpress[700], " );}" + ( true ? "" : 0));
+const PaletteHeading = /*#__PURE__*/emotion_styled_base_browser_esm(heading_component,  true ? {
+  target: "e5bw3225"
+} : 0)("text-transform:uppercase;line-height:", space(6), ";font-weight:500;&&&{font-size:11px;margin-bottom:0;}" + ( true ? "" : 0));
+const PaletteActionsContainer = /*#__PURE__*/emotion_styled_base_browser_esm(component,  true ? {
+  target: "e5bw3224"
+} : 0)("height:", space(6), ";display:flex;" + ( true ? "" : 0));
+const PaletteHStackHeader = /*#__PURE__*/emotion_styled_base_browser_esm(h_stack_component,  true ? {
+  target: "e5bw3223"
+} : 0)("margin-bottom:", space(2), ";" + ( true ? "" : 0));
+const PaletteEditStyles = /*#__PURE__*/emotion_styled_base_browser_esm(component,  true ? {
+  target: "e5bw3222"
+} : 0)( true ? {
+  name: "u6wnko",
+  styles: "&&&{.components-button.has-icon{min-width:0;padding:0;}}"
+} : 0);
+const DoneButton = /*#__PURE__*/emotion_styled_base_browser_esm(build_module_button,  true ? {
+  target: "e5bw3221"
+} : 0)("&&{color:", COLORS.ui.theme, ";}" + ( true ? "" : 0));
+const RemoveButton = /*#__PURE__*/emotion_styled_base_browser_esm(build_module_button,  true ? {
+  target: "e5bw3220"
+} : 0)("&&{margin-top:", space(1), ";}" + ( true ? "" : 0));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/palette-edit/index.js
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+const DEFAULT_COLOR = '#000';
+
+function NameInput(_ref) {
+  let {
+    value,
+    onChange,
+    label
+  } = _ref;
+  return (0,external_wp_element_namespaceObject.createElement)(NameInputControl, {
+    label: label,
+    hideLabelFromVision: true,
+    value: value,
+    onChange: onChange
+  });
+}
+
+function getNameForPosition(position) {
+  return (0,external_wp_i18n_namespaceObject.sprintf)(
+  /* translators: %s: is a temporary id for a custom color */
+  (0,external_wp_i18n_namespaceObject.__)('Color %s '), position + 1);
+}
+
+function palette_edit_Option(_ref2) {
+  let {
+    canOnlyChangeValues,
+    element,
+    onChange,
+    isEditing,
+    onStartEditing,
+    onRemove,
+    onStopEditing,
+    slugPrefix,
+    isGradient
+  } = _ref2;
+  const focusOutsideProps = (0,external_wp_compose_namespaceObject.__experimentalUseFocusOutside)(onStopEditing);
+  const value = isGradient ? element.gradient : element.color;
+  return (0,external_wp_element_namespaceObject.createElement)(PaletteItem, extends_extends({
+    className: isEditing ? 'is-selected' : undefined,
+    as: "div",
+    onClick: onStartEditing
+  }, isEditing ? { ...focusOutsideProps
+  } : {
+    style: {
+      cursor: 'pointer'
+    }
+  }), (0,external_wp_element_namespaceObject.createElement)(h_stack_component, {
+    justify: "flex-start"
+  }, (0,external_wp_element_namespaceObject.createElement)(flex_item_component, null, (0,external_wp_element_namespaceObject.createElement)(IndicatorStyled, {
+    style: {
+      background: value,
+      color: 'transparent'
+    }
+  })), (0,external_wp_element_namespaceObject.createElement)(flex_item_component, null, isEditing && !canOnlyChangeValues ? (0,external_wp_element_namespaceObject.createElement)(NameInput, {
+    label: isGradient ? (0,external_wp_i18n_namespaceObject.__)('Gradient name') : (0,external_wp_i18n_namespaceObject.__)('Color name'),
+    value: element.name,
+    onChange: nextName => onChange({ ...element,
+      name: nextName,
+      slug: slugPrefix + (0,external_lodash_namespaceObject.kebabCase)(nextName)
+    })
+  }) : (0,external_wp_element_namespaceObject.createElement)(NameContainer, null, element.name)), isEditing && !canOnlyChangeValues && (0,external_wp_element_namespaceObject.createElement)(flex_item_component, null, (0,external_wp_element_namespaceObject.createElement)(RemoveButton, {
+    isSmall: true,
+    icon: line_solid,
+    label: (0,external_wp_i18n_namespaceObject.__)('Remove color'),
+    onClick: onRemove
+  }))), isEditing && (0,external_wp_element_namespaceObject.createElement)(popover, {
+    position: "bottom left",
+    className: "components-palette-edit__popover"
+  }, !isGradient && (0,external_wp_element_namespaceObject.createElement)(LegacyAdapter, {
+    color: value,
+    onChange: newColor => onChange({ ...element,
+      color: newColor
+    })
+  }), isGradient && (0,external_wp_element_namespaceObject.createElement)(CustomGradientPicker, {
+    __experimentalIsRenderedInSidebar: true,
+    value: value,
+    onChange: newGradient => onChange({ ...element,
+      gradient: newGradient
+    })
+  })));
+}
+
+function isTemporaryElement(slugPrefix, _ref3, index) {
+  let {
+    slug,
+    color,
+    gradient
+  } = _ref3;
+  return slug === slugPrefix + (0,external_lodash_namespaceObject.kebabCase)(getNameForPosition(index)) && (!!color && color === DEFAULT_COLOR || !!gradient && gradient === DEFAULT_GRADIENT);
+}
+
+function PaletteEditListView(_ref4) {
+  let {
+    elements,
+    onChange,
+    editingElement,
+    setEditingElement,
+    canOnlyChangeValues,
+    slugPrefix,
+    isGradient
+  } = _ref4;
+  // When unmounting the component if there are empty elements (the user did not complete the insertion) clean them.
+  const elementsReference = (0,external_wp_element_namespaceObject.useRef)();
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    elementsReference.current = elements;
+  }, [elements]);
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    return () => {
+      if (elementsReference.current.some((element, index) => isTemporaryElement(slugPrefix, element, index))) {
+        const newElements = elementsReference.current.filter((element, index) => !isTemporaryElement(slugPrefix, element, index));
+        onChange(newElements.length ? newElements : undefined);
+      }
+    };
+  }, []);
+  const debounceOnChange = (0,external_wp_compose_namespaceObject.useDebounce)(onChange, 100);
+  return (0,external_wp_element_namespaceObject.createElement)(v_stack_component, {
+    spacing: 3
+  }, (0,external_wp_element_namespaceObject.createElement)(item_group_component, {
+    isRounded: true
+  }, elements.map((element, index) => (0,external_wp_element_namespaceObject.createElement)(palette_edit_Option, {
+    isGradient: isGradient,
+    canOnlyChangeValues: canOnlyChangeValues,
+    key: index,
+    element: element,
+    onStartEditing: () => {
+      if (editingElement !== index) {
+        setEditingElement(index);
+      }
+    },
+    onChange: newElement => {
+      debounceOnChange(elements.map((currentElement, currentIndex) => {
+        if (currentIndex === index) {
+          return newElement;
+        }
+
+        return currentElement;
+      }));
+    },
+    onRemove: () => {
+      setEditingElement(null);
+      const newElements = elements.filter((_currentElement, currentIndex) => {
+        if (currentIndex === index) {
+          return false;
+        }
+
+        return true;
+      });
+      onChange(newElements.length ? newElements : undefined);
+    },
+    isEditing: index === editingElement,
+    onStopEditing: () => {
+      if (index === editingElement) {
+        setEditingElement(null);
+      }
+    },
+    slugPrefix: slugPrefix
+  }))));
+}
+
+const EMPTY_ARRAY = [];
+function PaletteEdit(_ref5) {
+  let {
+    gradients,
+    colors = EMPTY_ARRAY,
+    onChange,
+    paletteLabel,
+    emptyMessage,
+    canOnlyChangeValues,
+    canReset,
+    slugPrefix = ''
+  } = _ref5;
+  const isGradient = !!gradients;
+  const elements = isGradient ? gradients : colors;
+  const [isEditing, setIsEditing] = (0,external_wp_element_namespaceObject.useState)(false);
+  const [editingElement, setEditingElement] = (0,external_wp_element_namespaceObject.useState)(null);
+  const isAdding = isEditing && editingElement && elements[editingElement] && !elements[editingElement].slug;
+  const elementsLength = elements.length;
+  const hasElements = elementsLength > 0;
+  return (0,external_wp_element_namespaceObject.createElement)(PaletteEditStyles, null, (0,external_wp_element_namespaceObject.createElement)(PaletteHStackHeader, null, (0,external_wp_element_namespaceObject.createElement)(PaletteHeading, null, paletteLabel), (0,external_wp_element_namespaceObject.createElement)(PaletteActionsContainer, null, isEditing && (0,external_wp_element_namespaceObject.createElement)(DoneButton, {
+    isSmall: true,
+    onClick: () => {
+      setIsEditing(false);
+      setEditingElement(null);
+    }
+  }, (0,external_wp_i18n_namespaceObject.__)('Done')), !canOnlyChangeValues && (0,external_wp_element_namespaceObject.createElement)(build_module_button, {
+    isSmall: true,
+    isPressed: isAdding,
+    icon: library_plus,
+    label: isGradient ? (0,external_wp_i18n_namespaceObject.__)('Add gradient') : (0,external_wp_i18n_namespaceObject.__)('Add color'),
+    onClick: () => {
+      const tempOptionName = getNameForPosition(elementsLength);
+      onChange([...elements, { ...(isGradient ? {
+          gradient: DEFAULT_GRADIENT
+        } : {
+          color: DEFAULT_COLOR
+        }),
+        name: tempOptionName,
+        slug: slugPrefix + (0,external_lodash_namespaceObject.kebabCase)(tempOptionName)
+      }]);
+      setIsEditing(true);
+      setEditingElement(elements.length);
+    }
+  }), hasElements && (!isEditing || !canOnlyChangeValues || canReset) && (0,external_wp_element_namespaceObject.createElement)(dropdown_menu, {
+    icon: more_vertical,
+    label: isGradient ? (0,external_wp_i18n_namespaceObject.__)('Gradient options') : (0,external_wp_i18n_namespaceObject.__)('Color options'),
+    toggleProps: {
+      isSmall: true
+    }
+  }, _ref6 => {
+    let {
+      onClose
+    } = _ref6;
+    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(navigable_container_menu, {
+      role: "menu"
+    }, !isEditing && (0,external_wp_element_namespaceObject.createElement)(build_module_button, {
+      variant: "tertiary",
+      onClick: () => {
+        setIsEditing(true);
+        onClose();
+      },
+      className: "components-palette-edit__menu-button"
+    }, isGradient ? (0,external_wp_i18n_namespaceObject.__)('Edit gradients') : (0,external_wp_i18n_namespaceObject.__)('Edit colors')), !canOnlyChangeValues && (0,external_wp_element_namespaceObject.createElement)(build_module_button, {
+      variant: "tertiary",
+      onClick: () => {
+        setEditingElement(null);
+        setIsEditing(false);
+        onChange();
+        onClose();
+      },
+      className: "components-palette-edit__menu-button"
+    }, isGradient ? (0,external_wp_i18n_namespaceObject.__)('Remove all gradients') : (0,external_wp_i18n_namespaceObject.__)('Remove all colors')), canReset && (0,external_wp_element_namespaceObject.createElement)(build_module_button, {
+      variant: "tertiary",
+      onClick: () => {
+        setEditingElement(null);
+        onChange();
+        onClose();
+      }
+    }, isGradient ? (0,external_wp_i18n_namespaceObject.__)('Reset gradient') : (0,external_wp_i18n_namespaceObject.__)('Reset colors'))));
+  }))), hasElements && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, isEditing && (0,external_wp_element_namespaceObject.createElement)(PaletteEditListView, {
+    canOnlyChangeValues: canOnlyChangeValues,
+    elements: elements,
+    onChange: onChange,
+    editingElement: editingElement,
+    setEditingElement: setEditingElement,
+    slugPrefix: slugPrefix,
+    isGradient: isGradient
+  }), !isEditing && (isGradient ? (0,external_wp_element_namespaceObject.createElement)(GradientPicker, {
+    gradients: gradients,
+    onChange: () => {},
+    clearable: false,
+    disableCustomGradients: true
+  }) : (0,external_wp_element_namespaceObject.createElement)(ColorPalette, {
+    colors: colors,
+    onChange: () => {},
+    clearable: false,
+    disableCustomColors: true
+  }))), !hasElements && emptyMessage);
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/form-token-field/token-input.js
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+class TokenInput extends external_wp_element_namespaceObject.Component {
+  constructor() {
+    super(...arguments);
+    this.onChange = this.onChange.bind(this);
+    this.bindInput = this.bindInput.bind(this);
+  }
+
+  focus() {
+    this.input.focus();
+  }
+
+  hasFocus() {
+    return this.input === this.input.ownerDocument.activeElement;
+  }
+
+  bindInput(ref) {
+    this.input = ref;
+  }
+
+  onChange(event) {
+    this.props.onChange({
+      value: event.target.value
+    });
+  }
+
+  render() {
+    const {
+      value,
+      isExpanded,
+      instanceId,
+      selectedSuggestionIndex,
+      className,
+      onChange,
+      ...props
+    } = this.props;
+    const size = value ? value.length + 1 : 0;
+    return (0,external_wp_element_namespaceObject.createElement)("input", extends_extends({
+      ref: this.bindInput,
+      id: `components-form-token-input-${instanceId}`,
+      type: "text"
+    }, props, {
+      value: value || '',
+      onChange: onChange ? this.onChange : undefined,
+      size: size,
+      className: classnames_default()(className, 'components-form-token-field__input'),
+      autoComplete: "off",
+      role: "combobox",
+      "aria-expanded": isExpanded,
+      "aria-autocomplete": "list",
+      "aria-owns": isExpanded ? `components-form-token-suggestions-${instanceId}` : undefined,
+      "aria-activedescendant": selectedSuggestionIndex !== -1 ? `components-form-token-suggestions-${instanceId}-${selectedSuggestionIndex}` : undefined,
+      "aria-describedby": `components-form-token-suggestions-howto-${instanceId}`
+    }));
+  }
+
+}
+
+/* harmony default export */ var token_input = (TokenInput);
+
+// EXTERNAL MODULE: ./node_modules/dom-scroll-into-view/lib/index.js
+var lib = __webpack_require__(5425);
+var lib_default = /*#__PURE__*/__webpack_require__.n(lib);
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/form-token-field/suggestions-list.js
+
+
+/**
+ * External dependencies
+ */
+
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+const emptyList = Object.freeze([]);
+
+const handleMouseDown = e => {
+  // By preventing default here, we will not lose focus of <input> when clicking a suggestion.
+  e.preventDefault();
+};
+
+function SuggestionsList(_ref) {
+  let {
+    selectedIndex,
+    scrollIntoView,
+    match = '',
+    onHover,
+    onSelect,
+    suggestions = emptyList,
+    displayTransform,
+    instanceId,
+    setTimeout
+  } = _ref;
+  const [scrollingIntoView, setScrollingIntoView] = (0,external_wp_element_namespaceObject.useState)(false);
+  const listRef = (0,external_wp_compose_namespaceObject.useRefEffect)(listNode => {
+    // only have to worry about scrolling selected suggestion into view
+    // when already expanded.
+    if (selectedIndex > -1 && scrollIntoView && listNode.children[selectedIndex]) {
+      setScrollingIntoView(true);
+      lib_default()(listNode.children[selectedIndex], listNode, {
+        onlyScrollIfNeeded: true
+      });
+      setTimeout(() => {
+        setScrollingIntoView(false);
+      }, 100);
+    }
+  }, [selectedIndex, scrollIntoView]);
+
+  const handleHover = suggestion => {
+    return () => {
+      if (!scrollingIntoView) {
+        onHover === null || onHover === void 0 ? void 0 : onHover(suggestion);
+      }
+    };
+  };
+
+  const handleClick = suggestion => {
+    return () => {
+      onSelect === null || onSelect === void 0 ? void 0 : onSelect(suggestion);
+    };
+  };
+
+  const computeSuggestionMatch = suggestion => {
+    const matchText = displayTransform(match || '').toLocaleLowerCase();
+
+    if (matchText.length === 0) {
+      return null;
+    }
+
+    suggestion = displayTransform(suggestion);
+    const indexOfMatch = suggestion.toLocaleLowerCase().indexOf(matchText);
+    return {
+      suggestionBeforeMatch: suggestion.substring(0, indexOfMatch),
+      suggestionMatch: suggestion.substring(indexOfMatch, indexOfMatch + matchText.length),
+      suggestionAfterMatch: suggestion.substring(indexOfMatch + matchText.length)
+    };
+  }; // We set `tabIndex` here because otherwise Firefox sets focus on this
+  // div when tabbing off of the input in `TokenField` -- not really sure
+  // why, since usually a div isn't focusable by default
+  // TODO does this still apply now that it's a <ul> and not a <div>?
+
+
+  return (0,external_wp_element_namespaceObject.createElement)("ul", {
+    ref: listRef,
+    className: "components-form-token-field__suggestions-list",
+    id: `components-form-token-suggestions-${instanceId}`,
+    role: "listbox"
+  }, (0,external_lodash_namespaceObject.map)(suggestions, (suggestion, index) => {
+    const matchText = computeSuggestionMatch(suggestion);
+    const className = classnames_default()('components-form-token-field__suggestion', {
+      'is-selected': index === selectedIndex
+    });
+    /* eslint-disable jsx-a11y/click-events-have-key-events */
+
+    return (0,external_wp_element_namespaceObject.createElement)("li", {
+      id: `components-form-token-suggestions-${instanceId}-${index}`,
+      role: "option",
+      className: className,
+      key: suggestion !== null && suggestion !== void 0 && suggestion.value ? suggestion.value : displayTransform(suggestion),
+      onMouseDown: handleMouseDown,
+      onClick: handleClick(suggestion),
+      onMouseEnter: handleHover(suggestion),
+      "aria-selected": index === selectedIndex
+    }, matchText ? (0,external_wp_element_namespaceObject.createElement)("span", {
+      "aria-label": displayTransform(suggestion)
+    }, matchText.suggestionBeforeMatch, (0,external_wp_element_namespaceObject.createElement)("strong", {
+      className: "components-form-token-field__suggestion-match"
+    }, matchText.suggestionMatch), matchText.suggestionAfterMatch) : displayTransform(suggestion));
+    /* eslint-enable jsx-a11y/click-events-have-key-events */
+  }));
+}
+
+/* harmony default export */ var suggestions_list = ((0,external_wp_compose_namespaceObject.withSafeTimeout)(SuggestionsList));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/higher-order/with-focus-outside/index.js
+
+
+//@ts-nocheck
+
+/**
+ * WordPress dependencies
+ */
+
+
+/* harmony default export */ var with_focus_outside = ((0,external_wp_compose_namespaceObject.createHigherOrderComponent)(WrappedComponent => props => {
+  const [handleFocusOutside, setHandleFocusOutside] = (0,external_wp_element_namespaceObject.useState)();
+  const bindFocusOutsideHandler = (0,external_wp_element_namespaceObject.useCallback)(node => setHandleFocusOutside(() => node !== null && node !== void 0 && node.handleFocusOutside ? node.handleFocusOutside.bind(node) : undefined), []);
+  return (0,external_wp_element_namespaceObject.createElement)("div", (0,external_wp_compose_namespaceObject.__experimentalUseFocusOutside)(handleFocusOutside), (0,external_wp_element_namespaceObject.createElement)(WrappedComponent, extends_extends({
+    ref: bindFocusOutsideHandler
+  }, props)));
+}, 'withFocusOutside'));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/combobox-control/index.js
+
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+
+const DetectOutside = with_focus_outside(class extends external_wp_element_namespaceObject.Component {
+  handleFocusOutside(event) {
+    this.props.onFocusOutside(event);
+  }
+
+  render() {
+    return this.props.children;
+  }
+
+});
+
+function ComboboxControl(_ref) {
+  var _currentOption$label;
+
+  let {
+    value,
+    label,
+    options,
+    onChange,
+    onFilterValueChange = external_lodash_namespaceObject.noop,
+    hideLabelFromVision,
+    help,
+    allowReset = true,
+    className,
+    messages = {
+      selected: (0,external_wp_i18n_namespaceObject.__)('Item selected.')
+    }
+  } = _ref;
+  const currentOption = options.find(option => option.value === value);
+  const currentLabel = (_currentOption$label = currentOption === null || currentOption === void 0 ? void 0 : currentOption.label) !== null && _currentOption$label !== void 0 ? _currentOption$label : '';
+  const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(ComboboxControl);
+  const [selectedSuggestion, setSelectedSuggestion] = (0,external_wp_element_namespaceObject.useState)(currentOption || null);
+  const [isExpanded, setIsExpanded] = (0,external_wp_element_namespaceObject.useState)(false);
+  const [inputHasFocus, setInputHasFocus] = (0,external_wp_element_namespaceObject.useState)(false);
+  const [inputValue, setInputValue] = (0,external_wp_element_namespaceObject.useState)('');
+  const inputContainer = (0,external_wp_element_namespaceObject.useRef)();
+  const matchingSuggestions = (0,external_wp_element_namespaceObject.useMemo)(() => {
+    const startsWithMatch = [];
+    const containsMatch = [];
+    const match = (0,external_lodash_namespaceObject.deburr)(inputValue.toLocaleLowerCase());
+    options.forEach(option => {
+      const index = (0,external_lodash_namespaceObject.deburr)(option.label).toLocaleLowerCase().indexOf(match);
+
+      if (index === 0) {
+        startsWithMatch.push(option);
+      } else if (index > 0) {
+        containsMatch.push(option);
+      }
+    });
+    return startsWithMatch.concat(containsMatch);
+  }, [inputValue, options, value]);
+
+  const onSuggestionSelected = newSelectedSuggestion => {
+    onChange(newSelectedSuggestion.value);
+    (0,external_wp_a11y_namespaceObject.speak)(messages.selected, 'assertive');
+    setSelectedSuggestion(newSelectedSuggestion);
+    setInputValue('');
+    setIsExpanded(false);
+  };
+
+  const handleArrowNavigation = function () {
+    let offset = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
+    const index = matchingSuggestions.indexOf(selectedSuggestion);
+    let nextIndex = index + offset;
+
+    if (nextIndex < 0) {
+      nextIndex = matchingSuggestions.length - 1;
+    } else if (nextIndex >= matchingSuggestions.length) {
+      nextIndex = 0;
+    }
+
+    setSelectedSuggestion(matchingSuggestions[nextIndex]);
+    setIsExpanded(true);
+  };
+
+  const onKeyDown = event => {
+    let preventDefault = false;
+
+    if (event.defaultPrevented) {
+      return;
+    }
+
+    switch (event.keyCode) {
+      case external_wp_keycodes_namespaceObject.ENTER:
+        if (selectedSuggestion) {
+          onSuggestionSelected(selectedSuggestion);
+          preventDefault = true;
+        }
+
+        break;
+
+      case external_wp_keycodes_namespaceObject.UP:
+        handleArrowNavigation(-1);
+        preventDefault = true;
+        break;
+
+      case external_wp_keycodes_namespaceObject.DOWN:
+        handleArrowNavigation(1);
+        preventDefault = true;
+        break;
+
+      case external_wp_keycodes_namespaceObject.ESCAPE:
+        setIsExpanded(false);
+        setSelectedSuggestion(null);
+        preventDefault = true;
+        break;
+
+      default:
+        break;
+    }
+
+    if (preventDefault) {
+      event.preventDefault();
+    }
+  };
+
+  const onBlur = () => {
+    setInputHasFocus(false);
+  };
+
+  const onFocus = () => {
+    setInputHasFocus(true);
+    setIsExpanded(true);
+    onFilterValueChange('');
+    setInputValue('');
+  };
+
+  const onFocusOutside = () => {
+    setIsExpanded(false);
+  };
+
+  const onInputChange = event => {
+    const text = event.value;
+    setInputValue(text);
+    onFilterValueChange(text);
+
+    if (inputHasFocus) {
+      setIsExpanded(true);
+    }
+  };
+
+  const handleOnReset = () => {
+    onChange(null);
+    inputContainer.current.input.focus();
+  }; // Update current selections when the filter input changes.
+
+
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    const hasMatchingSuggestions = matchingSuggestions.length > 0;
+    const hasSelectedMatchingSuggestions = matchingSuggestions.indexOf(selectedSuggestion) > 0;
+
+    if (hasMatchingSuggestions && !hasSelectedMatchingSuggestions) {
+      // If the current selection isn't present in the list of suggestions, then automatically select the first item from the list of suggestions.
+      setSelectedSuggestion(matchingSuggestions[0]);
+    }
+  }, [matchingSuggestions, selectedSuggestion]); // Announcements.
+
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    const hasMatchingSuggestions = matchingSuggestions.length > 0;
+
+    if (isExpanded) {
+      const message = hasMatchingSuggestions ? (0,external_wp_i18n_namespaceObject.sprintf)(
+      /* translators: %d: number of results. */
+      (0,external_wp_i18n_namespaceObject._n)('%d result found, use up and down arrow keys to navigate.', '%d results found, use up and down arrow keys to navigate.', matchingSuggestions.length), matchingSuggestions.length) : (0,external_wp_i18n_namespaceObject.__)('No results.');
+      (0,external_wp_a11y_namespaceObject.speak)(message, 'polite');
+    }
+  }, [matchingSuggestions, isExpanded]); // Disable reason: There is no appropriate role which describes the
+  // input container intended accessible usability.
+  // TODO: Refactor click detection to use blur to stop propagation.
+
+  /* eslint-disable jsx-a11y/no-static-element-interactions */
+
+  return (0,external_wp_element_namespaceObject.createElement)(DetectOutside, {
+    onFocusOutside: onFocusOutside
+  }, (0,external_wp_element_namespaceObject.createElement)(base_control, {
+    className: classnames_default()(className, 'components-combobox-control'),
+    tabIndex: "-1",
+    label: label,
+    id: `components-form-token-input-${instanceId}`,
+    hideLabelFromVision: hideLabelFromVision,
+    help: help
+  }, (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: "components-combobox-control__suggestions-container",
+    tabIndex: "-1",
+    onKeyDown: onKeyDown
+  }, (0,external_wp_element_namespaceObject.createElement)(flex_component, null, (0,external_wp_element_namespaceObject.createElement)(flex_block_component, null, (0,external_wp_element_namespaceObject.createElement)(token_input, {
+    className: "components-combobox-control__input",
+    instanceId: instanceId,
+    ref: inputContainer,
+    value: isExpanded ? inputValue : currentLabel,
+    "aria-label": currentLabel ? `${currentLabel}, ${label}` : null,
+    onFocus: onFocus,
+    onBlur: onBlur,
+    isExpanded: isExpanded,
+    selectedSuggestionIndex: matchingSuggestions.indexOf(selectedSuggestion),
+    onChange: onInputChange
+  })), allowReset && (0,external_wp_element_namespaceObject.createElement)(flex_item_component, null, (0,external_wp_element_namespaceObject.createElement)(build_module_button, {
+    className: "components-combobox-control__reset",
+    icon: close_small,
+    disabled: !value,
+    onClick: handleOnReset,
+    label: (0,external_wp_i18n_namespaceObject.__)('Reset')
+  }))), isExpanded && (0,external_wp_element_namespaceObject.createElement)(suggestions_list, {
+    instanceId: instanceId,
+    match: {
+      label: inputValue
+    },
+    displayTransform: suggestion => suggestion.label,
+    suggestions: matchingSuggestions,
+    selectedIndex: matchingSuggestions.indexOf(selectedSuggestion),
+    onHover: setSelectedSuggestion,
+    onSelect: onSuggestionSelected,
+    scrollIntoView: true
+  }))));
+  /* eslint-enable jsx-a11y/no-static-element-interactions */
+}
+
+/* harmony default export */ var combobox_control = (ComboboxControl);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/modal/aria-helper.js
+// @ts-nocheck
+
+/**
+ * External dependencies
+ */
+
+const LIVE_REGION_ARIA_ROLES = new Set(['alert', 'status', 'log', 'marquee', 'timer']);
+let hiddenElements = [],
+    isHidden = false;
+/**
+ * Hides all elements in the body element from screen-readers except
+ * the provided element and elements that should not be hidden from
+ * screen-readers.
+ *
+ * The reason we do this is because `aria-modal="true"` currently is bugged
+ * in Safari, and support is spotty in other browsers overall. In the future
+ * we should consider removing these helper functions in favor of
+ * `aria-modal="true"`.
+ *
+ * @param {Element} unhiddenElement The element that should not be hidden.
+ */
+
+function hideApp(unhiddenElement) {
+  if (isHidden) {
+    return;
+  }
+
+  const elements = document.body.children;
+  (0,external_lodash_namespaceObject.forEach)(elements, element => {
+    if (element === unhiddenElement) {
+      return;
+    }
+
+    if (elementShouldBeHidden(element)) {
+      element.setAttribute('aria-hidden', 'true');
+      hiddenElements.push(element);
+    }
+  });
+  isHidden = true;
+}
+/**
+ * Determines if the passed element should not be hidden from screen readers.
+ *
+ * @param {HTMLElement} element The element that should be checked.
+ *
+ * @return {boolean} Whether the element should not be hidden from screen-readers.
+ */
+
+function elementShouldBeHidden(element) {
+  const role = element.getAttribute('role');
+  return !(element.tagName === 'SCRIPT' || element.hasAttribute('aria-hidden') || element.hasAttribute('aria-live') || LIVE_REGION_ARIA_ROLES.has(role));
+}
+/**
+ * Makes all elements in the body that have been hidden by `hideApp`
+ * visible again to screen-readers.
+ */
+
+function showApp() {
+  if (!isHidden) {
+    return;
+  }
+
+  (0,external_lodash_namespaceObject.forEach)(hiddenElements, element => {
+    element.removeAttribute('aria-hidden');
+  });
+  hiddenElements = [];
+  isHidden = false;
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/modal/index.js
+
+
+// @ts-nocheck
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+ // Used to count the number of open modals.
+
+let openModalCount = 0;
+
+function Modal(props, forwardedRef) {
+  const {
+    bodyOpenClassName = 'modal-open',
+    role = 'dialog',
+    title = null,
+    focusOnMount = true,
+    shouldCloseOnEsc = true,
+    shouldCloseOnClickOutside = true,
+    isDismissible = true,
+
+    /* Accessibility. */
+    aria = {
+      labelledby: null,
+      describedby: null
+    },
+    onRequestClose,
+    icon,
+    closeButtonLabel,
+    children,
+    style,
+    overlayClassName,
+    className,
+    contentLabel,
+    onKeyDown,
+    isFullScreen = false,
+    __experimentalHideHeader = false
+  } = props;
+  const ref = (0,external_wp_element_namespaceObject.useRef)();
+  const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(Modal);
+  const headingId = title ? `components-modal-header-${instanceId}` : aria.labelledby;
+  const focusOnMountRef = (0,external_wp_compose_namespaceObject.useFocusOnMount)(focusOnMount);
+  const constrainedTabbingRef = (0,external_wp_compose_namespaceObject.useConstrainedTabbing)();
+  const focusReturnRef = (0,external_wp_compose_namespaceObject.useFocusReturn)();
+  const focusOutsideProps = (0,external_wp_compose_namespaceObject.__experimentalUseFocusOutside)(onRequestClose);
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    openModalCount++;
+
+    if (openModalCount === 1) {
+      hideApp(ref.current);
+      document.body.classList.add(bodyOpenClassName);
+    }
+
+    return () => {
+      openModalCount--;
+
+      if (openModalCount === 0) {
+        document.body.classList.remove(bodyOpenClassName);
+        showApp();
+      }
+    };
+  }, []);
+
+  function handleEscapeKeyDown(event) {
+    if (shouldCloseOnEsc && event.keyCode === external_wp_keycodes_namespaceObject.ESCAPE && !event.defaultPrevented) {
+      event.preventDefault();
+
+      if (onRequestClose) {
+        onRequestClose(event);
+      }
+    }
+  }
+
+  return (0,external_wp_element_namespaceObject.createPortal)( // eslint-disable-next-line jsx-a11y/no-static-element-interactions
+  (0,external_wp_element_namespaceObject.createElement)("div", {
+    ref: (0,external_wp_compose_namespaceObject.useMergeRefs)([ref, forwardedRef]),
+    className: classnames_default()('components-modal__screen-overlay', overlayClassName),
+    onKeyDown: handleEscapeKeyDown
+  }, (0,external_wp_element_namespaceObject.createElement)(StyleProvider, {
+    document: document
+  }, (0,external_wp_element_namespaceObject.createElement)("div", extends_extends({
+    className: classnames_default()('components-modal__frame', className, {
+      'is-full-screen': isFullScreen
+    }),
+    style: style,
+    ref: (0,external_wp_compose_namespaceObject.useMergeRefs)([constrainedTabbingRef, focusReturnRef, focusOnMountRef]),
+    role: role,
+    "aria-label": contentLabel,
+    "aria-labelledby": contentLabel ? null : headingId,
+    "aria-describedby": aria.describedby,
+    tabIndex: "-1"
+  }, shouldCloseOnClickOutside ? focusOutsideProps : {}, {
+    onKeyDown: onKeyDown
+  }), (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: classnames_default()('components-modal__content', {
+      'hide-header': __experimentalHideHeader
+    }),
+    role: "document"
+  }, !__experimentalHideHeader && (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: "components-modal__header"
+  }, (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: "components-modal__header-heading-container"
+  }, icon && (0,external_wp_element_namespaceObject.createElement)("span", {
+    className: "components-modal__icon-container",
+    "aria-hidden": true
+  }, icon), title && (0,external_wp_element_namespaceObject.createElement)("h1", {
+    id: headingId,
+    className: "components-modal__header-heading"
+  }, title)), isDismissible && (0,external_wp_element_namespaceObject.createElement)(build_module_button, {
+    onClick: onRequestClose,
+    icon: close_small,
+    label: closeButtonLabel || (0,external_wp_i18n_namespaceObject.__)('Close dialog')
+  })), children)))), document.body);
+}
+
+/* harmony default export */ var modal = ((0,external_wp_element_namespaceObject.forwardRef)(Modal));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/confirm-dialog/styles.js
+function confirm_dialog_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * The z-index for ConfirmDialog is being set here instead of in
+ * packages/base-styles/_z-index.scss, because this component uses
+ * emotion instead of sass.
+ *
+ * ConfirmDialog needs this higher z-index to ensure it renders on top of
+ * any parent Popover component.
+ */
+
+const wrapper =  true ? {
+  name: "7g5ii0",
+  styles: "&&{z-index:1000001;}"
+} : 0;
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/confirm-dialog/component.js
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+
+
+
+
+function ConfirmDialog(props, forwardedRef) {
+  const {
+    isOpen: isOpenProp,
+    onConfirm,
+    onCancel,
+    children,
+    confirmButtonText,
+    cancelButtonText,
+    ...otherProps
+  } = useContextSystem(props, 'ConfirmDialog');
+  const cx = useCx();
+  const wrapperClassName = cx(wrapper);
+  const [isOpen, setIsOpen] = (0,external_wp_element_namespaceObject.useState)();
+  const [shouldSelfClose, setShouldSelfClose] = (0,external_wp_element_namespaceObject.useState)();
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    // We only allow the dialog to close itself if `isOpenProp` is *not* set.
+    // If `isOpenProp` is set, then it (probably) means it's controlled by a
+    // parent component. In that case, `shouldSelfClose` might do more harm than
+    // good, so we disable it.
+    const isIsOpenSet = typeof isOpenProp !== 'undefined';
+    setIsOpen(isIsOpenSet ? isOpenProp : true);
+    setShouldSelfClose(!isIsOpenSet);
+  }, [isOpenProp]);
+  const handleEvent = (0,external_wp_element_namespaceObject.useCallback)(callback => event => {
+    callback === null || callback === void 0 ? void 0 : callback(event);
+
+    if (shouldSelfClose) {
+      setIsOpen(false);
+    }
+  }, [shouldSelfClose, setIsOpen]);
+  const handleEnter = (0,external_wp_element_namespaceObject.useCallback)(event => {
+    if (event.key === 'Enter') {
+      handleEvent(onConfirm)(event);
+    }
+  }, [handleEvent, onConfirm]);
+  const cancelLabel = cancelButtonText !== null && cancelButtonText !== void 0 ? cancelButtonText : (0,external_wp_i18n_namespaceObject.__)('Cancel');
+  const confirmLabel = confirmButtonText !== null && confirmButtonText !== void 0 ? confirmButtonText : (0,external_wp_i18n_namespaceObject.__)('OK');
+  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, isOpen && (0,external_wp_element_namespaceObject.createElement)(modal, extends_extends({
+    onRequestClose: handleEvent(onCancel),
+    onKeyDown: handleEnter,
+    closeButtonLabel: cancelLabel,
+    isDismissible: true,
+    ref: forwardedRef,
+    overlayClassName: wrapperClassName,
+    __experimentalHideHeader: true
+  }, otherProps), (0,external_wp_element_namespaceObject.createElement)(v_stack_component, {
+    spacing: 8
+  }, (0,external_wp_element_namespaceObject.createElement)(text_component, null, children), (0,external_wp_element_namespaceObject.createElement)(flex_component, {
+    direction: "row",
+    justify: "flex-end"
+  }, (0,external_wp_element_namespaceObject.createElement)(build_module_button, {
+    variant: "tertiary",
+    onClick: handleEvent(onCancel)
+  }, cancelLabel), (0,external_wp_element_namespaceObject.createElement)(build_module_button, {
+    variant: "primary",
+    onClick: handleEvent(onConfirm)
+  }, confirmLabel)))));
+}
+
+/* harmony default export */ var confirm_dialog_component = (contextConnect(ConfirmDialog, 'ConfirmDialog'));
+
+// EXTERNAL MODULE: ./node_modules/prop-types/index.js
+var prop_types = __webpack_require__(2652);
+var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
+// EXTERNAL MODULE: ./node_modules/downshift/node_modules/react-is/index.js
+var react_is = __webpack_require__(2797);
+;// CONCATENATED MODULE: ./node_modules/compute-scroll-into-view/dist/index.module.js
+function index_module_t(t){return"object"==typeof t&&null!=t&&1===t.nodeType}function index_module_e(t,e){return(!e||"hidden"!==t)&&"visible"!==t&&"clip"!==t}function index_module_n(t,n){if(t.clientHeight<t.scrollHeight||t.clientWidth<t.scrollWidth){var r=getComputedStyle(t,null);return index_module_e(r.overflowY,n)||index_module_e(r.overflowX,n)||function(t){var e=function(t){if(!t.ownerDocument||!t.ownerDocument.defaultView)return null;try{return t.ownerDocument.defaultView.frameElement}catch(t){return null}}(t);return!!e&&(e.clientHeight<t.scrollHeight||e.clientWidth<t.scrollWidth)}(t)}return!1}function index_module_r(t,e,n,r,i,o,l,d){return o<t&&l>e||o>t&&l<e?0:o<=t&&d<=n||l>=e&&d>=n?o-t-r:l>e&&d<n||o<t&&d>n?l-e+i:0}/* harmony default export */ function index_module(e,i){var o=window,l=i.scrollMode,d=i.block,u=i.inline,h=i.boundary,a=i.skipOverflowHiddenElements,c="function"==typeof h?h:function(t){return t!==h};if(!index_module_t(e))throw new TypeError("Invalid target");for(var f=document.scrollingElement||document.documentElement,s=[],p=e;index_module_t(p)&&c(p);){if((p=p.parentElement)===f){s.push(p);break}null!=p&&p===document.body&&index_module_n(p)&&!index_module_n(document.documentElement)||null!=p&&index_module_n(p,a)&&s.push(p)}for(var m=o.visualViewport?o.visualViewport.width:innerWidth,g=o.visualViewport?o.visualViewport.height:innerHeight,w=window.scrollX||pageXOffset,v=window.scrollY||pageYOffset,W=e.getBoundingClientRect(),b=W.height,H=W.width,y=W.top,E=W.right,M=W.bottom,V=W.left,x="start"===d||"nearest"===d?y:"end"===d?M:y+b/2,I="center"===u?V+H/2:"end"===u?E:V,C=[],T=0;T<s.length;T++){var k=s[T],B=k.getBoundingClientRect(),D=B.height,O=B.width,R=B.top,X=B.right,Y=B.bottom,L=B.left;if("if-needed"===l&&y>=0&&V>=0&&M<=g&&E<=m&&y>=R&&M<=Y&&V>=L&&E<=X)return C;var S=getComputedStyle(k),j=parseInt(S.borderLeftWidth,10),q=parseInt(S.borderTopWidth,10),z=parseInt(S.borderRightWidth,10),A=parseInt(S.borderBottomWidth,10),F=0,G=0,J="offsetWidth"in k?k.offsetWidth-k.clientWidth-j-z:0,K="offsetHeight"in k?k.offsetHeight-k.clientHeight-q-A:0;if(f===k)F="start"===d?x:"end"===d?x-g:"nearest"===d?index_module_r(v,v+g,g,q,A,v+x,v+x+b,b):x-g/2,G="start"===u?I:"center"===u?I-m/2:"end"===u?I-m:index_module_r(w,w+m,m,j,z,w+I,w+I+H,H),F=Math.max(0,F+v),G=Math.max(0,G+w);else{F="start"===d?x-R-q:"end"===d?x-Y+A+K:"nearest"===d?index_module_r(R,Y,D,q,A+K,x,x+b,b):x-(R+D/2)+K/2,G="start"===u?I-L-j:"center"===u?I-(L+O/2)+J/2:"end"===u?I-X+z+J:index_module_r(L,X,O,j,z+J,I,I+H,H);var N=k.scrollLeft,P=k.scrollTop;x+=P-(F=Math.max(0,Math.min(P+F,k.scrollHeight-D+K))),I+=N-(G=Math.max(0,Math.min(N+G,k.scrollWidth-O+J)))}C.push({el:k,top:F,left:G})}return C}
+
+;// CONCATENATED MODULE: ./node_modules/downshift/dist/downshift.esm.js
+
+
+
+
+
+
+let idCounter = 0;
+/**
+ * Accepts a parameter and returns it if it's a function
+ * or a noop function if it's not. This allows us to
+ * accept a callback, but not worry about it if it's not
+ * passed.
+ * @param {Function} cb the callback
+ * @return {Function} a function
+ */
+
+function cbToCb(cb) {
+  return typeof cb === 'function' ? cb : downshift_esm_noop;
+}
+
+function downshift_esm_noop() {}
+/**
+ * Scroll node into view if necessary
+ * @param {HTMLElement} node the element that should scroll into view
+ * @param {HTMLElement} menuNode the menu element of the component
+ */
+
+
+function scrollIntoView(node, menuNode) {
+  if (!node) {
+    return;
+  }
+
+  const actions = index_module(node, {
+    boundary: menuNode,
+    block: 'nearest',
+    scrollMode: 'if-needed'
+  });
+  actions.forEach(_ref => {
+    let {
+      el,
+      top,
+      left
+    } = _ref;
+    el.scrollTop = top;
+    el.scrollLeft = left;
+  });
+}
+/**
+ * @param {HTMLElement} parent the parent node
+ * @param {HTMLElement} child the child node
+ * @param {Window} environment The window context where downshift renders.
+ * @return {Boolean} whether the parent is the child or the child is in the parent
+ */
+
+
+function isOrContainsNode(parent, child, environment) {
+  const result = parent === child || child instanceof environment.Node && parent.contains && parent.contains(child);
+  return result;
+}
+/**
+ * Simple debounce implementation. Will call the given
+ * function once after the time given has passed since
+ * it was last called.
+ * @param {Function} fn the function to call after the time
+ * @param {Number} time the time to wait
+ * @return {Function} the debounced function
+ */
+
+
+function downshift_esm_debounce(fn, time) {
+  let timeoutId;
+
+  function cancel() {
+    if (timeoutId) {
+      clearTimeout(timeoutId);
+    }
+  }
+
+  function wrapper() {
+    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
+      args[_key] = arguments[_key];
+    }
+
+    cancel();
+    timeoutId = setTimeout(() => {
+      timeoutId = null;
+      fn(...args);
+    }, time);
+  }
+
+  wrapper.cancel = cancel;
+  return wrapper;
+}
+/**
+ * This is intended to be used to compose event handlers.
+ * They are executed in order until one of them sets
+ * `event.preventDownshiftDefault = true`.
+ * @param {...Function} fns the event handler functions
+ * @return {Function} the event handler to add to an element
+ */
+
+
+function callAllEventHandlers() {
+  for (var _len2 = arguments.length, fns = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
+    fns[_key2] = arguments[_key2];
+  }
+
+  return function (event) {
+    for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {
+      args[_key3 - 1] = arguments[_key3];
+    }
+
+    return fns.some(fn => {
+      if (fn) {
+        fn(event, ...args);
+      }
+
+      return event.preventDownshiftDefault || event.hasOwnProperty('nativeEvent') && event.nativeEvent.preventDownshiftDefault;
+    });
+  };
+}
+
+function handleRefs() {
+  for (var _len4 = arguments.length, refs = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
+    refs[_key4] = arguments[_key4];
+  }
+
+  return node => {
+    refs.forEach(ref => {
+      if (typeof ref === 'function') {
+        ref(node);
+      } else if (ref) {
+        ref.current = node;
+      }
+    });
+  };
+}
+/**
+ * This generates a unique ID for an instance of Downshift
+ * @return {String} the unique ID
+ */
+
+
+function generateId() {
+  return String(idCounter++);
+}
+/**
+ * Resets idCounter to 0. Used for SSR.
+ */
+
+
+function resetIdCounter() {
+  idCounter = 0;
+}
+/**
+ * Default implementation for status message. Only added when menu is open.
+ * Will specify if there are results in the list, and if so, how many,
+ * and what keys are relevant.
+ *
+ * @param {Object} param the downshift state and other relevant properties
+ * @return {String} the a11y status message
+ */
+
+
+function getA11yStatusMessage$1(_ref2) {
+  let {
+    isOpen,
+    resultCount,
+    previousResultCount
+  } = _ref2;
+
+  if (!isOpen) {
+    return '';
+  }
+
+  if (!resultCount) {
+    return 'No results are available.';
+  }
+
+  if (resultCount !== previousResultCount) {
+    return resultCount + " result" + (resultCount === 1 ? ' is' : 's are') + " available, use up and down arrow keys to navigate. Press Enter key to select.";
+  }
+
+  return '';
+}
+/**
+ * Takes an argument and if it's an array, returns the first item in the array
+ * otherwise returns the argument
+ * @param {*} arg the maybe-array
+ * @param {*} defaultValue the value if arg is falsey not defined
+ * @return {*} the arg or it's first item
+ */
+
+
+function unwrapArray(arg, defaultValue) {
+  arg = Array.isArray(arg) ?
+  /* istanbul ignore next (preact) */
+  arg[0] : arg;
+
+  if (!arg && defaultValue) {
+    return defaultValue;
+  } else {
+    return arg;
+  }
+}
+/**
+ * @param {Object} element (P)react element
+ * @return {Boolean} whether it's a DOM element
+ */
+
+
+function isDOMElement(element) {
+
+
+  return typeof element.type === 'string';
+}
+/**
+ * @param {Object} element (P)react element
+ * @return {Object} the props
+ */
+
+
+function getElementProps(element) {
+
+  return element.props;
+}
+/**
+ * Throws a helpful error message for required properties. Useful
+ * to be used as a default in destructuring or object params.
+ * @param {String} fnName the function name
+ * @param {String} propName the prop name
+ */
+
+
+function requiredProp(fnName, propName) {
+  // eslint-disable-next-line no-console
+  console.error("The property \"" + propName + "\" is required in \"" + fnName + "\"");
+}
+
+const stateKeys = ['highlightedIndex', 'inputValue', 'isOpen', 'selectedItem', 'type'];
+/**
+ * @param {Object} state the state object
+ * @return {Object} state that is relevant to downshift
+ */
+
+function pickState(state) {
+  if (state === void 0) {
+    state = {};
+  }
+
+  const result = {};
+  stateKeys.forEach(k => {
+    if (state.hasOwnProperty(k)) {
+      result[k] = state[k];
+    }
+  });
+  return result;
+}
+/**
+ * This will perform a shallow merge of the given state object
+ * with the state coming from props
+ * (for the controlled component scenario)
+ * This is used in state updater functions so they're referencing
+ * the right state regardless of where it comes from.
+ *
+ * @param {Object} state The state of the component/hook.
+ * @param {Object} props The props that may contain controlled values.
+ * @returns {Object} The merged controlled state.
+ */
+
+
+function getState(state, props) {
+  return Object.keys(state).reduce((prevState, key) => {
+    prevState[key] = isControlledProp(props, key) ? props[key] : state[key];
+    return prevState;
+  }, {});
+}
+/**
+ * This determines whether a prop is a "controlled prop" meaning it is
+ * state which is controlled by the outside of this component rather
+ * than within this component.
+ *
+ * @param {Object} props The props that may contain controlled values.
+ * @param {String} key the key to check
+ * @return {Boolean} whether it is a controlled controlled prop
+ */
+
+
+function isControlledProp(props, key) {
+  return props[key] !== undefined;
+}
+/**
+ * Normalizes the 'key' property of a KeyboardEvent in IE/Edge
+ * @param {Object} event a keyboardEvent object
+ * @return {String} keyboard key
+ */
+
+
+function normalizeArrowKey(event) {
+  const {
+    key,
+    keyCode
+  } = event;
+  /* istanbul ignore next (ie) */
+
+  if (keyCode >= 37 && keyCode <= 40 && key.indexOf('Arrow') !== 0) {
+    return "Arrow" + key;
+  }
+
+  return key;
+}
+/**
+ * Simple check if the value passed is object literal
+ * @param {*} obj any things
+ * @return {Boolean} whether it's object literal
+ */
+
+
+function downshift_esm_isPlainObject(obj) {
+  return Object.prototype.toString.call(obj) === '[object Object]';
+}
+/**
+ * Returns the new index in the list, in a circular way. If next value is out of bonds from the total,
+ * it will wrap to either 0 or itemCount - 1.
+ *
+ * @param {number} moveAmount Number of positions to move. Negative to move backwards, positive forwards.
+ * @param {number} baseIndex The initial position to move from.
+ * @param {number} itemCount The total number of items.
+ * @param {Function} getItemNodeFromIndex Used to check if item is disabled.
+ * @param {boolean} circular Specify if navigation is circular. Default is true.
+ * @returns {number} The new index after the move.
+ */
+
+
+function getNextWrappingIndex(moveAmount, baseIndex, itemCount, getItemNodeFromIndex, circular) {
+  if (circular === void 0) {
+    circular = true;
+  }
+
+  if (itemCount === 0) {
+    return -1;
+  }
+
+  const itemsLastIndex = itemCount - 1;
+
+  if (typeof baseIndex !== 'number' || baseIndex < 0 || baseIndex >= itemCount) {
+    baseIndex = moveAmount > 0 ? -1 : itemsLastIndex + 1;
+  }
+
+  let newIndex = baseIndex + moveAmount;
+
+  if (newIndex < 0) {
+    newIndex = circular ? itemsLastIndex : 0;
+  } else if (newIndex > itemsLastIndex) {
+    newIndex = circular ? 0 : itemsLastIndex;
+  }
+
+  const nonDisabledNewIndex = getNextNonDisabledIndex(moveAmount, newIndex, itemCount, getItemNodeFromIndex, circular);
+
+  if (nonDisabledNewIndex === -1) {
+    return baseIndex >= itemCount ? -1 : baseIndex;
+  }
+
+  return nonDisabledNewIndex;
+}
+/**
+ * Returns the next index in the list of an item that is not disabled.
+ *
+ * @param {number} moveAmount Number of positions to move. Negative to move backwards, positive forwards.
+ * @param {number} baseIndex The initial position to move from.
+ * @param {number} itemCount The total number of items.
+ * @param {Function} getItemNodeFromIndex Used to check if item is disabled.
+ * @param {boolean} circular Specify if navigation is circular. Default is true.
+ * @returns {number} The new index. Returns baseIndex if item is not disabled. Returns next non-disabled item otherwise. If no non-disabled found it will return -1.
+ */
+
+
+function getNextNonDisabledIndex(moveAmount, baseIndex, itemCount, getItemNodeFromIndex, circular) {
+  const currentElementNode = getItemNodeFromIndex(baseIndex);
+
+  if (!currentElementNode || !currentElementNode.hasAttribute('disabled')) {
+    return baseIndex;
+  }
+
+  if (moveAmount > 0) {
+    for (let index = baseIndex + 1; index < itemCount; index++) {
+      if (!getItemNodeFromIndex(index).hasAttribute('disabled')) {
+        return index;
+      }
+    }
+  } else {
+    for (let index = baseIndex - 1; index >= 0; index--) {
+      if (!getItemNodeFromIndex(index).hasAttribute('disabled')) {
+        return index;
+      }
+    }
+  }
+
+  if (circular) {
+    return moveAmount > 0 ? getNextNonDisabledIndex(1, 0, itemCount, getItemNodeFromIndex, false) : getNextNonDisabledIndex(-1, itemCount - 1, itemCount, getItemNodeFromIndex, false);
+  }
+
+  return -1;
+}
+/**
+ * Checks if event target is within the downshift elements.
+ *
+ * @param {EventTarget} target Target to check.
+ * @param {HTMLElement[]} downshiftElements The elements that form downshift (list, toggle button etc).
+ * @param {Window} environment The window context where downshift renders.
+ * @param {boolean} checkActiveElement Whether to also check activeElement.
+ *
+ * @returns {boolean} Whether or not the target is within downshift elements.
+ */
+
+
+function targetWithinDownshift(target, downshiftElements, environment, checkActiveElement) {
+  if (checkActiveElement === void 0) {
+    checkActiveElement = true;
+  }
+
+  return downshiftElements.some(contextNode => contextNode && (isOrContainsNode(contextNode, target, environment) || checkActiveElement && isOrContainsNode(contextNode, environment.document.activeElement, environment)));
+} // eslint-disable-next-line import/no-mutable-exports
+
+
+let validateControlledUnchanged = (/* unused pure expression or super */ null && (downshift_esm_noop));
+/* istanbul ignore next */
+
+if (false) {}
+
+const cleanupStatus = downshift_esm_debounce(documentProp => {
+  getStatusDiv(documentProp).textContent = '';
+}, 500);
+/**
+ * @param {String} status the status message
+ * @param {Object} documentProp document passed by the user.
+ */
+
+function setStatus(status, documentProp) {
+  const div = getStatusDiv(documentProp);
+
+  if (!status) {
+    return;
+  }
+
+  div.textContent = status;
+  cleanupStatus(documentProp);
+}
+/**
+ * Get the status node or create it if it does not already exist.
+ * @param {Object} documentProp document passed by the user.
+ * @return {HTMLElement} the status node.
+ */
+
+
+function getStatusDiv(documentProp) {
+  if (documentProp === void 0) {
+    documentProp = document;
+  }
+
+  let statusDiv = documentProp.getElementById('a11y-status-message');
+
+  if (statusDiv) {
+    return statusDiv;
+  }
+
+  statusDiv = documentProp.createElement('div');
+  statusDiv.setAttribute('id', 'a11y-status-message');
+  statusDiv.setAttribute('role', 'status');
+  statusDiv.setAttribute('aria-live', 'polite');
+  statusDiv.setAttribute('aria-relevant', 'additions text');
+  Object.assign(statusDiv.style, {
+    border: '0',
+    clip: 'rect(0 0 0 0)',
+    height: '1px',
+    margin: '-1px',
+    overflow: 'hidden',
+    padding: '0',
+    position: 'absolute',
+    width: '1px'
+  });
+  documentProp.body.appendChild(statusDiv);
+  return statusDiv;
+}
+
+const unknown =  false ? 0 : 0;
+const mouseUp =  false ? 0 : 1;
+const itemMouseEnter =  false ? 0 : 2;
+const keyDownArrowUp =  false ? 0 : 3;
+const keyDownArrowDown =  false ? 0 : 4;
+const keyDownEscape =  false ? 0 : 5;
+const keyDownEnter =  false ? 0 : 6;
+const keyDownHome =  false ? 0 : 7;
+const keyDownEnd =  false ? 0 : 8;
+const clickItem =  false ? 0 : 9;
+const blurInput =  false ? 0 : 10;
+const changeInput =  false ? 0 : 11;
+const keyDownSpaceButton =  false ? 0 : 12;
+const clickButton =  false ? 0 : 13;
+const blurButton =  false ? 0 : 14;
+const controlledPropUpdatedSelectedItem =  false ? 0 : 15;
+const touchEnd =  false ? 0 : 16;
+
+var stateChangeTypes$3 = /*#__PURE__*/Object.freeze({
+  __proto__: null,
+  unknown: unknown,
+  mouseUp: mouseUp,
+  itemMouseEnter: itemMouseEnter,
+  keyDownArrowUp: keyDownArrowUp,
+  keyDownArrowDown: keyDownArrowDown,
+  keyDownEscape: keyDownEscape,
+  keyDownEnter: keyDownEnter,
+  keyDownHome: keyDownHome,
+  keyDownEnd: keyDownEnd,
+  clickItem: clickItem,
+  blurInput: blurInput,
+  changeInput: changeInput,
+  keyDownSpaceButton: keyDownSpaceButton,
+  clickButton: clickButton,
+  blurButton: blurButton,
+  controlledPropUpdatedSelectedItem: controlledPropUpdatedSelectedItem,
+  touchEnd: touchEnd
+});
+
+/* eslint camelcase:0 */
+
+const Downshift = /*#__PURE__*/(() => {
+  class Downshift extends external_React_.Component {
+    constructor(_props) {
+      var _this;
+
+      super(_props);
+      _this = this;
+      this.id = this.props.id || "downshift-" + generateId();
+      this.menuId = this.props.menuId || this.id + "-menu";
+      this.labelId = this.props.labelId || this.id + "-label";
+      this.inputId = this.props.inputId || this.id + "-input";
+
+      this.getItemId = this.props.getItemId || (index => this.id + "-item-" + index);
+
+      this.input = null;
+      this.items = [];
+      this.itemCount = null;
+      this.previousResultCount = 0;
+      this.timeoutIds = [];
+
+      this.internalSetTimeout = (fn, time) => {
+        const id = setTimeout(() => {
+          this.timeoutIds = this.timeoutIds.filter(i => i !== id);
+          fn();
+        }, time);
+        this.timeoutIds.push(id);
+      };
+
+      this.setItemCount = count => {
+        this.itemCount = count;
+      };
+
+      this.unsetItemCount = () => {
+        this.itemCount = null;
+      };
+
+      this.setHighlightedIndex = function (highlightedIndex, otherStateToSet) {
+        if (highlightedIndex === void 0) {
+          highlightedIndex = _this.props.defaultHighlightedIndex;
+        }
+
+        if (otherStateToSet === void 0) {
+          otherStateToSet = {};
+        }
+
+        otherStateToSet = pickState(otherStateToSet);
+
+        _this.internalSetState({
+          highlightedIndex,
+          ...otherStateToSet
+        });
+      };
+
+      this.clearSelection = cb => {
+        this.internalSetState({
+          selectedItem: null,
+          inputValue: '',
+          highlightedIndex: this.props.defaultHighlightedIndex,
+          isOpen: this.props.defaultIsOpen
+        }, cb);
+      };
+
+      this.selectItem = (item, otherStateToSet, cb) => {
+        otherStateToSet = pickState(otherStateToSet);
+        this.internalSetState({
+          isOpen: this.props.defaultIsOpen,
+          highlightedIndex: this.props.defaultHighlightedIndex,
+          selectedItem: item,
+          inputValue: this.props.itemToString(item),
+          ...otherStateToSet
+        }, cb);
+      };
+
+      this.selectItemAtIndex = (itemIndex, otherStateToSet, cb) => {
+        const item = this.items[itemIndex];
+
+        if (item == null) {
+          return;
+        }
+
+        this.selectItem(item, otherStateToSet, cb);
+      };
+
+      this.selectHighlightedItem = (otherStateToSet, cb) => {
+        return this.selectItemAtIndex(this.getState().highlightedIndex, otherStateToSet, cb);
+      };
+
+      this.internalSetState = (stateToSet, cb) => {
+        let isItemSelected, onChangeArg;
+        const onStateChangeArg = {};
+        const isStateToSetFunction = typeof stateToSet === 'function'; // we want to call `onInputValueChange` before the `setState` call
+        // so someone controlling the `inputValue` state gets notified of
+        // the input change as soon as possible. This avoids issues with
+        // preserving the cursor position.
+        // See https://github.com/downshift-js/downshift/issues/217 for more info.
+
+        if (!isStateToSetFunction && stateToSet.hasOwnProperty('inputValue')) {
+          this.props.onInputValueChange(stateToSet.inputValue, { ...this.getStateAndHelpers(),
+            ...stateToSet
+          });
+        }
+
+        return this.setState(state => {
+          state = this.getState(state);
+          let newStateToSet = isStateToSetFunction ? stateToSet(state) : stateToSet; // Your own function that could modify the state that will be set.
+
+          newStateToSet = this.props.stateReducer(state, newStateToSet); // checks if an item is selected, regardless of if it's different from
+          // what was selected before
+          // used to determine if onSelect and onChange callbacks should be called
+
+          isItemSelected = newStateToSet.hasOwnProperty('selectedItem'); // this keeps track of the object we want to call with setState
+
+          const nextState = {}; // this is just used to tell whether the state changed
+          // and we're trying to update that state. OR if the selection has changed and we're
+          // trying to update the selection
+
+          if (isItemSelected && newStateToSet.selectedItem !== state.selectedItem) {
+            onChangeArg = newStateToSet.selectedItem;
+          }
+
+          newStateToSet.type = newStateToSet.type || unknown;
+          Object.keys(newStateToSet).forEach(key => {
+            // onStateChangeArg should only have the state that is
+            // actually changing
+            if (state[key] !== newStateToSet[key]) {
+              onStateChangeArg[key] = newStateToSet[key];
+            } // the type is useful for the onStateChangeArg
+            // but we don't actually want to set it in internal state.
+            // this is an undocumented feature for now... Not all internalSetState
+            // calls support it and I'm not certain we want them to yet.
+            // But it enables users controlling the isOpen state to know when
+            // the isOpen state changes due to mouseup events which is quite handy.
+
+
+            if (key === 'type') {
+              return;
+            }
+
+            newStateToSet[key]; // if it's coming from props, then we don't care to set it internally
+
+            if (!isControlledProp(this.props, key)) {
+              nextState[key] = newStateToSet[key];
+            }
+          }); // if stateToSet is a function, then we weren't able to call onInputValueChange
+          // earlier, so we'll call it now that we know what the inputValue state will be.
+
+          if (isStateToSetFunction && newStateToSet.hasOwnProperty('inputValue')) {
+            this.props.onInputValueChange(newStateToSet.inputValue, { ...this.getStateAndHelpers(),
+              ...newStateToSet
+            });
+          }
+
+          return nextState;
+        }, () => {
+          // call the provided callback if it's a function
+          cbToCb(cb)(); // only call the onStateChange and onChange callbacks if
+          // we have relevant information to pass them.
+
+          const hasMoreStateThanType = Object.keys(onStateChangeArg).length > 1;
+
+          if (hasMoreStateThanType) {
+            this.props.onStateChange(onStateChangeArg, this.getStateAndHelpers());
+          }
+
+          if (isItemSelected) {
+            this.props.onSelect(stateToSet.selectedItem, this.getStateAndHelpers());
+          }
+
+          if (onChangeArg !== undefined) {
+            this.props.onChange(onChangeArg, this.getStateAndHelpers());
+          } // this is currently undocumented and therefore subject to change
+          // We'll try to not break it, but just be warned.
+
+
+          this.props.onUserAction(onStateChangeArg, this.getStateAndHelpers());
+        });
+      };
+
+      this.rootRef = node => this._rootNode = node;
+
+      this.getRootProps = function (_temp, _temp2) {
+        let {
+          refKey = 'ref',
+          ref,
+          ...rest
+        } = _temp === void 0 ? {} : _temp;
+        let {
+          suppressRefError = false
+        } = _temp2 === void 0 ? {} : _temp2;
+        // this is used in the render to know whether the user has called getRootProps.
+        // It uses that to know whether to apply the props automatically
+        _this.getRootProps.called = true;
+        _this.getRootProps.refKey = refKey;
+        _this.getRootProps.suppressRefError = suppressRefError;
+
+        const {
+          isOpen
+        } = _this.getState();
+
+        return {
+          [refKey]: handleRefs(ref, _this.rootRef),
+          role: 'combobox',
+          'aria-expanded': isOpen,
+          'aria-haspopup': 'listbox',
+          'aria-owns': isOpen ? _this.menuId : null,
+          'aria-labelledby': _this.labelId,
+          ...rest
+        };
+      };
+
+      this.keyDownHandlers = {
+        ArrowDown(event) {
+          event.preventDefault();
+
+          if (this.getState().isOpen) {
+            const amount = event.shiftKey ? 5 : 1;
+            this.moveHighlightedIndex(amount, {
+              type: keyDownArrowDown
+            });
+          } else {
+            this.internalSetState({
+              isOpen: true,
+              type: keyDownArrowDown
+            }, () => {
+              const itemCount = this.getItemCount();
+
+              if (itemCount > 0) {
+                const {
+                  highlightedIndex
+                } = this.getState();
+                const nextHighlightedIndex = getNextWrappingIndex(1, highlightedIndex, itemCount, index => this.getItemNodeFromIndex(index));
+                this.setHighlightedIndex(nextHighlightedIndex, {
+                  type: keyDownArrowDown
+                });
+              }
+            });
+          }
+        },
+
+        ArrowUp(event) {
+          event.preventDefault();
+
+          if (this.getState().isOpen) {
+            const amount = event.shiftKey ? -5 : -1;
+            this.moveHighlightedIndex(amount, {
+              type: keyDownArrowUp
+            });
+          } else {
+            this.internalSetState({
+              isOpen: true,
+              type: keyDownArrowUp
+            }, () => {
+              const itemCount = this.getItemCount();
+
+              if (itemCount > 0) {
+                const {
+                  highlightedIndex
+                } = this.getState();
+                const nextHighlightedIndex = getNextWrappingIndex(-1, highlightedIndex, itemCount, index => this.getItemNodeFromIndex(index));
+                this.setHighlightedIndex(nextHighlightedIndex, {
+                  type: keyDownArrowUp
+                });
+              }
+            });
+          }
+        },
+
+        Enter(event) {
+          if (event.which === 229) {
+            return;
+          }
+
+          const {
+            isOpen,
+            highlightedIndex
+          } = this.getState();
+
+          if (isOpen && highlightedIndex != null) {
+            event.preventDefault();
+            const item = this.items[highlightedIndex];
+            const itemNode = this.getItemNodeFromIndex(highlightedIndex);
+
+            if (item == null || itemNode && itemNode.hasAttribute('disabled')) {
+              return;
+            }
+
+            this.selectHighlightedItem({
+              type: keyDownEnter
+            });
+          }
+        },
+
+        Escape(event) {
+          event.preventDefault();
+          this.reset({
+            type: keyDownEscape,
+            ...(!this.state.isOpen && {
+              selectedItem: null,
+              inputValue: ''
+            })
+          });
+        }
+
+      };
+      this.buttonKeyDownHandlers = { ...this.keyDownHandlers,
+
+        ' '(event) {
+          event.preventDefault();
+          this.toggleMenu({
+            type: keyDownSpaceButton
+          });
+        }
+
+      };
+      this.inputKeyDownHandlers = { ...this.keyDownHandlers,
+
+        Home(event) {
+          const {
+            isOpen
+          } = this.getState();
+
+          if (!isOpen) {
+            return;
+          }
+
+          event.preventDefault();
+          const itemCount = this.getItemCount();
+
+          if (itemCount <= 0 || !isOpen) {
+            return;
+          } // get next non-disabled starting downwards from 0 if that's disabled.
+
+
+          const newHighlightedIndex = getNextNonDisabledIndex(1, 0, itemCount, index => this.getItemNodeFromIndex(index), false);
+          this.setHighlightedIndex(newHighlightedIndex, {
+            type: keyDownHome
+          });
+        },
+
+        End(event) {
+          const {
+            isOpen
+          } = this.getState();
+
+          if (!isOpen) {
+            return;
+          }
+
+          event.preventDefault();
+          const itemCount = this.getItemCount();
+
+          if (itemCount <= 0 || !isOpen) {
+            return;
+          } // get next non-disabled starting upwards from last index if that's disabled.
+
+
+          const newHighlightedIndex = getNextNonDisabledIndex(-1, itemCount - 1, itemCount, index => this.getItemNodeFromIndex(index), false);
+          this.setHighlightedIndex(newHighlightedIndex, {
+            type: keyDownEnd
+          });
+        }
+
+      };
+
+      this.getToggleButtonProps = function (_temp3) {
+        let {
+          onClick,
+          onPress,
+          onKeyDown,
+          onKeyUp,
+          onBlur,
+          ...rest
+        } = _temp3 === void 0 ? {} : _temp3;
+
+        const {
+          isOpen
+        } = _this.getState();
+
+        const enabledEventHandlers = {
+          onClick: callAllEventHandlers(onClick, _this.buttonHandleClick),
+          onKeyDown: callAllEventHandlers(onKeyDown, _this.buttonHandleKeyDown),
+          onKeyUp: callAllEventHandlers(onKeyUp, _this.buttonHandleKeyUp),
+          onBlur: callAllEventHandlers(onBlur, _this.buttonHandleBlur)
+        };
+        const eventHandlers = rest.disabled ? {} : enabledEventHandlers;
+        return {
+          type: 'button',
+          role: 'button',
+          'aria-label': isOpen ? 'close menu' : 'open menu',
+          'aria-haspopup': true,
+          'data-toggle': true,
+          ...eventHandlers,
+          ...rest
+        };
+      };
+
+      this.buttonHandleKeyUp = event => {
+        // Prevent click event from emitting in Firefox
+        event.preventDefault();
+      };
+
+      this.buttonHandleKeyDown = event => {
+        const key = normalizeArrowKey(event);
+
+        if (this.buttonKeyDownHandlers[key]) {
+          this.buttonKeyDownHandlers[key].call(this, event);
+        }
+      };
+
+      this.buttonHandleClick = event => {
+        event.preventDefault(); // handle odd case for Safari and Firefox which
+        // don't give the button the focus properly.
+
+        /* istanbul ignore if (can't reasonably test this) */
+
+        if (this.props.environment.document.activeElement === this.props.environment.document.body) {
+          event.target.focus();
+        } // to simplify testing components that use downshift, we'll not wrap this in a setTimeout
+        // if the NODE_ENV is test. With the proper build system, this should be dead code eliminated
+        // when building for production and should therefore have no impact on production code.
+
+
+        if (false) {} else {
+          // Ensure that toggle of menu occurs after the potential blur event in iOS
+          this.internalSetTimeout(() => this.toggleMenu({
+            type: clickButton
+          }));
+        }
+      };
+
+      this.buttonHandleBlur = event => {
+        const blurTarget = event.target; // Save blur target for comparison with activeElement later
+        // Need setTimeout, so that when the user presses Tab, the activeElement is the next focused element, not body element
+
+        this.internalSetTimeout(() => {
+          if (!this.isMouseDown && (this.props.environment.document.activeElement == null || this.props.environment.document.activeElement.id !== this.inputId) && this.props.environment.document.activeElement !== blurTarget // Do nothing if we refocus the same element again (to solve issue in Safari on iOS)
+          ) {
+            this.reset({
+              type: blurButton
+            });
+          }
+        });
+      };
+
+      this.getLabelProps = props => {
+        return {
+          htmlFor: this.inputId,
+          id: this.labelId,
+          ...props
+        };
+      };
+
+      this.getInputProps = function (_temp4) {
+        let {
+          onKeyDown,
+          onBlur,
+          onChange,
+          onInput,
+          onChangeText,
+          ...rest
+        } = _temp4 === void 0 ? {} : _temp4;
+        let onChangeKey;
+        let eventHandlers = {};
+        /* istanbul ignore next (preact) */
+
+        {
+          onChangeKey = 'onChange';
+        }
+
+        const {
+          inputValue,
+          isOpen,
+          highlightedIndex
+        } = _this.getState();
+
+        if (!rest.disabled) {
+          eventHandlers = {
+            [onChangeKey]: callAllEventHandlers(onChange, onInput, _this.inputHandleChange),
+            onKeyDown: callAllEventHandlers(onKeyDown, _this.inputHandleKeyDown),
+            onBlur: callAllEventHandlers(onBlur, _this.inputHandleBlur)
+          };
+        }
+
+        return {
+          'aria-autocomplete': 'list',
+          'aria-activedescendant': isOpen && typeof highlightedIndex === 'number' && highlightedIndex >= 0 ? _this.getItemId(highlightedIndex) : null,
+          'aria-controls': isOpen ? _this.menuId : null,
+          'aria-labelledby': _this.labelId,
+          // https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion
+          // revert back since autocomplete="nope" is ignored on latest Chrome and Opera
+          autoComplete: 'off',
+          value: inputValue,
+          id: _this.inputId,
+          ...eventHandlers,
+          ...rest
+        };
+      };
+
+      this.inputHandleKeyDown = event => {
+        const key = normalizeArrowKey(event);
+
+        if (key && this.inputKeyDownHandlers[key]) {
+          this.inputKeyDownHandlers[key].call(this, event);
+        }
+      };
+
+      this.inputHandleChange = event => {
+        this.internalSetState({
+          type: changeInput,
+          isOpen: true,
+          inputValue: event.target.value,
+          highlightedIndex: this.props.defaultHighlightedIndex
+        });
+      };
+
+      this.inputHandleBlur = () => {
+        // Need setTimeout, so that when the user presses Tab, the activeElement is the next focused element, not the body element
+        this.internalSetTimeout(() => {
+          const downshiftButtonIsActive = this.props.environment.document && !!this.props.environment.document.activeElement && !!this.props.environment.document.activeElement.dataset && this.props.environment.document.activeElement.dataset.toggle && this._rootNode && this._rootNode.contains(this.props.environment.document.activeElement);
+
+          if (!this.isMouseDown && !downshiftButtonIsActive) {
+            this.reset({
+              type: blurInput
+            });
+          }
+        });
+      };
+
+      this.menuRef = node => {
+        this._menuNode = node;
+      };
+
+      this.getMenuProps = function (_temp5, _temp6) {
+        let {
+          refKey = 'ref',
+          ref,
+          ...props
+        } = _temp5 === void 0 ? {} : _temp5;
+        let {
+          suppressRefError = false
+        } = _temp6 === void 0 ? {} : _temp6;
+        _this.getMenuProps.called = true;
+        _this.getMenuProps.refKey = refKey;
+        _this.getMenuProps.suppressRefError = suppressRefError;
+        return {
+          [refKey]: handleRefs(ref, _this.menuRef),
+          role: 'listbox',
+          'aria-labelledby': props && props['aria-label'] ? null : _this.labelId,
+          id: _this.menuId,
+          ...props
+        };
+      };
+
+      this.getItemProps = function (_temp7) {
+        let {
+          onMouseMove,
+          onMouseDown,
+          onClick,
+          onPress,
+          index,
+          item =  true ?
+          /* istanbul ignore next */
+          undefined : 0,
+          ...rest
+        } = _temp7 === void 0 ? {} : _temp7;
+
+        if (index === undefined) {
+          _this.items.push(item);
+
+          index = _this.items.indexOf(item);
+        } else {
+          _this.items[index] = item;
+        }
+
+        const onSelectKey = 'onClick';
+        const customClickHandler = onClick;
+        const enabledEventHandlers = {
+          // onMouseMove is used over onMouseEnter here. onMouseMove
+          // is only triggered on actual mouse movement while onMouseEnter
+          // can fire on DOM changes, interrupting keyboard navigation
+          onMouseMove: callAllEventHandlers(onMouseMove, () => {
+            if (index === _this.getState().highlightedIndex) {
+              return;
+            }
+
+            _this.setHighlightedIndex(index, {
+              type: itemMouseEnter
+            }); // We never want to manually scroll when changing state based
+            // on `onMouseMove` because we will be moving the element out
+            // from under the user which is currently scrolling/moving the
+            // cursor
+
+
+            _this.avoidScrolling = true;
+
+            _this.internalSetTimeout(() => _this.avoidScrolling = false, 250);
+          }),
+          onMouseDown: callAllEventHandlers(onMouseDown, event => {
+            // This prevents the activeElement from being changed
+            // to the item so it can remain with the current activeElement
+            // which is a more common use case.
+            event.preventDefault();
+          }),
+          [onSelectKey]: callAllEventHandlers(customClickHandler, () => {
+            _this.selectItemAtIndex(index, {
+              type: clickItem
+            });
+          })
+        }; // Passing down the onMouseDown handler to prevent redirect
+        // of the activeElement if clicking on disabled items
+
+        const eventHandlers = rest.disabled ? {
+          onMouseDown: enabledEventHandlers.onMouseDown
+        } : enabledEventHandlers;
+        return {
+          id: _this.getItemId(index),
+          role: 'option',
+          'aria-selected': _this.getState().highlightedIndex === index,
+          ...eventHandlers,
+          ...rest
+        };
+      };
+
+      this.clearItems = () => {
+        this.items = [];
+      };
+
+      this.reset = function (otherStateToSet, cb) {
+        if (otherStateToSet === void 0) {
+          otherStateToSet = {};
+        }
+
+        otherStateToSet = pickState(otherStateToSet);
+
+        _this.internalSetState(_ref => {
+          let {
+            selectedItem
+          } = _ref;
+          return {
+            isOpen: _this.props.defaultIsOpen,
+            highlightedIndex: _this.props.defaultHighlightedIndex,
+            inputValue: _this.props.itemToString(selectedItem),
+            ...otherStateToSet
+          };
+        }, cb);
+      };
+
+      this.toggleMenu = function (otherStateToSet, cb) {
+        if (otherStateToSet === void 0) {
+          otherStateToSet = {};
+        }
+
+        otherStateToSet = pickState(otherStateToSet);
+
+        _this.internalSetState(_ref2 => {
+          let {
+            isOpen
+          } = _ref2;
+          return {
+            isOpen: !isOpen,
+            ...(isOpen && {
+              highlightedIndex: _this.props.defaultHighlightedIndex
+            }),
+            ...otherStateToSet
+          };
+        }, () => {
+          const {
+            isOpen,
+            highlightedIndex
+          } = _this.getState();
+
+          if (isOpen) {
+            if (_this.getItemCount() > 0 && typeof highlightedIndex === 'number') {
+              _this.setHighlightedIndex(highlightedIndex, otherStateToSet);
+            }
+          }
+
+          cbToCb(cb)();
+        });
+      };
+
+      this.openMenu = cb => {
+        this.internalSetState({
+          isOpen: true
+        }, cb);
+      };
+
+      this.closeMenu = cb => {
+        this.internalSetState({
+          isOpen: false
+        }, cb);
+      };
+
+      this.updateStatus = downshift_esm_debounce(() => {
+        const state = this.getState();
+        const item = this.items[state.highlightedIndex];
+        const resultCount = this.getItemCount();
+        const status = this.props.getA11yStatusMessage({
+          itemToString: this.props.itemToString,
+          previousResultCount: this.previousResultCount,
+          resultCount,
+          highlightedItem: item,
+          ...state
+        });
+        this.previousResultCount = resultCount;
+        setStatus(status, this.props.environment.document);
+      }, 200);
+      // fancy destructuring + defaults + aliases
+      // this basically says each value of state should either be set to
+      // the initial value or the default value if the initial value is not provided
+      const {
+        defaultHighlightedIndex,
+        initialHighlightedIndex: _highlightedIndex = defaultHighlightedIndex,
+        defaultIsOpen,
+        initialIsOpen: _isOpen = defaultIsOpen,
+        initialInputValue: _inputValue = '',
+        initialSelectedItem: _selectedItem = null
+      } = this.props;
+
+      const _state = this.getState({
+        highlightedIndex: _highlightedIndex,
+        isOpen: _isOpen,
+        inputValue: _inputValue,
+        selectedItem: _selectedItem
+      });
+
+      if (_state.selectedItem != null && this.props.initialInputValue === undefined) {
+        _state.inputValue = this.props.itemToString(_state.selectedItem);
+      }
+
+      this.state = _state;
+    }
+
+    /**
+     * Clear all running timeouts
+     */
+    internalClearTimeouts() {
+      this.timeoutIds.forEach(id => {
+        clearTimeout(id);
+      });
+      this.timeoutIds = [];
+    }
+    /**
+     * Gets the state based on internal state or props
+     * If a state value is passed via props, then that
+     * is the value given, otherwise it's retrieved from
+     * stateToMerge
+     *
+     * @param {Object} stateToMerge defaults to this.state
+     * @return {Object} the state
+     */
+
+
+    getState(stateToMerge) {
+      if (stateToMerge === void 0) {
+        stateToMerge = this.state;
+      }
+
+      return getState(stateToMerge, this.props);
+    }
+
+    getItemCount() {
+      // things read better this way. They're in priority order:
+      // 1. `this.itemCount`
+      // 2. `this.props.itemCount`
+      // 3. `this.items.length`
+      let itemCount = this.items.length;
+
+      if (this.itemCount != null) {
+        itemCount = this.itemCount;
+      } else if (this.props.itemCount !== undefined) {
+        itemCount = this.props.itemCount;
+      }
+
+      return itemCount;
+    }
+
+    getItemNodeFromIndex(index) {
+      return this.props.environment.document.getElementById(this.getItemId(index));
+    }
+
+    scrollHighlightedItemIntoView() {
+      /* istanbul ignore else (react-native) */
+      {
+        const node = this.getItemNodeFromIndex(this.getState().highlightedIndex);
+        this.props.scrollIntoView(node, this._menuNode);
+      }
+    }
+
+    moveHighlightedIndex(amount, otherStateToSet) {
+      const itemCount = this.getItemCount();
+      const {
+        highlightedIndex
+      } = this.getState();
+
+      if (itemCount > 0) {
+        const nextHighlightedIndex = getNextWrappingIndex(amount, highlightedIndex, itemCount, index => this.getItemNodeFromIndex(index));
+        this.setHighlightedIndex(nextHighlightedIndex, otherStateToSet);
+      }
+    }
+
+    getStateAndHelpers() {
+      const {
+        highlightedIndex,
+        inputValue,
+        selectedItem,
+        isOpen
+      } = this.getState();
+      const {
+        itemToString
+      } = this.props;
+      const {
+        id
+      } = this;
+      const {
+        getRootProps,
+        getToggleButtonProps,
+        getLabelProps,
+        getMenuProps,
+        getInputProps,
+        getItemProps,
+        openMenu,
+        closeMenu,
+        toggleMenu,
+        selectItem,
+        selectItemAtIndex,
+        selectHighlightedItem,
+        setHighlightedIndex,
+        clearSelection,
+        clearItems,
+        reset,
+        setItemCount,
+        unsetItemCount,
+        internalSetState: setState
+      } = this;
+      return {
+        // prop getters
+        getRootProps,
+        getToggleButtonProps,
+        getLabelProps,
+        getMenuProps,
+        getInputProps,
+        getItemProps,
+        // actions
+        reset,
+        openMenu,
+        closeMenu,
+        toggleMenu,
+        selectItem,
+        selectItemAtIndex,
+        selectHighlightedItem,
+        setHighlightedIndex,
+        clearSelection,
+        clearItems,
+        setItemCount,
+        unsetItemCount,
+        setState,
+        // props
+        itemToString,
+        // derived
+        id,
+        // state
+        highlightedIndex,
+        inputValue,
+        isOpen,
+        selectedItem
+      };
+    } //////////////////////////// ROOT
+
+
+    componentDidMount() {
+      /* istanbul ignore if (react-native) */
+      if (false) {}
+      /* istanbul ignore if (react-native) */
+
+
+      {
+        // this.isMouseDown helps us track whether the mouse is currently held down.
+        // This is useful when the user clicks on an item in the list, but holds the mouse
+        // down long enough for the list to disappear (because the blur event fires on the input)
+        // this.isMouseDown is used in the blur handler on the input to determine whether the blur event should
+        // trigger hiding the menu.
+        const onMouseDown = () => {
+          this.isMouseDown = true;
+        };
+
+        const onMouseUp = event => {
+          this.isMouseDown = false; // if the target element or the activeElement is within a downshift node
+          // then we don't want to reset downshift
+
+          const contextWithinDownshift = targetWithinDownshift(event.target, [this._rootNode, this._menuNode], this.props.environment);
+
+          if (!contextWithinDownshift && this.getState().isOpen) {
+            this.reset({
+              type: mouseUp
+            }, () => this.props.onOuterClick(this.getStateAndHelpers()));
+          }
+        }; // Touching an element in iOS gives focus and hover states, but touching out of
+        // the element will remove hover, and persist the focus state, resulting in the
+        // blur event not being triggered.
+        // this.isTouchMove helps us track whether the user is tapping or swiping on a touch screen.
+        // If the user taps outside of Downshift, the component should be reset,
+        // but not if the user is swiping
+
+
+        const onTouchStart = () => {
+          this.isTouchMove = false;
+        };
+
+        const onTouchMove = () => {
+          this.isTouchMove = true;
+        };
+
+        const onTouchEnd = event => {
+          const contextWithinDownshift = targetWithinDownshift(event.target, [this._rootNode, this._menuNode], this.props.environment, false);
+
+          if (!this.isTouchMove && !contextWithinDownshift && this.getState().isOpen) {
+            this.reset({
+              type: touchEnd
+            }, () => this.props.onOuterClick(this.getStateAndHelpers()));
+          }
+        };
+
+        const {
+          environment
+        } = this.props;
+        environment.addEventListener('mousedown', onMouseDown);
+        environment.addEventListener('mouseup', onMouseUp);
+        environment.addEventListener('touchstart', onTouchStart);
+        environment.addEventListener('touchmove', onTouchMove);
+        environment.addEventListener('touchend', onTouchEnd);
+
+        this.cleanup = () => {
+          this.internalClearTimeouts();
+          this.updateStatus.cancel();
+          environment.removeEventListener('mousedown', onMouseDown);
+          environment.removeEventListener('mouseup', onMouseUp);
+          environment.removeEventListener('touchstart', onTouchStart);
+          environment.removeEventListener('touchmove', onTouchMove);
+          environment.removeEventListener('touchend', onTouchEnd);
+        };
+      }
+    }
+
+    shouldScroll(prevState, prevProps) {
+      const {
+        highlightedIndex: currentHighlightedIndex
+      } = this.props.highlightedIndex === undefined ? this.getState() : this.props;
+      const {
+        highlightedIndex: prevHighlightedIndex
+      } = prevProps.highlightedIndex === undefined ? prevState : prevProps;
+      const scrollWhenOpen = currentHighlightedIndex && this.getState().isOpen && !prevState.isOpen;
+      const scrollWhenNavigating = currentHighlightedIndex !== prevHighlightedIndex;
+      return scrollWhenOpen || scrollWhenNavigating;
+    }
+
+    componentDidUpdate(prevProps, prevState) {
+      if (false) {}
+
+      if (isControlledProp(this.props, 'selectedItem') && this.props.selectedItemChanged(prevProps.selectedItem, this.props.selectedItem)) {
+        this.internalSetState({
+          type: controlledPropUpdatedSelectedItem,
+          inputValue: this.props.itemToString(this.props.selectedItem)
+        });
+      }
+
+      if (!this.avoidScrolling && this.shouldScroll(prevState, prevProps)) {
+        this.scrollHighlightedItemIntoView();
+      }
+      /* istanbul ignore else (react-native) */
+
+
+      {
+        this.updateStatus();
+      }
+    }
+
+    componentWillUnmount() {
+      this.cleanup(); // avoids memory leak
+    }
+
+    render() {
+      const children = unwrapArray(this.props.children, downshift_esm_noop); // because the items are rerendered every time we call the children
+      // we clear this out each render and it will be populated again as
+      // getItemProps is called.
+
+      this.clearItems(); // we reset this so we know whether the user calls getRootProps during
+      // this render. If they do then we don't need to do anything,
+      // if they don't then we need to clone the element they return and
+      // apply the props for them.
+
+      this.getRootProps.called = false;
+      this.getRootProps.refKey = undefined;
+      this.getRootProps.suppressRefError = undefined; // we do something similar for getMenuProps
+
+      this.getMenuProps.called = false;
+      this.getMenuProps.refKey = undefined;
+      this.getMenuProps.suppressRefError = undefined; // we do something similar for getLabelProps
+
+      this.getLabelProps.called = false; // and something similar for getInputProps
+
+      this.getInputProps.called = false;
+      const element = unwrapArray(children(this.getStateAndHelpers()));
+
+      if (!element) {
+        return null;
+      }
+
+      if (this.getRootProps.called || this.props.suppressRefError) {
+        if (false) {}
+
+        return element;
+      } else if (isDOMElement(element)) {
+        // they didn't apply the root props, but we can clone
+        // this and apply the props ourselves
+        return /*#__PURE__*/(0,external_React_.cloneElement)(element, this.getRootProps(getElementProps(element)));
+      }
+      /* istanbul ignore else */
+
+
+      if (false) {}
+      /* istanbul ignore next */
+
+
+      return undefined;
+    }
+
+  }
+
+  Downshift.defaultProps = {
+    defaultHighlightedIndex: null,
+    defaultIsOpen: false,
+    getA11yStatusMessage: getA11yStatusMessage$1,
+    itemToString: i => {
+      if (i == null) {
+        return '';
+      }
+
+      if (false) {}
+
+      return String(i);
+    },
+    onStateChange: downshift_esm_noop,
+    onInputValueChange: downshift_esm_noop,
+    onUserAction: downshift_esm_noop,
+    onChange: downshift_esm_noop,
+    onSelect: downshift_esm_noop,
+    onOuterClick: downshift_esm_noop,
+    selectedItemChanged: (prevItem, item) => prevItem !== item,
+    environment:
+    /* istanbul ignore next (ssr) */
+    typeof window === 'undefined' ? {} : window,
+    stateReducer: (state, stateToSet) => stateToSet,
+    suppressRefError: false,
+    scrollIntoView
+  };
+  Downshift.stateChangeTypes = stateChangeTypes$3;
+  return Downshift;
+})();
+
+ false ? 0 : void 0;
+var Downshift$1 = Downshift;
+
+function validateGetMenuPropsCalledCorrectly(node, _ref3) {
+  let {
+    refKey
+  } = _ref3;
+
+  if (!node) {
+    // eslint-disable-next-line no-console
+    console.error("downshift: The ref prop \"" + refKey + "\" from getMenuProps was not applied correctly on your menu element.");
+  }
+}
+
+function validateGetRootPropsCalledCorrectly(element, _ref4) {
+  let {
+    refKey
+  } = _ref4;
+  const refKeySpecified = refKey !== 'ref';
+  const isComposite = !isDOMElement(element);
+
+  if (isComposite && !refKeySpecified && !isForwardRef(element)) {
+    // eslint-disable-next-line no-console
+    console.error('downshift: You returned a non-DOM element. You must specify a refKey in getRootProps');
+  } else if (!isComposite && refKeySpecified) {
+    // eslint-disable-next-line no-console
+    console.error("downshift: You returned a DOM element. You should not specify a refKey in getRootProps. You specified \"" + refKey + "\"");
+  }
+
+  if (!isForwardRef(element) && !getElementProps(element)[refKey]) {
+    // eslint-disable-next-line no-console
+    console.error("downshift: You must apply the ref prop \"" + refKey + "\" from getRootProps onto your root element.");
+  }
+}
+
+const dropdownDefaultStateValues = {
+  highlightedIndex: -1,
+  isOpen: false,
+  selectedItem: null,
+  inputValue: ''
+};
+
+function callOnChangeProps(action, state, newState) {
+  const {
+    props,
+    type
+  } = action;
+  const changes = {};
+  Object.keys(state).forEach(key => {
+    invokeOnChangeHandler(key, action, state, newState);
+
+    if (newState[key] !== state[key]) {
+      changes[key] = newState[key];
+    }
+  });
+
+  if (props.onStateChange && Object.keys(changes).length) {
+    props.onStateChange({
+      type,
+      ...changes
+    });
+  }
+}
+
+function invokeOnChangeHandler(key, action, state, newState) {
+  const {
+    props,
+    type
+  } = action;
+  const handler = "on" + capitalizeString(key) + "Change";
+
+  if (props[handler] && newState[key] !== undefined && newState[key] !== state[key]) {
+    props[handler]({
+      type,
+      ...newState
+    });
+  }
+}
+/**
+ * Default state reducer that returns the changes.
+ *
+ * @param {Object} s state.
+ * @param {Object} a action with changes.
+ * @returns {Object} changes.
+ */
+
+
+function stateReducer(s, a) {
+  return a.changes;
+}
+/**
+ * Returns a message to be added to aria-live region when item is selected.
+ *
+ * @param {Object} selectionParameters Parameters required to build the message.
+ * @returns {string} The a11y message.
+ */
+
+
+function getA11ySelectionMessage(selectionParameters) {
+  const {
+    selectedItem,
+    itemToString: itemToStringLocal
+  } = selectionParameters;
+  return selectedItem ? itemToStringLocal(selectedItem) + " has been selected." : '';
+}
+/**
+ * Debounced call for updating the a11y message.
+ */
+
+
+const updateA11yStatus = downshift_esm_debounce((getA11yMessage, document) => {
+  setStatus(getA11yMessage(), document);
+}, 200); // istanbul ignore next
+
+const downshift_esm_useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? external_React_.useLayoutEffect : external_React_.useEffect;
+
+function useElementIds(_ref) {
+  let {
+    id = "downshift-" + generateId(),
+    labelId,
+    menuId,
+    getItemId,
+    toggleButtonId,
+    inputId
+  } = _ref;
+  const elementIdsRef = (0,external_React_.useRef)({
+    labelId: labelId || id + "-label",
+    menuId: menuId || id + "-menu",
+    getItemId: getItemId || (index => id + "-item-" + index),
+    toggleButtonId: toggleButtonId || id + "-toggle-button",
+    inputId: inputId || id + "-input"
+  });
+  return elementIdsRef.current;
+}
+
+function getItemIndex(index, item, items) {
+  if (index !== undefined) {
+    return index;
+  }
+
+  if (items.length === 0) {
+    return -1;
+  }
+
+  return items.indexOf(item);
+}
+
+function itemToString(item) {
+  return item ? String(item) : '';
+}
+
+function isAcceptedCharacterKey(key) {
+  return /^\S{1}$/.test(key);
+}
+
+function capitalizeString(string) {
+  return "" + string.slice(0, 1).toUpperCase() + string.slice(1);
+}
+
+function useLatestRef(val) {
+  const ref = (0,external_React_.useRef)(val); // technically this is not "concurrent mode safe" because we're manipulating
+  // the value during render (so it's not idempotent). However, the places this
+  // hook is used is to support memoizing callbacks which will be called
+  // *during* render, so we need the latest values *during* render.
+  // If not for this, then we'd probably want to use useLayoutEffect instead.
+
+  ref.current = val;
+  return ref;
+}
+/**
+ * Computes the controlled state using a the previous state, props,
+ * two reducers, one from downshift and an optional one from the user.
+ * Also calls the onChange handlers for state values that have changed.
+ *
+ * @param {Function} reducer Reducer function from downshift.
+ * @param {Object} initialState Initial state of the hook.
+ * @param {Object} props The hook props.
+ * @returns {Array} An array with the state and an action dispatcher.
+ */
+
+
+function useEnhancedReducer(reducer, initialState, props) {
+  const prevStateRef = (0,external_React_.useRef)();
+  const actionRef = (0,external_React_.useRef)();
+  const enhancedReducer = (0,external_React_.useCallback)((state, action) => {
+    actionRef.current = action;
+    state = getState(state, action.props);
+    const changes = reducer(state, action);
+    const newState = action.props.stateReducer(state, { ...action,
+      changes
+    });
+    return newState;
+  }, [reducer]);
+  const [state, dispatch] = (0,external_React_.useReducer)(enhancedReducer, initialState);
+  const propsRef = useLatestRef(props);
+  const dispatchWithProps = (0,external_React_.useCallback)(action => dispatch({
+    props: propsRef.current,
+    ...action
+  }), [propsRef]);
+  const action = actionRef.current;
+  (0,external_React_.useEffect)(() => {
+    if (action && prevStateRef.current && prevStateRef.current !== state) {
+      callOnChangeProps(action, getState(prevStateRef.current, action.props), state);
+    }
+
+    prevStateRef.current = state;
+  }, [state, props, action]);
+  return [state, dispatchWithProps];
+}
+/**
+ * Wraps the useEnhancedReducer and applies the controlled prop values before
+ * returning the new state.
+ *
+ * @param {Function} reducer Reducer function from downshift.
+ * @param {Object} initialState Initial state of the hook.
+ * @param {Object} props The hook props.
+ * @returns {Array} An array with the state and an action dispatcher.
+ */
+
+
+function useControlledReducer$1(reducer, initialState, props) {
+  const [state, dispatch] = useEnhancedReducer(reducer, initialState, props);
+  return [getState(state, props), dispatch];
+}
+
+const defaultProps$3 = {
+  itemToString,
+  stateReducer,
+  getA11ySelectionMessage,
+  scrollIntoView,
+  circularNavigation: false,
+  environment:
+  /* istanbul ignore next (ssr) */
+  typeof window === 'undefined' ? {} : window
+};
+
+function getDefaultValue$1(props, propKey, defaultStateValues) {
+  if (defaultStateValues === void 0) {
+    defaultStateValues = dropdownDefaultStateValues;
+  }
+
+  const defaultValue = props["default" + capitalizeString(propKey)];
+
+  if (defaultValue !== undefined) {
+    return defaultValue;
+  }
+
+  return defaultStateValues[propKey];
+}
+
+function getInitialValue$1(props, propKey, defaultStateValues) {
+  if (defaultStateValues === void 0) {
+    defaultStateValues = dropdownDefaultStateValues;
+  }
+
+  const value = props[propKey];
+
+  if (value !== undefined) {
+    return value;
+  }
+
+  const initialValue = props["initial" + capitalizeString(propKey)];
+
+  if (initialValue !== undefined) {
+    return initialValue;
+  }
+
+  return getDefaultValue$1(props, propKey, defaultStateValues);
+}
+
+function getInitialState$2(props) {
+  const selectedItem = getInitialValue$1(props, 'selectedItem');
+  const isOpen = getInitialValue$1(props, 'isOpen');
+  const highlightedIndex = getInitialValue$1(props, 'highlightedIndex');
+  const inputValue = getInitialValue$1(props, 'inputValue');
   return {
-    KeyboardShortcutRow: {
-      listStyle: 'none',
-      margin: '6px 0'
-    },
-
-    KeyboardShortcutRow__block: {
-      marginBottom: 16
-    },
-
-    KeyboardShortcutRow_keyContainer: {
-      display: 'inline-block',
-      whiteSpace: 'nowrap',
-      textAlign: 'right',
-      marginRight: 6
-    },
-
-    KeyboardShortcutRow_keyContainer__block: {
-      textAlign: 'left',
-      display: 'inline'
-    },
-
-    KeyboardShortcutRow_key: {
-      fontFamily: 'monospace',
-      fontSize: 12,
-      textTransform: 'uppercase',
-      background: color.core.grayLightest,
-      padding: '2px 6px'
-    },
-
-    KeyboardShortcutRow_action: {
-      display: 'inline',
-      wordBreak: 'break-word',
-      marginLeft: 8
-    }
-  };
-})(KeyboardShortcutRow);
-
-/***/ }),
-
-/***/ "zTEx":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ToolbarItem; });
-/* unused harmony export useToolbarItem */
-/* harmony import */ var reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("hE48");
-/* harmony import */ var reakit_system_createHook__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("qdes");
-/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("cDcd");
-/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
-/* harmony import */ var reakit_warning__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("KA1K");
-/* harmony import */ var _Composite_CompositeItem_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("kTC8");
-/* harmony import */ var _keys_ae468c11_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("mjVI");
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-var useToolbarItem = Object(reakit_system_createHook__WEBPACK_IMPORTED_MODULE_1__[/* createHook */ "a"])({
+    highlightedIndex: highlightedIndex < 0 && selectedItem && isOpen ? props.items.indexOf(selectedItem) : highlightedIndex,
+    isOpen,
+    selectedItem,
+    inputValue
+  };
+}
+
+function getHighlightedIndexOnOpen(props, state, offset, getItemNodeFromIndex) {
+  const {
+    items,
+    initialHighlightedIndex,
+    defaultHighlightedIndex
+  } = props;
+  const {
+    selectedItem,
+    highlightedIndex
+  } = state;
+
+  if (items.length === 0) {
+    return -1;
+  } // initialHighlightedIndex will give value to highlightedIndex on initial state only.
+
+
+  if (initialHighlightedIndex !== undefined && highlightedIndex === initialHighlightedIndex) {
+    return initialHighlightedIndex;
+  }
+
+  if (defaultHighlightedIndex !== undefined) {
+    return defaultHighlightedIndex;
+  }
+
+  if (selectedItem) {
+    if (offset === 0) {
+      return items.indexOf(selectedItem);
+    }
+
+    return getNextWrappingIndex(offset, items.indexOf(selectedItem), items.length, getItemNodeFromIndex, false);
+  }
+
+  if (offset === 0) {
+    return -1;
+  }
+
+  return offset < 0 ? items.length - 1 : 0;
+}
+/**
+ * Reuse the movement tracking of mouse and touch events.
+ *
+ * @param {boolean} isOpen Whether the dropdown is open or not.
+ * @param {Array<Object>} downshiftElementRefs Downshift element refs to track movement (toggleButton, menu etc.)
+ * @param {Object} environment Environment where component/hook exists.
+ * @param {Function} handleBlur Handler on blur from mouse or touch.
+ * @returns {Object} Ref containing whether mouseDown or touchMove event is happening
+ */
+
+
+function useMouseAndTouchTracker(isOpen, downshiftElementRefs, environment, handleBlur) {
+  const mouseAndTouchTrackersRef = (0,external_React_.useRef)({
+    isMouseDown: false,
+    isTouchMove: false
+  });
+  (0,external_React_.useEffect)(() => {
+    // The same strategy for checking if a click occurred inside or outside downsift
+    // as in downshift.js.
+    const onMouseDown = () => {
+      mouseAndTouchTrackersRef.current.isMouseDown = true;
+    };
+
+    const onMouseUp = event => {
+      mouseAndTouchTrackersRef.current.isMouseDown = false;
+
+      if (isOpen && !targetWithinDownshift(event.target, downshiftElementRefs.map(ref => ref.current), environment)) {
+        handleBlur();
+      }
+    };
+
+    const onTouchStart = () => {
+      mouseAndTouchTrackersRef.current.isTouchMove = false;
+    };
+
+    const onTouchMove = () => {
+      mouseAndTouchTrackersRef.current.isTouchMove = true;
+    };
+
+    const onTouchEnd = event => {
+      if (isOpen && !mouseAndTouchTrackersRef.current.isTouchMove && !targetWithinDownshift(event.target, downshiftElementRefs.map(ref => ref.current), environment, false)) {
+        handleBlur();
+      }
+    };
+
+    environment.addEventListener('mousedown', onMouseDown);
+    environment.addEventListener('mouseup', onMouseUp);
+    environment.addEventListener('touchstart', onTouchStart);
+    environment.addEventListener('touchmove', onTouchMove);
+    environment.addEventListener('touchend', onTouchEnd);
+    return function cleanup() {
+      environment.removeEventListener('mousedown', onMouseDown);
+      environment.removeEventListener('mouseup', onMouseUp);
+      environment.removeEventListener('touchstart', onTouchStart);
+      environment.removeEventListener('touchmove', onTouchMove);
+      environment.removeEventListener('touchend', onTouchEnd);
+    }; // eslint-disable-next-line react-hooks/exhaustive-deps
+  }, [isOpen, environment]);
+  return mouseAndTouchTrackersRef;
+}
+/* istanbul ignore next */
+// eslint-disable-next-line import/no-mutable-exports
+
+
+let useGetterPropsCalledChecker = () => downshift_esm_noop;
+/**
+ * Custom hook that checks if getter props are called correctly.
+ *
+ * @param  {...any} propKeys Getter prop names to be handled.
+ * @returns {Function} Setter function called inside getter props to set call information.
+ */
+
+/* istanbul ignore next */
+
+
+if (false) {}
+
+function useA11yMessageSetter(getA11yMessage, dependencyArray, _ref2) {
+  let {
+    isInitialMount,
+    highlightedIndex,
+    items,
+    environment,
+    ...rest
+  } = _ref2;
+  // Sets a11y status message on changes in state.
+  (0,external_React_.useEffect)(() => {
+    if (isInitialMount || false) {
+      return;
+    }
+
+    updateA11yStatus(() => getA11yMessage({
+      highlightedIndex,
+      highlightedItem: items[highlightedIndex],
+      resultCount: items.length,
+      ...rest
+    }), environment.document); // eslint-disable-next-line react-hooks/exhaustive-deps
+  }, dependencyArray);
+}
+
+function useScrollIntoView(_ref3) {
+  let {
+    highlightedIndex,
+    isOpen,
+    itemRefs,
+    getItemNodeFromIndex,
+    menuElement,
+    scrollIntoView: scrollIntoViewProp
+  } = _ref3;
+  // used not to scroll on highlight by mouse.
+  const shouldScrollRef = (0,external_React_.useRef)(true); // Scroll on highlighted item if change comes from keyboard.
+
+  downshift_esm_useIsomorphicLayoutEffect(() => {
+    if (highlightedIndex < 0 || !isOpen || !Object.keys(itemRefs.current).length) {
+      return;
+    }
+
+    if (shouldScrollRef.current === false) {
+      shouldScrollRef.current = true;
+    } else {
+      scrollIntoViewProp(getItemNodeFromIndex(highlightedIndex), menuElement);
+    } // eslint-disable-next-line react-hooks/exhaustive-deps
+
+  }, [highlightedIndex]);
+  return shouldScrollRef;
+} // eslint-disable-next-line import/no-mutable-exports
+
+
+let useControlPropsValidator = downshift_esm_noop;
+/* istanbul ignore next */
+
+if (false) {}
+
+/* eslint-disable complexity */
+
+function downshiftCommonReducer(state, action, stateChangeTypes) {
+  const {
+    type,
+    props
+  } = action;
+  let changes;
+
+  switch (type) {
+    case stateChangeTypes.ItemMouseMove:
+      changes = {
+        highlightedIndex: action.index
+      };
+      break;
+
+    case stateChangeTypes.MenuMouseLeave:
+      changes = {
+        highlightedIndex: -1
+      };
+      break;
+
+    case stateChangeTypes.ToggleButtonClick:
+    case stateChangeTypes.FunctionToggleMenu:
+      changes = {
+        isOpen: !state.isOpen,
+        highlightedIndex: state.isOpen ? -1 : getHighlightedIndexOnOpen(props, state, 0)
+      };
+      break;
+
+    case stateChangeTypes.FunctionOpenMenu:
+      changes = {
+        isOpen: true,
+        highlightedIndex: getHighlightedIndexOnOpen(props, state, 0)
+      };
+      break;
+
+    case stateChangeTypes.FunctionCloseMenu:
+      changes = {
+        isOpen: false
+      };
+      break;
+
+    case stateChangeTypes.FunctionSetHighlightedIndex:
+      changes = {
+        highlightedIndex: action.highlightedIndex
+      };
+      break;
+
+    case stateChangeTypes.FunctionSetInputValue:
+      changes = {
+        inputValue: action.inputValue
+      };
+      break;
+
+    case stateChangeTypes.FunctionReset:
+      changes = {
+        highlightedIndex: getDefaultValue$1(props, 'highlightedIndex'),
+        isOpen: getDefaultValue$1(props, 'isOpen'),
+        selectedItem: getDefaultValue$1(props, 'selectedItem'),
+        inputValue: getDefaultValue$1(props, 'inputValue')
+      };
+      break;
+
+    default:
+      throw new Error('Reducer called without proper action type.');
+  }
+
+  return { ...state,
+    ...changes
+  };
+}
+/* eslint-enable complexity */
+
+function getItemIndexByCharacterKey(_a) {
+    var keysSoFar = _a.keysSoFar, highlightedIndex = _a.highlightedIndex, items = _a.items, itemToString = _a.itemToString, getItemNodeFromIndex = _a.getItemNodeFromIndex;
+    var lowerCasedKeysSoFar = keysSoFar.toLowerCase();
+    for (var index = 0; index < items.length; index++) {
+        var offsetIndex = (index + highlightedIndex + 1) % items.length;
+        var item = items[offsetIndex];
+        if (item !== undefined &&
+            itemToString(item)
+                .toLowerCase()
+                .startsWith(lowerCasedKeysSoFar)) {
+            var element = getItemNodeFromIndex(offsetIndex);
+            if (!(element === null || element === void 0 ? void 0 : element.hasAttribute('disabled'))) {
+                return offsetIndex;
+            }
+        }
+    }
+    return highlightedIndex;
+}
+var propTypes$2 = {
+    items: (prop_types_default()).array.isRequired,
+    itemToString: (prop_types_default()).func,
+    getA11yStatusMessage: (prop_types_default()).func,
+    getA11ySelectionMessage: (prop_types_default()).func,
+    circularNavigation: (prop_types_default()).bool,
+    highlightedIndex: (prop_types_default()).number,
+    defaultHighlightedIndex: (prop_types_default()).number,
+    initialHighlightedIndex: (prop_types_default()).number,
+    isOpen: (prop_types_default()).bool,
+    defaultIsOpen: (prop_types_default()).bool,
+    initialIsOpen: (prop_types_default()).bool,
+    selectedItem: (prop_types_default()).any,
+    initialSelectedItem: (prop_types_default()).any,
+    defaultSelectedItem: (prop_types_default()).any,
+    id: (prop_types_default()).string,
+    labelId: (prop_types_default()).string,
+    menuId: (prop_types_default()).string,
+    getItemId: (prop_types_default()).func,
+    toggleButtonId: (prop_types_default()).string,
+    stateReducer: (prop_types_default()).func,
+    onSelectedItemChange: (prop_types_default()).func,
+    onHighlightedIndexChange: (prop_types_default()).func,
+    onStateChange: (prop_types_default()).func,
+    onIsOpenChange: (prop_types_default()).func,
+    environment: prop_types_default().shape({
+        addEventListener: (prop_types_default()).func,
+        removeEventListener: (prop_types_default()).func,
+        document: prop_types_default().shape({
+            getElementById: (prop_types_default()).func,
+            activeElement: (prop_types_default()).any,
+            body: (prop_types_default()).any
+        })
+    })
+};
+/**
+ * Default implementation for status message. Only added when menu is open.
+ * Will specift if there are results in the list, and if so, how many,
+ * and what keys are relevant.
+ *
+ * @param {Object} param the downshift state and other relevant properties
+ * @return {String} the a11y status message
+ */
+function getA11yStatusMessage(_a) {
+    var isOpen = _a.isOpen, resultCount = _a.resultCount, previousResultCount = _a.previousResultCount;
+    if (!isOpen) {
+        return '';
+    }
+    if (!resultCount) {
+        return 'No results are available.';
+    }
+    if (resultCount !== previousResultCount) {
+        return "".concat(resultCount, " result").concat(resultCount === 1 ? ' is' : 's are', " available, use up and down arrow keys to navigate. Press Enter or Space Bar keys to select.");
+    }
+    return '';
+}
+var defaultProps$2 = __assign(__assign({}, defaultProps$3), { getA11yStatusMessage: getA11yStatusMessage });
+// eslint-disable-next-line import/no-mutable-exports
+var validatePropTypes$2 = downshift_esm_noop;
+/* istanbul ignore next */
+if (false) {}
+
+const MenuKeyDownArrowDown =  false ? 0 : 0;
+const MenuKeyDownArrowUp =  false ? 0 : 1;
+const MenuKeyDownEscape =  false ? 0 : 2;
+const MenuKeyDownHome =  false ? 0 : 3;
+const MenuKeyDownEnd =  false ? 0 : 4;
+const MenuKeyDownEnter =  false ? 0 : 5;
+const MenuKeyDownSpaceButton =  false ? 0 : 6;
+const MenuKeyDownCharacter =  false ? 0 : 7;
+const MenuBlur =  false ? 0 : 8;
+const MenuMouseLeave$1 =  false ? 0 : 9;
+const ItemMouseMove$1 =  false ? 0 : 10;
+const ItemClick$1 =  false ? 0 : 11;
+const ToggleButtonClick$1 =  false ? 0 : 12;
+const ToggleButtonKeyDownArrowDown =  false ? 0 : 13;
+const ToggleButtonKeyDownArrowUp =  false ? 0 : 14;
+const ToggleButtonKeyDownCharacter =  false ? 0 : 15;
+const FunctionToggleMenu$1 =  false ? 0 : 16;
+const FunctionOpenMenu$1 =  false ? 0 : 17;
+const FunctionCloseMenu$1 =  false ? 0 : 18;
+const FunctionSetHighlightedIndex$1 =  false ? 0 : 19;
+const FunctionSelectItem$1 =  false ? 0 : 20;
+const FunctionSetInputValue$1 =  false ? 0 : 21;
+const FunctionReset$2 =  false ? 0 : 22;
+
+var stateChangeTypes$2 = /*#__PURE__*/Object.freeze({
+  __proto__: null,
+  MenuKeyDownArrowDown: MenuKeyDownArrowDown,
+  MenuKeyDownArrowUp: MenuKeyDownArrowUp,
+  MenuKeyDownEscape: MenuKeyDownEscape,
+  MenuKeyDownHome: MenuKeyDownHome,
+  MenuKeyDownEnd: MenuKeyDownEnd,
+  MenuKeyDownEnter: MenuKeyDownEnter,
+  MenuKeyDownSpaceButton: MenuKeyDownSpaceButton,
+  MenuKeyDownCharacter: MenuKeyDownCharacter,
+  MenuBlur: MenuBlur,
+  MenuMouseLeave: MenuMouseLeave$1,
+  ItemMouseMove: ItemMouseMove$1,
+  ItemClick: ItemClick$1,
+  ToggleButtonClick: ToggleButtonClick$1,
+  ToggleButtonKeyDownArrowDown: ToggleButtonKeyDownArrowDown,
+  ToggleButtonKeyDownArrowUp: ToggleButtonKeyDownArrowUp,
+  ToggleButtonKeyDownCharacter: ToggleButtonKeyDownCharacter,
+  FunctionToggleMenu: FunctionToggleMenu$1,
+  FunctionOpenMenu: FunctionOpenMenu$1,
+  FunctionCloseMenu: FunctionCloseMenu$1,
+  FunctionSetHighlightedIndex: FunctionSetHighlightedIndex$1,
+  FunctionSelectItem: FunctionSelectItem$1,
+  FunctionSetInputValue: FunctionSetInputValue$1,
+  FunctionReset: FunctionReset$2
+});
+
+/* eslint-disable complexity */
+
+function downshiftSelectReducer(state, action) {
+  const {
+    type,
+    props,
+    shiftKey
+  } = action;
+  let changes;
+
+  switch (type) {
+    case ItemClick$1:
+      changes = {
+        isOpen: getDefaultValue$1(props, 'isOpen'),
+        highlightedIndex: getDefaultValue$1(props, 'highlightedIndex'),
+        selectedItem: props.items[action.index]
+      };
+      break;
+
+    case ToggleButtonKeyDownCharacter:
+      {
+        const lowercasedKey = action.key;
+        const inputValue = "" + state.inputValue + lowercasedKey;
+        const itemIndex = getItemIndexByCharacterKey({
+          keysSoFar: inputValue,
+          highlightedIndex: state.selectedItem ? props.items.indexOf(state.selectedItem) : -1,
+          items: props.items,
+          itemToString: props.itemToString,
+          getItemNodeFromIndex: action.getItemNodeFromIndex
+        });
+        changes = {
+          inputValue,
+          ...(itemIndex >= 0 && {
+            selectedItem: props.items[itemIndex]
+          })
+        };
+      }
+      break;
+
+    case ToggleButtonKeyDownArrowDown:
+      changes = {
+        highlightedIndex: getHighlightedIndexOnOpen(props, state, 1, action.getItemNodeFromIndex),
+        isOpen: true
+      };
+      break;
+
+    case ToggleButtonKeyDownArrowUp:
+      changes = {
+        highlightedIndex: getHighlightedIndexOnOpen(props, state, -1, action.getItemNodeFromIndex),
+        isOpen: true
+      };
+      break;
+
+    case MenuKeyDownEnter:
+    case MenuKeyDownSpaceButton:
+      changes = {
+        isOpen: getDefaultValue$1(props, 'isOpen'),
+        highlightedIndex: getDefaultValue$1(props, 'highlightedIndex'),
+        ...(state.highlightedIndex >= 0 && {
+          selectedItem: props.items[state.highlightedIndex]
+        })
+      };
+      break;
+
+    case MenuKeyDownHome:
+      changes = {
+        highlightedIndex: getNextNonDisabledIndex(1, 0, props.items.length, action.getItemNodeFromIndex, false)
+      };
+      break;
+
+    case MenuKeyDownEnd:
+      changes = {
+        highlightedIndex: getNextNonDisabledIndex(-1, props.items.length - 1, props.items.length, action.getItemNodeFromIndex, false)
+      };
+      break;
+
+    case MenuKeyDownEscape:
+      changes = {
+        isOpen: false,
+        highlightedIndex: -1
+      };
+      break;
+
+    case MenuBlur:
+      changes = {
+        isOpen: false,
+        highlightedIndex: -1
+      };
+      break;
+
+    case MenuKeyDownCharacter:
+      {
+        const lowercasedKey = action.key;
+        const inputValue = "" + state.inputValue + lowercasedKey;
+        const highlightedIndex = getItemIndexByCharacterKey({
+          keysSoFar: inputValue,
+          highlightedIndex: state.highlightedIndex,
+          items: props.items,
+          itemToString: props.itemToString,
+          getItemNodeFromIndex: action.getItemNodeFromIndex
+        });
+        changes = {
+          inputValue,
+          ...(highlightedIndex >= 0 && {
+            highlightedIndex
+          })
+        };
+      }
+      break;
+
+    case MenuKeyDownArrowDown:
+      changes = {
+        highlightedIndex: getNextWrappingIndex(shiftKey ? 5 : 1, state.highlightedIndex, props.items.length, action.getItemNodeFromIndex, props.circularNavigation)
+      };
+      break;
+
+    case MenuKeyDownArrowUp:
+      changes = {
+        highlightedIndex: getNextWrappingIndex(shiftKey ? -5 : -1, state.highlightedIndex, props.items.length, action.getItemNodeFromIndex, props.circularNavigation)
+      };
+      break;
+
+    case FunctionSelectItem$1:
+      changes = {
+        selectedItem: action.selectedItem
+      };
+      break;
+
+    default:
+      return downshiftCommonReducer(state, action, stateChangeTypes$2);
+  }
+
+  return { ...state,
+    ...changes
+  };
+}
+/* eslint-enable complexity */
+
+/* eslint-disable max-statements */
+useSelect.stateChangeTypes = stateChangeTypes$2;
+
+function useSelect(userProps) {
+  if (userProps === void 0) {
+    userProps = {};
+  }
+
+  validatePropTypes$2(userProps, useSelect); // Props defaults and destructuring.
+
+  const props = { ...defaultProps$2,
+    ...userProps
+  };
+  const {
+    items,
+    scrollIntoView,
+    environment,
+    initialIsOpen,
+    defaultIsOpen,
+    itemToString,
+    getA11ySelectionMessage,
+    getA11yStatusMessage
+  } = props; // Initial state depending on controlled props.
+
+  const initialState = getInitialState$2(props);
+  const [state, dispatch] = useControlledReducer$1(downshiftSelectReducer, initialState, props);
+  const {
+    isOpen,
+    highlightedIndex,
+    selectedItem,
+    inputValue
+  } = state; // Element efs.
+
+  const toggleButtonRef = (0,external_React_.useRef)(null);
+  const menuRef = (0,external_React_.useRef)(null);
+  const itemRefs = (0,external_React_.useRef)({}); // used not to trigger menu blur action in some scenarios.
+
+  const shouldBlurRef = (0,external_React_.useRef)(true); // used to keep the inputValue clearTimeout object between renders.
+
+  const clearTimeoutRef = (0,external_React_.useRef)(null); // prevent id re-generation between renders.
+
+  const elementIds = useElementIds(props); // used to keep track of how many items we had on previous cycle.
+
+  const previousResultCountRef = (0,external_React_.useRef)();
+  const isInitialMountRef = (0,external_React_.useRef)(true); // utility callback to get item element.
+
+  const latest = useLatestRef({
+    state,
+    props
+  }); // Some utils.
+
+  const getItemNodeFromIndex = (0,external_React_.useCallback)(index => itemRefs.current[elementIds.getItemId(index)], [elementIds]); // Effects.
+  // Sets a11y status message on changes in state.
+
+  useA11yMessageSetter(getA11yStatusMessage, [isOpen, highlightedIndex, inputValue, items], {
+    isInitialMount: isInitialMountRef.current,
+    previousResultCount: previousResultCountRef.current,
+    items,
+    environment,
+    itemToString,
+    ...state
+  }); // Sets a11y status message on changes in selectedItem.
+
+  useA11yMessageSetter(getA11ySelectionMessage, [selectedItem], {
+    isInitialMount: isInitialMountRef.current,
+    previousResultCount: previousResultCountRef.current,
+    items,
+    environment,
+    itemToString,
+    ...state
+  }); // Scroll on highlighted item if change comes from keyboard.
+
+  const shouldScrollRef = useScrollIntoView({
+    menuElement: menuRef.current,
+    highlightedIndex,
+    isOpen,
+    itemRefs,
+    scrollIntoView,
+    getItemNodeFromIndex
+  }); // Sets cleanup for the keysSoFar callback, debounded after 500ms.
+
+  (0,external_React_.useEffect)(() => {
+    // init the clean function here as we need access to dispatch.
+    clearTimeoutRef.current = downshift_esm_debounce(outerDispatch => {
+      outerDispatch({
+        type: FunctionSetInputValue$1,
+        inputValue: ''
+      });
+    }, 500); // Cancel any pending debounced calls on mount
+
+    return () => {
+      clearTimeoutRef.current.cancel();
+    };
+  }, []); // Invokes the keysSoFar callback set up above.
+
+  (0,external_React_.useEffect)(() => {
+    if (!inputValue) {
+      return;
+    }
+
+    clearTimeoutRef.current(dispatch);
+  }, [dispatch, inputValue]);
+  useControlPropsValidator({
+    isInitialMount: isInitialMountRef.current,
+    props,
+    state
+  });
+  /* Controls the focus on the menu or the toggle button. */
+
+  (0,external_React_.useEffect)(() => {
+    // Don't focus menu on first render.
+    if (isInitialMountRef.current) {
+      // Unless it was initialised as open.
+      if ((initialIsOpen || defaultIsOpen || isOpen) && menuRef.current) {
+        menuRef.current.focus();
+      }
+
+      return;
+    } // Focus menu on open.
+
+
+    if (isOpen) {
+      // istanbul ignore else
+      if (menuRef.current) {
+        menuRef.current.focus();
+      }
+
+      return;
+    } // Focus toggleButton on close, but not if it was closed with (Shift+)Tab.
+
+
+    if (environment.document.activeElement === menuRef.current) {
+      // istanbul ignore else
+      if (toggleButtonRef.current) {
+        shouldBlurRef.current = false;
+        toggleButtonRef.current.focus();
+      }
+    } // eslint-disable-next-line react-hooks/exhaustive-deps
+
+  }, [isOpen]);
+  (0,external_React_.useEffect)(() => {
+    if (isInitialMountRef.current) {
+      return;
+    }
+
+    previousResultCountRef.current = items.length;
+  }); // Add mouse/touch events to document.
+
+  const mouseAndTouchTrackersRef = useMouseAndTouchTracker(isOpen, [menuRef, toggleButtonRef], environment, () => {
+    dispatch({
+      type: MenuBlur
+    });
+  });
+  const setGetterPropCallInfo = useGetterPropsCalledChecker('getMenuProps', 'getToggleButtonProps'); // Make initial ref false.
+
+  (0,external_React_.useEffect)(() => {
+    isInitialMountRef.current = false;
+  }, []); // Reset itemRefs on close.
+
+  (0,external_React_.useEffect)(() => {
+    if (!isOpen) {
+      itemRefs.current = {};
+    }
+  }, [isOpen]); // Event handler functions.
+
+  const toggleButtonKeyDownHandlers = (0,external_React_.useMemo)(() => ({
+    ArrowDown(event) {
+      event.preventDefault();
+      dispatch({
+        type: ToggleButtonKeyDownArrowDown,
+        getItemNodeFromIndex,
+        shiftKey: event.shiftKey
+      });
+    },
+
+    ArrowUp(event) {
+      event.preventDefault();
+      dispatch({
+        type: ToggleButtonKeyDownArrowUp,
+        getItemNodeFromIndex,
+        shiftKey: event.shiftKey
+      });
+    }
+
+  }), [dispatch, getItemNodeFromIndex]);
+  const menuKeyDownHandlers = (0,external_React_.useMemo)(() => ({
+    ArrowDown(event) {
+      event.preventDefault();
+      dispatch({
+        type: MenuKeyDownArrowDown,
+        getItemNodeFromIndex,
+        shiftKey: event.shiftKey
+      });
+    },
+
+    ArrowUp(event) {
+      event.preventDefault();
+      dispatch({
+        type: MenuKeyDownArrowUp,
+        getItemNodeFromIndex,
+        shiftKey: event.shiftKey
+      });
+    },
+
+    Home(event) {
+      event.preventDefault();
+      dispatch({
+        type: MenuKeyDownHome,
+        getItemNodeFromIndex
+      });
+    },
+
+    End(event) {
+      event.preventDefault();
+      dispatch({
+        type: MenuKeyDownEnd,
+        getItemNodeFromIndex
+      });
+    },
+
+    Escape() {
+      dispatch({
+        type: MenuKeyDownEscape
+      });
+    },
+
+    Enter(event) {
+      event.preventDefault();
+      dispatch({
+        type: MenuKeyDownEnter
+      });
+    },
+
+    ' '(event) {
+      event.preventDefault();
+      dispatch({
+        type: MenuKeyDownSpaceButton
+      });
+    }
+
+  }), [dispatch, getItemNodeFromIndex]); // Action functions.
+
+  const toggleMenu = (0,external_React_.useCallback)(() => {
+    dispatch({
+      type: FunctionToggleMenu$1
+    });
+  }, [dispatch]);
+  const closeMenu = (0,external_React_.useCallback)(() => {
+    dispatch({
+      type: FunctionCloseMenu$1
+    });
+  }, [dispatch]);
+  const openMenu = (0,external_React_.useCallback)(() => {
+    dispatch({
+      type: FunctionOpenMenu$1
+    });
+  }, [dispatch]);
+  const setHighlightedIndex = (0,external_React_.useCallback)(newHighlightedIndex => {
+    dispatch({
+      type: FunctionSetHighlightedIndex$1,
+      highlightedIndex: newHighlightedIndex
+    });
+  }, [dispatch]);
+  const selectItem = (0,external_React_.useCallback)(newSelectedItem => {
+    dispatch({
+      type: FunctionSelectItem$1,
+      selectedItem: newSelectedItem
+    });
+  }, [dispatch]);
+  const reset = (0,external_React_.useCallback)(() => {
+    dispatch({
+      type: FunctionReset$2
+    });
+  }, [dispatch]);
+  const setInputValue = (0,external_React_.useCallback)(newInputValue => {
+    dispatch({
+      type: FunctionSetInputValue$1,
+      inputValue: newInputValue
+    });
+  }, [dispatch]); // Getter functions.
+
+  const getLabelProps = (0,external_React_.useCallback)(labelProps => ({
+    id: elementIds.labelId,
+    htmlFor: elementIds.toggleButtonId,
+    ...labelProps
+  }), [elementIds]);
+  const getMenuProps = (0,external_React_.useCallback)(function (_temp, _temp2) {
+    let {
+      onMouseLeave,
+      refKey = 'ref',
+      onKeyDown,
+      onBlur,
+      ref,
+      ...rest
+    } = _temp === void 0 ? {} : _temp;
+    let {
+      suppressRefError = false
+    } = _temp2 === void 0 ? {} : _temp2;
+    const latestState = latest.current.state;
+
+    const menuHandleKeyDown = event => {
+      const key = normalizeArrowKey(event);
+
+      if (key && menuKeyDownHandlers[key]) {
+        menuKeyDownHandlers[key](event);
+      } else if (isAcceptedCharacterKey(key)) {
+        dispatch({
+          type: MenuKeyDownCharacter,
+          key,
+          getItemNodeFromIndex
+        });
+      }
+    };
+
+    const menuHandleBlur = () => {
+      // if the blur was a result of selection, we don't trigger this action.
+      if (shouldBlurRef.current === false) {
+        shouldBlurRef.current = true;
+        return;
+      }
+
+      const shouldBlur = !mouseAndTouchTrackersRef.current.isMouseDown;
+      /* istanbul ignore else */
+
+      if (shouldBlur) {
+        dispatch({
+          type: MenuBlur
+        });
+      }
+    };
+
+    const menuHandleMouseLeave = () => {
+      dispatch({
+        type: MenuMouseLeave$1
+      });
+    };
+
+    setGetterPropCallInfo('getMenuProps', suppressRefError, refKey, menuRef);
+    return {
+      [refKey]: handleRefs(ref, menuNode => {
+        menuRef.current = menuNode;
+      }),
+      id: elementIds.menuId,
+      role: 'listbox',
+      'aria-labelledby': elementIds.labelId,
+      tabIndex: -1,
+      ...(latestState.isOpen && latestState.highlightedIndex > -1 && {
+        'aria-activedescendant': elementIds.getItemId(latestState.highlightedIndex)
+      }),
+      onMouseLeave: callAllEventHandlers(onMouseLeave, menuHandleMouseLeave),
+      onKeyDown: callAllEventHandlers(onKeyDown, menuHandleKeyDown),
+      onBlur: callAllEventHandlers(onBlur, menuHandleBlur),
+      ...rest
+    };
+  }, [dispatch, latest, menuKeyDownHandlers, mouseAndTouchTrackersRef, setGetterPropCallInfo, elementIds, getItemNodeFromIndex]);
+  const getToggleButtonProps = (0,external_React_.useCallback)(function (_temp3, _temp4) {
+    let {
+      onClick,
+      onKeyDown,
+      refKey = 'ref',
+      ref,
+      ...rest
+    } = _temp3 === void 0 ? {} : _temp3;
+    let {
+      suppressRefError = false
+    } = _temp4 === void 0 ? {} : _temp4;
+
+    const toggleButtonHandleClick = () => {
+      dispatch({
+        type: ToggleButtonClick$1
+      });
+    };
+
+    const toggleButtonHandleKeyDown = event => {
+      const key = normalizeArrowKey(event);
+
+      if (key && toggleButtonKeyDownHandlers[key]) {
+        toggleButtonKeyDownHandlers[key](event);
+      } else if (isAcceptedCharacterKey(key)) {
+        dispatch({
+          type: ToggleButtonKeyDownCharacter,
+          key,
+          getItemNodeFromIndex
+        });
+      }
+    };
+
+    const toggleProps = {
+      [refKey]: handleRefs(ref, toggleButtonNode => {
+        toggleButtonRef.current = toggleButtonNode;
+      }),
+      id: elementIds.toggleButtonId,
+      'aria-haspopup': 'listbox',
+      'aria-expanded': latest.current.state.isOpen,
+      'aria-labelledby': elementIds.labelId + " " + elementIds.toggleButtonId,
+      ...rest
+    };
+
+    if (!rest.disabled) {
+      toggleProps.onClick = callAllEventHandlers(onClick, toggleButtonHandleClick);
+      toggleProps.onKeyDown = callAllEventHandlers(onKeyDown, toggleButtonHandleKeyDown);
+    }
+
+    setGetterPropCallInfo('getToggleButtonProps', suppressRefError, refKey, toggleButtonRef);
+    return toggleProps;
+  }, [dispatch, latest, toggleButtonKeyDownHandlers, setGetterPropCallInfo, elementIds, getItemNodeFromIndex]);
+  const getItemProps = (0,external_React_.useCallback)(function (_temp5) {
+    let {
+      item,
+      index,
+      onMouseMove,
+      onClick,
+      refKey = 'ref',
+      ref,
+      ...rest
+    } = _temp5 === void 0 ? {} : _temp5;
+    const {
+      state: latestState,
+      props: latestProps
+    } = latest.current;
+
+    const itemHandleMouseMove = () => {
+      if (index === latestState.highlightedIndex) {
+        return;
+      }
+
+      shouldScrollRef.current = false;
+      dispatch({
+        type: ItemMouseMove$1,
+        index
+      });
+    };
+
+    const itemHandleClick = () => {
+      dispatch({
+        type: ItemClick$1,
+        index
+      });
+    };
+
+    const itemIndex = getItemIndex(index, item, latestProps.items);
+
+    if (itemIndex < 0) {
+      throw new Error('Pass either item or item index in getItemProps!');
+    }
+
+    const itemProps = {
+      role: 'option',
+      'aria-selected': "" + (itemIndex === latestState.highlightedIndex),
+      id: elementIds.getItemId(itemIndex),
+      [refKey]: handleRefs(ref, itemNode => {
+        if (itemNode) {
+          itemRefs.current[elementIds.getItemId(itemIndex)] = itemNode;
+        }
+      }),
+      ...rest
+    };
+
+    if (!rest.disabled) {
+      itemProps.onMouseMove = callAllEventHandlers(onMouseMove, itemHandleMouseMove);
+      itemProps.onClick = callAllEventHandlers(onClick, itemHandleClick);
+    }
+
+    return itemProps;
+  }, [dispatch, latest, shouldScrollRef, elementIds]);
+  return {
+    // prop getters.
+    getToggleButtonProps,
+    getLabelProps,
+    getMenuProps,
+    getItemProps,
+    // actions.
+    toggleMenu,
+    openMenu,
+    closeMenu,
+    setHighlightedIndex,
+    selectItem,
+    reset,
+    setInputValue,
+    // state.
+    highlightedIndex,
+    isOpen,
+    selectedItem,
+    inputValue
+  };
+}
+
+const InputKeyDownArrowDown =  false ? 0 : 0;
+const InputKeyDownArrowUp =  false ? 0 : 1;
+const InputKeyDownEscape =  false ? 0 : 2;
+const InputKeyDownHome =  false ? 0 : 3;
+const InputKeyDownEnd =  false ? 0 : 4;
+const InputKeyDownEnter =  false ? 0 : 5;
+const InputChange =  false ? 0 : 6;
+const InputBlur =  false ? 0 : 7;
+const MenuMouseLeave =  false ? 0 : 8;
+const ItemMouseMove =  false ? 0 : 9;
+const ItemClick =  false ? 0 : 10;
+const ToggleButtonClick =  false ? 0 : 11;
+const FunctionToggleMenu =  false ? 0 : 12;
+const FunctionOpenMenu =  false ? 0 : 13;
+const FunctionCloseMenu =  false ? 0 : 14;
+const FunctionSetHighlightedIndex =  false ? 0 : 15;
+const FunctionSelectItem =  false ? 0 : 16;
+const FunctionSetInputValue =  false ? 0 : 17;
+const FunctionReset$1 =  false ? 0 : 18;
+const ControlledPropUpdatedSelectedItem =  false ? 0 : 19;
+
+var stateChangeTypes$1 = /*#__PURE__*/Object.freeze({
+  __proto__: null,
+  InputKeyDownArrowDown: InputKeyDownArrowDown,
+  InputKeyDownArrowUp: InputKeyDownArrowUp,
+  InputKeyDownEscape: InputKeyDownEscape,
+  InputKeyDownHome: InputKeyDownHome,
+  InputKeyDownEnd: InputKeyDownEnd,
+  InputKeyDownEnter: InputKeyDownEnter,
+  InputChange: InputChange,
+  InputBlur: InputBlur,
+  MenuMouseLeave: MenuMouseLeave,
+  ItemMouseMove: ItemMouseMove,
+  ItemClick: ItemClick,
+  ToggleButtonClick: ToggleButtonClick,
+  FunctionToggleMenu: FunctionToggleMenu,
+  FunctionOpenMenu: FunctionOpenMenu,
+  FunctionCloseMenu: FunctionCloseMenu,
+  FunctionSetHighlightedIndex: FunctionSetHighlightedIndex,
+  FunctionSelectItem: FunctionSelectItem,
+  FunctionSetInputValue: FunctionSetInputValue,
+  FunctionReset: FunctionReset$1,
+  ControlledPropUpdatedSelectedItem: ControlledPropUpdatedSelectedItem
+});
+
+function getInitialState$1(props) {
+  const initialState = getInitialState$2(props);
+  const {
+    selectedItem
+  } = initialState;
+  let {
+    inputValue
+  } = initialState;
+
+  if (inputValue === '' && selectedItem && props.defaultInputValue === undefined && props.initialInputValue === undefined && props.inputValue === undefined) {
+    inputValue = props.itemToString(selectedItem);
+  }
+
+  return { ...initialState,
+    inputValue
+  };
+}
+
+const propTypes$1 = {
+  items: (prop_types_default()).array.isRequired,
+  itemToString: (prop_types_default()).func,
+  getA11yStatusMessage: (prop_types_default()).func,
+  getA11ySelectionMessage: (prop_types_default()).func,
+  circularNavigation: (prop_types_default()).bool,
+  highlightedIndex: (prop_types_default()).number,
+  defaultHighlightedIndex: (prop_types_default()).number,
+  initialHighlightedIndex: (prop_types_default()).number,
+  isOpen: (prop_types_default()).bool,
+  defaultIsOpen: (prop_types_default()).bool,
+  initialIsOpen: (prop_types_default()).bool,
+  selectedItem: (prop_types_default()).any,
+  initialSelectedItem: (prop_types_default()).any,
+  defaultSelectedItem: (prop_types_default()).any,
+  inputValue: (prop_types_default()).string,
+  defaultInputValue: (prop_types_default()).string,
+  initialInputValue: (prop_types_default()).string,
+  id: (prop_types_default()).string,
+  labelId: (prop_types_default()).string,
+  menuId: (prop_types_default()).string,
+  getItemId: (prop_types_default()).func,
+  inputId: (prop_types_default()).string,
+  toggleButtonId: (prop_types_default()).string,
+  stateReducer: (prop_types_default()).func,
+  onSelectedItemChange: (prop_types_default()).func,
+  onHighlightedIndexChange: (prop_types_default()).func,
+  onStateChange: (prop_types_default()).func,
+  onIsOpenChange: (prop_types_default()).func,
+  onInputValueChange: (prop_types_default()).func,
+  environment: prop_types_default().shape({
+    addEventListener: (prop_types_default()).func,
+    removeEventListener: (prop_types_default()).func,
+    document: prop_types_default().shape({
+      getElementById: (prop_types_default()).func,
+      activeElement: (prop_types_default()).any,
+      body: (prop_types_default()).any
+    })
+  })
+};
+/**
+ * The useCombobox version of useControlledReducer, which also
+ * checks if the controlled prop selectedItem changed between
+ * renders. If so, it will also update inputValue with its
+ * string equivalent. It uses the common useEnhancedReducer to
+ * compute the rest of the state.
+ *
+ * @param {Function} reducer Reducer function from downshift.
+ * @param {Object} initialState Initial state of the hook.
+ * @param {Object} props The hook props.
+ * @returns {Array} An array with the state and an action dispatcher.
+ */
+
+function useControlledReducer(reducer, initialState, props) {
+  const previousSelectedItemRef = (0,external_React_.useRef)();
+  const [state, dispatch] = useEnhancedReducer(reducer, initialState, props); // ToDo: if needed, make same approach as selectedItemChanged from Downshift.
+
+  (0,external_React_.useEffect)(() => {
+    if (isControlledProp(props, 'selectedItem')) {
+      if (previousSelectedItemRef.current !== props.selectedItem) {
+        dispatch({
+          type: ControlledPropUpdatedSelectedItem,
+          inputValue: props.itemToString(props.selectedItem)
+        });
+      }
+
+      previousSelectedItemRef.current = state.selectedItem === previousSelectedItemRef.current ? props.selectedItem : state.selectedItem;
+    }
+  });
+  return [getState(state, props), dispatch];
+} // eslint-disable-next-line import/no-mutable-exports
+
+
+let validatePropTypes$1 = downshift_esm_noop;
+/* istanbul ignore next */
+
+if (false) {}
+
+const defaultProps$1 = { ...defaultProps$3,
+  getA11yStatusMessage: getA11yStatusMessage$1,
+  circularNavigation: true
+};
+
+/* eslint-disable complexity */
+
+function downshiftUseComboboxReducer(state, action) {
+  const {
+    type,
+    props,
+    shiftKey
+  } = action;
+  let changes;
+
+  switch (type) {
+    case ItemClick:
+      changes = {
+        isOpen: getDefaultValue$1(props, 'isOpen'),
+        highlightedIndex: getDefaultValue$1(props, 'highlightedIndex'),
+        selectedItem: props.items[action.index],
+        inputValue: props.itemToString(props.items[action.index])
+      };
+      break;
+
+    case InputKeyDownArrowDown:
+      if (state.isOpen) {
+        changes = {
+          highlightedIndex: getNextWrappingIndex(shiftKey ? 5 : 1, state.highlightedIndex, props.items.length, action.getItemNodeFromIndex, props.circularNavigation)
+        };
+      } else {
+        changes = {
+          highlightedIndex: getHighlightedIndexOnOpen(props, state, 1, action.getItemNodeFromIndex),
+          isOpen: props.items.length >= 0
+        };
+      }
+
+      break;
+
+    case InputKeyDownArrowUp:
+      if (state.isOpen) {
+        changes = {
+          highlightedIndex: getNextWrappingIndex(shiftKey ? -5 : -1, state.highlightedIndex, props.items.length, action.getItemNodeFromIndex, props.circularNavigation)
+        };
+      } else {
+        changes = {
+          highlightedIndex: getHighlightedIndexOnOpen(props, state, -1, action.getItemNodeFromIndex),
+          isOpen: props.items.length >= 0
+        };
+      }
+
+      break;
+
+    case InputKeyDownEnter:
+      changes = { ...(state.isOpen && state.highlightedIndex >= 0 && {
+          selectedItem: props.items[state.highlightedIndex],
+          isOpen: getDefaultValue$1(props, 'isOpen'),
+          highlightedIndex: getDefaultValue$1(props, 'highlightedIndex'),
+          inputValue: props.itemToString(props.items[state.highlightedIndex])
+        })
+      };
+      break;
+
+    case InputKeyDownEscape:
+      changes = {
+        isOpen: false,
+        highlightedIndex: -1,
+        ...(!state.isOpen && {
+          selectedItem: null,
+          inputValue: ''
+        })
+      };
+      break;
+
+    case InputKeyDownHome:
+      changes = {
+        highlightedIndex: getNextNonDisabledIndex(1, 0, props.items.length, action.getItemNodeFromIndex, false)
+      };
+      break;
+
+    case InputKeyDownEnd:
+      changes = {
+        highlightedIndex: getNextNonDisabledIndex(-1, props.items.length - 1, props.items.length, action.getItemNodeFromIndex, false)
+      };
+      break;
+
+    case InputBlur:
+      changes = {
+        isOpen: false,
+        highlightedIndex: -1,
+        ...(state.highlightedIndex >= 0 && action.selectItem && {
+          selectedItem: props.items[state.highlightedIndex],
+          inputValue: props.itemToString(props.items[state.highlightedIndex])
+        })
+      };
+      break;
+
+    case InputChange:
+      changes = {
+        isOpen: true,
+        highlightedIndex: getDefaultValue$1(props, 'highlightedIndex'),
+        inputValue: action.inputValue
+      };
+      break;
+
+    case FunctionSelectItem:
+      changes = {
+        selectedItem: action.selectedItem,
+        inputValue: props.itemToString(action.selectedItem)
+      };
+      break;
+
+    case ControlledPropUpdatedSelectedItem:
+      changes = {
+        inputValue: action.inputValue
+      };
+      break;
+
+    default:
+      return downshiftCommonReducer(state, action, stateChangeTypes$1);
+  }
+
+  return { ...state,
+    ...changes
+  };
+}
+/* eslint-enable complexity */
+
+/* eslint-disable max-statements */
+useCombobox.stateChangeTypes = stateChangeTypes$1;
+
+function useCombobox(userProps) {
+  if (userProps === void 0) {
+    userProps = {};
+  }
+
+  validatePropTypes$1(userProps, useCombobox); // Props defaults and destructuring.
+
+  const props = { ...defaultProps$1,
+    ...userProps
+  };
+  const {
+    initialIsOpen,
+    defaultIsOpen,
+    items,
+    scrollIntoView,
+    environment,
+    getA11yStatusMessage,
+    getA11ySelectionMessage,
+    itemToString
+  } = props; // Initial state depending on controlled props.
+
+  const initialState = getInitialState$1(props);
+  const [state, dispatch] = useControlledReducer(downshiftUseComboboxReducer, initialState, props);
+  const {
+    isOpen,
+    highlightedIndex,
+    selectedItem,
+    inputValue
+  } = state; // Element refs.
+
+  const menuRef = (0,external_React_.useRef)(null);
+  const itemRefs = (0,external_React_.useRef)({});
+  const inputRef = (0,external_React_.useRef)(null);
+  const toggleButtonRef = (0,external_React_.useRef)(null);
+  const comboboxRef = (0,external_React_.useRef)(null);
+  const isInitialMountRef = (0,external_React_.useRef)(true); // prevent id re-generation between renders.
+
+  const elementIds = useElementIds(props); // used to keep track of how many items we had on previous cycle.
+
+  const previousResultCountRef = (0,external_React_.useRef)(); // utility callback to get item element.
+
+  const latest = useLatestRef({
+    state,
+    props
+  });
+  const getItemNodeFromIndex = (0,external_React_.useCallback)(index => itemRefs.current[elementIds.getItemId(index)], [elementIds]); // Effects.
+  // Sets a11y status message on changes in state.
+
+  useA11yMessageSetter(getA11yStatusMessage, [isOpen, highlightedIndex, inputValue, items], {
+    isInitialMount: isInitialMountRef.current,
+    previousResultCount: previousResultCountRef.current,
+    items,
+    environment,
+    itemToString,
+    ...state
+  }); // Sets a11y status message on changes in selectedItem.
+
+  useA11yMessageSetter(getA11ySelectionMessage, [selectedItem], {
+    isInitialMount: isInitialMountRef.current,
+    previousResultCount: previousResultCountRef.current,
+    items,
+    environment,
+    itemToString,
+    ...state
+  }); // Scroll on highlighted item if change comes from keyboard.
+
+  const shouldScrollRef = useScrollIntoView({
+    menuElement: menuRef.current,
+    highlightedIndex,
+    isOpen,
+    itemRefs,
+    scrollIntoView,
+    getItemNodeFromIndex
+  });
+  useControlPropsValidator({
+    isInitialMount: isInitialMountRef.current,
+    props,
+    state
+  }); // Focus the input on first render if required.
+
+  (0,external_React_.useEffect)(() => {
+    const focusOnOpen = initialIsOpen || defaultIsOpen || isOpen;
+
+    if (focusOnOpen && inputRef.current) {
+      inputRef.current.focus();
+    } // eslint-disable-next-line react-hooks/exhaustive-deps
+
+  }, []);
+  (0,external_React_.useEffect)(() => {
+    if (isInitialMountRef.current) {
+      return;
+    }
+
+    previousResultCountRef.current = items.length;
+  }); // Add mouse/touch events to document.
+
+  const mouseAndTouchTrackersRef = useMouseAndTouchTracker(isOpen, [comboboxRef, menuRef, toggleButtonRef], environment, () => {
+    dispatch({
+      type: InputBlur,
+      selectItem: false
+    });
+  });
+  const setGetterPropCallInfo = useGetterPropsCalledChecker('getInputProps', 'getComboboxProps', 'getMenuProps'); // Make initial ref false.
+
+  (0,external_React_.useEffect)(() => {
+    isInitialMountRef.current = false;
+  }, []); // Reset itemRefs on close.
+
+  (0,external_React_.useEffect)(() => {
+    if (!isOpen) {
+      itemRefs.current = {};
+    }
+  }, [isOpen]);
+  /* Event handler functions */
+
+  const inputKeyDownHandlers = (0,external_React_.useMemo)(() => ({
+    ArrowDown(event) {
+      event.preventDefault();
+      dispatch({
+        type: InputKeyDownArrowDown,
+        shiftKey: event.shiftKey,
+        getItemNodeFromIndex
+      });
+    },
+
+    ArrowUp(event) {
+      event.preventDefault();
+      dispatch({
+        type: InputKeyDownArrowUp,
+        shiftKey: event.shiftKey,
+        getItemNodeFromIndex
+      });
+    },
+
+    Home(event) {
+      if (!latest.current.state.isOpen) {
+        return;
+      }
+
+      event.preventDefault();
+      dispatch({
+        type: InputKeyDownHome,
+        getItemNodeFromIndex
+      });
+    },
+
+    End(event) {
+      if (!latest.current.state.isOpen) {
+        return;
+      }
+
+      event.preventDefault();
+      dispatch({
+        type: InputKeyDownEnd,
+        getItemNodeFromIndex
+      });
+    },
+
+    Escape() {
+      const latestState = latest.current.state;
+
+      if (latestState.isOpen || latestState.inputValue || latestState.selectedItem || latestState.highlightedIndex > -1) {
+        dispatch({
+          type: InputKeyDownEscape
+        });
+      }
+    },
+
+    Enter(event) {
+      const latestState = latest.current.state; // if closed or no highlighted index, do nothing.
+
+      if (!latestState.isOpen || latestState.highlightedIndex < 0 || event.which === 229 // if IME composing, wait for next Enter keydown event.
+      ) {
+        return;
+      }
+
+      event.preventDefault();
+      dispatch({
+        type: InputKeyDownEnter,
+        getItemNodeFromIndex
+      });
+    }
+
+  }), [dispatch, latest, getItemNodeFromIndex]); // Getter props.
+
+  const getLabelProps = (0,external_React_.useCallback)(labelProps => ({
+    id: elementIds.labelId,
+    htmlFor: elementIds.inputId,
+    ...labelProps
+  }), [elementIds]);
+  const getMenuProps = (0,external_React_.useCallback)(function (_temp, _temp2) {
+    let {
+      onMouseLeave,
+      refKey = 'ref',
+      ref,
+      ...rest
+    } = _temp === void 0 ? {} : _temp;
+    let {
+      suppressRefError = false
+    } = _temp2 === void 0 ? {} : _temp2;
+    setGetterPropCallInfo('getMenuProps', suppressRefError, refKey, menuRef);
+    return {
+      [refKey]: handleRefs(ref, menuNode => {
+        menuRef.current = menuNode;
+      }),
+      id: elementIds.menuId,
+      role: 'listbox',
+      'aria-labelledby': elementIds.labelId,
+      onMouseLeave: callAllEventHandlers(onMouseLeave, () => {
+        dispatch({
+          type: MenuMouseLeave
+        });
+      }),
+      ...rest
+    };
+  }, [dispatch, setGetterPropCallInfo, elementIds]);
+  const getItemProps = (0,external_React_.useCallback)(function (_temp3) {
+    let {
+      item,
+      index,
+      refKey = 'ref',
+      ref,
+      onMouseMove,
+      onClick,
+      onPress,
+      ...rest
+    } = _temp3 === void 0 ? {} : _temp3;
+    const {
+      props: latestProps,
+      state: latestState
+    } = latest.current;
+    const itemIndex = getItemIndex(index, item, latestProps.items);
+
+    if (itemIndex < 0) {
+      throw new Error('Pass either item or item index in getItemProps!');
+    }
+
+    const onSelectKey = 'onClick';
+    const customClickHandler = onClick;
+
+    const itemHandleMouseMove = () => {
+      if (index === latestState.highlightedIndex) {
+        return;
+      }
+
+      shouldScrollRef.current = false;
+      dispatch({
+        type: ItemMouseMove,
+        index
+      });
+    };
+
+    const itemHandleClick = () => {
+      dispatch({
+        type: ItemClick,
+        index
+      });
+
+      if (inputRef.current) {
+        inputRef.current.focus();
+      }
+    };
+
+    return {
+      [refKey]: handleRefs(ref, itemNode => {
+        if (itemNode) {
+          itemRefs.current[elementIds.getItemId(itemIndex)] = itemNode;
+        }
+      }),
+      role: 'option',
+      'aria-selected': "" + (itemIndex === latestState.highlightedIndex),
+      id: elementIds.getItemId(itemIndex),
+      ...(!rest.disabled && {
+        onMouseMove: callAllEventHandlers(onMouseMove, itemHandleMouseMove),
+        [onSelectKey]: callAllEventHandlers(customClickHandler, itemHandleClick)
+      }),
+      ...rest
+    };
+  }, [dispatch, latest, shouldScrollRef, elementIds]);
+  const getToggleButtonProps = (0,external_React_.useCallback)(function (_temp4) {
+    let {
+      onClick,
+      onPress,
+      refKey = 'ref',
+      ref,
+      ...rest
+    } = _temp4 === void 0 ? {} : _temp4;
+
+    const toggleButtonHandleClick = () => {
+      dispatch({
+        type: ToggleButtonClick
+      });
+
+      if (!latest.current.state.isOpen && inputRef.current) {
+        inputRef.current.focus();
+      }
+    };
+
+    return {
+      [refKey]: handleRefs(ref, toggleButtonNode => {
+        toggleButtonRef.current = toggleButtonNode;
+      }),
+      id: elementIds.toggleButtonId,
+      tabIndex: -1,
+      ...(!rest.disabled && { ...({
+          onClick: callAllEventHandlers(onClick, toggleButtonHandleClick)
+        })
+      }),
+      ...rest
+    };
+  }, [dispatch, latest, elementIds]);
+  const getInputProps = (0,external_React_.useCallback)(function (_temp5, _temp6) {
+    let {
+      onKeyDown,
+      onChange,
+      onInput,
+      onBlur,
+      onChangeText,
+      refKey = 'ref',
+      ref,
+      ...rest
+    } = _temp5 === void 0 ? {} : _temp5;
+    let {
+      suppressRefError = false
+    } = _temp6 === void 0 ? {} : _temp6;
+    setGetterPropCallInfo('getInputProps', suppressRefError, refKey, inputRef);
+    const latestState = latest.current.state;
+
+    const inputHandleKeyDown = event => {
+      const key = normalizeArrowKey(event);
+
+      if (key && inputKeyDownHandlers[key]) {
+        inputKeyDownHandlers[key](event);
+      }
+    };
+
+    const inputHandleChange = event => {
+      dispatch({
+        type: InputChange,
+        inputValue: event.target.value
+      });
+    };
+
+    const inputHandleBlur = () => {
+      /* istanbul ignore else */
+      if (latestState.isOpen && !mouseAndTouchTrackersRef.current.isMouseDown) {
+        dispatch({
+          type: InputBlur,
+          selectItem: true
+        });
+      }
+    };
+    /* istanbul ignore next (preact) */
+
+
+    const onChangeKey = 'onChange';
+    let eventHandlers = {};
+
+    if (!rest.disabled) {
+      eventHandlers = {
+        [onChangeKey]: callAllEventHandlers(onChange, onInput, inputHandleChange),
+        onKeyDown: callAllEventHandlers(onKeyDown, inputHandleKeyDown),
+        onBlur: callAllEventHandlers(onBlur, inputHandleBlur)
+      };
+    }
+
+    return {
+      [refKey]: handleRefs(ref, inputNode => {
+        inputRef.current = inputNode;
+      }),
+      id: elementIds.inputId,
+      'aria-autocomplete': 'list',
+      'aria-controls': elementIds.menuId,
+      ...(latestState.isOpen && latestState.highlightedIndex > -1 && {
+        'aria-activedescendant': elementIds.getItemId(latestState.highlightedIndex)
+      }),
+      'aria-labelledby': elementIds.labelId,
+      // https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion
+      // revert back since autocomplete="nope" is ignored on latest Chrome and Opera
+      autoComplete: 'off',
+      value: latestState.inputValue,
+      ...eventHandlers,
+      ...rest
+    };
+  }, [dispatch, inputKeyDownHandlers, latest, mouseAndTouchTrackersRef, setGetterPropCallInfo, elementIds]);
+  const getComboboxProps = (0,external_React_.useCallback)(function (_temp7, _temp8) {
+    let {
+      refKey = 'ref',
+      ref,
+      ...rest
+    } = _temp7 === void 0 ? {} : _temp7;
+    let {
+      suppressRefError = false
+    } = _temp8 === void 0 ? {} : _temp8;
+    setGetterPropCallInfo('getComboboxProps', suppressRefError, refKey, comboboxRef);
+    return {
+      [refKey]: handleRefs(ref, comboboxNode => {
+        comboboxRef.current = comboboxNode;
+      }),
+      role: 'combobox',
+      'aria-haspopup': 'listbox',
+      'aria-owns': elementIds.menuId,
+      'aria-expanded': latest.current.state.isOpen,
+      ...rest
+    };
+  }, [latest, setGetterPropCallInfo, elementIds]); // returns
+
+  const toggleMenu = (0,external_React_.useCallback)(() => {
+    dispatch({
+      type: FunctionToggleMenu
+    });
+  }, [dispatch]);
+  const closeMenu = (0,external_React_.useCallback)(() => {
+    dispatch({
+      type: FunctionCloseMenu
+    });
+  }, [dispatch]);
+  const openMenu = (0,external_React_.useCallback)(() => {
+    dispatch({
+      type: FunctionOpenMenu
+    });
+  }, [dispatch]);
+  const setHighlightedIndex = (0,external_React_.useCallback)(newHighlightedIndex => {
+    dispatch({
+      type: FunctionSetHighlightedIndex,
+      highlightedIndex: newHighlightedIndex
+    });
+  }, [dispatch]);
+  const selectItem = (0,external_React_.useCallback)(newSelectedItem => {
+    dispatch({
+      type: FunctionSelectItem,
+      selectedItem: newSelectedItem
+    });
+  }, [dispatch]);
+  const setInputValue = (0,external_React_.useCallback)(newInputValue => {
+    dispatch({
+      type: FunctionSetInputValue,
+      inputValue: newInputValue
+    });
+  }, [dispatch]);
+  const reset = (0,external_React_.useCallback)(() => {
+    dispatch({
+      type: FunctionReset$1
+    });
+  }, [dispatch]);
+  return {
+    // prop getters.
+    getItemProps,
+    getLabelProps,
+    getMenuProps,
+    getInputProps,
+    getComboboxProps,
+    getToggleButtonProps,
+    // actions.
+    toggleMenu,
+    openMenu,
+    closeMenu,
+    setHighlightedIndex,
+    setInputValue,
+    selectItem,
+    reset,
+    // state.
+    highlightedIndex,
+    isOpen,
+    selectedItem,
+    inputValue
+  };
+}
+
+const defaultStateValues = {
+  activeIndex: -1,
+  selectedItems: []
+};
+/**
+ * Returns the initial value for a state key in the following order:
+ * 1. controlled prop, 2. initial prop, 3. default prop, 4. default
+ * value from Downshift.
+ *
+ * @param {Object} props Props passed to the hook.
+ * @param {string} propKey Props key to generate the value for.
+ * @returns {any} The initial value for that prop.
+ */
+
+function getInitialValue(props, propKey) {
+  return getInitialValue$1(props, propKey, defaultStateValues);
+}
+/**
+ * Returns the default value for a state key in the following order:
+ * 1. controlled prop, 2. default prop, 3. default value from Downshift.
+ *
+ * @param {Object} props Props passed to the hook.
+ * @param {string} propKey Props key to generate the value for.
+ * @returns {any} The initial value for that prop.
+ */
+
+
+function getDefaultValue(props, propKey) {
+  return getDefaultValue$1(props, propKey, defaultStateValues);
+}
+/**
+ * Gets the initial state based on the provided props. It uses initial, default
+ * and controlled props related to state in order to compute the initial value.
+ *
+ * @param {Object} props Props passed to the hook.
+ * @returns {Object} The initial state.
+ */
+
+
+function getInitialState(props) {
+  const activeIndex = getInitialValue(props, 'activeIndex');
+  const selectedItems = getInitialValue(props, 'selectedItems');
+  return {
+    activeIndex,
+    selectedItems
+  };
+}
+/**
+ * Returns true if dropdown keydown operation is permitted. Should not be
+ * allowed on keydown with modifier keys (ctrl, alt, shift, meta), on
+ * input element with text content that is either highlighted or selection
+ * cursor is not at the starting position.
+ *
+ * @param {KeyboardEvent} event The event from keydown.
+ * @returns {boolean} Whether the operation is allowed.
+ */
+
+
+function isKeyDownOperationPermitted(event) {
+  if (event.shiftKey || event.metaKey || event.ctrlKey || event.altKey) {
+    return false;
+  }
+
+  const element = event.target;
+
+  if (element instanceof HTMLInputElement && // if element is a text input
+  element.value !== '' && ( // and we have text in it
+  // and cursor is either not at the start or is currently highlighting text.
+  element.selectionStart !== 0 || element.selectionEnd !== 0)) {
+    return false;
+  }
+
+  return true;
+}
+/**
+ * Returns a message to be added to aria-live region when item is removed.
+ *
+ * @param {Object} selectionParameters Parameters required to build the message.
+ * @returns {string} The a11y message.
+ */
+
+
+function getA11yRemovalMessage(selectionParameters) {
+  const {
+    removedSelectedItem,
+    itemToString: itemToStringLocal
+  } = selectionParameters;
+  return itemToStringLocal(removedSelectedItem) + " has been removed.";
+}
+
+const propTypes = {
+  selectedItems: (prop_types_default()).array,
+  initialSelectedItems: (prop_types_default()).array,
+  defaultSelectedItems: (prop_types_default()).array,
+  itemToString: (prop_types_default()).func,
+  getA11yRemovalMessage: (prop_types_default()).func,
+  stateReducer: (prop_types_default()).func,
+  activeIndex: (prop_types_default()).number,
+  initialActiveIndex: (prop_types_default()).number,
+  defaultActiveIndex: (prop_types_default()).number,
+  onActiveIndexChange: (prop_types_default()).func,
+  onSelectedItemsChange: (prop_types_default()).func,
+  keyNavigationNext: (prop_types_default()).string,
+  keyNavigationPrevious: (prop_types_default()).string,
+  environment: prop_types_default().shape({
+    addEventListener: (prop_types_default()).func,
+    removeEventListener: (prop_types_default()).func,
+    document: prop_types_default().shape({
+      getElementById: (prop_types_default()).func,
+      activeElement: (prop_types_default()).any,
+      body: (prop_types_default()).any
+    })
+  })
+};
+const defaultProps = {
+  itemToString: defaultProps$3.itemToString,
+  stateReducer: defaultProps$3.stateReducer,
+  environment: defaultProps$3.environment,
+  getA11yRemovalMessage,
+  keyNavigationNext: 'ArrowRight',
+  keyNavigationPrevious: 'ArrowLeft'
+}; // eslint-disable-next-line import/no-mutable-exports
+
+let validatePropTypes = downshift_esm_noop;
+/* istanbul ignore next */
+
+if (false) {}
+
+const SelectedItemClick =  false ? 0 : 0;
+const SelectedItemKeyDownDelete =  false ? 0 : 1;
+const SelectedItemKeyDownBackspace =  false ? 0 : 2;
+const SelectedItemKeyDownNavigationNext =  false ? 0 : 3;
+const SelectedItemKeyDownNavigationPrevious =  false ? 0 : 4;
+const DropdownKeyDownNavigationPrevious =  false ? 0 : 5;
+const DropdownKeyDownBackspace =  false ? 0 : 6;
+const DropdownClick =  false ? 0 : 7;
+const FunctionAddSelectedItem =  false ? 0 : 8;
+const FunctionRemoveSelectedItem =  false ? 0 : 9;
+const FunctionSetSelectedItems =  false ? 0 : 10;
+const FunctionSetActiveIndex =  false ? 0 : 11;
+const FunctionReset =  false ? 0 : 12;
+
+var stateChangeTypes = /*#__PURE__*/Object.freeze({
+  __proto__: null,
+  SelectedItemClick: SelectedItemClick,
+  SelectedItemKeyDownDelete: SelectedItemKeyDownDelete,
+  SelectedItemKeyDownBackspace: SelectedItemKeyDownBackspace,
+  SelectedItemKeyDownNavigationNext: SelectedItemKeyDownNavigationNext,
+  SelectedItemKeyDownNavigationPrevious: SelectedItemKeyDownNavigationPrevious,
+  DropdownKeyDownNavigationPrevious: DropdownKeyDownNavigationPrevious,
+  DropdownKeyDownBackspace: DropdownKeyDownBackspace,
+  DropdownClick: DropdownClick,
+  FunctionAddSelectedItem: FunctionAddSelectedItem,
+  FunctionRemoveSelectedItem: FunctionRemoveSelectedItem,
+  FunctionSetSelectedItems: FunctionSetSelectedItems,
+  FunctionSetActiveIndex: FunctionSetActiveIndex,
+  FunctionReset: FunctionReset
+});
+
+/* eslint-disable complexity */
+
+function downshiftMultipleSelectionReducer(state, action) {
+  const {
+    type,
+    index,
+    props,
+    selectedItem
+  } = action;
+  const {
+    activeIndex,
+    selectedItems
+  } = state;
+  let changes;
+
+  switch (type) {
+    case SelectedItemClick:
+      changes = {
+        activeIndex: index
+      };
+      break;
+
+    case SelectedItemKeyDownNavigationPrevious:
+      changes = {
+        activeIndex: activeIndex - 1 < 0 ? 0 : activeIndex - 1
+      };
+      break;
+
+    case SelectedItemKeyDownNavigationNext:
+      changes = {
+        activeIndex: activeIndex + 1 >= selectedItems.length ? -1 : activeIndex + 1
+      };
+      break;
+
+    case SelectedItemKeyDownBackspace:
+    case SelectedItemKeyDownDelete:
+      {
+        let newActiveIndex = activeIndex;
+
+        if (selectedItems.length === 1) {
+          newActiveIndex = -1;
+        } else if (activeIndex === selectedItems.length - 1) {
+          newActiveIndex = selectedItems.length - 2;
+        }
+
+        changes = {
+          selectedItems: [...selectedItems.slice(0, activeIndex), ...selectedItems.slice(activeIndex + 1)],
+          ...{
+            activeIndex: newActiveIndex
+          }
+        };
+        break;
+      }
+
+    case DropdownKeyDownNavigationPrevious:
+      changes = {
+        activeIndex: selectedItems.length - 1
+      };
+      break;
+
+    case DropdownKeyDownBackspace:
+      changes = {
+        selectedItems: selectedItems.slice(0, selectedItems.length - 1)
+      };
+      break;
+
+    case FunctionAddSelectedItem:
+      changes = {
+        selectedItems: [...selectedItems, selectedItem]
+      };
+      break;
+
+    case DropdownClick:
+      changes = {
+        activeIndex: -1
+      };
+      break;
+
+    case FunctionRemoveSelectedItem:
+      {
+        let newActiveIndex = activeIndex;
+        const selectedItemIndex = selectedItems.indexOf(selectedItem);
+
+        if (selectedItemIndex >= 0) {
+          if (selectedItems.length === 1) {
+            newActiveIndex = -1;
+          } else if (selectedItemIndex === selectedItems.length - 1) {
+            newActiveIndex = selectedItems.length - 2;
+          }
+
+          changes = {
+            selectedItems: [...selectedItems.slice(0, selectedItemIndex), ...selectedItems.slice(selectedItemIndex + 1)],
+            activeIndex: newActiveIndex
+          };
+        }
+
+        break;
+      }
+
+    case FunctionSetSelectedItems:
+      {
+        const {
+          selectedItems: newSelectedItems
+        } = action;
+        changes = {
+          selectedItems: newSelectedItems
+        };
+        break;
+      }
+
+    case FunctionSetActiveIndex:
+      {
+        const {
+          activeIndex: newActiveIndex
+        } = action;
+        changes = {
+          activeIndex: newActiveIndex
+        };
+        break;
+      }
+
+    case FunctionReset:
+      changes = {
+        activeIndex: getDefaultValue(props, 'activeIndex'),
+        selectedItems: getDefaultValue(props, 'selectedItems')
+      };
+      break;
+
+    default:
+      throw new Error('Reducer called without proper action type.');
+  }
+
+  return { ...state,
+    ...changes
+  };
+}
+
+useMultipleSelection.stateChangeTypes = stateChangeTypes;
+
+function useMultipleSelection(userProps) {
+  if (userProps === void 0) {
+    userProps = {};
+  }
+
+  validatePropTypes(userProps, useMultipleSelection); // Props defaults and destructuring.
+
+  const props = { ...defaultProps,
+    ...userProps
+  };
+  const {
+    getA11yRemovalMessage,
+    itemToString,
+    environment,
+    keyNavigationNext,
+    keyNavigationPrevious
+  } = props; // Reducer init.
+
+  const [state, dispatch] = useControlledReducer$1(downshiftMultipleSelectionReducer, getInitialState(props), props);
+  const {
+    activeIndex,
+    selectedItems
+  } = state; // Refs.
+
+  const isInitialMountRef = (0,external_React_.useRef)(true);
+  const dropdownRef = (0,external_React_.useRef)(null);
+  const previousSelectedItemsRef = (0,external_React_.useRef)(selectedItems);
+  const selectedItemRefs = (0,external_React_.useRef)();
+  selectedItemRefs.current = [];
+  const latest = useLatestRef({
+    state,
+    props
+  }); // Effects.
+
+  /* Sets a11y status message on changes in selectedItem. */
+
+  (0,external_React_.useEffect)(() => {
+    if (isInitialMountRef.current) {
+      return;
+    }
+
+    if (selectedItems.length < previousSelectedItemsRef.current.length) {
+      const removedSelectedItem = previousSelectedItemsRef.current.find(item => selectedItems.indexOf(item) < 0);
+      setStatus(getA11yRemovalMessage({
+        itemToString,
+        resultCount: selectedItems.length,
+        removedSelectedItem,
+        activeIndex,
+        activeSelectedItem: selectedItems[activeIndex]
+      }), environment.document);
+    }
+
+    previousSelectedItemsRef.current = selectedItems; // eslint-disable-next-line react-hooks/exhaustive-deps
+  }, [selectedItems.length]); // Sets focus on active item.
+
+  (0,external_React_.useEffect)(() => {
+    if (isInitialMountRef.current) {
+      return;
+    }
+
+    if (activeIndex === -1 && dropdownRef.current) {
+      dropdownRef.current.focus();
+    } else if (selectedItemRefs.current[activeIndex]) {
+      selectedItemRefs.current[activeIndex].focus();
+    }
+  }, [activeIndex]);
+  useControlPropsValidator({
+    isInitialMount: isInitialMountRef.current,
+    props,
+    state
+  });
+  const setGetterPropCallInfo = useGetterPropsCalledChecker('getDropdownProps'); // Make initial ref false.
+
+  (0,external_React_.useEffect)(() => {
+    isInitialMountRef.current = false;
+  }, []); // Event handler functions.
+
+  const selectedItemKeyDownHandlers = (0,external_React_.useMemo)(() => ({
+    [keyNavigationPrevious]() {
+      dispatch({
+        type: SelectedItemKeyDownNavigationPrevious
+      });
+    },
+
+    [keyNavigationNext]() {
+      dispatch({
+        type: SelectedItemKeyDownNavigationNext
+      });
+    },
+
+    Delete() {
+      dispatch({
+        type: SelectedItemKeyDownDelete
+      });
+    },
+
+    Backspace() {
+      dispatch({
+        type: SelectedItemKeyDownBackspace
+      });
+    }
+
+  }), [dispatch, keyNavigationNext, keyNavigationPrevious]);
+  const dropdownKeyDownHandlers = (0,external_React_.useMemo)(() => ({
+    [keyNavigationPrevious](event) {
+      if (isKeyDownOperationPermitted(event)) {
+        dispatch({
+          type: DropdownKeyDownNavigationPrevious
+        });
+      }
+    },
+
+    Backspace(event) {
+      if (isKeyDownOperationPermitted(event)) {
+        dispatch({
+          type: DropdownKeyDownBackspace
+        });
+      }
+    }
+
+  }), [dispatch, keyNavigationPrevious]); // Getter props.
+
+  const getSelectedItemProps = (0,external_React_.useCallback)(function (_temp) {
+    let {
+      refKey = 'ref',
+      ref,
+      onClick,
+      onKeyDown,
+      selectedItem,
+      index,
+      ...rest
+    } = _temp === void 0 ? {} : _temp;
+    const {
+      state: latestState
+    } = latest.current;
+    const itemIndex = getItemIndex(index, selectedItem, latestState.selectedItems);
+
+    if (itemIndex < 0) {
+      throw new Error('Pass either selectedItem or index in getSelectedItemProps!');
+    }
+
+    const selectedItemHandleClick = () => {
+      dispatch({
+        type: SelectedItemClick,
+        index
+      });
+    };
+
+    const selectedItemHandleKeyDown = event => {
+      const key = normalizeArrowKey(event);
+
+      if (key && selectedItemKeyDownHandlers[key]) {
+        selectedItemKeyDownHandlers[key](event);
+      }
+    };
+
+    return {
+      [refKey]: handleRefs(ref, selectedItemNode => {
+        if (selectedItemNode) {
+          selectedItemRefs.current.push(selectedItemNode);
+        }
+      }),
+      tabIndex: index === latestState.activeIndex ? 0 : -1,
+      onClick: callAllEventHandlers(onClick, selectedItemHandleClick),
+      onKeyDown: callAllEventHandlers(onKeyDown, selectedItemHandleKeyDown),
+      ...rest
+    };
+  }, [dispatch, latest, selectedItemKeyDownHandlers]);
+  const getDropdownProps = (0,external_React_.useCallback)(function (_temp2, _temp3) {
+    let {
+      refKey = 'ref',
+      ref,
+      onKeyDown,
+      onClick,
+      preventKeyAction = false,
+      ...rest
+    } = _temp2 === void 0 ? {} : _temp2;
+    let {
+      suppressRefError = false
+    } = _temp3 === void 0 ? {} : _temp3;
+    setGetterPropCallInfo('getDropdownProps', suppressRefError, refKey, dropdownRef);
+
+    const dropdownHandleKeyDown = event => {
+      const key = normalizeArrowKey(event);
+
+      if (key && dropdownKeyDownHandlers[key]) {
+        dropdownKeyDownHandlers[key](event);
+      }
+    };
+
+    const dropdownHandleClick = () => {
+      dispatch({
+        type: DropdownClick
+      });
+    };
+
+    return {
+      [refKey]: handleRefs(ref, dropdownNode => {
+        if (dropdownNode) {
+          dropdownRef.current = dropdownNode;
+        }
+      }),
+      ...(!preventKeyAction && {
+        onKeyDown: callAllEventHandlers(onKeyDown, dropdownHandleKeyDown),
+        onClick: callAllEventHandlers(onClick, dropdownHandleClick)
+      }),
+      ...rest
+    };
+  }, [dispatch, dropdownKeyDownHandlers, setGetterPropCallInfo]); // returns
+
+  const addSelectedItem = (0,external_React_.useCallback)(selectedItem => {
+    dispatch({
+      type: FunctionAddSelectedItem,
+      selectedItem
+    });
+  }, [dispatch]);
+  const removeSelectedItem = (0,external_React_.useCallback)(selectedItem => {
+    dispatch({
+      type: FunctionRemoveSelectedItem,
+      selectedItem
+    });
+  }, [dispatch]);
+  const setSelectedItems = (0,external_React_.useCallback)(newSelectedItems => {
+    dispatch({
+      type: FunctionSetSelectedItems,
+      selectedItems: newSelectedItems
+    });
+  }, [dispatch]);
+  const setActiveIndex = (0,external_React_.useCallback)(newActiveIndex => {
+    dispatch({
+      type: FunctionSetActiveIndex,
+      activeIndex: newActiveIndex
+    });
+  }, [dispatch]);
+  const reset = (0,external_React_.useCallback)(() => {
+    dispatch({
+      type: FunctionReset
+    });
+  }, [dispatch]);
+  return {
+    getSelectedItemProps,
+    getDropdownProps,
+    addSelectedItem,
+    removeSelectedItem,
+    setSelectedItems,
+    setActiveIndex,
+    reset,
+    selectedItems,
+    activeIndex
+  };
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/custom-select-control/index.js
+
+
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+const custom_select_control_itemToString = item => item === null || item === void 0 ? void 0 : item.name; // This is needed so that in Windows, where
+// the menu does not necessarily open on
+// key up/down, you can still switch between
+// options with the menu closed.
+
+
+const custom_select_control_stateReducer = (_ref, _ref2) => {
+  let {
+    selectedItem
+  } = _ref;
+  let {
+    type,
+    changes,
+    props: {
+      items
+    }
+  } = _ref2;
+
+  switch (type) {
+    case useSelect.stateChangeTypes.ToggleButtonKeyDownArrowDown:
+      // If we already have a selected item, try to select the next one,
+      // without circular navigation. Otherwise, select the first item.
+      return {
+        selectedItem: items[selectedItem ? Math.min(items.indexOf(selectedItem) + 1, items.length - 1) : 0]
+      };
+
+    case useSelect.stateChangeTypes.ToggleButtonKeyDownArrowUp:
+      // If we already have a selected item, try to select the previous one,
+      // without circular navigation. Otherwise, select the last item.
+      return {
+        selectedItem: items[selectedItem ? Math.max(items.indexOf(selectedItem) - 1, 0) : items.length - 1]
+      };
+
+    default:
+      return changes;
+  }
+};
+
+function CustomSelectControl(_ref3) {
+  var _menuProps$ariaActiv;
+
+  let {
+    /** Start opting into the larger default height that will become the default size in a future version. */
+    __next36pxDefaultSize = false,
+    className,
+    hideLabelFromVision,
+    label,
+    describedBy,
+    options: items,
+    onChange: onSelectedItemChange,
+    value: _selectedItem
+  } = _ref3;
+  const {
+    getLabelProps,
+    getToggleButtonProps,
+    getMenuProps,
+    getItemProps,
+    isOpen,
+    highlightedIndex,
+    selectedItem
+  } = useSelect({
+    initialSelectedItem: items[0],
+    items,
+    itemToString: custom_select_control_itemToString,
+    onSelectedItemChange,
+    ...(typeof _selectedItem !== 'undefined' && _selectedItem !== null ? {
+      selectedItem: _selectedItem
+    } : undefined),
+    stateReducer: custom_select_control_stateReducer
+  });
+
+  function getDescribedBy() {
+    if (describedBy) {
+      return describedBy;
+    }
+
+    if (!selectedItem) {
+      return (0,external_wp_i18n_namespaceObject.__)('No selection');
+    } // translators: %s: The selected option.
+
+
+    return (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('Currently selected: %s'), selectedItem.name);
+  }
+
+  const menuProps = getMenuProps({
+    className: 'components-custom-select-control__menu',
+    'aria-hidden': !isOpen
+  });
+  const onKeyDownHandler = (0,external_wp_element_namespaceObject.useCallback)(e => {
+    var _menuProps$onKeyDown;
+
+    e.stopPropagation();
+    menuProps === null || menuProps === void 0 ? void 0 : (_menuProps$onKeyDown = menuProps.onKeyDown) === null || _menuProps$onKeyDown === void 0 ? void 0 : _menuProps$onKeyDown.call(menuProps, e);
+  }, [menuProps]); // We need this here, because the null active descendant is not fully ARIA compliant.
+
+  if ((_menuProps$ariaActiv = menuProps['aria-activedescendant']) !== null && _menuProps$ariaActiv !== void 0 && _menuProps$ariaActiv.startsWith('downshift-null')) {
+    delete menuProps['aria-activedescendant'];
+  }
+
+  return (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: classnames_default()('components-custom-select-control', className)
+  }, hideLabelFromVision ? (0,external_wp_element_namespaceObject.createElement)(visually_hidden_component, extends_extends({
+    as: "label"
+  }, getLabelProps()), label) :
+  /* eslint-disable-next-line jsx-a11y/label-has-associated-control, jsx-a11y/label-has-for */
+  (0,external_wp_element_namespaceObject.createElement)("label", getLabelProps({
+    className: 'components-custom-select-control__label'
+  }), label), (0,external_wp_element_namespaceObject.createElement)(build_module_button, getToggleButtonProps({
+    // This is needed because some speech recognition software don't support `aria-labelledby`.
+    'aria-label': label,
+    'aria-labelledby': undefined,
+    className: classnames_default()('components-custom-select-control__button', {
+      'is-next-36px-default-size': __next36pxDefaultSize
+    }),
+    isSmall: !__next36pxDefaultSize,
+    describedBy: getDescribedBy()
+  }), custom_select_control_itemToString(selectedItem), (0,external_wp_element_namespaceObject.createElement)(icons_build_module_icon, {
+    icon: chevron_down,
+    className: classnames_default()('components-custom-select-control__button-icon', {
+      'is-next-36px-default-size': __next36pxDefaultSize
+    }),
+    size: 18
+  })), (0,external_wp_element_namespaceObject.createElement)("ul", extends_extends({}, menuProps, {
+    onKeyDown: onKeyDownHandler
+  }), isOpen && items.map((item, index) => // eslint-disable-next-line react/jsx-key
+  (0,external_wp_element_namespaceObject.createElement)("li", getItemProps({
+    item,
+    index,
+    key: item.key,
+    className: classnames_default()(item.className, 'components-custom-select-control__item', {
+      'is-highlighted': index === highlightedIndex,
+      'has-hint': !!item.__experimentalHint,
+      'is-next-36px-default-size': __next36pxDefaultSize
+    }),
+    style: item.style
+  }), item.name, item.__experimentalHint && (0,external_wp_element_namespaceObject.createElement)("span", {
+    className: "components-custom-select-control__item-hint"
+  }, item.__experimentalHint), item === selectedItem && (0,external_wp_element_namespaceObject.createElement)(icons_build_module_icon, {
+    icon: library_check,
+    className: "components-custom-select-control__item-icon"
+  })))));
+}
+
+// EXTERNAL MODULE: ./node_modules/react-dates/initialize.js
+var initialize = __webpack_require__(4185);
+// EXTERNAL MODULE: external "moment"
+var external_moment_ = __webpack_require__(6292);
+var external_moment_default = /*#__PURE__*/__webpack_require__.n(external_moment_);
+// EXTERNAL MODULE: ./node_modules/react-dates/lib/components/DayPickerSingleDateController.js
+var DayPickerSingleDateController = __webpack_require__(6302);
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/date-time/utils.js
+/**
+ * External dependencies
+ */
+
+/**
+ * Create a Moment object from a date string. With no date supplied, default to a Moment
+ * object representing now. If a null value is passed, return a null value.
+ *
+ * @param {?string} date Date representing the currently selected date or null to signify no selection.
+ * @return {?moment.Moment} Moment object for selected date or null.
+ */
+
+const getMomentDate = date => {
+  if (null === date) {
+    return null;
+  }
+
+  return date ? external_moment_default()(date) : external_moment_default()();
+};
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/date-time/date.js
+
+
+/**
+ * External dependencies
+ */
+
+ // react-dates doesn't tree-shake correctly, so we import from the individual
+// component here, to avoid including too much of the library
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+/**
+ * Module Constants
+ */
+
+const TIMEZONELESS_FORMAT = 'YYYY-MM-DDTHH:mm:ss';
+const ARIAL_LABEL_TIME_FORMAT = 'dddd, LL';
+
+function DatePickerDay(_ref) {
+  let {
+    day,
+    events = []
+  } = _ref;
+  const ref = (0,external_wp_element_namespaceObject.useRef)();
+  /*
+   * a11y hack to make the `There is/are n events` string
+   * available speaking for readers,
+   * re-defining the aria-label attribute.
+   * This attribute is handled by the react-dates component.
+   */
+
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    var _ref$current;
+
+    // Bail when no parent node.
+    if (!(ref !== null && ref !== void 0 && (_ref$current = ref.current) !== null && _ref$current !== void 0 && _ref$current.parentNode)) {
+      return;
+    }
+
+    const {
+      parentNode
+    } = ref.current;
+    const dayAriaLabel = external_moment_default()(day).format(ARIAL_LABEL_TIME_FORMAT);
+
+    if (!events.length) {
+      // Set aria-label without event description.
+      parentNode.setAttribute('aria-label', dayAriaLabel);
+      return;
+    }
+
+    const dayWithEventsDescription = (0,external_wp_i18n_namespaceObject.sprintf)( // translators: 1: Calendar day format, 2: Calendar event number.
+    (0,external_wp_i18n_namespaceObject._n)('%1$s. There is %2$d event.', '%1$s. There are %2$d events.', events.length), dayAriaLabel, events.length);
+    parentNode.setAttribute('aria-label', dayWithEventsDescription);
+  }, [events.length]);
+  return (0,external_wp_element_namespaceObject.createElement)("div", {
+    ref: ref,
+    className: classnames_default()('components-datetime__date__day', {
+      'has-events': events === null || events === void 0 ? void 0 : events.length
+    })
+  }, day.format('D'));
+}
+
+function DatePicker(_ref2) {
+  let {
+    currentDate,
+    onChange,
+    events,
+    isInvalidDate,
+    onMonthPreviewed
+  } = _ref2;
+  const nodeRef = (0,external_wp_element_namespaceObject.useRef)();
+
+  const onMonthPreviewedHandler = newMonthDate => {
+    onMonthPreviewed === null || onMonthPreviewed === void 0 ? void 0 : onMonthPreviewed(newMonthDate.toISOString());
+    keepFocusInside();
+  };
+  /*
+   * Todo: We should remove this function ASAP.
+   * It is kept because focus is lost when we click on the previous and next month buttons.
+   * This focus loss closes the date picker popover.
+   * Ideally we should add an upstream commit on react-dates to fix this issue.
+   */
+
+
+  const keepFocusInside = () => {
+    if (!nodeRef.current) {
+      return;
+    }
+
+    const {
+      ownerDocument
+    } = nodeRef.current;
+    const {
+      activeElement
+    } = ownerDocument; // If focus was lost.
+
+    if (!activeElement || !nodeRef.current.contains(ownerDocument.activeElement)) {
+      // Retrieve the focus region div.
+      const focusRegion = nodeRef.current.querySelector('.DayPicker_focusRegion');
+
+      if (!focusRegion) {
+        return;
+      } // Keep the focus on focus region.
+
+
+      focusRegion.focus();
+    }
+  };
+
+  const onChangeMoment = newDate => {
+    // If currentDate is null, use now as momentTime to designate hours, minutes, seconds.
+    const momentDate = currentDate ? external_moment_default()(currentDate) : external_moment_default()();
+    const momentTime = {
+      hours: momentDate.hours(),
+      minutes: momentDate.minutes(),
+      seconds: 0
+    };
+    onChange(newDate.set(momentTime).format(TIMEZONELESS_FORMAT)); // Keep focus on the date picker.
+
+    keepFocusInside();
+  };
+
+  const getEventsPerDay = day => {
+    if (!(events !== null && events !== void 0 && events.length)) {
+      return [];
+    }
+
+    return events.filter(eventDay => day.isSame(eventDay.date, 'day'));
+  };
+
+  const momentDate = getMomentDate(currentDate);
+  return (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: "components-datetime__date",
+    ref: nodeRef
+  }, (0,external_wp_element_namespaceObject.createElement)(DayPickerSingleDateController/* default */.Z, {
+    date: momentDate,
+    daySize: 30,
+    focused: true,
+    hideKeyboardShortcutsPanel: true // This is a hack to force the calendar to update on month or year change
+    // https://github.com/airbnb/react-dates/issues/240#issuecomment-361776665
+    ,
+    key: `datepicker-controller-${momentDate ? momentDate.format('MM-YYYY') : 'null'}`,
+    noBorder: true,
+    numberOfMonths: 1,
+    onDateChange: onChangeMoment,
+    transitionDuration: 0,
+    weekDayFormat: "ddd",
+    dayAriaLabelFormat: ARIAL_LABEL_TIME_FORMAT,
+    isRTL: (0,external_wp_i18n_namespaceObject.isRTL)(),
+    isOutsideRange: date => {
+      return isInvalidDate && isInvalidDate(date.toDate());
+    },
+    onPrevMonthClick: onMonthPreviewedHandler,
+    onNextMonthClick: onMonthPreviewedHandler,
+    renderDayContents: day => (0,external_wp_element_namespaceObject.createElement)(DatePickerDay, {
+      day: day,
+      events: getEventsPerDay(day)
+    })
+  }));
+}
+
+/* harmony default export */ var date = (DatePicker);
+
+;// CONCATENATED MODULE: external ["wp","date"]
+var external_wp_date_namespaceObject = window["wp"]["date"];
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/date-time/timezone.js
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+/**
+ * Displays timezone information when user timezone is different from site timezone.
+ */
+
+const TimeZone = () => {
+  const {
+    timezone
+  } = (0,external_wp_date_namespaceObject.__experimentalGetSettings)(); // Convert timezone offset to hours.
+
+  const userTimezoneOffset = -1 * (new Date().getTimezoneOffset() / 60); // System timezone and user timezone match, nothing needed.
+  // Compare as numbers because it comes over as string.
+
+  if (Number(timezone.offset) === userTimezoneOffset) {
+    return null;
+  }
+
+  const offsetSymbol = timezone.offset >= 0 ? '+' : '';
+  const zoneAbbr = '' !== timezone.abbr && isNaN(timezone.abbr) ? timezone.abbr : `UTC${offsetSymbol}${timezone.offset}`;
+  const timezoneDetail = 'UTC' === timezone.string ? (0,external_wp_i18n_namespaceObject.__)('Coordinated Universal Time') : `(${zoneAbbr}) ${timezone.string.replace('_', ' ')}`;
+  return (0,external_wp_element_namespaceObject.createElement)(tooltip, {
+    position: "top center",
+    text: timezoneDetail
+  }, (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: "components-datetime__timezone"
+  }, zoneAbbr));
+};
+
+/* harmony default export */ var timezone = (TimeZone);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/date-time/time.js
+
+
+/**
+ * External dependencies
+ */
+
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+/**
+ * Module Constants
+ */
+
+const time_TIMEZONELESS_FORMAT = 'YYYY-MM-DDTHH:mm:ss';
+
+function from12hTo24h(hours, isPm) {
+  return isPm ? (hours % 12 + 12) % 24 : hours % 12;
+}
+/**
+ * <UpdateOnBlurAsIntegerField>
+ * A shared component to parse, validate, and handle remounting of the underlying form field element like <input> and <select>.
+ *
+ * @param {Object}        props             Component props.
+ * @param {string}        props.as          Render the component as specific element tag, defaults to "input".
+ * @param {number|string} props.value       The default value of the component which will be parsed to integer.
+ * @param {Function}      props.onUpdate    Call back when blurred and validated.
+ * @param {string}        [props.className]
+ */
+
+
+function UpdateOnBlurAsIntegerField(_ref) {
+  let {
+    as,
+    value,
+    onUpdate,
+    className,
+    ...props
+  } = _ref;
+
+  function handleBlur(event) {
+    const {
+      target
+    } = event;
+
+    if (value === target.value) {
+      return;
+    }
+
+    const parsedValue = parseInt(target.value, 10); // Run basic number validation on the input.
+
+    if (!(0,external_lodash_namespaceObject.isInteger)(parsedValue) || typeof props.max !== 'undefined' && parsedValue > props.max || typeof props.min !== 'undefined' && parsedValue < props.min) {
+      // If validation failed, reset the value to the previous valid value.
+      target.value = value;
+    } else {
+      // Otherwise, it's valid, call onUpdate.
+      onUpdate(target.name, parsedValue);
+    }
+  }
+
+  return (0,external_wp_element_namespaceObject.createElement)(as || 'input', {
+    // Re-mount the input value to accept the latest value as the defaultValue.
+    key: value,
+    defaultValue: value,
+    onBlur: handleBlur,
+    className: classnames_default()('components-datetime__time-field-integer-field', className),
+    ...props
+  });
+}
+/**
+ * <TimePicker>
+ *
+ * @typedef {Date|string|number} WPValidDateTimeFormat
+ *
+ * @param {Object}                props             Component props.
+ * @param {boolean}               props.is12Hour    Should the time picker showed in 12 hour format or 24 hour format.
+ * @param {WPValidDateTimeFormat} props.currentTime The initial current time the time picker should render.
+ * @param {Function}              props.onChange    Callback function when the date changed.
+ */
+
+
+function TimePicker(_ref2) {
+  let {
+    is12Hour,
+    currentTime,
+    onChange
+  } = _ref2;
+  const [date, setDate] = (0,external_wp_element_namespaceObject.useState)(() => // Truncate the date at the minutes, see: #15495.
+  external_moment_default()(currentTime).startOf('minutes')); // Reset the state when currentTime changed.
+
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    setDate(currentTime ? external_moment_default()(currentTime).startOf('minutes') : external_moment_default()());
+  }, [currentTime]);
+  const {
+    day,
+    month,
+    year,
+    minutes,
+    hours,
+    am
+  } = (0,external_wp_element_namespaceObject.useMemo)(() => ({
+    day: date.format('DD'),
+    month: date.format('MM'),
+    year: date.format('YYYY'),
+    minutes: date.format('mm'),
+    hours: date.format(is12Hour ? 'hh' : 'HH'),
+    am: date.format('H') <= 11 ? 'AM' : 'PM'
+  }), [date, is12Hour]);
+  /**
+   * Function that sets the date state and calls the onChange with a new date.
+   * The date is truncated at the minutes.
+   *
+   * @param {Object} newDate The date object.
+   */
+
+  function changeDate(newDate) {
+    setDate(newDate);
+    onChange(newDate.format(time_TIMEZONELESS_FORMAT));
+  }
+
+  function update(name, value) {
+    // If the 12-hour format is being used and the 'PM' period is selected, then
+    // the incoming value (which ranges 1-12) should be increased by 12 to match
+    // the expected 24-hour format.
+    let adjustedValue = value;
+
+    if (name === 'hours' && is12Hour) {
+      adjustedValue = from12hTo24h(value, am === 'PM');
+    } // Clone the date and call the specific setter function according to `name`.
+
+
+    const newDate = date.clone()[name](adjustedValue);
+    changeDate(newDate);
+  }
+
+  function updateAmPm(value) {
+    return () => {
+      if (am === value) {
+        return;
+      }
+
+      const parsedHours = parseInt(hours, 10);
+      const newDate = date.clone().hours(from12hTo24h(parsedHours, value === 'PM'));
+      changeDate(newDate);
+    };
+  }
+
+  const dayFormat = (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: "components-datetime__time-field components-datetime__time-field-day"
+  }, (0,external_wp_element_namespaceObject.createElement)(UpdateOnBlurAsIntegerField, {
+    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Day'),
+    className: "components-datetime__time-field-day-input",
+    type: "number" // The correct function to call in moment.js is "date" not "day".
+    ,
+    name: "date",
+    value: day,
+    step: 1,
+    min: 1,
+    max: 31,
+    onUpdate: update
+  }));
+  const monthFormat = (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: "components-datetime__time-field components-datetime__time-field-month"
+  }, (0,external_wp_element_namespaceObject.createElement)(UpdateOnBlurAsIntegerField, {
+    as: "select",
+    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Month'),
+    className: "components-datetime__time-field-month-select",
+    name: "month",
+    value: month // The value starts from 0, so we have to -1 when setting month.
+    ,
+    onUpdate: (key, value) => update(key, value - 1)
+  }, (0,external_wp_element_namespaceObject.createElement)("option", {
+    value: "01"
+  }, (0,external_wp_i18n_namespaceObject.__)('January')), (0,external_wp_element_namespaceObject.createElement)("option", {
+    value: "02"
+  }, (0,external_wp_i18n_namespaceObject.__)('February')), (0,external_wp_element_namespaceObject.createElement)("option", {
+    value: "03"
+  }, (0,external_wp_i18n_namespaceObject.__)('March')), (0,external_wp_element_namespaceObject.createElement)("option", {
+    value: "04"
+  }, (0,external_wp_i18n_namespaceObject.__)('April')), (0,external_wp_element_namespaceObject.createElement)("option", {
+    value: "05"
+  }, (0,external_wp_i18n_namespaceObject.__)('May')), (0,external_wp_element_namespaceObject.createElement)("option", {
+    value: "06"
+  }, (0,external_wp_i18n_namespaceObject.__)('June')), (0,external_wp_element_namespaceObject.createElement)("option", {
+    value: "07"
+  }, (0,external_wp_i18n_namespaceObject.__)('July')), (0,external_wp_element_namespaceObject.createElement)("option", {
+    value: "08"
+  }, (0,external_wp_i18n_namespaceObject.__)('August')), (0,external_wp_element_namespaceObject.createElement)("option", {
+    value: "09"
+  }, (0,external_wp_i18n_namespaceObject.__)('September')), (0,external_wp_element_namespaceObject.createElement)("option", {
+    value: "10"
+  }, (0,external_wp_i18n_namespaceObject.__)('October')), (0,external_wp_element_namespaceObject.createElement)("option", {
+    value: "11"
+  }, (0,external_wp_i18n_namespaceObject.__)('November')), (0,external_wp_element_namespaceObject.createElement)("option", {
+    value: "12"
+  }, (0,external_wp_i18n_namespaceObject.__)('December'))));
+  const dayMonthFormat = is12Hour ? (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, monthFormat, dayFormat) : (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, dayFormat, monthFormat);
+  return (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: classnames_default()('components-datetime__time')
+  }, (0,external_wp_element_namespaceObject.createElement)("fieldset", null, (0,external_wp_element_namespaceObject.createElement)("legend", {
+    className: "components-datetime__time-legend invisible"
+  }, (0,external_wp_i18n_namespaceObject.__)('Date')), (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: "components-datetime__time-wrapper"
+  }, dayMonthFormat, (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: "components-datetime__time-field components-datetime__time-field-year"
+  }, (0,external_wp_element_namespaceObject.createElement)(UpdateOnBlurAsIntegerField, {
+    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Year'),
+    className: "components-datetime__time-field-year-input",
+    type: "number",
+    name: "year",
+    step: 1,
+    min: 0,
+    max: 9999,
+    value: year,
+    onUpdate: update
+  })))), (0,external_wp_element_namespaceObject.createElement)("fieldset", null, (0,external_wp_element_namespaceObject.createElement)("legend", {
+    className: "components-datetime__time-legend invisible"
+  }, (0,external_wp_i18n_namespaceObject.__)('Time')), (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: "components-datetime__time-wrapper"
+  }, (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: "components-datetime__time-field components-datetime__time-field-time"
+  }, (0,external_wp_element_namespaceObject.createElement)(UpdateOnBlurAsIntegerField, {
+    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Hours'),
+    className: "components-datetime__time-field-hours-input",
+    type: "number",
+    name: "hours",
+    step: 1,
+    min: is12Hour ? 1 : 0,
+    max: is12Hour ? 12 : 23,
+    value: hours,
+    onUpdate: update
+  }), (0,external_wp_element_namespaceObject.createElement)("span", {
+    className: "components-datetime__time-separator",
+    "aria-hidden": "true"
+  }, ":"), (0,external_wp_element_namespaceObject.createElement)(UpdateOnBlurAsIntegerField, {
+    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Minutes'),
+    className: "components-datetime__time-field-minutes-input",
+    type: "number",
+    name: "minutes",
+    step: 1,
+    min: 0,
+    max: 59,
+    value: minutes,
+    onUpdate: update
+  })), is12Hour && (0,external_wp_element_namespaceObject.createElement)(button_group, {
+    className: "components-datetime__time-field components-datetime__time-field-am-pm"
+  }, (0,external_wp_element_namespaceObject.createElement)(build_module_button, {
+    variant: am === 'AM' ? 'primary' : 'secondary',
+    onClick: updateAmPm('AM'),
+    className: "components-datetime__time-am-button"
+  }, (0,external_wp_i18n_namespaceObject.__)('AM')), (0,external_wp_element_namespaceObject.createElement)(build_module_button, {
+    variant: am === 'PM' ? 'primary' : 'secondary',
+    onClick: updateAmPm('PM'),
+    className: "components-datetime__time-pm-button"
+  }, (0,external_wp_i18n_namespaceObject.__)('PM'))), (0,external_wp_element_namespaceObject.createElement)(timezone, null))));
+}
+/* harmony default export */ var time = (TimePicker);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/date-time/index.js
+
+
+/**
+ * External dependencies
+ */
+// Needed to initialise the default datepicker styles.
+// See: https://github.com/airbnb/react-dates#initialize
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+function DateTimePicker(_ref, ref) {
+  let {
+    currentDate,
+    is12Hour,
+    isInvalidDate,
+    onMonthPreviewed = external_lodash_namespaceObject.noop,
+    onChange,
+    events
+  } = _ref;
+  const [calendarHelpIsVisible, setCalendarHelpIsVisible] = (0,external_wp_element_namespaceObject.useState)(false);
+
+  function onClickDescriptionToggle() {
+    setCalendarHelpIsVisible(!calendarHelpIsVisible);
+  }
+
+  return (0,external_wp_element_namespaceObject.createElement)("div", {
+    ref: ref,
+    className: "components-datetime"
+  }, !calendarHelpIsVisible && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(time, {
+    currentTime: currentDate,
+    onChange: onChange,
+    is12Hour: is12Hour
+  }), (0,external_wp_element_namespaceObject.createElement)(date, {
+    currentDate: currentDate,
+    onChange: onChange,
+    isInvalidDate: isInvalidDate,
+    events: events,
+    onMonthPreviewed: onMonthPreviewed
+  })), calendarHelpIsVisible && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: "components-datetime__calendar-help"
+  }, (0,external_wp_element_namespaceObject.createElement)("h4", null, (0,external_wp_i18n_namespaceObject.__)('Click to Select')), (0,external_wp_element_namespaceObject.createElement)("ul", null, (0,external_wp_element_namespaceObject.createElement)("li", null, (0,external_wp_i18n_namespaceObject.__)('Click the right or left arrows to select other months in the past or the future.')), (0,external_wp_element_namespaceObject.createElement)("li", null, (0,external_wp_i18n_namespaceObject.__)('Click the desired day to select it.'))), (0,external_wp_element_namespaceObject.createElement)("h4", null, (0,external_wp_i18n_namespaceObject.__)('Navigating with a keyboard')), (0,external_wp_element_namespaceObject.createElement)("ul", null, (0,external_wp_element_namespaceObject.createElement)("li", null, (0,external_wp_element_namespaceObject.createElement)("abbr", {
+    "aria-label": (0,external_wp_i18n_namespaceObject._x)('Enter', 'keyboard button')
+  }, "\u21B5"), ' '
+  /* JSX removes whitespace, but a space is required for screen readers. */
+  , (0,external_wp_element_namespaceObject.createElement)("span", null, (0,external_wp_i18n_namespaceObject.__)('Select the date in focus.'))), (0,external_wp_element_namespaceObject.createElement)("li", null, (0,external_wp_element_namespaceObject.createElement)("abbr", {
+    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Left and Right Arrows')
+  }, "\u2190/\u2192"), ' '
+  /* JSX removes whitespace, but a space is required for screen readers. */
+  , (0,external_wp_i18n_namespaceObject.__)('Move backward (left) or forward (right) by one day.')), (0,external_wp_element_namespaceObject.createElement)("li", null, (0,external_wp_element_namespaceObject.createElement)("abbr", {
+    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Up and Down Arrows')
+  }, "\u2191/\u2193"), ' '
+  /* JSX removes whitespace, but a space is required for screen readers. */
+  , (0,external_wp_i18n_namespaceObject.__)('Move backward (up) or forward (down) by one week.')), (0,external_wp_element_namespaceObject.createElement)("li", null, (0,external_wp_element_namespaceObject.createElement)("abbr", {
+    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Page Up and Page Down')
+  }, (0,external_wp_i18n_namespaceObject.__)('PgUp/PgDn')), ' '
+  /* JSX removes whitespace, but a space is required for screen readers. */
+  , (0,external_wp_i18n_namespaceObject.__)('Move backward (PgUp) or forward (PgDn) by one month.')), (0,external_wp_element_namespaceObject.createElement)("li", null, (0,external_wp_element_namespaceObject.createElement)("abbr", {
+    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Home and End')
+  }, (0,external_wp_i18n_namespaceObject.__)('Home/End')), ' '
+  /* JSX removes whitespace, but a space is required for screen readers. */
+  , (0,external_wp_i18n_namespaceObject.__)('Go to the first (Home) or last (End) day of a week.'))))), (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: "components-datetime__buttons"
+  }, !calendarHelpIsVisible && currentDate && (0,external_wp_element_namespaceObject.createElement)(build_module_button, {
+    className: "components-datetime__date-reset-button",
+    variant: "link",
+    onClick: () => onChange(null)
+  }, (0,external_wp_i18n_namespaceObject.__)('Reset')), (0,external_wp_element_namespaceObject.createElement)(build_module_button, {
+    className: "components-datetime__date-help-toggle",
+    variant: "link",
+    onClick: onClickDescriptionToggle
+  }, calendarHelpIsVisible ? (0,external_wp_i18n_namespaceObject.__)('Close') : (0,external_wp_i18n_namespaceObject.__)('Calendar Help'))));
+}
+
+/* harmony default export */ var date_time = ((0,external_wp_element_namespaceObject.forwardRef)(DateTimePicker));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/dimension-control/sizes.js
+/**
+ * Sizes
+ *
+ * defines the sizes used in dimension controls
+ * all hardcoded `size` values are based on the value of
+ * the Sass variable `$block-padding` from
+ * `packages/block-editor/src/components/dimension-control/sizes.js`.
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Finds the correct size object from the provided sizes
+ * table by size slug (eg: `medium`)
+ *
+ * @param {Array}  sizes containing objects for each size definition.
+ * @param {string} slug  a string representation of the size (eg: `medium`).
+ *
+ * @return {Object} the matching size definition.
+ */
+
+const findSizeBySlug = (sizes, slug) => sizes.find(size => slug === size.slug);
+/* harmony default export */ var dimension_control_sizes = ([{
+  name: (0,external_wp_i18n_namespaceObject._x)('None', 'Size of a UI element'),
+  slug: 'none'
+}, {
+  name: (0,external_wp_i18n_namespaceObject._x)('Small', 'Size of a UI element'),
+  slug: 'small'
+}, {
+  name: (0,external_wp_i18n_namespaceObject._x)('Medium', 'Size of a UI element'),
+  slug: 'medium'
+}, {
+  name: (0,external_wp_i18n_namespaceObject._x)('Large', 'Size of a UI element'),
+  slug: 'large'
+}, {
+  name: (0,external_wp_i18n_namespaceObject._x)('Extra Large', 'Size of a UI element'),
+  slug: 'xlarge'
+}]);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/dimension-control/index.js
+
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+function DimensionControl(props) {
+  const {
+    label,
+    value,
+    sizes = dimension_control_sizes,
+    icon,
+    onChange,
+    className = ''
+  } = props;
+
+  const onChangeSpacingSize = val => {
+    const theSize = findSizeBySlug(sizes, val);
+
+    if (!theSize || value === theSize.slug) {
+      onChange(undefined);
+    } else if ((0,external_lodash_namespaceObject.isFunction)(onChange)) {
+      onChange(theSize.slug);
+    }
+  };
+
+  const formatSizesAsOptions = theSizes => {
+    const options = theSizes.map(_ref => {
+      let {
+        name,
+        slug
+      } = _ref;
+      return {
+        label: name,
+        value: slug
+      };
+    });
+    return [{
+      label: (0,external_wp_i18n_namespaceObject.__)('Default'),
+      value: ''
+    }].concat(options);
+  };
+
+  const selectLabel = (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, icon && (0,external_wp_element_namespaceObject.createElement)(build_module_icon, {
+    icon: icon
+  }), label);
+  return (0,external_wp_element_namespaceObject.createElement)(select_control, {
+    className: classnames_default()(className, 'block-editor-dimension-control'),
+    label: selectLabel,
+    hideLabelFromVision: false,
+    value: value,
+    onChange: onChangeSpacingSize,
+    options: formatSizesAsOptions(sizes)
+  });
+}
+/* harmony default export */ var dimension_control = (DimensionControl);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/disabled/styles/disabled-styles.js
+
+
+function disabled_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
+
+/**
+ * External dependencies
+ */
+const StyledWrapper = emotion_styled_base_browser_esm("div",  true ? {
+  target: "e1ac3xxk0"
+} : 0)( true ? {
+  name: "u2jump",
+  styles: "position:relative;pointer-events:none;&::after{content:'';position:absolute;top:0;right:0;bottom:0;left:0;}*{pointer-events:none;}"
+} : 0);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/disabled/index.js
+
+
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+const Context = (0,external_wp_element_namespaceObject.createContext)(false);
+const {
+  Consumer,
+  Provider: disabled_Provider
+} = Context;
+/**
+ * Names of control nodes which qualify for disabled behavior.
+ *
+ * See WHATWG HTML Standard: 4.10.18.5: "Enabling and disabling form controls: the disabled attribute".
+ *
+ * @see https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#enabling-and-disabling-form-controls:-the-disabled-attribute
+ *
+ * @type {string[]}
+ */
+
+const DISABLED_ELIGIBLE_NODE_NAMES = ['BUTTON', 'FIELDSET', 'INPUT', 'OPTGROUP', 'OPTION', 'SELECT', 'TEXTAREA'];
+/**
+ * @typedef OwnProps
+ * @property {string}                    [className]       Classname for the disabled element.
+ * @property {import('react').ReactNode} children          Children to disable.
+ * @property {boolean}                   [isDisabled=true] Whether to disable the children.
+ */
+
+/**
+ * @param {OwnProps & import('react').HTMLAttributes<HTMLDivElement>} props
+ * @return {JSX.Element} Element wrapping the children to disable them when isDisabled is true.
+ */
+
+function Disabled(_ref) {
+  let {
+    className,
+    children,
+    isDisabled = true,
+    ...props
+  } = _ref;
+
+  /** @type {import('react').RefObject<HTMLDivElement>} */
+  const node = (0,external_wp_element_namespaceObject.useRef)(null);
+
+  const disable = () => {
+    if (!node.current) {
+      return;
+    }
+
+    external_wp_dom_namespaceObject.focus.focusable.find(node.current).forEach(focusable => {
+      if ((0,external_lodash_namespaceObject.includes)(DISABLED_ELIGIBLE_NODE_NAMES, focusable.nodeName)) {
+        focusable.setAttribute('disabled', '');
+      }
+
+      if (focusable.nodeName === 'A') {
+        focusable.setAttribute('tabindex', '-1');
+      }
+
+      const tabIndex = focusable.getAttribute('tabindex');
+
+      if (tabIndex !== null && tabIndex !== '-1') {
+        focusable.removeAttribute('tabindex');
+      }
+
+      if (focusable.hasAttribute('contenteditable')) {
+        focusable.setAttribute('contenteditable', 'false');
+      }
+    });
+  }; // Debounce re-disable since disabling process itself will incur
+  // additional mutations which should be ignored.
+
+
+  const debouncedDisable = (0,external_wp_element_namespaceObject.useCallback)((0,external_lodash_namespaceObject.debounce)(disable, undefined, {
+    leading: true
+  }), []);
+  (0,external_wp_element_namespaceObject.useLayoutEffect)(() => {
+    if (!isDisabled) {
+      return;
+    }
+
+    disable();
+    /** @type {MutationObserver | undefined} */
+
+    let observer;
+
+    if (node.current) {
+      observer = new window.MutationObserver(debouncedDisable);
+      observer.observe(node.current, {
+        childList: true,
+        attributes: true,
+        subtree: true
+      });
+    }
+
+    return () => {
+      if (observer) {
+        observer.disconnect();
+      }
+
+      debouncedDisable.cancel();
+    };
+  }, []);
+
+  if (!isDisabled) {
+    return (0,external_wp_element_namespaceObject.createElement)(disabled_Provider, {
+      value: false
+    }, children);
+  }
+
+  return (0,external_wp_element_namespaceObject.createElement)(disabled_Provider, {
+    value: true
+  }, (0,external_wp_element_namespaceObject.createElement)(StyledWrapper, extends_extends({
+    ref: node,
+    className: classnames_default()(className, 'components-disabled')
+  }, props), children));
+}
+
+Disabled.Context = Context;
+Disabled.Consumer = Consumer;
+/* harmony default export */ var disabled = (Disabled);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/draggable/index.js
+
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * External dependencies
+ */
+
+
+const dragImageClass = 'components-draggable__invisible-drag-image';
+const cloneWrapperClass = 'components-draggable__clone';
+const clonePadding = 0;
+const bodyClass = 'is-dragging-components-draggable';
+/**
+ * @typedef RenderProp
+ * @property {(event: import('react').DragEvent) => void} onDraggableStart `onDragStart` handler.
+ * @property {(event: import('react').DragEvent) => void} onDraggableEnd   `onDragEnd` handler.
+ */
+
+/**
+ * @typedef Props
+ * @property {(props: RenderProp) => JSX.Element | null}  children                         Children.
+ * @property {(event: import('react').DragEvent) => void} [onDragStart]                    Callback when dragging starts.
+ * @property {(event: import('react').DragEvent) => void} [onDragOver]                     Callback when dragging happens over the document.
+ * @property {(event: import('react').DragEvent) => void} [onDragEnd]                      Callback when dragging ends.
+ * @property {string}                                     [cloneClassname]                 Classname for the cloned element.
+ * @property {string}                                     [elementId]                      ID for the element.
+ * @property {any}                                        [transferData]                   Transfer data for the drag event.
+ * @property {string}                                     [__experimentalTransferDataType] The transfer data type to set.
+ * @property {import('react').ReactNode}                  __experimentalDragComponent      Component to show when dragging.
+ */
+
+/**
+ * @param {Props} props
+ * @return {JSX.Element} A draggable component.
+ */
+
+function Draggable(_ref) {
+  let {
+    children,
+    onDragStart,
+    onDragOver,
+    onDragEnd,
+    cloneClassname,
+    elementId,
+    transferData,
+    __experimentalTransferDataType: transferDataType = 'text',
+    __experimentalDragComponent: dragComponent
+  } = _ref;
+
+  /** @type {import('react').MutableRefObject<HTMLDivElement | null>} */
+  const dragComponentRef = (0,external_wp_element_namespaceObject.useRef)(null);
+  const cleanup = (0,external_wp_element_namespaceObject.useRef)(() => {});
+  /**
+   * Removes the element clone, resets cursor, and removes drag listener.
+   *
+   * @param {import('react').DragEvent} event The non-custom DragEvent.
+   */
+
+  function end(event) {
+    event.preventDefault();
+    cleanup.current();
+
+    if (onDragEnd) {
+      onDragEnd(event);
+    }
+  }
+  /**
+   * This method does a couple of things:
+   *
+   * - Clones the current element and spawns clone over original element.
+   * - Adds a fake temporary drag image to avoid browser defaults.
+   * - Sets transfer data.
+   * - Adds dragover listener.
+   *
+   * @param {import('react').DragEvent} event The non-custom DragEvent.
+   */
+
+
+  function start(event) {
+    // @ts-ignore We know that ownerDocument does exist on an Element
+    const {
+      ownerDocument
+    } = event.target;
+    event.dataTransfer.setData(transferDataType, JSON.stringify(transferData));
+    const cloneWrapper = ownerDocument.createElement('div'); // Reset position to 0,0. Natural stacking order will position this lower, even with a transform otherwise.
+
+    cloneWrapper.style.top = 0;
+    cloneWrapper.style.left = 0;
+    const dragImage = ownerDocument.createElement('div'); // Set a fake drag image to avoid browser defaults. Remove from DOM
+    // right after. event.dataTransfer.setDragImage is not supported yet in
+    // IE, we need to check for its existence first.
+
+    if ('function' === typeof event.dataTransfer.setDragImage) {
+      dragImage.classList.add(dragImageClass);
+      ownerDocument.body.appendChild(dragImage);
+      event.dataTransfer.setDragImage(dragImage, 0, 0);
+    }
+
+    cloneWrapper.classList.add(cloneWrapperClass);
+
+    if (cloneClassname) {
+      cloneWrapper.classList.add(cloneClassname);
+    }
+
+    let x = 0;
+    let y = 0; // If a dragComponent is defined, the following logic will clone the
+    // HTML node and inject it into the cloneWrapper.
+
+    if (dragComponentRef.current) {
+      // Position dragComponent at the same position as the cursor.
+      x = event.clientX;
+      y = event.clientY;
+      cloneWrapper.style.transform = `translate( ${x}px, ${y}px )`;
+      const clonedDragComponent = ownerDocument.createElement('div');
+      clonedDragComponent.innerHTML = dragComponentRef.current.innerHTML;
+      cloneWrapper.appendChild(clonedDragComponent); // Inject the cloneWrapper into the DOM.
+
+      ownerDocument.body.appendChild(cloneWrapper);
+    } else {
+      const element = ownerDocument.getElementById(elementId); // Prepare element clone and append to element wrapper.
+
+      const elementRect = element.getBoundingClientRect();
+      const elementWrapper = element.parentNode;
+      const elementTopOffset = parseInt(elementRect.top, 10);
+      const elementLeftOffset = parseInt(elementRect.left, 10);
+      cloneWrapper.style.width = `${elementRect.width + clonePadding * 2}px`;
+      const clone = element.cloneNode(true);
+      clone.id = `clone-${elementId}`; // Position clone right over the original element (20px padding).
+
+      x = elementLeftOffset - clonePadding;
+      y = elementTopOffset - clonePadding;
+      cloneWrapper.style.transform = `translate( ${x}px, ${y}px )`; // Hack: Remove iFrames as it's causing the embeds drag clone to freeze.
+
+      Array.from(clone.querySelectorAll('iframe')).forEach(child => child.parentNode.removeChild(child));
+      cloneWrapper.appendChild(clone); // Inject the cloneWrapper into the DOM.
+
+      elementWrapper.appendChild(cloneWrapper);
+    } // Mark the current cursor coordinates.
+
+
+    let cursorLeft = event.clientX;
+    let cursorTop = event.clientY;
+    /**
+     * @param {import('react').DragEvent<Element>} e
+     */
+
+    function over(e) {
+      // Skip doing any work if mouse has not moved.
+      if (cursorLeft === e.clientX && cursorTop === e.clientY) {
+        return;
+      }
+
+      const nextX = x + e.clientX - cursorLeft;
+      const nextY = y + e.clientY - cursorTop;
+      cloneWrapper.style.transform = `translate( ${nextX}px, ${nextY}px )`;
+      cursorLeft = e.clientX;
+      cursorTop = e.clientY;
+      x = nextX;
+      y = nextY;
+
+      if (onDragOver) {
+        onDragOver(e);
+      }
+    } // Aim for 60fps (16 ms per frame) for now. We can potentially use requestAnimationFrame (raf) instead,
+    // note that browsers may throttle raf below 60fps in certain conditions.
+
+
+    const throttledDragOver = (0,external_lodash_namespaceObject.throttle)(over, 16);
+    ownerDocument.addEventListener('dragover', throttledDragOver); // Update cursor to 'grabbing', document wide.
+
+    ownerDocument.body.classList.add(bodyClass); // Allow the Synthetic Event to be accessed from asynchronous code.
+    // https://reactjs.org/docs/events.html#event-pooling
+
+    event.persist();
+    /** @type {number | undefined} */
+
+    let timerId;
+
+    if (onDragStart) {
+      timerId = setTimeout(() => onDragStart(event));
+    }
+
+    cleanup.current = () => {
+      // Remove drag clone.
+      if (cloneWrapper && cloneWrapper.parentNode) {
+        cloneWrapper.parentNode.removeChild(cloneWrapper);
+      }
+
+      if (dragImage && dragImage.parentNode) {
+        dragImage.parentNode.removeChild(dragImage);
+      } // Reset cursor.
+
+
+      ownerDocument.body.classList.remove(bodyClass);
+      ownerDocument.removeEventListener('dragover', throttledDragOver);
+      clearTimeout(timerId);
+    };
+  }
+
+  (0,external_wp_element_namespaceObject.useEffect)(() => () => {
+    cleanup.current();
+  }, []);
+  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, children({
+    onDraggableStart: start,
+    onDraggableEnd: end
+  }), dragComponent && (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: "components-draggable-drag-component-root",
+    style: {
+      display: 'none'
+    },
+    ref: dragComponentRef
+  }, dragComponent));
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/upload.js
+
+
+/**
+ * WordPress dependencies
+ */
+
+const upload = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
+  xmlns: "http://www.w3.org/2000/svg",
+  viewBox: "0 0 24 24"
+}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
+  d: "M18.5 15v3.5H13V6.7l4.5 4.1 1-1.1-6.2-5.8-5.8 5.8 1 1.1 4-4v11.7h-6V15H4v5h16v-5z"
+}));
+/* harmony default export */ var library_upload = (upload);
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/utils/use-is-mounted.mjs
+
+
+
+function useIsMounted() {
+    var isMounted = (0,external_React_.useRef)(false);
+    useIsomorphicLayoutEffect(function () {
+        isMounted.current = true;
+        return function () {
+            isMounted.current = false;
+        };
+    }, []);
+    return isMounted;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/utils/use-force-update.mjs
+
+
+
+
+
+function use_force_update_useForceUpdate() {
+    var isMounted = useIsMounted();
+    var _a = tslib_es6_read((0,external_React_.useState)(0), 2), forcedRenderCount = _a[0], setForcedRenderCount = _a[1];
+    var forceRender = (0,external_React_.useCallback)(function () {
+        isMounted.current && setForcedRenderCount(forcedRenderCount + 1);
+    }, [forcedRenderCount]);
+    /**
+     * Defer this to the end of the next animation frame in case there are multiple
+     * synchronous calls.
+     */
+    var deferredForceRender = (0,external_React_.useCallback)(function () { return es.postRender(forceRender); }, [forceRender]);
+    return [deferredForceRender, forcedRenderCount];
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs
+
+
+
+
+
+
+
+var PresenceChild = function (_a) {
+    var children = _a.children, initial = _a.initial, isPresent = _a.isPresent, onExitComplete = _a.onExitComplete, custom = _a.custom, presenceAffectsLayout = _a.presenceAffectsLayout;
+    var presenceChildren = useConstant(newChildrenMap);
+    var id = useId();
+    var context = (0,external_React_.useMemo)(function () { return ({
+        id: id,
+        initial: initial,
+        isPresent: isPresent,
+        custom: custom,
+        onExitComplete: function (childId) {
+            var e_1, _a;
+            presenceChildren.set(childId, true);
+            try {
+                for (var _b = __values(presenceChildren.values()), _c = _b.next(); !_c.done; _c = _b.next()) {
+                    var isComplete = _c.value;
+                    if (!isComplete)
+                        return; // can stop searching when any is incomplete
+                }
+            }
+            catch (e_1_1) { e_1 = { error: e_1_1 }; }
+            finally {
+                try {
+                    if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
+                }
+                finally { if (e_1) throw e_1.error; }
+            }
+            onExitComplete === null || onExitComplete === void 0 ? void 0 : onExitComplete();
+        },
+        register: function (childId) {
+            presenceChildren.set(childId, false);
+            return function () { return presenceChildren.delete(childId); };
+        },
+    }); }, 
+    /**
+     * If the presence of a child affects the layout of the components around it,
+     * we want to make a new context value to ensure they get re-rendered
+     * so they can detect that layout change.
+     */
+    presenceAffectsLayout ? undefined : [isPresent]);
+    (0,external_React_.useMemo)(function () {
+        presenceChildren.forEach(function (_, key) { return presenceChildren.set(key, false); });
+    }, [isPresent]);
+    /**
+     * If there's no `motion` components to fire exit animations, we want to remove this
+     * component immediately.
+     */
+    external_React_.useEffect(function () {
+        !isPresent && !presenceChildren.size && (onExitComplete === null || onExitComplete === void 0 ? void 0 : onExitComplete());
+    }, [isPresent]);
+    return (external_React_.createElement(PresenceContext_PresenceContext.Provider, { value: context }, children));
+};
+function newChildrenMap() {
+    return new Map();
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs
+
+
+
+
+
+
+
+
+
+
+
+var getChildKey = function (child) { return child.key || ""; };
+function updateChildLookup(children, allChildren) {
+    children.forEach(function (child) {
+        var key = getChildKey(child);
+        allChildren.set(key, child);
+    });
+}
+function onlyElements(children) {
+    var filtered = [];
+    // We use forEach here instead of map as map mutates the component key by preprending `.$`
+    external_React_.Children.forEach(children, function (child) {
+        if ((0,external_React_.isValidElement)(child))
+            filtered.push(child);
+    });
+    return filtered;
+}
+/**
+ * `AnimatePresence` enables the animation of components that have been removed from the tree.
+ *
+ * When adding/removing more than a single child, every child **must** be given a unique `key` prop.
+ *
+ * Any `motion` components that have an `exit` property defined will animate out when removed from
+ * the tree.
+ *
+ * ```jsx
+ * import { motion, AnimatePresence } from 'framer-motion'
+ *
+ * export const Items = ({ items }) => (
+ *   <AnimatePresence>
+ *     {items.map(item => (
+ *       <motion.div
+ *         key={item.id}
+ *         initial={{ opacity: 0 }}
+ *         animate={{ opacity: 1 }}
+ *         exit={{ opacity: 0 }}
+ *       />
+ *     ))}
+ *   </AnimatePresence>
+ * )
+ * ```
+ *
+ * You can sequence exit animations throughout a tree using variants.
+ *
+ * If a child contains multiple `motion` components with `exit` props, it will only unmount the child
+ * once all `motion` components have finished animating out. Likewise, any components using
+ * `usePresence` all need to call `safeToRemove`.
+ *
+ * @public
+ */
+var AnimatePresence = function (_a) {
+    var children = _a.children, custom = _a.custom, _b = _a.initial, initial = _b === void 0 ? true : _b, onExitComplete = _a.onExitComplete, exitBeforeEnter = _a.exitBeforeEnter, _c = _a.presenceAffectsLayout, presenceAffectsLayout = _c === void 0 ? true : _c;
+    // We want to force a re-render once all exiting animations have finished. We
+    // either use a local forceRender function, or one from a parent context if it exists.
+    var _d = tslib_es6_read(use_force_update_useForceUpdate(), 1), forceRender = _d[0];
+    var forceRenderLayoutGroup = (0,external_React_.useContext)(LayoutGroupContext).forceRender;
+    if (forceRenderLayoutGroup)
+        forceRender = forceRenderLayoutGroup;
+    var isMounted = useIsMounted();
+    // Filter out any children that aren't ReactElements. We can only track ReactElements with a props.key
+    var filteredChildren = onlyElements(children);
+    var childrenToRender = filteredChildren;
+    var exiting = new Set();
+    // Keep a living record of the children we're actually rendering so we
+    // can diff to figure out which are entering and exiting
+    var presentChildren = (0,external_React_.useRef)(childrenToRender);
+    // A lookup table to quickly reference components by key
+    var allChildren = (0,external_React_.useRef)(new Map()).current;
+    // If this is the initial component render, just deal with logic surrounding whether
+    // we play onMount animations or not.
+    var isInitialRender = (0,external_React_.useRef)(true);
+    useIsomorphicLayoutEffect(function () {
+        isInitialRender.current = false;
+        updateChildLookup(filteredChildren, allChildren);
+        presentChildren.current = childrenToRender;
+    });
+    useUnmountEffect(function () {
+        isInitialRender.current = true;
+        allChildren.clear();
+        exiting.clear();
+    });
+    if (isInitialRender.current) {
+        return (external_React_.createElement(external_React_.Fragment, null, childrenToRender.map(function (child) { return (external_React_.createElement(PresenceChild, { key: getChildKey(child), isPresent: true, initial: initial ? undefined : false, presenceAffectsLayout: presenceAffectsLayout }, child)); })));
+    }
+    // If this is a subsequent render, deal with entering and exiting children
+    childrenToRender = tslib_es6_spreadArray([], tslib_es6_read(childrenToRender), false);
+    // Diff the keys of the currently-present and target children to update our
+    // exiting list.
+    var presentKeys = presentChildren.current.map(getChildKey);
+    var targetKeys = filteredChildren.map(getChildKey);
+    // Diff the present children with our target children and mark those that are exiting
+    var numPresent = presentKeys.length;
+    for (var i = 0; i < numPresent; i++) {
+        var key = presentKeys[i];
+        if (targetKeys.indexOf(key) === -1) {
+            exiting.add(key);
+        }
+    }
+    // If we currently have exiting children, and we're deferring rendering incoming children
+    // until after all current children have exiting, empty the childrenToRender array
+    if (exitBeforeEnter && exiting.size) {
+        childrenToRender = [];
+    }
+    // Loop through all currently exiting components and clone them to overwrite `animate`
+    // with any `exit` prop they might have defined.
+    exiting.forEach(function (key) {
+        // If this component is actually entering again, early return
+        if (targetKeys.indexOf(key) !== -1)
+            return;
+        var child = allChildren.get(key);
+        if (!child)
+            return;
+        var insertionIndex = presentKeys.indexOf(key);
+        var onExit = function () {
+            allChildren.delete(key);
+            exiting.delete(key);
+            // Remove this child from the present children
+            var removeIndex = presentChildren.current.findIndex(function (presentChild) { return presentChild.key === key; });
+            presentChildren.current.splice(removeIndex, 1);
+            // Defer re-rendering until all exiting children have indeed left
+            if (!exiting.size) {
+                presentChildren.current = filteredChildren;
+                if (isMounted.current === false)
+                    return;
+                forceRender();
+                onExitComplete && onExitComplete();
+            }
+        };
+        childrenToRender.splice(insertionIndex, 0, external_React_.createElement(PresenceChild, { key: getChildKey(child), isPresent: false, onExitComplete: onExit, custom: custom, presenceAffectsLayout: presenceAffectsLayout }, child));
+    });
+    // Add `MotionContext` even to children that don't need it to ensure we're rendering
+    // the same tree between renders
+    childrenToRender = childrenToRender.map(function (child) {
+        var key = child.key;
+        return exiting.has(key) ? (child) : (external_React_.createElement(PresenceChild, { key: getChildKey(child), isPresent: true, presenceAffectsLayout: presenceAffectsLayout }, child));
+    });
+    if (env !== "production" &&
+        exitBeforeEnter &&
+        childrenToRender.length > 1) {
+        console.warn("You're attempting to animate multiple children within AnimatePresence, but its exitBeforeEnter prop is set to true. This will lead to odd visual behaviour.");
+    }
+    return (external_React_.createElement(external_React_.Fragment, null, exiting.size
+        ? childrenToRender
+        : childrenToRender.map(function (child) { return (0,external_React_.cloneElement)(child); })));
+};
+
+
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/drop-zone/index.js
+
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+function DropZoneComponent(_ref) {
+  let {
+    className,
+    label,
+    onFilesDrop,
+    onHTMLDrop,
+    onDrop
+  } = _ref;
+  const [isDraggingOverDocument, setIsDraggingOverDocument] = (0,external_wp_element_namespaceObject.useState)();
+  const [isDraggingOverElement, setIsDraggingOverElement] = (0,external_wp_element_namespaceObject.useState)();
+  const [type, setType] = (0,external_wp_element_namespaceObject.useState)();
+  const ref = (0,external_wp_compose_namespaceObject.__experimentalUseDropZone)({
+    onDrop(event) {
+      const files = (0,external_wp_dom_namespaceObject.getFilesFromDataTransfer)(event.dataTransfer);
+      const html = event.dataTransfer.getData('text/html');
+      /**
+       * From Windows Chrome 96, the `event.dataTransfer` returns both file object and HTML.
+       * The order of the checks is important to recognise the HTML drop.
+       */
+
+      if (html && onHTMLDrop) {
+        onHTMLDrop(html);
+      } else if (files.length && onFilesDrop) {
+        onFilesDrop(files);
+      } else if (onDrop) {
+        onDrop(event);
+      }
+    },
+
+    onDragStart(event) {
+      setIsDraggingOverDocument(true);
+      let _type = 'default';
+      /**
+       * From Windows Chrome 96, the `event.dataTransfer` returns both file object and HTML.
+       * The order of the checks is important to recognise the HTML drop.
+       */
+
+      if ((0,external_lodash_namespaceObject.includes)(event.dataTransfer.types, 'text/html')) {
+        _type = 'html';
+      } else if ( // Check for the types because sometimes the files themselves
+      // are only available on drop.
+      (0,external_lodash_namespaceObject.includes)(event.dataTransfer.types, 'Files') || (0,external_wp_dom_namespaceObject.getFilesFromDataTransfer)(event.dataTransfer).length > 0) {
+        _type = 'file';
+      }
+
+      setType(_type);
+    },
+
+    onDragEnd() {
+      setIsDraggingOverDocument(false);
+      setType();
+    },
+
+    onDragEnter() {
+      setIsDraggingOverElement(true);
+    },
+
+    onDragLeave() {
+      setIsDraggingOverElement(false);
+    }
+
+  });
+  const disableMotion = (0,external_wp_compose_namespaceObject.useReducedMotion)();
+  let children;
+  const backdrop = {
+    hidden: {
+      scaleY: 0,
+      opacity: 0
+    },
+    show: {
+      scaleY: 1,
+      opacity: 1,
+      transition: {
+        type: 'tween',
+        duration: 0.2,
+        delay: 0.1,
+        delayChildren: 0.2
+      }
+    },
+    exit: {
+      scaleY: 1,
+      opacity: 0,
+      transition: {
+        duration: 0.3,
+        delayChildren: 0
+      }
+    }
+  };
+  const foreground = {
+    hidden: {
+      opacity: 0,
+      scale: 0.75
+    },
+    show: {
+      opacity: 1,
+      scale: 1
+    },
+    exit: {
+      opacity: 0,
+      scale: 0.9
+    }
+  };
+
+  if (isDraggingOverElement) {
+    children = (0,external_wp_element_namespaceObject.createElement)(motion.div, {
+      variants: backdrop,
+      initial: disableMotion ? 'show' : 'hidden',
+      animate: "show",
+      exit: disableMotion ? 'show' : 'exit',
+      className: "components-drop-zone__content"
+    }, (0,external_wp_element_namespaceObject.createElement)(motion.div, {
+      variants: foreground
+    }, (0,external_wp_element_namespaceObject.createElement)(icons_build_module_icon, {
+      icon: library_upload,
+      className: "components-drop-zone__content-icon"
+    }), (0,external_wp_element_namespaceObject.createElement)("span", {
+      className: "components-drop-zone__content-text"
+    }, label ? label : (0,external_wp_i18n_namespaceObject.__)('Drop files to upload'))));
+  }
+
+  const classes = classnames_default()('components-drop-zone', className, {
+    'is-active': (isDraggingOverDocument || isDraggingOverElement) && (type === 'file' && onFilesDrop || type === 'html' && onHTMLDrop || type === 'default' && onDrop),
+    'is-dragging-over-document': isDraggingOverDocument,
+    'is-dragging-over-element': isDraggingOverElement,
+    [`is-dragging-${type}`]: !!type
+  });
+  return (0,external_wp_element_namespaceObject.createElement)("div", {
+    ref: ref,
+    className: classes
+  }, disableMotion ? children : (0,external_wp_element_namespaceObject.createElement)(AnimatePresence, null, children));
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/drop-zone/provider.js
+/**
+ * WordPress dependencies
+ */
+
+function DropZoneProvider(_ref) {
+  let {
+    children
+  } = _ref;
+  external_wp_deprecated_default()('wp.components.DropZoneProvider', {
+    since: '5.8',
+    hint: 'wp.component.DropZone no longer needs a provider. wp.components.DropZoneProvider is safe to remove from your code.'
+  });
+  return children;
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/swatch.js
+
+
+/**
+ * WordPress dependencies
+ */
+
+const swatch = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
+  xmlns: "http://www.w3.org/2000/svg",
+  viewBox: "0 0 24 24"
+}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
+  d: "M5 17.7c.4.5.8.9 1.2 1.2l1.1-1.4c-.4-.3-.7-.6-1-1L5 17.7zM5 6.3l1.4 1.1c.3-.4.6-.7 1-1L6.3 5c-.5.4-.9.8-1.3 1.3zm.1 7.8l-1.7.5c.2.6.4 1.1.7 1.6l1.5-.8c-.2-.4-.4-.8-.5-1.3zM4.8 12v-.7L3 11.1v1.8l1.7-.2c.1-.2.1-.5.1-.7zm3 7.9c.5.3 1.1.5 1.6.7l.5-1.7c-.5-.1-.9-.3-1.3-.5l-.8 1.5zM19 6.3c-.4-.5-.8-.9-1.2-1.2l-1.1 1.4c.4.3.7.6 1 1L19 6.3zm-.1 3.6l1.7-.5c-.2-.6-.4-1.1-.7-1.6l-1.5.8c.2.4.4.8.5 1.3zM5.6 8.6l-1.5-.8c-.3.5-.5 1-.7 1.6l1.7.5c.1-.5.3-.9.5-1.3zm2.2-4.5l.8 1.5c.4-.2.8-.4 1.3-.5l-.5-1.7c-.6.2-1.1.4-1.6.7zm8.8 13.5l1.1 1.4c.5-.4.9-.8 1.2-1.2l-1.4-1.1c-.2.3-.5.6-.9.9zm1.8-2.2l1.5.8c.3-.5.5-1.1.7-1.6l-1.7-.5c-.1.5-.3.9-.5 1.3zm2.6-4.3l-1.7.2v1.4l1.7.2V12v-.9zM11.1 3l.2 1.7h1.4l.2-1.7h-1.8zm3 2.1c.5.1.9.3 1.3.5l.8-1.5c-.5-.3-1.1-.5-1.6-.7l-.5 1.7zM12 19.2h-.7l-.2 1.8h1.8l-.2-1.7c-.2-.1-.5-.1-.7-.1zm2.1-.3l.5 1.7c.6-.2 1.1-.4 1.6-.7l-.8-1.5c-.4.2-.8.4-1.3.5z"
+}));
+/* harmony default export */ var library_swatch = (swatch);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/swatch/index.js
+
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+function Swatch(_ref) {
+  let {
+    fill
+  } = _ref;
+  return fill ? (0,external_wp_element_namespaceObject.createElement)("span", {
+    className: "components-swatch",
+    style: {
+      background: fill
+    }
+  }) : (0,external_wp_element_namespaceObject.createElement)(build_module_icon, {
+    icon: library_swatch
+  });
+}
+
+/* harmony default export */ var build_module_swatch = (Swatch);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/duotone-picker/utils.js
+/**
+ * External dependencies
+ */
+
+
+k([names]);
+/**
+ * Object representation for a color.
+ *
+ * @typedef {Object} RGBColor
+ * @property {number} r Red component of the color in the range [0,1].
+ * @property {number} g Green component of the color in the range [0,1].
+ * @property {number} b Blue component of the color in the range [0,1].
+ */
+
+/**
+ * Calculate the brightest and darkest values from a color palette.
+ *
+ * @param {Object[]} palette Color palette for the theme.
+ *
+ * @return {string[]} Tuple of the darkest color and brightest color.
+ */
+
+function getDefaultColors(palette) {
+  // A default dark and light color are required.
+  if (!palette || palette.length < 2) return ['#000', '#fff'];
+  return palette.map(_ref => {
+    let {
+      color
+    } = _ref;
+    return {
+      color,
+      brightness: w(color).brightness()
+    };
+  }).reduce((_ref2, current) => {
+    let [min, max] = _ref2;
+    return [current.brightness <= min.brightness ? current : min, current.brightness >= max.brightness ? current : max];
+  }, [{
+    brightness: 1
+  }, {
+    brightness: 0
+  }]).map(_ref3 => {
+    let {
+      color
+    } = _ref3;
+    return color;
+  });
+}
+/**
+ * Generate a duotone gradient from a list of colors.
+ *
+ * @param {string[]} colors CSS color strings.
+ * @param {string}   angle  CSS gradient angle.
+ *
+ * @return {string} CSS gradient string for the duotone swatch.
+ */
+
+function getGradientFromCSSColors() {
+  let colors = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
+  let angle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '90deg';
+  const l = 100 / colors.length;
+  const stops = colors.map((c, i) => `${c} ${i * l}%, ${c} ${(i + 1) * l}%`).join(', ');
+  return `linear-gradient( ${angle}, ${stops} )`;
+}
+/**
+ * Convert a color array to an array of color stops.
+ *
+ * @param {string[]} colors CSS colors array
+ *
+ * @return {Object[]} Color stop information.
+ */
+
+function getColorStopsFromColors(colors) {
+  return colors.map((color, i) => ({
+    position: i * 100 / (colors.length - 1),
+    color
+  }));
+}
+/**
+ * Convert a color stop array to an array colors.
+ *
+ * @param {Object[]} colorStops Color stop information.
+ *
+ * @return {string[]} CSS colors array.
+ */
+
+function getColorsFromColorStops() {
+  let colorStops = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
+  return colorStops.map(_ref4 => {
+    let {
+      color
+    } = _ref4;
+    return color;
+  });
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/duotone-picker/duotone-swatch.js
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+function DuotoneSwatch(_ref) {
+  let {
+    values
+  } = _ref;
+  return (0,external_wp_element_namespaceObject.createElement)(build_module_swatch, {
+    fill: values && getGradientFromCSSColors(values, '135deg')
+  });
+}
+
+/* harmony default export */ var duotone_swatch = (DuotoneSwatch);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/color-list-picker/index.js
+
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+function ColorOption(_ref) {
+  let {
+    label,
+    value,
+    colors,
+    disableCustomColors,
+    enableAlpha,
+    onChange
+  } = _ref;
+  const [isOpen, setIsOpen] = (0,external_wp_element_namespaceObject.useState)(false);
+  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(build_module_button, {
+    className: "components-color-list-picker__swatch-button",
+    icon: (0,external_wp_element_namespaceObject.createElement)(build_module_swatch, {
+      fill: value
+    }),
+    onClick: () => setIsOpen(prev => !prev)
+  }, label), isOpen && (0,external_wp_element_namespaceObject.createElement)(ColorPalette, {
+    className: "components-color-list-picker__color-picker",
+    colors: colors,
+    value: value,
+    clearable: false,
+    onChange: onChange,
+    disableCustomColors: disableCustomColors,
+    enableAlpha: enableAlpha
+  }));
+}
+
+function ColorListPicker(_ref2) {
+  let {
+    colors,
+    labels,
+    value = [],
+    disableCustomColors,
+    enableAlpha,
+    onChange
+  } = _ref2;
+  return (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: "components-color-list-picker"
+  }, labels.map((label, index) => (0,external_wp_element_namespaceObject.createElement)(ColorOption, {
+    key: index,
+    label: label,
+    value: value[index],
+    colors: colors,
+    disableCustomColors: disableCustomColors,
+    enableAlpha: enableAlpha,
+    onChange: newColor => {
+      const newColors = value.slice();
+      newColors[index] = newColor;
+      onChange(newColors);
+    }
+  })));
+}
+
+/* harmony default export */ var color_list_picker = (ColorListPicker);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/duotone-picker/custom-duotone-bar.js
+
+
+/**
+ * Internal dependencies
+ */
+
+
+const PLACEHOLDER_VALUES = ['#333', '#CCC'];
+function CustomDuotoneBar(_ref) {
+  let {
+    value,
+    onChange
+  } = _ref;
+  const hasGradient = !!value;
+  const values = hasGradient ? value : PLACEHOLDER_VALUES;
+  const background = getGradientFromCSSColors(values);
+  const controlPoints = getColorStopsFromColors(values);
+  return (0,external_wp_element_namespaceObject.createElement)(CustomGradientBar, {
+    disableInserter: true,
+    background: background,
+    hasGradient: hasGradient,
+    value: controlPoints,
+    onChange: newColorStops => {
+      const newValue = getColorsFromColorStops(newColorStops);
+      onChange(newValue);
+    }
+  });
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/duotone-picker/duotone-picker.js
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+function DuotonePicker(_ref) {
+  let {
+    clearable = true,
+    colorPalette,
+    duotonePalette,
+    disableCustomColors,
+    disableCustomDuotone,
+    value,
+    onChange
+  } = _ref;
+  const [defaultDark, defaultLight] = (0,external_wp_element_namespaceObject.useMemo)(() => getDefaultColors(colorPalette), [colorPalette]);
+  return (0,external_wp_element_namespaceObject.createElement)(CircularOptionPicker, {
+    options: duotonePalette.map(_ref2 => {
+      let {
+        colors,
+        slug,
+        name
+      } = _ref2;
+      const style = {
+        background: getGradientFromCSSColors(colors, '135deg'),
+        color: 'transparent'
+      };
+      const tooltipText = name !== null && name !== void 0 ? name : (0,external_wp_i18n_namespaceObject.sprintf)( // translators: %s: duotone code e.g: "dark-grayscale" or "7f7f7f-ffffff".
+      (0,external_wp_i18n_namespaceObject.__)('Duotone code: %s'), slug);
+      const label = name ? (0,external_wp_i18n_namespaceObject.sprintf)( // translators: %s: The name of the option e.g: "Dark grayscale".
+      (0,external_wp_i18n_namespaceObject.__)('Duotone: %s'), name) : tooltipText;
+      const isSelected = (0,external_lodash_namespaceObject.isEqual)(colors, value);
+      return (0,external_wp_element_namespaceObject.createElement)(CircularOptionPicker.Option, {
+        key: slug,
+        value: colors,
+        isSelected: isSelected,
+        "aria-label": label,
+        tooltipText: tooltipText,
+        style: style,
+        onClick: () => {
+          onChange(isSelected ? undefined : colors);
+        }
+      });
+    }),
+    actions: !!clearable && (0,external_wp_element_namespaceObject.createElement)(CircularOptionPicker.ButtonAction, {
+      onClick: () => onChange(undefined)
+    }, (0,external_wp_i18n_namespaceObject.__)('Clear'))
+  }, !disableCustomColors && !disableCustomDuotone && (0,external_wp_element_namespaceObject.createElement)(CustomDuotoneBar, {
+    value: value,
+    onChange: onChange
+  }), !disableCustomDuotone && (0,external_wp_element_namespaceObject.createElement)(color_list_picker, {
+    labels: [(0,external_wp_i18n_namespaceObject.__)('Shadows'), (0,external_wp_i18n_namespaceObject.__)('Highlights')],
+    colors: colorPalette,
+    value: value,
+    disableCustomColors: disableCustomColors,
+    enableAlpha: true,
+    onChange: newColors => {
+      if (!newColors[0]) {
+        newColors[0] = defaultDark;
+      }
+
+      if (!newColors[1]) {
+        newColors[1] = defaultLight;
+      }
+
+      const newValue = newColors.length >= 2 ? newColors : undefined;
+      onChange(newValue);
+    }
+  }));
+}
+
+/* harmony default export */ var duotone_picker = (DuotonePicker);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/external.js
+
+
+/**
+ * WordPress dependencies
+ */
+
+const external = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
+  xmlns: "http://www.w3.org/2000/svg",
+  viewBox: "0 0 24 24"
+}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
+  d: "M18.2 17c0 .7-.6 1.2-1.2 1.2H7c-.7 0-1.2-.6-1.2-1.2V7c0-.7.6-1.2 1.2-1.2h3.2V4.2H7C5.5 4.2 4.2 5.5 4.2 7v10c0 1.5 1.2 2.8 2.8 2.8h10c1.5 0 2.8-1.2 2.8-2.8v-3.6h-1.5V17zM14.9 3v1.5h3.7l-6.4 6.4 1.1 1.1 6.4-6.4v3.7h1.5V3h-6.3z"
+}));
+/* harmony default export */ var library_external = (external);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/external-link/styles/external-link-styles.js
+
+
+function external_link_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+const StyledIcon = /*#__PURE__*/emotion_styled_base_browser_esm(icons_build_module_icon,  true ? {
+  target: "etxm6pv0"
+} : 0)( true ? {
+  name: "rvs7bx",
+  styles: "width:1em;height:1em;margin:0;vertical-align:middle;fill:currentColor"
+} : 0);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/external-link/index.js
+
+
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+function ExternalLink(_ref, ref) {
+  let {
+    href,
+    children,
+    className,
+    rel = '',
+    ...additionalProps
+  } = _ref;
+  rel = (0,external_lodash_namespaceObject.uniq)((0,external_lodash_namespaceObject.compact)([...rel.split(' '), 'external', 'noreferrer', 'noopener'])).join(' ');
+  const classes = classnames_default()('components-external-link', className);
+  return (
+    /* eslint-disable react/jsx-no-target-blank */
+    (0,external_wp_element_namespaceObject.createElement)("a", extends_extends({}, additionalProps, {
+      className: classes,
+      href: href,
+      target: "_blank",
+      rel: rel,
+      ref: ref
+    }), children, (0,external_wp_element_namespaceObject.createElement)(visually_hidden_component, {
+      as: "span"
+    },
+    /* translators: accessibility text */
+    (0,external_wp_i18n_namespaceObject.__)('(opens in a new tab)')), (0,external_wp_element_namespaceObject.createElement)(StyledIcon, {
+      icon: library_external,
+      className: "components-external-link__icon"
+    }))
+    /* eslint-enable react/jsx-no-target-blank */
+
+  );
+}
+/* harmony default export */ var external_link = ((0,external_wp_element_namespaceObject.forwardRef)(ExternalLink));
+
+;// CONCATENATED MODULE: ./node_modules/reakit/es/__keys-26bb1730.js
+// Automatically generated
+var POPOVER_STATE_KEYS = ["baseId", "unstable_idCountRef", "visible", "animated", "animating", "setBaseId", "show", "hide", "toggle", "setVisible", "setAnimated", "stopAnimation", "modal", "unstable_disclosureRef", "setModal", "unstable_referenceRef", "unstable_popoverRef", "unstable_arrowRef", "unstable_popoverStyles", "unstable_arrowStyles", "unstable_originalPlacement", "unstable_update", "placement", "place"];
+var POPOVER_KEYS = POPOVER_STATE_KEYS;
+var POPOVER_ARROW_KEYS = [].concat(POPOVER_KEYS, ["size"]);
+var POPOVER_BACKDROP_KEYS = POPOVER_KEYS;
+var POPOVER_DISCLOSURE_KEYS = POPOVER_BACKDROP_KEYS;
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit/es/__keys-ed7b48af.js
+// Automatically generated
+var DIALOG_STATE_KEYS = ["baseId", "unstable_idCountRef", "visible", "animated", "animating", "setBaseId", "show", "hide", "toggle", "setVisible", "setAnimated", "stopAnimation", "modal", "unstable_disclosureRef", "setModal"];
+var DIALOG_KEYS = [].concat(DIALOG_STATE_KEYS, ["hideOnEsc", "hideOnClickOutside", "preventBodyScroll", "unstable_initialFocusRef", "unstable_finalFocusRef", "unstable_orphan", "unstable_autoFocusOnShow", "unstable_autoFocusOnHide"]);
+var DIALOG_BACKDROP_KEYS = DIALOG_STATE_KEYS;
+var DIALOG_DISCLOSURE_KEYS = DIALOG_BACKDROP_KEYS;
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit/es/Button/Button.js
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+// Automatically generated
+var BUTTON_KEYS = [];
+
+var useButton = createHook({
+  name: "Button",
+  compose: useClickable,
+  keys: BUTTON_KEYS,
+  useProps: function useProps(_, _ref) {
+    var htmlRef = _ref.ref,
+        htmlProps = _objectWithoutPropertiesLoose(_ref, ["ref"]);
+
+    var ref = (0,external_React_.useRef)(null);
+
+    var _React$useState = (0,external_React_.useState)(undefined),
+        role = _React$useState[0],
+        setRole = _React$useState[1];
+
+    var _React$useState2 = (0,external_React_.useState)("button"),
+        type = _React$useState2[0],
+        setType = _React$useState2[1];
+
+    (0,external_React_.useEffect)(function () {
+      var element = ref.current;
+
+      if (!element) {
+         false ? 0 : void 0;
+        return;
+      }
+
+      if (!isButton(element)) {
+        if (element.tagName !== "A") {
+          setRole("button");
+        }
+
+        setType(undefined);
+      }
+    }, []);
+    return _objectSpread2({
+      ref: useForkRef(ref, htmlRef),
+      role: role,
+      type: type
+    }, htmlProps);
+  }
+});
+var Button_Button = createComponent({
+  as: "button",
+  memo: true,
+  useHook: useButton
+});
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit/es/Disclosure/Disclosure.js
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+var useDisclosure = createHook({
+  name: "Disclosure",
+  compose: useButton,
+  keys: DISCLOSURE_KEYS,
+  useProps: function useProps(options, _ref) {
+    var htmlOnClick = _ref.onClick,
+        ariaControls = _ref["aria-controls"],
+        htmlProps = _objectWithoutPropertiesLoose(_ref, ["onClick", "aria-controls"]);
+
+    var onClickRef = useLiveRef(htmlOnClick);
+    var controls = ariaControls ? ariaControls + " " + options.baseId : options.baseId;
+    var onClick = (0,external_React_.useCallback)(function (event) {
+      var _onClickRef$current, _options$toggle;
+
+      (_onClickRef$current = onClickRef.current) === null || _onClickRef$current === void 0 ? void 0 : _onClickRef$current.call(onClickRef, event);
+      if (event.defaultPrevented) return;
+      (_options$toggle = options.toggle) === null || _options$toggle === void 0 ? void 0 : _options$toggle.call(options);
+    }, [options.toggle]);
+    return _objectSpread2({
+      "aria-expanded": !!options.visible,
+      "aria-controls": controls,
+      onClick: onClick
+    }, htmlProps);
+  }
+});
+var Disclosure = createComponent({
+  as: "button",
+  memo: true,
+  useHook: useDisclosure
+});
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit/es/Dialog/DialogDisclosure.js
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+var useDialogDisclosure = createHook({
+  name: "DialogDisclosure",
+  compose: useDisclosure,
+  keys: DIALOG_DISCLOSURE_KEYS,
+  useProps: function useProps(options, _ref) {
+    var htmlRef = _ref.ref,
+        htmlOnClick = _ref.onClick,
+        htmlProps = _objectWithoutPropertiesLoose(_ref, ["ref", "onClick"]);
+
+    var ref = (0,external_React_.useRef)(null);
+    var onClickRef = useLiveRef(htmlOnClick);
+
+    var _React$useState = (0,external_React_.useState)(false),
+        expanded = _React$useState[0],
+        setExpanded = _React$useState[1];
+
+    var disclosureRef = options.unstable_disclosureRef; // aria-expanded may be used for styling purposes, so we useLayoutEffect
+
+    useIsomorphicEffect(function () {
+      var element = ref.current;
+       false ? 0 : void 0;
+
+      if (disclosureRef && !disclosureRef.current) {
+        disclosureRef.current = element;
+      }
+
+      var isCurrentDisclosure = !(disclosureRef !== null && disclosureRef !== void 0 && disclosureRef.current) || disclosureRef.current === element;
+      setExpanded(!!options.visible && isCurrentDisclosure);
+    }, [options.visible, disclosureRef]);
+    var onClick = (0,external_React_.useCallback)(function (event) {
+      var _onClickRef$current;
+
+      (_onClickRef$current = onClickRef.current) === null || _onClickRef$current === void 0 ? void 0 : _onClickRef$current.call(onClickRef, event);
+      if (event.defaultPrevented) return;
+
+      if (disclosureRef) {
+        disclosureRef.current = event.currentTarget;
+      }
+    }, [disclosureRef]);
+    return _objectSpread2({
+      ref: useForkRef(ref, htmlRef),
+      "aria-haspopup": "dialog",
+      "aria-expanded": expanded,
+      onClick: onClick
+    }, htmlProps);
+  }
+});
+var DialogDisclosure = createComponent({
+  as: "button",
+  memo: true,
+  useHook: useDialogDisclosure
+});
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit/es/Popover/PopoverDisclosure.js
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+var usePopoverDisclosure = createHook({
+  name: "PopoverDisclosure",
+  compose: useDialogDisclosure,
+  keys: POPOVER_DISCLOSURE_KEYS,
+  useProps: function useProps(options, _ref) {
+    var htmlRef = _ref.ref,
+        htmlProps = _objectWithoutPropertiesLoose(_ref, ["ref"]);
+
+    return _objectSpread2({
+      ref: useForkRef(options.unstable_referenceRef, htmlRef)
+    }, htmlProps);
+  }
+});
+var PopoverDisclosure = createComponent({
+  as: "button",
+  memo: true,
+  useHook: usePopoverDisclosure
+});
+
+
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/flyout/context.js
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * @type {import('react').Context<import('./types').Context>}
+ */
+
+const FlyoutContext = (0,external_wp_element_namespaceObject.createContext)({});
+const useFlyoutContext = () => (0,external_wp_element_namespaceObject.useContext)(FlyoutContext);
+
+// EXTERNAL MODULE: ./node_modules/react-resize-aware/dist/index.js
+var react_resize_aware_dist = __webpack_require__(235);
+var react_resize_aware_dist_default = /*#__PURE__*/__webpack_require__.n(react_resize_aware_dist);
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/flyout/utils.js
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ *
+ * @param { { onResize?: () => any } } onResize
+ */
+
+function useFlyoutResizeUpdater(_ref) {
+  let {
+    onResize
+  } = _ref;
+  const [resizeListener, sizes] = react_resize_aware_dist_default()();
+  (0,external_wp_compose_namespaceObject.useIsomorphicLayoutEffect)(() => {
+    onResize === null || onResize === void 0 ? void 0 : onResize();
+  }, [sizes.width, sizes.height]);
+  return resizeListener;
+}
+
+;// CONCATENATED MODULE: ./node_modules/reakit-utils/es/useUpdateEffect.js
+
+
+/**
+ * A `React.useEffect` that will not run on the first render.
+ */
+
+function useUpdateEffect_useUpdateEffect(effect, deps) {
+  var mounted = (0,external_React_.useRef)(false);
+  (0,external_React_.useEffect)(function () {
+    if (mounted.current) {
+      return effect();
+    }
+
+    mounted.current = true;
+    return undefined;
+  }, deps);
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit-utils/es/removeIndexFromArray.js
+/**
+ * Immutably removes an index from an array.
+ *
+ * @example
+ * import { removeIndexFromArray } from "reakit-utils";
+ *
+ * removeIndexFromArray(["a", "b", "c"], 1); // ["a", "c"]
+ *
+ * @returns {Array} A new array without the item in the passed index.
+ */
+function removeIndexFromArray(array, index) {
+  if (index === -1) return array;
+  return [].concat(array.slice(0, index), array.slice(index + 1));
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit-utils/es/removeItemFromArray.js
+
+
+/**
+ * Immutably removes an item from an array.
+ *
+ * @example
+ * import { removeItemFromArray } from "reakit-utils";
+ *
+ * removeItemFromArray(["a", "b", "c"], "b"); // ["a", "c"]
+ *
+ * // This only works by reference
+ * const obj = {};
+ * removeItemFromArray([obj], {}); // [obj]
+ * removeItemFromArray([obj], obj); // []
+ *
+ * @returns {Array} A new array without the passed item.
+ */
+
+function removeItemFromArray_removeItemFromArray(array, item) {
+  var index = array.indexOf(item);
+  return removeIndexFromArray(array, index);
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit/es/MenuContext-6af6cf92.js
+
+
+
+var MenuContext = /*#__PURE__*/(0,external_React_.createContext)(null);
+function useMenuContext(menuRef, role, options) {
+  var orphan = "unstable_orphan" in options && options.unstable_orphan;
+  var parent = useContext(MenuContext);
+
+  var _React$useState = useState([]),
+      children = _React$useState[0],
+      setChildren = _React$useState[1];
+
+  var _ref = parent || {},
+      addChildToParent = _ref.addChild,
+      removeChildFromParent = _ref.removeChild;
+
+  var addChild = useCallback(function (ref) {
+    return setChildren(function (refs) {
+      return [].concat(refs, [ref]);
+    });
+  }, []);
+  var removeChild = useCallback(function (ref) {
+    return setChildren(function (refs) {
+      return removeItemFromArray(refs, ref);
+    });
+  }, []); // If it's a nested menu, add it to parent
+
+  useEffect(function () {
+    if (!addChildToParent || orphan) return undefined;
+    addChildToParent(menuRef);
+    return function () {
+      removeChildFromParent === null || removeChildFromParent === void 0 ? void 0 : removeChildFromParent(menuRef);
+    };
+  }, [menuRef, addChildToParent, removeChildFromParent, orphan]);
+  var providerValue = useMemo(function () {
+    return {
+      orientation: options.orientation,
+      next: options.next,
+      previous: options.previous,
+      ref: menuRef,
+      role: role,
+      parent: parent,
+      children: children,
+      addChild: addChild,
+      removeChild: removeChild
+    };
+  }, [options.orientation, options.next, options.previous, menuRef, role, parent, children, addChild, removeChild]);
+  var wrapElement = useCallback(function (element) {
+    return /*#__PURE__*/createElement(MenuContext.Provider, {
+      value: providerValue
+    }, element);
+  }, [providerValue]);
+  return wrapElement;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/body-scroll-lock/lib/bodyScrollLock.esm.js
+function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
+
+// Older browsers don't support event options, feature detect it.
+
+// Adopted and modified solution from Bohdan Didukh (2017)
+// https://stackoverflow.com/questions/41594997/ios-10-safari-prevent-scrolling-behind-a-fixed-overlay-and-maintain-scroll-posi
+
+var hasPassiveEvents = false;
+if (typeof window !== 'undefined') {
+  var passiveTestOptions = {
+    get passive() {
+      hasPassiveEvents = true;
+      return undefined;
+    }
+  };
+  window.addEventListener('testPassive', null, passiveTestOptions);
+  window.removeEventListener('testPassive', null, passiveTestOptions);
+}
+
+var isIosDevice = typeof window !== 'undefined' && window.navigator && window.navigator.platform && (/iP(ad|hone|od)/.test(window.navigator.platform) || window.navigator.platform === 'MacIntel' && window.navigator.maxTouchPoints > 1);
+
+
+var locks = [];
+var documentListenerAdded = false;
+var initialClientY = -1;
+var previousBodyOverflowSetting = void 0;
+var previousBodyPaddingRight = void 0;
+
+// returns true if `el` should be allowed to receive touchmove events.
+var allowTouchMove = function allowTouchMove(el) {
+  return locks.some(function (lock) {
+    if (lock.options.allowTouchMove && lock.options.allowTouchMove(el)) {
+      return true;
+    }
+
+    return false;
+  });
+};
+
+var preventDefault = function preventDefault(rawEvent) {
+  var e = rawEvent || window.event;
+
+  // For the case whereby consumers adds a touchmove event listener to document.
+  // Recall that we do document.addEventListener('touchmove', preventDefault, { passive: false })
+  // in disableBodyScroll - so if we provide this opportunity to allowTouchMove, then
+  // the touchmove event on document will break.
+  if (allowTouchMove(e.target)) {
+    return true;
+  }
+
+  // Do not prevent if the event has more than one touch (usually meaning this is a multi touch gesture like pinch to zoom).
+  if (e.touches.length > 1) return true;
+
+  if (e.preventDefault) e.preventDefault();
+
+  return false;
+};
+
+var setOverflowHidden = function setOverflowHidden(options) {
+  // If previousBodyPaddingRight is already set, don't set it again.
+  if (previousBodyPaddingRight === undefined) {
+    var _reserveScrollBarGap = !!options && options.reserveScrollBarGap === true;
+    var scrollBarGap = window.innerWidth - document.documentElement.clientWidth;
+
+    if (_reserveScrollBarGap && scrollBarGap > 0) {
+      previousBodyPaddingRight = document.body.style.paddingRight;
+      document.body.style.paddingRight = scrollBarGap + 'px';
+    }
+  }
+
+  // If previousBodyOverflowSetting is already set, don't set it again.
+  if (previousBodyOverflowSetting === undefined) {
+    previousBodyOverflowSetting = document.body.style.overflow;
+    document.body.style.overflow = 'hidden';
+  }
+};
+
+var restoreOverflowSetting = function restoreOverflowSetting() {
+  if (previousBodyPaddingRight !== undefined) {
+    document.body.style.paddingRight = previousBodyPaddingRight;
+
+    // Restore previousBodyPaddingRight to undefined so setOverflowHidden knows it
+    // can be set again.
+    previousBodyPaddingRight = undefined;
+  }
+
+  if (previousBodyOverflowSetting !== undefined) {
+    document.body.style.overflow = previousBodyOverflowSetting;
+
+    // Restore previousBodyOverflowSetting to undefined
+    // so setOverflowHidden knows it can be set again.
+    previousBodyOverflowSetting = undefined;
+  }
+};
+
+// https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight#Problems_and_solutions
+var isTargetElementTotallyScrolled = function isTargetElementTotallyScrolled(targetElement) {
+  return targetElement ? targetElement.scrollHeight - targetElement.scrollTop <= targetElement.clientHeight : false;
+};
+
+var handleScroll = function handleScroll(event, targetElement) {
+  var clientY = event.targetTouches[0].clientY - initialClientY;
+
+  if (allowTouchMove(event.target)) {
+    return false;
+  }
+
+  if (targetElement && targetElement.scrollTop === 0 && clientY > 0) {
+    // element is at the top of its scroll.
+    return preventDefault(event);
+  }
+
+  if (isTargetElementTotallyScrolled(targetElement) && clientY < 0) {
+    // element is at the bottom of its scroll.
+    return preventDefault(event);
+  }
+
+  event.stopPropagation();
+  return true;
+};
+
+var disableBodyScroll = function disableBodyScroll(targetElement, options) {
+  // targetElement must be provided
+  if (!targetElement) {
+    // eslint-disable-next-line no-console
+    console.error('disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.');
+    return;
+  }
+
+  // disableBodyScroll must not have been called on this targetElement before
+  if (locks.some(function (lock) {
+    return lock.targetElement === targetElement;
+  })) {
+    return;
+  }
+
+  var lock = {
+    targetElement: targetElement,
+    options: options || {}
+  };
+
+  locks = [].concat(_toConsumableArray(locks), [lock]);
+
+  if (isIosDevice) {
+    targetElement.ontouchstart = function (event) {
+      if (event.targetTouches.length === 1) {
+        // detect single touch.
+        initialClientY = event.targetTouches[0].clientY;
+      }
+    };
+    targetElement.ontouchmove = function (event) {
+      if (event.targetTouches.length === 1) {
+        // detect single touch.
+        handleScroll(event, targetElement);
+      }
+    };
+
+    if (!documentListenerAdded) {
+      document.addEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);
+      documentListenerAdded = true;
+    }
+  } else {
+    setOverflowHidden(options);
+  }
+};
+
+var clearAllBodyScrollLocks = function clearAllBodyScrollLocks() {
+  if (isIosDevice) {
+    // Clear all locks ontouchstart/ontouchmove handlers, and the references.
+    locks.forEach(function (lock) {
+      lock.targetElement.ontouchstart = null;
+      lock.targetElement.ontouchmove = null;
+    });
+
+    if (documentListenerAdded) {
+      document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);
+      documentListenerAdded = false;
+    }
+
+    // Reset initial clientY.
+    initialClientY = -1;
+  } else {
+    restoreOverflowSetting();
+  }
+
+  locks = [];
+};
+
+var enableBodyScroll = function enableBodyScroll(targetElement) {
+  if (!targetElement) {
+    // eslint-disable-next-line no-console
+    console.error('enableBodyScroll unsuccessful - targetElement must be provided when calling enableBodyScroll on IOS devices.');
+    return;
+  }
+
+  locks = locks.filter(function (lock) {
+    return lock.targetElement !== targetElement;
+  });
+
+  if (isIosDevice) {
+    targetElement.ontouchstart = null;
+    targetElement.ontouchmove = null;
+
+    if (documentListenerAdded && locks.length === 0) {
+      document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);
+      documentListenerAdded = false;
+    }
+  } else if (!locks.length) {
+    restoreOverflowSetting();
+  }
+};
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit-utils/es/closest.js
+
+
+/**
+ * Ponyfill for `Element.prototype.closest`
+ *
+ * @example
+ * import { closest } from "reakit-utils";
+ *
+ * closest(document.getElementById("id"), "div");
+ * // same as
+ * document.getElementById("id").closest("div");
+ */
+function closest_closest(element, selectors) {
+  if ("closest" in element) return element.closest(selectors);
+
+  do {
+    if (matches(element, selectors)) return element;
+    element = element.parentElement || element.parentNode;
+  } while (element !== null && element.nodeType === 1);
+
+  return null;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit/es/DialogBackdropContext-8775f78b.js
+
+
+var DialogBackdropContext = /*#__PURE__*/(0,external_React_.createContext)(undefined);
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit-utils/es/isEmpty.js
+
+
+/**
+ * Checks whether `arg` is empty or not.
+ *
+ * @example
+ * import { isEmpty } from "reakit-utils";
+ *
+ * isEmpty([]); // true
+ * isEmpty(["a"]); // false
+ * isEmpty({}); // true
+ * isEmpty({ a: "a" }); // false
+ * isEmpty(); // true
+ * isEmpty(null); // true
+ * isEmpty(undefined); // true
+ * isEmpty(""); // true
+ */
+
+function isEmpty(arg) {
+  if (Array.isArray(arg)) return !arg.length;
+  if (isObject_isObject(arg)) return !Object.keys(arg).length;
+  if (arg == null) return true;
+  if (arg === "") return true;
+  return false;
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit/es/Dialog/Dialog.js
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+function useDisclosureRef(dialogRef, options) {
+  var ref = (0,external_React_.useRef)(null);
+  var animating = !!(options.animated && options.animating);
+  (0,external_React_.useEffect)(function () {
+    if (options.visible || animating) return undefined; // We get the last focused element before the dialog opens, so we can move
+    // focus back to it when the dialog closes.
+
+    var onFocus = function onFocus(event) {
+      var target = event.target;
+
+      if ("focus" in target) {
+        ref.current = target;
+
+        if (options.unstable_disclosureRef) {
+          options.unstable_disclosureRef.current = target;
+        }
+      }
+    };
+
+    var document = getDocument(dialogRef.current);
+    document.addEventListener("focusin", onFocus);
+    return function () {
+      return document.removeEventListener("focusin", onFocus);
+    };
+  }, [options.visible, animating, options.unstable_disclosureRef, dialogRef]);
+  (0,external_React_.useEffect)(function () {
+    var _options$unstable_dis;
+
+    if (!options.visible || animating) return undefined; // Safari and Firefox on MacOS don't focus on buttons on mouse down.
+    // Instead, they focus on the closest focusable parent (ultimately, the
+    // body element). This works around that by preventing that behavior and
+    // forcing focus on the disclosure button. Otherwise, we wouldn't be able
+    // to close the dialog by clicking again on the disclosure.
+
+    var onMouseDown = function onMouseDown(event) {
+      var element = event.currentTarget;
+      if (!isButton(element)) return;
+      event.preventDefault();
+      element.focus();
+    };
+
+    var disclosure = ((_options$unstable_dis = options.unstable_disclosureRef) === null || _options$unstable_dis === void 0 ? void 0 : _options$unstable_dis.current) || ref.current;
+    disclosure === null || disclosure === void 0 ? void 0 : disclosure.addEventListener("mousedown", onMouseDown);
+    return function () {
+      return disclosure === null || disclosure === void 0 ? void 0 : disclosure.removeEventListener("mousedown", onMouseDown);
+    };
+  }, [options.visible, animating, options.unstable_disclosureRef]);
+  return options.unstable_disclosureRef || ref;
+}
+
+function usePreventBodyScroll(targetRef, options) {
+  var shouldPrevent = Boolean(options.preventBodyScroll && options.visible);
+  (0,external_React_.useEffect)(function () {
+    var element = targetRef.current;
+    if (!element || !shouldPrevent) return undefined;
+    disableBodyScroll(element, {
+      reserveScrollBarGap: true
+    });
+    return function () {
+      return enableBodyScroll(element);
+    };
+  }, [targetRef, shouldPrevent]);
+}
+
+function useFocusOnShow(dialogRef, nestedDialogs, options) {
+  var initialFocusRef = options.unstable_initialFocusRef;
+  var shouldFocus = options.visible && options.unstable_autoFocusOnShow;
+  var animating = !!(options.animated && options.animating);
+  useUpdateEffect_useUpdateEffect(function () {
+    var dialog = dialogRef.current;
+     false ? 0 : void 0;
+    if (!shouldFocus) return;
+    if (!dialog) return;
+    if (animating) return; // If there're nested open dialogs, let them handle focus
+
+    if (nestedDialogs.some(function (child) {
+      return child.current && !child.current.hidden;
+    })) {
+      return;
+    }
+
+    if (initialFocusRef !== null && initialFocusRef !== void 0 && initialFocusRef.current) {
+      initialFocusRef.current.focus({
+        preventScroll: true
+      });
+    } else {
+      var tabbable = getFirstTabbableIn(dialog, true);
+
+      var isActive = function isActive() {
+        return hasFocusWithin(dialog);
+      };
+
+      if (tabbable) {
+        ensureFocus(tabbable, {
+          preventScroll: true,
+          isActive: isActive
+        });
+      } else {
+        ensureFocus(dialog, {
+          preventScroll: true,
+          isActive: isActive
+        });
+         false ? 0 : void 0;
+      }
+    }
+  }, [dialogRef, shouldFocus, animating, nestedDialogs, initialFocusRef]);
+}
+
+function usePortalRef(dialogRef, options) {
+  var portalRef = (0,external_React_.useRef)(null);
+  (0,external_React_.useEffect)(function () {
+    var dialog = dialogRef.current;
+    if (!dialog || !options.visible) return;
+    portalRef.current = closest_closest(dialog, Portal.__selector);
+  }, [dialogRef, options.visible]);
+  return portalRef;
+}
+
+function removeFromDOM(element) {
+  if (element.parentNode == null) return;
+  element.parentNode.removeChild(element);
+}
+
+var focusTrapClassName = "__reakit-focus-trap";
+function isFocusTrap(element) {
+  var _element$classList;
+
+  return (_element$classList = element.classList) === null || _element$classList === void 0 ? void 0 : _element$classList.contains(focusTrapClassName);
+}
+function useFocusTrap(dialogRef, visibleModals, options) {
+  var portalRef = usePortalRef(dialogRef, options);
+  var shouldTrap = options.visible && options.modal;
+  var beforeElement = (0,external_React_.useRef)(null);
+  var afterElement = (0,external_React_.useRef)(null); // Create before and after elements
+  // https://github.com/w3c/aria-practices/issues/545
+
+  (0,external_React_.useEffect)(function () {
+    if (!shouldTrap) return undefined;
+    var portal = portalRef.current;
+
+    if (!portal) {
+       false ? 0 : void 0;
+      return undefined;
+    }
+
+    if (!beforeElement.current) {
+      var document = getDocument(portal);
+      beforeElement.current = document.createElement("div");
+      beforeElement.current.className = focusTrapClassName;
+      beforeElement.current.tabIndex = 0;
+      beforeElement.current.style.position = "fixed";
+      beforeElement.current.setAttribute("aria-hidden", "true");
+    }
+
+    if (!afterElement.current) {
+      afterElement.current = beforeElement.current.cloneNode();
+    }
+
+    portal.insertAdjacentElement("beforebegin", beforeElement.current);
+    portal.insertAdjacentElement("afterend", afterElement.current);
+    return function () {
+      if (beforeElement.current) removeFromDOM(beforeElement.current);
+      if (afterElement.current) removeFromDOM(afterElement.current);
+    };
+  }, [portalRef, shouldTrap]); // Focus trap
+
+  (0,external_React_.useEffect)(function () {
+    var before = beforeElement.current;
+    var after = afterElement.current;
+    if (!shouldTrap || !before || !after) return undefined;
+
+    var handleFocus = function handleFocus(event) {
+      var dialog = dialogRef.current;
+      if (!dialog || visibleModals.length) return;
+      event.preventDefault();
+      var isAfter = event.target === after;
+      var tabbable = isAfter ? getFirstTabbableIn(dialog) : getLastTabbableIn(dialog);
+
+      if (tabbable) {
+        tabbable.focus();
+      } else {
+        // fallback to dialog
+        dialog.focus();
+      }
+    };
+
+    before.addEventListener("focus", handleFocus);
+    after.addEventListener("focus", handleFocus);
+    return function () {
+      before.removeEventListener("focus", handleFocus);
+      after.removeEventListener("focus", handleFocus);
+    };
+  }, [dialogRef, visibleModals, shouldTrap]);
+}
+
+function hidByFocusingAnotherElement(dialogRef) {
+  var dialog = dialogRef.current;
+  if (!dialog) return false;
+  var activeElement = getActiveElement_getActiveElement(dialog);
+  if (!activeElement) return false;
+  if (contains(dialog, activeElement)) return false;
+  if (isTabbable(activeElement)) return true;
+  if (activeElement.getAttribute("data-dialog") === "true") return true;
+  return false;
+}
+
+function useFocusOnHide(dialogRef, disclosureRef, options) {
+  var shouldFocus = options.unstable_autoFocusOnHide && !options.visible;
+  var animating = !!(options.animated && options.animating);
+  useUpdateEffect_useUpdateEffect(function () {
+    var _options$unstable_fin;
+
+    if (!shouldFocus) return;
+    if (animating) return; // Hide was triggered by a click/focus on a tabbable element outside
+    // the dialog or on another dialog. We won't change focus then.
+
+    if (hidByFocusingAnotherElement(dialogRef)) {
+      return;
+    }
+
+    var finalFocusEl = ((_options$unstable_fin = options.unstable_finalFocusRef) === null || _options$unstable_fin === void 0 ? void 0 : _options$unstable_fin.current) || disclosureRef.current;
+
+    if (finalFocusEl) {
+      if (finalFocusEl.id) {
+        var document = getDocument(finalFocusEl);
+        var compositeElement = document.querySelector("[aria-activedescendant='" + finalFocusEl.id + "']");
+
+        if (compositeElement) {
+          ensureFocus(compositeElement);
+          return;
+        }
+      }
+
+      ensureFocus(finalFocusEl);
+      return;
+    }
+
+     false ? 0 : void 0;
+  }, [shouldFocus, animating, dialogRef, disclosureRef]);
+}
+
+var DialogContext = /*#__PURE__*/(0,external_React_.createContext)({});
+function useNestedDialogs(dialogRef, options) {
+  var context = (0,external_React_.useContext)(DialogContext);
+
+  var _React$useState = (0,external_React_.useState)([]),
+      dialogs = _React$useState[0],
+      setDialogs = _React$useState[1];
+
+  var _React$useState2 = (0,external_React_.useState)(dialogs),
+      visibleModals = _React$useState2[0],
+      setVisibleModals = _React$useState2[1];
+
+  var addDialog = (0,external_React_.useCallback)(function (ref) {
+    var _context$addDialog;
+
+    (_context$addDialog = context.addDialog) === null || _context$addDialog === void 0 ? void 0 : _context$addDialog.call(context, ref);
+    setDialogs(function (prevDialogs) {
+      return [].concat(prevDialogs, [ref]);
+    });
+  }, [context.addDialog]);
+  var removeDialog = (0,external_React_.useCallback)(function (ref) {
+    var _context$removeDialog;
+
+    (_context$removeDialog = context.removeDialog) === null || _context$removeDialog === void 0 ? void 0 : _context$removeDialog.call(context, ref);
+    setDialogs(function (prevDialogs) {
+      return removeItemFromArray_removeItemFromArray(prevDialogs, ref);
+    });
+  }, [context.removeDialog]);
+  var showDialog = (0,external_React_.useCallback)(function (ref) {
+    var _context$showDialog;
+
+    (_context$showDialog = context.showDialog) === null || _context$showDialog === void 0 ? void 0 : _context$showDialog.call(context, ref);
+    setVisibleModals(function (prevDialogs) {
+      return [].concat(prevDialogs, [ref]);
+    });
+  }, [context.showDialog]);
+  var hideDialog = (0,external_React_.useCallback)(function (ref) {
+    var _context$hideDialog;
+
+    (_context$hideDialog = context.hideDialog) === null || _context$hideDialog === void 0 ? void 0 : _context$hideDialog.call(context, ref);
+    setVisibleModals(function (prevDialogs) {
+      return removeItemFromArray_removeItemFromArray(prevDialogs, ref);
+    });
+  }, [context.hideDialog]); // If it's a nested dialog, add it to context
+
+  (0,external_React_.useEffect)(function () {
+    var _context$addDialog2;
+
+    if (options.unstable_orphan) return undefined;
+    (_context$addDialog2 = context.addDialog) === null || _context$addDialog2 === void 0 ? void 0 : _context$addDialog2.call(context, dialogRef);
+    return function () {
+      var _context$removeDialog2;
+
+      (_context$removeDialog2 = context.removeDialog) === null || _context$removeDialog2 === void 0 ? void 0 : _context$removeDialog2.call(context, dialogRef);
+    };
+  }, [options.unstable_orphan, context.addDialog, dialogRef, context.removeDialog]);
+  (0,external_React_.useEffect)(function () {
+    var _context$showDialog2;
+
+    if (options.unstable_orphan) return undefined;
+    if (!options.modal) return undefined;
+    if (!options.visible) return undefined;
+    (_context$showDialog2 = context.showDialog) === null || _context$showDialog2 === void 0 ? void 0 : _context$showDialog2.call(context, dialogRef);
+    return function () {
+      var _context$hideDialog2;
+
+      (_context$hideDialog2 = context.hideDialog) === null || _context$hideDialog2 === void 0 ? void 0 : _context$hideDialog2.call(context, dialogRef);
+    };
+  }, [options.unstable_orphan, options.modal, options.visible, context.showDialog, dialogRef, context.hideDialog]); // Close all nested dialogs when parent dialog closes
+
+  (0,external_React_.useEffect)(function () {
+    if (context.visible === false && options.visible && !options.unstable_orphan) {
+      var _options$hide;
+
+      (_options$hide = options.hide) === null || _options$hide === void 0 ? void 0 : _options$hide.call(options);
+    }
+  }, [context.visible, options.visible, options.hide, options.unstable_orphan]); // Provider
+
+  var providerValue = (0,external_React_.useMemo)(function () {
+    return {
+      visible: options.visible,
+      addDialog: addDialog,
+      removeDialog: removeDialog,
+      showDialog: showDialog,
+      hideDialog: hideDialog
+    };
+  }, [options.visible, addDialog, removeDialog, showDialog, hideDialog]);
+  var wrap = (0,external_React_.useCallback)(function (element) {
+    return /*#__PURE__*/(0,external_React_.createElement)(DialogContext.Provider, {
+      value: providerValue
+    }, element);
+  }, [providerValue]);
+  return {
+    dialogs: dialogs,
+    visibleModals: visibleModals,
+    wrap: wrap
+  };
+}
+
+function dialogContains(target) {
+  return function (dialogRef) {
+    var dialog = dialogRef.current;
+    if (!dialog) return false;
+    if (contains(dialog, target)) return true;
+    var document = getDocument(dialog);
+    var backdrop = document.querySelector("[data-dialog-ref=\"" + dialog.id + "\"]");
+
+    if (backdrop) {
+      return contains(backdrop, target);
+    }
+
+    return false;
+  };
+}
+
+function isDisclosure(target, disclosure) {
+  return contains(disclosure, target);
+}
+
+function isInDocument(target) {
+  var document = getDocument(target);
+
+  if (target.tagName === "HTML") {
+    return true;
+  }
+
+  return contains(document.body, target);
+}
+
+function useEventListenerOutside(containerRef, disclosureRef, nestedDialogs, eventType, listener, shouldListen, capture) {
+  var listenerRef = useLiveRef(listener);
+  (0,external_React_.useEffect)(function () {
+    if (!shouldListen) return undefined;
+
+    var onEvent = function onEvent(event) {
+      if (!listenerRef.current) return;
+      var container = containerRef.current;
+      var disclosure = disclosureRef.current;
+      var target = event.target;
+
+      if (!container) {
+         false ? 0 : void 0;
+        return;
+      } // When an element is unmounted right after it receives focus, the focus
+      // event is triggered after that, when the element isn't part of the
+      // current document anymore. So we ignore it.
+
+
+      if (!isInDocument(target)) return; // Event inside dialog
+
+      if (contains(container, target)) return; // Event on disclosure
+
+      if (disclosure && isDisclosure(target, disclosure)) return; // Event inside a nested dialog or focus trap
+
+      if (isFocusTrap(target) || nestedDialogs.some(dialogContains(target))) {
+        return;
+      }
+
+      listenerRef.current(event);
+    };
+
+    var document = getDocument(containerRef.current);
+    document.addEventListener(eventType, onEvent, capture);
+    return function () {
+      return document.removeEventListener(eventType, onEvent, capture);
+    };
+  }, [containerRef, disclosureRef, nestedDialogs, eventType, shouldListen, listenerRef]);
+}
+
+function useMouseDownRef(dialogRef, options) {
+  var mouseDownRef = (0,external_React_.useRef)();
+  (0,external_React_.useEffect)(function () {
+    if (!options.visible) return undefined;
+    if (!options.hideOnClickOutside) return undefined;
+    var document = getDocument(dialogRef.current);
+
+    var onMouseDown = function onMouseDown(event) {
+      mouseDownRef.current = event.target;
+    };
+
+    document.addEventListener("mousedown", onMouseDown);
+    return function () {
+      return document.removeEventListener("mousedown", onMouseDown);
+    };
+  }, [options.visible, options.hideOnClickOutside, dialogRef]);
+  return mouseDownRef;
+}
+
+function useHideOnClickOutside(dialogRef, disclosureRef, nestedDialogs, options) {
+  var mouseDownRef = useMouseDownRef(dialogRef, options);
+  useEventListenerOutside(dialogRef, disclosureRef, nestedDialogs, "click", function (event) {
+    // Make sure the element that has been clicked is the same that last
+    // triggered the mousedown event. This prevents the dialog from closing
+    // by dragging the cursor (for example, selecting some text inside the
+    // dialog and releasing the mouse outside of it).
+    if (mouseDownRef.current === event.target) {
+      var _options$hide;
+
+      (_options$hide = options.hide) === null || _options$hide === void 0 ? void 0 : _options$hide.call(options);
+    }
+  }, options.visible && options.hideOnClickOutside);
+  useEventListenerOutside(dialogRef, disclosureRef, nestedDialogs, "focusin", function (event) {
+    var document = getDocument(dialogRef.current); // Fix for https://github.com/reakit/reakit/issues/619
+    // On IE11, calling element.blur() triggers the focus event on
+    // document.body, so we make sure to ignore it as well.
+
+    if (event.target !== document && event.target !== document.body) {
+      var _options$hide2;
+
+      (_options$hide2 = options.hide) === null || _options$hide2 === void 0 ? void 0 : _options$hide2.call(options);
+    }
+  }, options.visible && options.hideOnClickOutside);
+}
+
+function useDisableHoverOutside(portalRef, nestedDialogs, options) {
+  var useEvent = function useEvent(eventType) {
+    return useEventListenerOutside(portalRef, {
+      current: null
+    }, nestedDialogs, eventType, function (event) {
+      event.stopPropagation();
+      event.preventDefault();
+    }, options.visible && options.modal, true);
+  };
+
+  useEvent("mouseover");
+  useEvent("mousemove");
+  useEvent("mouseout");
+}
+
+/**
+ * When the focused child gets removed from the DOM, we make sure to move focus
+ * to the dialog.
+ */
+function useFocusOnChildUnmount(dialogRef, options) {
+  (0,external_React_.useEffect)(function () {
+    var dialog = dialogRef.current;
+    if (!options.visible || !dialog) return undefined;
+    var observer = new MutationObserver(function (mutations) {
+      var target = mutations[0].target; // If target is not this dialog, then this observer was triggered by a
+      // nested dialog, so we just ignore it here and let the nested dialog
+      // handle it there.
+
+      if (target !== dialog) return;
+      var document = getDocument(dialog);
+      var activeElement = getActiveElement_getActiveElement(dialog); // We can check if the current focused element is the document body. On
+      // IE 11, it's an empty object when the current document is in a frame or
+      // iframe.
+
+      if (activeElement === document.body || isEmpty(activeElement)) {
+        dialog.focus();
+      }
+    });
+    observer.observe(dialog, {
+      childList: true,
+      subtree: true
+    });
+    return function () {
+      observer.disconnect();
+    };
+  }, [options.visible, dialogRef]);
+}
+
+function isActualElement(element) {
+  return element && element.tagName && element.tagName !== "HTML" && element !== getDocument(element).body;
+}
+
+function useFocusOnBlur(dialogRef, options) {
+  var _React$useReducer = (0,external_React_.useReducer)(function (n) {
+    return n + 1;
+  }, 0),
+      blurred = _React$useReducer[0],
+      scheduleFocus = _React$useReducer[1];
+
+  useIsomorphicEffect(function () {
+    var dialog = dialogRef.current;
+    if (!options.visible) return;
+    if (!blurred) return; // After blur, if the active element isn't an actual element, this probably
+    // means that element.blur() was called on an element inside the dialog.
+    // In this case, the browser will automatically focus the body element.
+    // So we move focus back to the dialog.
+
+    if (!isActualElement(getActiveElement_getActiveElement(dialog))) {
+       false ? 0 : void 0;
+      dialog === null || dialog === void 0 ? void 0 : dialog.focus();
+    }
+  }, [blurred, dialogRef]);
+  var onBlur = (0,external_React_.useCallback)(function (event) {
+    if (!options.visible) return;
+    var nextActiveElement = getNextActiveElementOnBlur(event);
+
+    if (!isActualElement(nextActiveElement)) {
+      scheduleFocus();
+    }
+  }, [options.visible]);
+  return onBlur;
+}
+
+var useDialog = createHook({
+  name: "Dialog",
+  compose: useDisclosureContent,
+  keys: DIALOG_KEYS,
+  useOptions: function useOptions(_ref) {
+    var _ref$modal = _ref.modal,
+        modal = _ref$modal === void 0 ? true : _ref$modal,
+        _ref$hideOnEsc = _ref.hideOnEsc,
+        hideOnEsc = _ref$hideOnEsc === void 0 ? true : _ref$hideOnEsc,
+        _ref$hideOnClickOutsi = _ref.hideOnClickOutside,
+        hideOnClickOutside = _ref$hideOnClickOutsi === void 0 ? true : _ref$hideOnClickOutsi,
+        _ref$preventBodyScrol = _ref.preventBodyScroll,
+        preventBodyScroll = _ref$preventBodyScrol === void 0 ? modal : _ref$preventBodyScrol,
+        _ref$unstable_autoFoc = _ref.unstable_autoFocusOnShow,
+        unstable_autoFocusOnShow = _ref$unstable_autoFoc === void 0 ? true : _ref$unstable_autoFoc,
+        _ref$unstable_autoFoc2 = _ref.unstable_autoFocusOnHide,
+        unstable_autoFocusOnHide = _ref$unstable_autoFoc2 === void 0 ? true : _ref$unstable_autoFoc2,
+        unstable_orphan = _ref.unstable_orphan,
+        options = _objectWithoutPropertiesLoose(_ref, ["modal", "hideOnEsc", "hideOnClickOutside", "preventBodyScroll", "unstable_autoFocusOnShow", "unstable_autoFocusOnHide", "unstable_orphan"]);
+
+    return _objectSpread2({
+      modal: modal,
+      hideOnEsc: hideOnEsc,
+      hideOnClickOutside: hideOnClickOutside,
+      preventBodyScroll: modal && preventBodyScroll,
+      unstable_autoFocusOnShow: unstable_autoFocusOnShow,
+      unstable_autoFocusOnHide: unstable_autoFocusOnHide,
+      unstable_orphan: modal && unstable_orphan
+    }, options);
+  },
+  useProps: function useProps(options, _ref2) {
+    var htmlRef = _ref2.ref,
+        htmlOnKeyDown = _ref2.onKeyDown,
+        htmlOnBlur = _ref2.onBlur,
+        htmlWrapElement = _ref2.wrapElement,
+        tabIndex = _ref2.tabIndex,
+        htmlProps = _objectWithoutPropertiesLoose(_ref2, ["ref", "onKeyDown", "onBlur", "wrapElement", "tabIndex"]);
+
+    var dialog = (0,external_React_.useRef)(null);
+    var backdrop = (0,external_React_.useContext)(DialogBackdropContext);
+    var hasBackdrop = backdrop && backdrop === options.baseId;
+    var disclosure = useDisclosureRef(dialog, options);
+    var onKeyDownRef = useLiveRef(htmlOnKeyDown);
+    var onBlurRef = useLiveRef(htmlOnBlur);
+    var focusOnBlur = useFocusOnBlur(dialog, options);
+
+    var _useNestedDialogs = useNestedDialogs(dialog, options),
+        dialogs = _useNestedDialogs.dialogs,
+        visibleModals = _useNestedDialogs.visibleModals,
+        wrap = _useNestedDialogs.wrap; // VoiceOver/Safari accepts only one `aria-modal` container, so if there
+    // are visible child modals, then we don't want to set aria-modal on the
+    // parent modal (this component).
+
+
+    var modal = options.modal && !visibleModals.length ? true : undefined;
+    usePreventBodyScroll(dialog, options);
+    useFocusTrap(dialog, visibleModals, options);
+    useFocusOnChildUnmount(dialog, options);
+    useFocusOnShow(dialog, dialogs, options);
+    useFocusOnHide(dialog, disclosure, options);
+    useHideOnClickOutside(dialog, disclosure, dialogs, options);
+    useDisableHoverOutside(dialog, dialogs, options);
+    var onKeyDown = (0,external_React_.useCallback)(function (event) {
+      var _onKeyDownRef$current;
+
+      (_onKeyDownRef$current = onKeyDownRef.current) === null || _onKeyDownRef$current === void 0 ? void 0 : _onKeyDownRef$current.call(onKeyDownRef, event);
+      if (event.defaultPrevented) return;
+      if (event.key !== "Escape") return;
+      if (!options.hideOnEsc) return;
+
+      if (!options.hide) {
+         false ? 0 : void 0;
+        return;
+      }
+
+      event.stopPropagation();
+      options.hide();
+    }, [options.hideOnEsc, options.hide]);
+    var onBlur = (0,external_React_.useCallback)(function (event) {
+      var _onBlurRef$current;
+
+      (_onBlurRef$current = onBlurRef.current) === null || _onBlurRef$current === void 0 ? void 0 : _onBlurRef$current.call(onBlurRef, event);
+      focusOnBlur(event);
+    }, [focusOnBlur]);
+    var wrapElement = (0,external_React_.useCallback)(function (element) {
+      element = wrap(element);
+
+      if (options.modal && !hasBackdrop) {
+        element = /*#__PURE__*/(0,external_React_.createElement)(Portal, null, element);
+      }
+
+      if (htmlWrapElement) {
+        element = htmlWrapElement(element);
+      }
+
+      return (
+        /*#__PURE__*/
+        // Prevents Menu > Dialog > Menu to behave as a sub menu
+        (0,external_React_.createElement)(MenuContext.Provider, {
+          value: null
+        }, element)
+      );
+    }, [wrap, options.modal, hasBackdrop, htmlWrapElement]);
+    return _objectSpread2({
+      ref: useForkRef(dialog, htmlRef),
+      role: "dialog",
+      tabIndex: tabIndex != null ? tabIndex : -1,
+      "aria-modal": modal,
+      "data-dialog": true,
+      onKeyDown: onKeyDown,
+      onBlur: onBlur,
+      wrapElement: wrapElement
+    }, htmlProps);
+  }
+});
+var Dialog = createComponent({
+  as: "div",
+  useHook: useDialog,
+  useCreateElement: function useCreateElement$1(type, props, children) {
+     false ? 0 : void 0;
+    return useCreateElement(type, props, children);
+  }
+});
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit/es/Popover/Popover.js
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+var usePopover = createHook({
+  name: "Popover",
+  compose: useDialog,
+  keys: POPOVER_KEYS,
+  useOptions: function useOptions(_ref) {
+    var _ref$modal = _ref.modal,
+        modal = _ref$modal === void 0 ? false : _ref$modal,
+        options = _objectWithoutPropertiesLoose(_ref, ["modal"]);
+
+    return _objectSpread2({
+      modal: modal
+    }, options);
+  },
+  useProps: function useProps(options, _ref2) {
+    var htmlRef = _ref2.ref,
+        htmlStyle = _ref2.style,
+        htmlProps = _objectWithoutPropertiesLoose(_ref2, ["ref", "style"]);
+
+    return _objectSpread2({
+      ref: useForkRef(options.unstable_popoverRef, htmlRef),
+      style: _objectSpread2(_objectSpread2({}, options.unstable_popoverStyles), htmlStyle)
+    }, htmlProps);
+  }
+});
+var Popover_Popover = createComponent({
+  as: "div",
+  useHook: usePopover,
+  useCreateElement: function useCreateElement$1(type, props, children) {
+     false ? 0 : void 0;
+    return useCreateElement(type, props, children);
+  }
+});
+
+
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/flyout/styles.js
+
+
+/**
+ * External dependencies
+ */
+// eslint-disable-next-line no-restricted-imports
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+const FlyoutContentView = /*#__PURE__*/emotion_styled_base_browser_esm(Popover_Popover,  true ? {
+  target: "e1vtu5161"
+} : 0)("z-index:", Flyout, ";box-sizing:border-box;opacity:0;outline:none;position:relative;transform-origin:center center;transition:opacity ", config_values.transitionDurationFastest, " linear;width:100%;&[data-enter]{opacity:1;}&::before,&::after{display:none;}" + ( true ? "" : 0));
+const CardView = /*#__PURE__*/emotion_styled_base_browser_esm(card_component,  true ? {
+  target: "e1vtu5160"
+} : 0)(card_body_component.selector, "{max-height:80vh;}" + ( true ? "" : 0));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/flyout/flyout-content/component.js
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+/**
+ *
+ * @param {import('../../ui/context').WordPressComponentProps<import('../types').ContentProps, 'div', false>} props
+ * @param {import('react').ForwardedRef<any>}                                                                 forwardedRef forwardedRef
+ */
+
+function FlyoutContent(props, forwardedRef) {
+  const {
+    children,
+    elevation,
+    maxWidth,
+    style = {},
+    ...otherProps
+  } = useContextSystem(props, 'FlyoutContent');
+  const {
+    label,
+    flyoutState
+  } = useFlyoutContext();
+
+  if (!flyoutState) {
+    throw new Error('`FlyoutContent` must only be used inside a `Flyout`.');
+  }
+
+  const showContent = flyoutState.visible || flyoutState.animating;
+  return (0,external_wp_element_namespaceObject.createElement)(FlyoutContentView, extends_extends({
+    "aria-label": label // maxWidth is applied via inline styles in order to avoid the `React does
+    // not recognize the maxWidth prop on a DOM element` error that comes from
+    // passing `maxWidth` as a prop to `FlyoutContentView`
+    ,
+    style: {
+      maxWidth,
+      ...style
+    }
+  }, otherProps, flyoutState), showContent && (0,external_wp_element_namespaceObject.createElement)(CardView, {
+    elevation: elevation,
+    ref: forwardedRef
+  }, children));
+}
+
+const ConnectedFlyoutContent = contextConnect(FlyoutContent, 'FlyoutContent');
+/* harmony default export */ var flyout_content_component = (ConnectedFlyoutContent);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/flyout/flyout/hook.js
+/**
+ * External dependencies
+ */
+// eslint-disable-next-line no-restricted-imports
+
+/**
+ * Internal dependencies
+ */
+
+
+/**
+ * @param {import('../../ui/context').WordPressComponentProps<import('../types').Props, 'div', false>} props
+ */
+
+function useFlyout(props) {
+  const {
+    animated = true,
+    animationDuration = 160,
+    baseId,
+    elevation = 5,
+    id,
+    maxWidth = 360,
+    placement,
+    state,
+    visible,
+    ...otherProps
+  } = useContextSystem(props, 'Flyout');
+
+  const _flyoutState = usePopoverState({
+    animated: animated ? animationDuration : undefined,
+    baseId: baseId || id,
+    placement,
+    visible,
+    ...otherProps
+  });
+
+  const flyoutState = state || _flyoutState;
+  return { ...otherProps,
+    elevation,
+    maxWidth,
+    flyoutState
+  };
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/flyout/flyout/component.js
+
+
+
+/**
+ * External dependencies
+ */
+// eslint-disable-next-line no-restricted-imports
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+
+/**
+ *
+ * @param {import('../../ui/context').WordPressComponentProps<import('../types').Props, 'div', false>} props
+ * @param {import('react').ForwardedRef<any>}                                                          forwardedRef
+ */
+
+function component_Flyout(props, forwardedRef) {
+  const {
+    children,
+    elevation,
+    label,
+    maxWidth,
+    onVisibleChange,
+    trigger,
+    flyoutState,
+    ...otherProps
+  } = useFlyout(props);
+  const resizeListener = useFlyoutResizeUpdater({
+    onResize: flyoutState.unstable_update
+  });
+  const uniqueId = `flyout-${flyoutState.baseId}`;
+  const labelId = label || uniqueId;
+  const contextProps = (0,external_wp_element_namespaceObject.useMemo)(() => ({
+    label: labelId,
+    flyoutState
+  }), [labelId, flyoutState]);
+  const triggerContent = (0,external_wp_element_namespaceObject.useCallback)(triggerProps => {
+    return (0,external_wp_element_namespaceObject.cloneElement)(trigger, triggerProps);
+  }, [trigger]);
+  use_update_effect(() => {
+    onVisibleChange === null || onVisibleChange === void 0 ? void 0 : onVisibleChange(flyoutState.visible);
+  }, [flyoutState.visible]);
+  return (0,external_wp_element_namespaceObject.createElement)(FlyoutContext.Provider, {
+    value: contextProps
+  }, trigger && (0,external_wp_element_namespaceObject.createElement)(PopoverDisclosure, extends_extends({}, flyoutState, {
+    ref: trigger.ref
+  }, trigger.props), triggerContent), (0,external_wp_element_namespaceObject.createElement)(Portal, null, (0,external_wp_element_namespaceObject.createElement)(flyout_content_component, extends_extends({
+    ref: forwardedRef
+  }, otherProps, {
+    elevation: elevation,
+    maxWidth: maxWidth
+  }), resizeListener, children)));
+}
+/**
+ * `Flyout` is a component to render a floating content modal.
+ * It is similar in purpose to a tooltip, but renders content of any sort,
+ * not only simple text.
+ *
+ * @example
+ * ```jsx
+ * import { Button, __experimentalFlyout as Flyout, __experimentalText as } from '@wordpress/components';
+ *
+ * function Example() {
+ * 	return (
+ * 		<Flyout trigger={ <Button>Show/Hide content</Button> }>
+ *			<Text>Code is Poetry</Text>
+ * 		</Flyout>
+ * 	);
+ * }
+ * ```
+ */
+
+
+const ConnectedFlyout = contextConnect(component_Flyout, 'Flyout');
+/* harmony default export */ var flyout_component = (ConnectedFlyout);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/focal-point-picker/styles/focal-point-picker-style.js
+
+
+function focal_point_picker_style_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+const MediaWrapper = emotion_styled_base_browser_esm("div",  true ? {
+  target: "e11wezi78"
+} : 0)( true ? {
+  name: "1g31405",
+  styles: "background-color:transparent;box-sizing:border-box;text-align:center;width:100%"
+} : 0);
+const MediaContainer = emotion_styled_base_browser_esm("div",  true ? {
+  target: "e11wezi77"
+} : 0)( true ? {
+  name: "v0nrlz",
+  styles: "align-items:center;box-sizing:border-box;box-shadow:0 0 0 1px rgba( 0, 0, 0, 0.2 );cursor:pointer;display:inline-flex;justify-content:center;margin:auto;position:relative;height:100%;img,video{box-sizing:border-box;display:block;height:auto;margin:0;max-height:100%;max-width:100%;pointer-events:none;user-select:none;width:auto;}"
+} : 0);
+const MediaPlaceholder = emotion_styled_base_browser_esm("div",  true ? {
+  target: "e11wezi76"
+} : 0)("background:", COLORS.lightGray[300], ";box-sizing:border-box;height:170px;max-width:280px;min-width:200px;width:100%;" + ( true ? "" : 0));
+const focal_point_picker_style_UnitControl = /*#__PURE__*/emotion_styled_base_browser_esm(unit_control,  true ? {
+  target: "e11wezi75"
+} : 0)( true ? {
+  name: "1pzk433",
+  styles: "width:100px"
+} : 0);
+const ControlWrapper = /*#__PURE__*/emotion_styled_base_browser_esm(flex_component,  true ? {
+  target: "e11wezi74"
+} : 0)( true ? {
+  name: "ox4xcy",
+  styles: "max-width:320px;padding:1em 0"
+} : 0);
+const GridView = emotion_styled_base_browser_esm("div",  true ? {
+  target: "e11wezi73"
+} : 0)("box-sizing:border-box;left:50%;opacity:0;overflow:hidden;pointer-events:none;position:absolute;top:50%;transform:translate3d( -50%, -50%, 0 );transition:opacity 120ms linear;z-index:1;", _ref => {
+  let {
+    isActive
+  } = _ref;
+  return isActive && `
+		opacity: 1;
+	`;
+}, ";" + ( true ? "" : 0));
+const GridLine = emotion_styled_base_browser_esm("div",  true ? {
+  target: "e11wezi72"
+} : 0)( true ? {
+  name: "1sy4ch9",
+  styles: "box-sizing:border-box;background:white;box-shadow:0 0 2px rgba( 0, 0, 0, 0.6 );position:absolute;opacity:0.4;transform:translateZ( 0 )"
+} : 0);
+const GridLineX = /*#__PURE__*/emotion_styled_base_browser_esm(GridLine,  true ? {
+  target: "e11wezi71"
+} : 0)( true ? {
+  name: "1qp910y",
+  styles: "height:1px;left:0;right:0"
+} : 0);
+const GridLineY = /*#__PURE__*/emotion_styled_base_browser_esm(GridLine,  true ? {
+  target: "e11wezi70"
+} : 0)( true ? {
+  name: "1oz3zka",
+  styles: "width:1px;top:0;bottom:0"
+} : 0);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/focal-point-picker/utils.js
+const INITIAL_BOUNDS = {
+  top: 0,
+  left: 0,
+  bottom: 0,
+  right: 0,
+  width: 0,
+  height: 0
+};
+const VIDEO_EXTENSIONS = ['avi', 'mpg', 'mpeg', 'mov', 'mp4', 'm4v', 'ogg', 'ogv', 'webm', 'wmv'];
+/**
+ * Gets the extension of a file name.
+ *
+ * @param {string} filename The file name.
+ * @return {string} The extension of the file name.
+ */
+
+function getExtension() {
+  let filename = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
+  const parts = filename.split('.');
+  return parts[parts.length - 1];
+}
+/**
+ * Checks if a file is a video.
+ *
+ * @param {string} filename The file name.
+ * @return {boolean} Whether the file is a video.
+ */
+
+function isVideoType() {
+  let filename = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
+  if (!filename) return false;
+  return VIDEO_EXTENSIONS.includes(getExtension(filename));
+}
+/**
+ * Transforms a fraction value to a percentage value.
+ *
+ * @param {number} fraction The fraction value.
+ * @return {number} A percentage value.
+ */
+
+function fractionToPercentage(fraction) {
+  return Math.round(fraction * 100);
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/focal-point-picker/controls.js
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+const TEXTCONTROL_MIN = 0;
+const TEXTCONTROL_MAX = 100;
+function FocalPointPickerControls(_ref) {
+  let {
+    onChange = external_lodash_namespaceObject.noop,
+    percentages = {
+      x: 0.5,
+      y: 0.5
+    }
+  } = _ref;
+  const valueX = fractionToPercentage(percentages.x);
+  const valueY = fractionToPercentage(percentages.y);
+
+  const handleChange = (value, axis) => {
+    const num = parseInt(value, 10);
+
+    if (!isNaN(num)) {
+      onChange({ ...percentages,
+        [axis]: num / 100
+      });
+    }
+  };
+
+  return (0,external_wp_element_namespaceObject.createElement)(ControlWrapper, {
+    className: "focal-point-picker__controls"
+  }, (0,external_wp_element_namespaceObject.createElement)(controls_UnitControl, {
+    label: (0,external_wp_i18n_namespaceObject.__)('Left'),
+    value: [valueX, '%'].join(''),
+    onChange: next => handleChange(next, 'x'),
+    dragDirection: "e"
+  }), (0,external_wp_element_namespaceObject.createElement)(controls_UnitControl, {
+    label: (0,external_wp_i18n_namespaceObject.__)('Top'),
+    value: [valueY, '%'].join(''),
+    onChange: next => handleChange(next, 'y'),
+    dragDirection: "s"
+  }));
+}
+
+function controls_UnitControl(props) {
+  return (0,external_wp_element_namespaceObject.createElement)(focal_point_picker_style_UnitControl, extends_extends({
+    className: "focal-point-picker__controls-position-unit-control",
+    labelPosition: "top",
+    max: TEXTCONTROL_MAX,
+    min: TEXTCONTROL_MIN,
+    units: [{
+      value: '%',
+      label: '%'
+    }]
+  }, props));
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/focal-point-picker/styles/focal-point-style.js
+
+
+function focal_point_style_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+const FocalPointWrapper = emotion_styled_base_browser_esm("div",  true ? {
+  target: "eas61re3"
+} : 0)("background-color:transparent;box-sizing:border-box;cursor:grab;height:30px;margin:-15px 0 0 -15px;opacity:0.8;position:absolute;user-select:none;width:30px;will-change:transform;z-index:10000;", _ref => {
+  let {
+    isDragging
+  } = _ref;
+  return isDragging && 'cursor: grabbing;';
+}, ";" + ( true ? "" : 0));
+const PointerIconSVG = /*#__PURE__*/emotion_styled_base_browser_esm(external_wp_primitives_namespaceObject.SVG,  true ? {
+  target: "eas61re2"
+} : 0)( true ? {
+  name: "qkx60y",
+  styles: "display:block;height:100%;left:0;position:absolute;top:0;width:100%"
+} : 0);
+const PointerIconPathOutline = /*#__PURE__*/emotion_styled_base_browser_esm(external_wp_primitives_namespaceObject.Path,  true ? {
+  target: "eas61re1"
+} : 0)( true ? {
+  name: "1b3qpiw",
+  styles: "fill:white"
+} : 0);
+const PointerIconPathFill = /*#__PURE__*/emotion_styled_base_browser_esm(external_wp_primitives_namespaceObject.Path,  true ? {
+  target: "eas61re0"
+} : 0)("fill:", COLORS.blue.wordpress[700], ";fill:", COLORS.ui.theme, ";" + ( true ? "" : 0));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/focal-point-picker/focal-point.js
+
+
+
+/**
+ * Internal dependencies
+ */
+
+/**
+ * External dependencies
+ */
+
+
+function FocalPoint(_ref) {
+  let {
+    coordinates = {
+      left: '50%',
+      top: '50%'
+    },
+    ...props
+  } = _ref;
+  const classes = classnames_default()('components-focal-point-picker__icon_container');
+  const style = {
+    left: coordinates.left,
+    top: coordinates.top
+  };
+  return (0,external_wp_element_namespaceObject.createElement)(FocalPointWrapper, extends_extends({}, props, {
+    className: classes,
+    style: style
+  }), (0,external_wp_element_namespaceObject.createElement)(PointerIconSVG, {
+    className: "components-focal-point-picker__icon",
+    xmlns: "http://www.w3.org/2000/svg",
+    viewBox: "0 0 30 30"
+  }, (0,external_wp_element_namespaceObject.createElement)(PointerIconPathOutline, {
+    className: "components-focal-point-picker__icon-outline",
+    d: "M15 1C7.3 1 1 7.3 1 15s6.3 14 14 14 14-6.3 14-14S22.7 1 15 1zm0 22c-4.4 0-8-3.6-8-8s3.6-8 8-8 8 3.6 8 8-3.6 8-8 8z"
+  }), (0,external_wp_element_namespaceObject.createElement)(PointerIconPathFill, {
+    className: "components-focal-point-picker__icon-fill",
+    d: "M15 3C8.4 3 3 8.4 3 15s5.4 12 12 12 12-5.4 12-12S21.6 3 15 3zm0 22C9.5 25 5 20.5 5 15S9.5 5 15 5s10 4.5 10 10-4.5 10-10 10z"
+  })));
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/focal-point-picker/grid.js
+
+
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+const {
+  clearTimeout: grid_clearTimeout,
+  setTimeout: grid_setTimeout
+} = typeof window !== 'undefined' ? window : {};
+function FocalPointPickerGrid(_ref) {
+  let {
+    bounds = {},
+    value,
+    ...props
+  } = _ref;
+  const animationProps = useRevealAnimation(value);
+  const style = {
+    width: bounds.width,
+    height: bounds.height
+  };
+  return (0,external_wp_element_namespaceObject.createElement)(GridView, extends_extends({}, props, animationProps, {
+    className: "components-focal-point-picker__grid",
+    style: style
+  }), (0,external_wp_element_namespaceObject.createElement)(GridLineX, {
+    style: {
+      top: '33%'
+    }
+  }), (0,external_wp_element_namespaceObject.createElement)(GridLineX, {
+    style: {
+      top: '66%'
+    }
+  }), (0,external_wp_element_namespaceObject.createElement)(GridLineY, {
+    style: {
+      left: '33%'
+    }
+  }), (0,external_wp_element_namespaceObject.createElement)(GridLineY, {
+    style: {
+      left: '66%'
+    }
+  }));
+}
+/**
+ * Custom hook that renders the "flash" animation whenever the value changes.
+ *
+ * @param {string} value Value of (box) side.
+ */
+
+function useRevealAnimation(value) {
+  const [isActive, setIsActive] = (0,external_wp_element_namespaceObject.useState)(false);
+  use_update_effect(() => {
+    setIsActive(true);
+    const timeout = grid_setTimeout(() => {
+      setIsActive(false);
+    }, 600);
+    return () => grid_clearTimeout(timeout);
+  }, [value]);
+  return {
+    isActive
+  };
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/focal-point-picker/media.js
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+function media_Media(_ref) {
+  let {
+    alt,
+    autoPlay,
+    src,
+    onLoad = external_lodash_namespaceObject.noop,
+    mediaRef,
+    // Exposing muted prop for test rendering purposes
+    // https://github.com/testing-library/react-testing-library/issues/470
+    muted = true,
+    ...props
+  } = _ref;
+
+  if (!src) {
+    return (0,external_wp_element_namespaceObject.createElement)(MediaPlaceholderElement, {
+      className: "components-focal-point-picker__media components-focal-point-picker__media--placeholder",
+      onLoad: onLoad,
+      mediaRef: mediaRef
+    });
+  }
+
+  const isVideo = isVideoType(src);
+  return isVideo ? (0,external_wp_element_namespaceObject.createElement)("video", extends_extends({}, props, {
+    autoPlay: autoPlay,
+    className: "components-focal-point-picker__media components-focal-point-picker__media--video",
+    loop: true,
+    muted: muted,
+    onLoadedData: onLoad,
+    ref: mediaRef,
+    src: src
+  })) : (0,external_wp_element_namespaceObject.createElement)("img", extends_extends({}, props, {
+    alt: alt,
+    className: "components-focal-point-picker__media components-focal-point-picker__media--image",
+    onLoad: onLoad,
+    ref: mediaRef,
+    src: src
+  }));
+}
+
+function MediaPlaceholderElement(_ref2) {
+  let {
+    mediaRef,
+    onLoad = external_lodash_namespaceObject.noop,
+    ...props
+  } = _ref2;
+  const onLoadRef = (0,external_wp_element_namespaceObject.useRef)(onLoad);
+  /**
+   * This async callback mimics the onLoad (img) / onLoadedData (video) callback
+   * for media elements. It is used in the main <FocalPointPicker /> component
+   * to calculate the dimensions + boundaries for positioning.
+   */
+
+  (0,external_wp_element_namespaceObject.useLayoutEffect)(() => {
+    window.requestAnimationFrame(() => {
+      onLoadRef.current();
+    });
+  }, []);
+  return (0,external_wp_element_namespaceObject.createElement)(MediaPlaceholder, extends_extends({
+    ref: mediaRef
+  }, props));
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/focal-point-picker/index.js
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+
+
+
+class FocalPointPicker extends external_wp_element_namespaceObject.Component {
+  constructor(props) {
+    super(...arguments);
+    this.state = {
+      isDragging: false,
+      bounds: INITIAL_BOUNDS,
+      percentages: props.value
+    };
+    this.containerRef = (0,external_wp_element_namespaceObject.createRef)();
+    this.mediaRef = (0,external_wp_element_namespaceObject.createRef)();
+    this.onMouseDown = this.startDrag.bind(this);
+    this.onMouseUp = this.stopDrag.bind(this);
+    this.onKeyDown = this.onKeyDown.bind(this);
+    this.onMouseMove = this.doDrag.bind(this);
+
+    this.ifDraggingStop = () => {
+      if (this.state.isDragging) {
+        this.stopDrag();
+      }
+    };
+
+    this.onChangeAtControls = value => {
+      this.updateValue(value, () => {
+        this.props.onChange(this.state.percentages);
+      });
+    };
+
+    this.updateBounds = this.updateBounds.bind(this);
+    this.updateValue = this.updateValue.bind(this);
+  }
+
+  componentDidMount() {
+    const {
+      defaultView
+    } = this.containerRef.current.ownerDocument;
+    defaultView.addEventListener('resize', this.updateBounds);
+    /*
+     * Set initial bound values.
+     *
+     * This is necessary for Safari:
+     * https://github.com/WordPress/gutenberg/issues/25814
+     */
+
+    this.updateBounds();
+  }
+
+  componentDidUpdate(prevProps) {
+    if (prevProps.url !== this.props.url) {
+      this.ifDraggingStop();
+    }
+    /*
+     * Handles cases where the incoming value changes.
+     * An example is the values resetting based on an UNDO action.
+     */
+
+
+    const {
+      isDragging,
+      percentages: {
+        x,
+        y
+      }
+    } = this.state;
+    const {
+      value
+    } = this.props;
+
+    if (!isDragging && (value.x !== x || value.y !== y)) {
+      this.setState({
+        percentages: this.props.value
+      });
+    }
+  }
+
+  componentWillUnmount() {
+    const {
+      defaultView
+    } = this.containerRef.current.ownerDocument;
+    defaultView.removeEventListener('resize', this.updateBounds);
+    this.ifDraggingStop();
+  }
+
+  calculateBounds() {
+    const bounds = INITIAL_BOUNDS;
+
+    if (!this.mediaRef.current) {
+      return bounds;
+    } // Prevent division by zero when updateBounds runs in componentDidMount
+
+
+    if (this.mediaRef.current.clientWidth === 0 || this.mediaRef.current.clientHeight === 0) {
+      return bounds;
+    }
+
+    const dimensions = {
+      width: this.mediaRef.current.clientWidth,
+      height: this.mediaRef.current.clientHeight
+    };
+    const pickerDimensions = this.pickerDimensions();
+    const widthRatio = pickerDimensions.width / dimensions.width;
+    const heightRatio = pickerDimensions.height / dimensions.height;
+
+    if (heightRatio >= widthRatio) {
+      bounds.width = bounds.right = pickerDimensions.width;
+      bounds.height = dimensions.height * widthRatio;
+      bounds.top = (pickerDimensions.height - bounds.height) / 2;
+      bounds.bottom = bounds.top + bounds.height;
+    } else {
+      bounds.height = bounds.bottom = pickerDimensions.height;
+      bounds.width = dimensions.width * heightRatio;
+      bounds.left = (pickerDimensions.width - bounds.width) / 2;
+      bounds.right = bounds.left + bounds.width;
+    }
+
+    return bounds;
+  }
+
+  updateValue() {
+    var _this$props$resolvePo, _this$props$resolvePo2, _this$props;
+
+    let nextValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+    let callback = arguments.length > 1 ? arguments[1] : undefined;
+    const resolvedValue = (_this$props$resolvePo = (_this$props$resolvePo2 = (_this$props = this.props).resolvePoint) === null || _this$props$resolvePo2 === void 0 ? void 0 : _this$props$resolvePo2.call(_this$props, nextValue)) !== null && _this$props$resolvePo !== void 0 ? _this$props$resolvePo : nextValue;
+    const {
+      x,
+      y
+    } = resolvedValue;
+    const nextPercentage = {
+      x: parseFloat(x).toFixed(2),
+      y: parseFloat(y).toFixed(2)
+    };
+    this.setState({
+      percentages: nextPercentage
+    }, callback);
+  }
+
+  updateBounds() {
+    this.setState({
+      bounds: this.calculateBounds()
+    });
+  }
+
+  startDrag(event) {
+    var _this$props$onDragSta, _this$props2;
+
+    event.persist();
+    this.containerRef.current.focus();
+    this.setState({
+      isDragging: true
+    });
+    const {
+      ownerDocument
+    } = this.containerRef.current;
+    ownerDocument.addEventListener('mouseup', this.onMouseUp);
+    ownerDocument.addEventListener('mousemove', this.onMouseMove);
+    const value = this.getValueFromPoint({
+      x: event.pageX,
+      y: event.pageY
+    }, event.shiftKey);
+    this.updateValue(value);
+    (_this$props$onDragSta = (_this$props2 = this.props).onDragStart) === null || _this$props$onDragSta === void 0 ? void 0 : _this$props$onDragSta.call(_this$props2, value, event);
+  }
+
+  stopDrag(event) {
+    var _this$props$onDragEnd, _this$props3;
+
+    const {
+      ownerDocument
+    } = this.containerRef.current;
+    ownerDocument.removeEventListener('mouseup', this.onMouseUp);
+    ownerDocument.removeEventListener('mousemove', this.onMouseMove);
+    this.setState({
+      isDragging: false
+    }, () => {
+      this.props.onChange(this.state.percentages);
+    });
+    (_this$props$onDragEnd = (_this$props3 = this.props).onDragEnd) === null || _this$props$onDragEnd === void 0 ? void 0 : _this$props$onDragEnd.call(_this$props3, event);
+  }
+
+  onKeyDown(event) {
+    const {
+      keyCode,
+      shiftKey
+    } = event;
+    if (![external_wp_keycodes_namespaceObject.UP, external_wp_keycodes_namespaceObject.DOWN, external_wp_keycodes_namespaceObject.LEFT, external_wp_keycodes_namespaceObject.RIGHT].includes(keyCode)) return;
+    event.preventDefault();
+    const next = { ...this.state.percentages
+    };
+    const step = shiftKey ? 0.1 : 0.01;
+    const delta = keyCode === external_wp_keycodes_namespaceObject.UP || keyCode === external_wp_keycodes_namespaceObject.LEFT ? -1 * step : step;
+    const axis = keyCode === external_wp_keycodes_namespaceObject.UP || keyCode === external_wp_keycodes_namespaceObject.DOWN ? 'y' : 'x';
+    const value = parseFloat(next[axis]) + delta;
+    next[axis] = roundClamp(value, 0, 1, step);
+    this.updateValue(next, () => {
+      this.props.onChange(this.state.percentages);
+    });
+  }
+
+  doDrag(event) {
+    var _this$props$onDrag, _this$props4;
+
+    // Prevents text-selection when dragging.
+    event.preventDefault();
+    const value = this.getValueFromPoint({
+      x: event.pageX,
+      y: event.pageY
+    }, event.shiftKey);
+    this.updateValue(value);
+    (_this$props$onDrag = (_this$props4 = this.props).onDrag) === null || _this$props$onDrag === void 0 ? void 0 : _this$props$onDrag.call(_this$props4, value, event);
+  }
+
+  getValueFromPoint(point, byTenths) {
+    const {
+      bounds
+    } = this.state;
+    const pickerDimensions = this.pickerDimensions();
+    const relativePoint = {
+      left: point.x - pickerDimensions.left,
+      top: point.y - pickerDimensions.top
+    };
+    const left = Math.max(bounds.left, Math.min(relativePoint.left, bounds.right));
+    const top = Math.max(bounds.top, Math.min(relativePoint.top, bounds.bottom));
+    let nextX = (left - bounds.left) / (pickerDimensions.width - bounds.left * 2);
+    let nextY = (top - bounds.top) / (pickerDimensions.height - bounds.top * 2); // Enables holding shift to jump values by 10%
+
+    const step = byTenths ? 0.1 : 0.01;
+    nextX = roundClamp(nextX, 0, 1, step);
+    nextY = roundClamp(nextY, 0, 1, step);
+    return {
+      x: nextX,
+      y: nextY
+    };
+  }
+
+  pickerDimensions() {
+    const containerNode = this.containerRef.current;
+
+    if (!containerNode) {
+      return {
+        width: 0,
+        height: 0,
+        left: 0,
+        top: 0
+      };
+    }
+
+    const {
+      clientHeight,
+      clientWidth
+    } = containerNode;
+    const {
+      top,
+      left
+    } = containerNode.getBoundingClientRect();
+    return {
+      width: clientWidth,
+      height: clientHeight,
+      top: top + document.body.scrollTop,
+      left
+    };
+  }
+
+  iconCoordinates() {
+    const {
+      bounds,
+      percentages: {
+        x,
+        y
+      }
+    } = this.state;
+
+    if (bounds.left === undefined || bounds.top === undefined) {
+      return {
+        left: '50%',
+        top: '50%'
+      };
+    }
+
+    const {
+      width,
+      height
+    } = this.pickerDimensions();
+    return {
+      left: x * (width - bounds.left * 2) + bounds.left,
+      top: y * (height - bounds.top * 2) + bounds.top
+    };
+  }
+
+  render() {
+    const {
+      autoPlay,
+      className,
+      help,
+      instanceId,
+      label,
+      url
+    } = this.props;
+    const {
+      bounds,
+      isDragging,
+      percentages
+    } = this.state;
+    const iconCoordinates = this.iconCoordinates();
+    const classes = classnames_default()('components-focal-point-picker-control', className);
+    const id = `inspector-focal-point-picker-control-${instanceId}`;
+    return (0,external_wp_element_namespaceObject.createElement)(base_control, {
+      label: label,
+      id: id,
+      help: help,
+      className: classes
+    }, (0,external_wp_element_namespaceObject.createElement)(MediaWrapper, {
+      className: "components-focal-point-picker-wrapper"
+    }, (0,external_wp_element_namespaceObject.createElement)(MediaContainer, {
+      className: "components-focal-point-picker",
+      onKeyDown: this.onKeyDown,
+      onMouseDown: this.onMouseDown,
+      onBlur: this.ifDraggingStop,
+      ref: this.containerRef,
+      role: "button",
+      tabIndex: "-1"
+    }, (0,external_wp_element_namespaceObject.createElement)(FocalPointPickerGrid, {
+      bounds: bounds,
+      value: percentages.x + percentages.y
+    }), (0,external_wp_element_namespaceObject.createElement)(media_Media, {
+      alt: (0,external_wp_i18n_namespaceObject.__)('Media preview'),
+      autoPlay: autoPlay,
+      mediaRef: this.mediaRef,
+      onLoad: this.updateBounds,
+      src: url
+    }), (0,external_wp_element_namespaceObject.createElement)(FocalPoint, {
+      coordinates: iconCoordinates,
+      isDragging: isDragging
+    }))), (0,external_wp_element_namespaceObject.createElement)(FocalPointPickerControls, {
+      percentages: percentages,
+      onChange: this.onChangeAtControls
+    }));
+  }
+
+}
+FocalPointPicker.defaultProps = {
+  autoPlay: true,
+  value: {
+    x: 0.5,
+    y: 0.5
+  },
+  url: null
+};
+/* harmony default export */ var focal_point_picker = ((0,external_wp_compose_namespaceObject.withInstanceId)(FocalPointPicker));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/focusable-iframe/index.js
+
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+function FocusableIframe(_ref) {
+  let {
+    iframeRef,
+    ...props
+  } = _ref;
+  const ref = (0,external_wp_compose_namespaceObject.useMergeRefs)([iframeRef, (0,external_wp_compose_namespaceObject.useFocusableIframe)()]);
+  external_wp_deprecated_default()('wp.components.FocusableIframe', {
+    since: '5.9',
+    alternative: 'wp.compose.useFocusableIframe'
+  }); // Disable reason: The rendered iframe is a pass-through component,
+  // assigning props inherited from the rendering parent. It's the
+  // responsibility of the parent to assign a title.
+  // eslint-disable-next-line jsx-a11y/iframe-has-title
+
+  return (0,external_wp_element_namespaceObject.createElement)("iframe", extends_extends({
+    ref: ref
+  }, props));
+}
+
+;// CONCATENATED MODULE: ./node_modules/reakit/es/Radio/RadioState.js
+
+
+
+
+
+
+
+
+
+
+
+
+
+function useRadioState(initialState) {
+  if (initialState === void 0) {
+    initialState = {};
+  }
+
+  var _useSealedState = useSealedState(initialState),
+      initialValue = _useSealedState.state,
+      _useSealedState$loop = _useSealedState.loop,
+      loop = _useSealedState$loop === void 0 ? true : _useSealedState$loop,
+      sealed = _objectWithoutPropertiesLoose(_useSealedState, ["state", "loop"]);
+
+  var _React$useState = (0,external_React_.useState)(initialValue),
+      state = _React$useState[0],
+      setState = _React$useState[1];
+
+  var composite = useCompositeState(_objectSpread2(_objectSpread2({}, sealed), {}, {
+    loop: loop
+  }));
+  return _objectSpread2(_objectSpread2({}, composite), {}, {
+    state: state,
+    setState: setState
+  });
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit/es/__keys-d251e56b.js
+// Automatically generated
+var RADIO_STATE_KEYS = ["baseId", "unstable_idCountRef", "unstable_virtual", "rtl", "orientation", "items", "groups", "currentId", "loop", "wrap", "shift", "unstable_moves", "unstable_hasActiveWidget", "unstable_includesBaseElement", "state", "setBaseId", "registerItem", "unregisterItem", "registerGroup", "unregisterGroup", "move", "next", "previous", "up", "down", "first", "last", "sort", "unstable_setVirtual", "setRTL", "setOrientation", "setCurrentId", "setLoop", "setWrap", "setShift", "reset", "unstable_setIncludesBaseElement", "unstable_setHasActiveWidget", "setState"];
+var RADIO_KEYS = [].concat(RADIO_STATE_KEYS, ["value", "checked", "unstable_checkOnFocus"]);
+var RADIO_GROUP_KEYS = RADIO_STATE_KEYS;
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit/es/Radio/RadioGroup.js
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+var useRadioGroup = createHook({
+  name: "RadioGroup",
+  compose: useComposite,
+  keys: RADIO_GROUP_KEYS,
+  useProps: function useProps(_, htmlProps) {
+    return _objectSpread2({
+      role: "radiogroup"
+    }, htmlProps);
+  }
+});
+var RadioGroup = createComponent({
+  as: "div",
+  useHook: useRadioGroup,
+  useCreateElement: function useCreateElement$1(type, props, children) {
+     false ? 0 : void 0;
+    return useCreateElement(type, props, children);
+  }
+});
+
+
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/toggle-group-control/toggle-group-control/styles.js
+
+
+function toggle_group_control_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+const ToggleGroupControl = /*#__PURE__*/emotion_react_browser_esm_css("background:", COLORS.ui.background, ";border:1px solid;border-color:", COLORS.ui.border, ";border-radius:", config_values.controlBorderRadius, ";display:inline-flex;min-height:", config_values.controlHeight, ";min-width:0;padding:2px;position:relative;transition:transform ", config_values.transitionDurationFastest, " linear;", reduceMotion('transition'), " &:hover{border-color:", COLORS.ui.borderHover, ";}&:focus-within{border-color:", COLORS.ui.borderFocus, ";box-shadow:", config_values.controlBoxShadowFocus, ";outline:none;z-index:1;}" + ( true ? "" : 0),  true ? "" : 0);
+const toggle_group_control_styles_block =  true ? {
+  name: "7whenc",
+  styles: "display:flex;width:100%"
+} : 0;
+const BackdropView = emotion_styled_base_browser_esm("div",  true ? {
+  target: "eakva830"
+} : 0)("background:", COLORS.gray[900], ";border-radius:", config_values.controlBorderRadius, ";box-shadow:", config_values.toggleGroupControlBackdropBoxShadow, ";left:0;position:absolute;top:2px;bottom:2px;transition:transform ", config_values.transitionDurationFast, " ease;", reduceMotion('transition'), " z-index:1;" + ( true ? "" : 0));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.js
+
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+function ToggleGroupControlBackdrop(_ref) {
+  let {
+    containerRef,
+    containerWidth,
+    isAdaptiveWidth,
+    state
+  } = _ref;
+  const [left, setLeft] = (0,external_wp_element_namespaceObject.useState)(0);
+  const [width, setWidth] = (0,external_wp_element_namespaceObject.useState)(0);
+  const [canAnimate, setCanAnimate] = (0,external_wp_element_namespaceObject.useState)(false);
+  const [renderBackdrop, setRenderBackdrop] = (0,external_wp_element_namespaceObject.useState)(false);
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    const containerNode = containerRef === null || containerRef === void 0 ? void 0 : containerRef.current;
+    if (!containerNode) return;
+    /**
+     * Workaround for Reakit
+     */
+
+    const targetNode = containerNode.querySelector(`[data-value="${state}"]`);
+    setRenderBackdrop(!!targetNode);
+
+    if (!targetNode) {
+      return;
+    }
+
+    const computeDimensions = () => {
+      const {
+        width: offsetWidth,
+        x
+      } = targetNode.getBoundingClientRect();
+      const {
+        x: parentX
+      } = containerNode.getBoundingClientRect();
+      const borderWidth = 1;
+      const offsetLeft = x - parentX - borderWidth;
+      setLeft(offsetLeft);
+      setWidth(offsetWidth);
+    }; // Fix to make the component appear as expected inside popovers.
+    // If the targetNode width is 0 it means the element was not yet rendered we should allow
+    // some time for the render to happen.
+    // requestAnimationFrame instead of setTimeout with a small time does not seems to work.
+
+
+    const dimensionsRequestId = window.setTimeout(computeDimensions, 100);
+    let animationRequestId;
+
+    if (!canAnimate) {
+      animationRequestId = window.requestAnimationFrame(() => {
+        setCanAnimate(true);
+      });
+    }
+
+    return () => {
+      window.clearTimeout(dimensionsRequestId);
+      window.cancelAnimationFrame(animationRequestId);
+    };
+  }, [canAnimate, containerRef, containerWidth, state, isAdaptiveWidth]);
+
+  if (!renderBackdrop) {
+    return null;
+  }
+
+  return (0,external_wp_element_namespaceObject.createElement)(BackdropView, {
+    role: "presentation",
+    style: {
+      transform: `translateX(${left}px)`,
+      transition: canAnimate ? undefined : 'none',
+      width
+    }
+  });
+}
+
+/* harmony default export */ var toggle_group_control_backdrop = ((0,external_wp_element_namespaceObject.memo)(ToggleGroupControlBackdrop));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/toggle-group-control/context.js
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+const ToggleGroupControlContext = (0,external_wp_element_namespaceObject.createContext)({});
+const useToggleGroupControlContext = () => (0,external_wp_element_namespaceObject.useContext)(ToggleGroupControlContext);
+/* harmony default export */ var toggle_group_control_context = (ToggleGroupControlContext);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/toggle-group-control/toggle-group-control/component.js
+
+
+
+/**
+ * External dependencies
+ */
+// eslint-disable-next-line no-restricted-imports
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+
+
+
+const toggle_group_control_component_noop = () => {};
+
+function component_ToggleGroupControl(props, forwardedRef) {
+  const {
+    className,
+    isAdaptiveWidth = false,
+    isBlock = false,
+    label,
+    hideLabelFromVision = false,
+    help,
+    onChange = toggle_group_control_component_noop,
+    value,
+    children,
+    ...otherProps
+  } = useContextSystem(props, 'ToggleGroupControl');
+  const cx = useCx();
+  const containerRef = (0,external_wp_element_namespaceObject.useRef)();
+  const [resizeListener, sizes] = react_resize_aware_dist_default()();
+  const baseId = (0,external_wp_compose_namespaceObject.useInstanceId)(component_ToggleGroupControl, 'toggle-group-control').toString();
+  const radio = useRadioState({
+    baseId,
+    state: value
+  });
+  const previousValue = (0,external_wp_compose_namespaceObject.usePrevious)(value); // Propagate radio.state change.
+
+  use_update_effect(() => {
+    // Avoid calling onChange if radio state changed
+    // from incoming value.
+    if (previousValue !== radio.state) {
+      onChange(radio.state);
+    }
+  }, [radio.state]); // Sync incoming value with radio.state.
+
+  use_update_effect(() => {
+    if (value !== radio.state) {
+      radio.setState(value);
+    }
+  }, [value]);
+  const classes = (0,external_wp_element_namespaceObject.useMemo)(() => cx(ToggleGroupControl, isBlock && toggle_group_control_styles_block, 'medium', className), [className, cx, isBlock]);
+  return (0,external_wp_element_namespaceObject.createElement)(base_control, {
+    help: help
+  }, (0,external_wp_element_namespaceObject.createElement)(toggle_group_control_context.Provider, {
+    value: { ...radio,
+      isBlock: !isAdaptiveWidth
+    }
+  }, !hideLabelFromVision && (0,external_wp_element_namespaceObject.createElement)("div", null, (0,external_wp_element_namespaceObject.createElement)(base_control.VisualLabel, null, label)), (0,external_wp_element_namespaceObject.createElement)(RadioGroup, extends_extends({}, radio, {
+    "aria-label": label,
+    as: component,
+    className: classes
+  }, otherProps, {
+    ref: (0,external_wp_compose_namespaceObject.useMergeRefs)([containerRef, forwardedRef])
+  }), resizeListener, (0,external_wp_element_namespaceObject.createElement)(toggle_group_control_backdrop, extends_extends({}, radio, {
+    containerRef: containerRef,
+    containerWidth: sizes.width,
+    isAdaptiveWidth: isAdaptiveWidth
+  })), children)));
+}
+/**
+ * `ToggleGroupControl` is a form component that lets users choose options
+ * represented in horizontal segments. To render options for this control use
+ * `ToggleGroupControlOption` component.
+ *
+ * Only use this control when you know for sure the labels of items inside won't
+ * wrap. For items with longer labels, you can consider a `SelectControl` or a
+ * `CustomSelectControl` component instead.
+ *
+ * @example
+ * ```jsx
+ * import {
+ *   __experimentalToggleGroupControl as ToggleGroupControl,
+ *   __experimentalToggleGroupControlOption as ToggleGroupControlOption,
+ * } from '@wordpress/components';
+ *
+ * function Example() {
+ *   return (
+ *     <ToggleGroupControl label="my label" value="vertical" isBlock>
+ *       <ToggleGroupControlOption value="horizontal" label="Horizontal" />
+ *       <ToggleGroupControlOption value="vertical" label="Vertical" />
+ *     </ToggleGroupControl>
+ *   );
+ * }
+ * ```
+ */
+
+
+const ConnectedToggleGroupControl = contextConnect(component_ToggleGroupControl, 'ToggleGroupControl');
+/* harmony default export */ var toggle_group_control_component = (ConnectedToggleGroupControl);
+
+;// CONCATENATED MODULE: ./node_modules/reakit/es/Radio/Radio.js
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+function getChecked(options) {
+  if (typeof options.checked !== "undefined") {
+    return options.checked;
+  }
+
+  return typeof options.value !== "undefined" && options.state === options.value;
+}
+
+function useInitialChecked(options) {
+  var _React$useState = (0,external_React_.useState)(function () {
+    return getChecked(options);
+  }),
+      initialChecked = _React$useState[0];
+
+  var _React$useState2 = (0,external_React_.useState)(options.currentId),
+      initialCurrentId = _React$useState2[0];
+
+  var id = options.id,
+      setCurrentId = options.setCurrentId;
+  (0,external_React_.useEffect)(function () {
+    if (initialChecked && id && initialCurrentId !== id) {
+      setCurrentId === null || setCurrentId === void 0 ? void 0 : setCurrentId(id);
+    }
+  }, [initialChecked, id, setCurrentId, initialCurrentId]);
+}
+
+function fireChange(element, onChange) {
+  var event = createEvent(element, "change");
+  Object.defineProperties(event, {
+    type: {
+      value: "change"
+    },
+    target: {
+      value: element
+    },
+    currentTarget: {
+      value: element
+    }
+  });
+  onChange === null || onChange === void 0 ? void 0 : onChange(event);
+}
+
+var useRadio = createHook({
+  name: "Radio",
+  compose: useCompositeItem,
+  keys: RADIO_KEYS,
+  useOptions: function useOptions(_ref, _ref2) {
+    var _options$value;
+
+    var value = _ref2.value,
+        checked = _ref2.checked;
+
+    var _ref$unstable_clickOn = _ref.unstable_clickOnEnter,
+        unstable_clickOnEnter = _ref$unstable_clickOn === void 0 ? false : _ref$unstable_clickOn,
+        _ref$unstable_checkOn = _ref.unstable_checkOnFocus,
+        unstable_checkOnFocus = _ref$unstable_checkOn === void 0 ? true : _ref$unstable_checkOn,
+        options = _objectWithoutPropertiesLoose(_ref, ["unstable_clickOnEnter", "unstable_checkOnFocus"]);
+
+    return _objectSpread2(_objectSpread2({
+      checked: checked,
+      unstable_clickOnEnter: unstable_clickOnEnter,
+      unstable_checkOnFocus: unstable_checkOnFocus
+    }, options), {}, {
+      value: (_options$value = options.value) != null ? _options$value : value
+    });
+  },
+  useProps: function useProps(options, _ref3) {
+    var htmlRef = _ref3.ref,
+        htmlOnChange = _ref3.onChange,
+        htmlOnClick = _ref3.onClick,
+        htmlProps = _objectWithoutPropertiesLoose(_ref3, ["ref", "onChange", "onClick"]);
+
+    var ref = (0,external_React_.useRef)(null);
+
+    var _React$useState3 = (0,external_React_.useState)(true),
+        isNativeRadio = _React$useState3[0],
+        setIsNativeRadio = _React$useState3[1];
+
+    var checked = getChecked(options);
+    var isCurrentItemRef = useLiveRef(options.currentId === options.id);
+    var onChangeRef = useLiveRef(htmlOnChange);
+    var onClickRef = useLiveRef(htmlOnClick);
+    useInitialChecked(options);
+    (0,external_React_.useEffect)(function () {
+      var element = ref.current;
+
+      if (!element) {
+         false ? 0 : void 0;
+        return;
+      }
+
+      if (element.tagName !== "INPUT" || element.type !== "radio") {
+        setIsNativeRadio(false);
+      }
+    }, []);
+    var onChange = (0,external_React_.useCallback)(function (event) {
+      var _onChangeRef$current, _options$setState;
+
+      (_onChangeRef$current = onChangeRef.current) === null || _onChangeRef$current === void 0 ? void 0 : _onChangeRef$current.call(onChangeRef, event);
+      if (event.defaultPrevented) return;
+      if (options.disabled) return;
+      (_options$setState = options.setState) === null || _options$setState === void 0 ? void 0 : _options$setState.call(options, options.value);
+    }, [options.disabled, options.setState, options.value]);
+    var onClick = (0,external_React_.useCallback)(function (event) {
+      var _onClickRef$current;
+
+      (_onClickRef$current = onClickRef.current) === null || _onClickRef$current === void 0 ? void 0 : _onClickRef$current.call(onClickRef, event);
+      if (event.defaultPrevented) return;
+      if (isNativeRadio) return;
+      fireChange(event.currentTarget, onChange);
+    }, [onChange, isNativeRadio]);
+    (0,external_React_.useEffect)(function () {
+      var element = ref.current;
+      if (!element) return;
+
+      if (options.unstable_moves && isCurrentItemRef.current && options.unstable_checkOnFocus) {
+        fireChange(element, onChange);
+      }
+    }, [options.unstable_moves, options.unstable_checkOnFocus, onChange]);
+    return _objectSpread2({
+      ref: useForkRef(ref, htmlRef),
+      role: !isNativeRadio ? "radio" : undefined,
+      type: isNativeRadio ? "radio" : undefined,
+      value: isNativeRadio ? options.value : undefined,
+      name: isNativeRadio ? options.baseId : undefined,
+      "aria-checked": checked,
+      checked: checked,
+      onChange: onChange,
+      onClick: onClick
+    }, htmlProps);
+  }
+});
+var Radio = createComponent({
+  as: "input",
+  memo: true,
+  useHook: useRadio
+});
+
+
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/toggle-group-control/toggle-group-control-option-base/styles.js
+
+
+function toggle_group_control_option_base_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+const LabelView = emotion_styled_base_browser_esm("div",  true ? {
+  target: "et6ln9s1"
+} : 0)( true ? {
+  name: "sln1fl",
+  styles: "display:inline-flex;max-width:100%;min-width:0;position:relative"
+} : 0);
+const labelBlock =  true ? {
+  name: "82a6rk",
+  styles: "flex:1"
+} : 0;
+const buttonView = /*#__PURE__*/emotion_react_browser_esm_css("align-items:center;appearance:none;background:transparent;border:none;border-radius:", config_values.controlBorderRadius, ";color:", COLORS.gray[700], ";fill:currentColor;cursor:pointer;display:flex;font-family:inherit;height:100%;justify-content:center;line-height:100%;outline:none;padding:0 12px;position:relative;text-align:center;transition:background ", config_values.transitionDurationFast, " linear,color ", config_values.transitionDurationFast, " linear,font-weight 60ms linear;", reduceMotion('transition'), " user-select:none;width:100%;z-index:2;&::-moz-focus-inner{border:0;}&:active{background:", config_values.toggleGroupControlBackgroundColor, ";}" + ( true ? "" : 0),  true ? "" : 0);
+const buttonActive = /*#__PURE__*/emotion_react_browser_esm_css("color:", COLORS.white, ";&:active{background:transparent;}" + ( true ? "" : 0),  true ? "" : 0);
+const ButtonContentView = emotion_styled_base_browser_esm("div",  true ? {
+  target: "et6ln9s0"
+} : 0)("font-size:", config_values.fontSize, ";line-height:1;" + ( true ? "" : 0));
+const separatorActive =  true ? {
+  name: "1qsuvl4",
+  styles: "background:transparent"
+} : 0;
+const medium = /*#__PURE__*/emotion_react_browser_esm_css("min-height:", config_values.controlHeight, ";" + ( true ? "" : 0),  true ? "" : 0);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/toggle-group-control/toggle-group-control-option-base/component.js
+
+
+
+/**
+ * External dependencies
+ */
+// eslint-disable-next-line no-restricted-imports
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+const {
+  ButtonContentView: component_ButtonContentView,
+  LabelView: component_LabelView
+} = toggle_group_control_option_base_styles_namespaceObject;
+
+const WithToolTip = _ref => {
+  let {
+    showTooltip,
+    text,
+    children
+  } = _ref;
+
+  if (showTooltip && text) {
+    return (0,external_wp_element_namespaceObject.createElement)(tooltip, {
+      text: text,
+      position: "top center"
+    }, children);
+  }
+
+  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, children);
+};
+
+function ToggleGroupControlOptionBase(props, forwardedRef) {
+  const toggleGroupControlContext = useToggleGroupControlContext();
+  const id = (0,external_wp_compose_namespaceObject.useInstanceId)(ToggleGroupControlOptionBase, toggleGroupControlContext.baseId || 'toggle-group-control-option-base');
+  const buttonProps = useContextSystem({ ...props,
+    id
+  }, 'ToggleGroupControlOptionBase');
+  const {
+    className,
+    isBlock = false,
+    value,
+    children,
+    showTooltip = false,
+    ...radioProps
+  } = { ...toggleGroupControlContext,
+    ...buttonProps
+  };
+  const isActive = radioProps.state === value;
+  const cx = useCx();
+  const labelViewClasses = cx(isBlock && labelBlock);
+  const classes = cx(buttonView, className, isActive && buttonActive);
+  return (0,external_wp_element_namespaceObject.createElement)(component_LabelView, {
+    className: labelViewClasses,
+    "data-active": isActive
+  }, (0,external_wp_element_namespaceObject.createElement)(WithToolTip, {
+    showTooltip: showTooltip,
+    text: radioProps['aria-label']
+  }, (0,external_wp_element_namespaceObject.createElement)(Radio, extends_extends({}, radioProps, {
+    as: "button",
+    "aria-label": radioProps['aria-label'],
+    className: classes,
+    "data-value": value,
+    ref: forwardedRef,
+    value: value
+  }), (0,external_wp_element_namespaceObject.createElement)(component_ButtonContentView, null, children))));
+}
+/**
+ * `ToggleGroupControlOptionBase` is a form component and is meant to be used as an internal,
+ * generic component for any children of `ToggleGroupControl`.
+ *
+ * @example
+ * ```jsx
+ * import {
+ *   __experimentalToggleGroupControl as ToggleGroupControl,
+ *   __experimentalToggleGroupControlOptionBase as ToggleGroupControlOptionBase,
+ * } from '@wordpress/components';
+ *
+ * function Example() {
+ *   return (
+ *     <ToggleGroupControl label="my label" value="vertical" isBlock>
+ *       <ToggleGroupControlOption value="horizontal" label="Horizontal" />
+ *       <ToggleGroupControlOption value="vertical" label="Vertical" />
+ *     </ToggleGroupControl>
+ *   );
+ * }
+ * ```
+ */
+
+
+const ConnectedToggleGroupControlOptionBase = contextConnect(ToggleGroupControlOptionBase, 'ToggleGroupControlOptionBase');
+/* harmony default export */ var toggle_group_control_option_base_component = (ConnectedToggleGroupControlOptionBase);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/toggle-group-control/toggle-group-control-option/component.js
+
+
+
+/**
+ * Internal dependencies
+ */
+
+function ToggleGroupControlOption(props) {
+  const {
+    label,
+    ...restProps
+  } = props;
+  const optionLabel = restProps['aria-label'] || label;
+  return (0,external_wp_element_namespaceObject.createElement)(toggle_group_control_option_base_component, extends_extends({}, restProps, {
+    "aria-label": optionLabel
+  }), label);
+}
+/**
+ * `ToggleGroupControlOption` is a form component and is meant to be used as a
+ * child of `ToggleGroupControl`.
+ *
+ * @example
+ * ```jsx
+ * import {
+ *   __experimentalToggleGroupControl as ToggleGroupControl,
+ *   __experimentalToggleGroupControlOption as ToggleGroupControlOption,
+ * } from '@wordpress/components';
+ *
+ * function Example() {
+ *   return (
+ *     <ToggleGroupControl label="my label" value="vertical" isBlock>
+ *       <ToggleGroupControlOption value="horizontal" label="Horizontal" />
+ *       <ToggleGroupControlOption value="vertical" label="Vertical" />
+ *     </ToggleGroupControl>
+ *   );
+ * }
+ * ```
+ */
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/font-size-picker/utils.js
+/**
+ * WordPress dependencies
+ */
+
+const DEFAULT_FONT_SIZE = 'default';
+const DEFAULT_FONT_SIZE_OPTION = {
+  slug: DEFAULT_FONT_SIZE,
+  name: (0,external_wp_i18n_namespaceObject.__)('Default')
+};
+const CUSTOM_FONT_SIZE = 'custom';
+const CUSTOM_FONT_SIZE_OPTION = {
+  slug: CUSTOM_FONT_SIZE,
+  name: (0,external_wp_i18n_namespaceObject.__)('Custom')
+};
+/**
+ * In case we have at most five font sizes, where at least one the them
+ * contain a complex css value(clamp, var, etc..) show a incremental sequence
+ * of numbers as a label of the font size. We do this because complex css values
+ * cannot be caluclated properly and the incremental sequence of numbers as labels
+ * can help the user better mentally map the different available font sizes.
+ */
+
+const FONT_SIZES_ALIASES = ['1', '2', '3', '4', '5'];
+/**
+ * Helper util to split a font size to its numeric value
+ * and its `unit`, if exists.
+ *
+ * @param {string|number} size Font size.
+ * @return {[number, string]} An array with the numeric value and the unit if exists.
+ */
+
+function splitValueAndUnitFromSize(size) {
+  const [numericValue, unit] = `${size}`.match(/[\d\.]+|\D+/g);
+
+  if (!isNaN(parseFloat(numericValue)) && isFinite(numericValue)) {
+    return [numericValue, unit];
+  }
+
+  return [];
+}
+/**
+ * Some themes use css vars for their font sizes, so until we
+ * have the way of calculating them don't display them.
+ *
+ * @param {string|number} value The value that is checked.
+ * @return {boolean} Whether the value is a simple css value.
+ */
+
+function isSimpleCssValue(value) {
+  const sizeRegex = /^[\d\.]+(px|em|rem|vw|vh|%)?$/i;
+  return sizeRegex.test(value);
+}
+/**
+ * Return font size options in the proper format depending
+ * on the currently used control (select, toggle group).
+ *
+ * @param {boolean}  useSelectControl               Whether to use a select control.
+ * @param {Object[]} optionsArray                   Array of available font sizes objects.
+ * @param {*}        disableCustomFontSizes         Flag that indicates if custom font sizes are disabled.
+ * @param {boolean}  optionsContainComplexCssValues Whether font sizes contain at least one complex css value(clamp, var, etc..).
+ * @return {Object[]|null} Array of font sizes in proper format for the used control.
+ */
+
+function getFontSizeOptions(useSelectControl, optionsArray, disableCustomFontSizes, optionsContainComplexCssValues) {
+  if (disableCustomFontSizes && !optionsArray.length) {
+    return null;
+  }
+
+  return useSelectControl ? getSelectOptions(optionsArray, disableCustomFontSizes) : getToggleGroupOptions(optionsArray, optionsContainComplexCssValues);
+}
+
+function getSelectOptions(optionsArray, disableCustomFontSizes) {
+  const options = [DEFAULT_FONT_SIZE_OPTION, ...optionsArray, ...(disableCustomFontSizes ? [] : [CUSTOM_FONT_SIZE_OPTION])];
+  return options.map(_ref => {
+    let {
+      slug,
+      name,
+      size
+    } = _ref;
+    return {
+      key: slug,
+      name,
+      size,
+      __experimentalHint: size && isSimpleCssValue(size) && parseFloat(size)
+    };
+  });
+}
+
+function getToggleGroupOptions(optionsArray, optionsContainComplexCssValues) {
+  return optionsArray.map((_ref2, index) => {
+    let {
+      slug,
+      size,
+      name
+    } = _ref2;
+    let label = optionsContainComplexCssValues ? FONT_SIZES_ALIASES[index] : size;
+
+    if (!optionsContainComplexCssValues && typeof size === 'string') {
+      const [numericValue] = splitValueAndUnitFromSize(size);
+      label = numericValue;
+    }
+
+    return {
+      key: slug,
+      value: size,
+      label,
+      name
+    };
+  });
+}
+
+function getSelectedOption(fontSizes, value) {
+  if (!value) {
+    return DEFAULT_FONT_SIZE_OPTION;
+  }
+
+  return fontSizes.find(font => font.size === value) || CUSTOM_FONT_SIZE_OPTION;
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/font-size-picker/index.js
+
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+
+
+
+
+function FontSizePicker(_ref, ref) {
+  var _fontSizes$, _value$endsWith;
+
+  let {
+    fallbackFontSize,
+    fontSizes = [],
+    disableCustomFontSizes = false,
+    onChange,
+    value,
+    withSlider = false,
+    withReset = true
+  } = _ref;
+  const hasUnits = [typeof value, typeof (fontSizes === null || fontSizes === void 0 ? void 0 : (_fontSizes$ = fontSizes[0]) === null || _fontSizes$ === void 0 ? void 0 : _fontSizes$.size)].includes('string');
+  const noUnitsValue = !hasUnits ? value : parseInt(value);
+  const isPixelValue = typeof value === 'number' || (value === null || value === void 0 ? void 0 : (_value$endsWith = value.endsWith) === null || _value$endsWith === void 0 ? void 0 : _value$endsWith.call(value, 'px'));
+  const units = useCustomUnits({
+    availableUnits: ['px', 'em', 'rem']
+  });
+  /**
+   * The main font size UI displays a toggle group when the presets are less
+   * than six and a select control when they are more.
+   */
+
+  const fontSizesContainComplexValues = fontSizes.some(_ref2 => {
+    let {
+      size
+    } = _ref2;
+    return !isSimpleCssValue(size);
+  });
+  const shouldUseSelectControl = fontSizes.length > 5;
+  const options = (0,external_wp_element_namespaceObject.useMemo)(() => getFontSizeOptions(shouldUseSelectControl, fontSizes, disableCustomFontSizes, fontSizesContainComplexValues), [shouldUseSelectControl, fontSizes, disableCustomFontSizes, fontSizesContainComplexValues]);
+  const selectedOption = getSelectedOption(fontSizes, value);
+  const isCustomValue = selectedOption.slug === CUSTOM_FONT_SIZE;
+  const [showCustomValueControl, setShowCustomValueControl] = (0,external_wp_element_namespaceObject.useState)(!disableCustomFontSizes && isCustomValue);
+  const headerHint = (0,external_wp_element_namespaceObject.useMemo)(() => {
+    if (showCustomValueControl) {
+      return `(${(0,external_wp_i18n_namespaceObject.__)('Custom')})`;
+    } // If we have a custom value that is not available in the font sizes,
+    // show it as a hint as long as it's a simple CSS value.
+
+
+    if (isCustomValue) {
+      return isSimpleCssValue(value) && `(${value})`;
+    }
+
+    if (shouldUseSelectControl) {
+      return isSimpleCssValue(selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.size) && `(${selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.size})`;
+    } // Calculate the `hint` for toggle group control.
+
+
+    let hint = selectedOption.name;
+
+    if (!fontSizesContainComplexValues && typeof selectedOption.size === 'string') {
+      const [, unit] = splitValueAndUnitFromSize(selectedOption.size);
+      hint += `(${unit})`;
+    }
+
+    return hint;
+  }, [showCustomValueControl, selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.slug, value, isCustomValue, fontSizesContainComplexValues]);
+
+  if (!options) {
+    return null;
+  } // This is used for select control only. We need to add support
+  // for ToggleGroupControl.
+
+
+  const currentFontSizeSR = (0,external_wp_i18n_namespaceObject.sprintf)( // translators: %s: Currently selected font size.
+  (0,external_wp_i18n_namespaceObject.__)('Currently selected font size: %s'), selectedOption.name);
+  const baseClassName = 'components-font-size-picker';
+  return (0,external_wp_element_namespaceObject.createElement)("fieldset", extends_extends({
+    className: baseClassName
+  }, ref ? {} : {
+    ref
+  }), (0,external_wp_element_namespaceObject.createElement)(visually_hidden_component, {
+    as: "legend"
+  }, (0,external_wp_i18n_namespaceObject.__)('Font size')), (0,external_wp_element_namespaceObject.createElement)(flex_component, {
+    justify: "space-between",
+    className: `${baseClassName}__header`
+  }, (0,external_wp_element_namespaceObject.createElement)(flex_item_component, null, (0,external_wp_i18n_namespaceObject.__)('Size'), headerHint && (0,external_wp_element_namespaceObject.createElement)("span", {
+    className: `${baseClassName}__header__hint`
+  }, headerHint)), !disableCustomFontSizes && (0,external_wp_element_namespaceObject.createElement)(flex_item_component, null, (0,external_wp_element_namespaceObject.createElement)(build_module_button, {
+    label: showCustomValueControl ? (0,external_wp_i18n_namespaceObject.__)('Use size preset') : (0,external_wp_i18n_namespaceObject.__)('Set custom size'),
+    icon: library_settings,
+    onClick: () => {
+      setShowCustomValueControl(!showCustomValueControl);
+    },
+    isPressed: showCustomValueControl,
+    isSmall: true
+  }))), (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: `${baseClassName}__controls`
+  }, !!fontSizes.length && shouldUseSelectControl && !showCustomValueControl && (0,external_wp_element_namespaceObject.createElement)(CustomSelectControl, {
+    className: `${baseClassName}__select`,
+    label: (0,external_wp_i18n_namespaceObject.__)('Font size'),
+    hideLabelFromVision: true,
+    describedBy: currentFontSizeSR,
+    options: options,
+    value: options.find(option => option.key === selectedOption.slug),
+    onChange: _ref3 => {
+      let {
+        selectedItem
+      } = _ref3;
+      onChange(hasUnits ? selectedItem.size : Number(selectedItem.size));
+
+      if (selectedItem.key === CUSTOM_FONT_SIZE) {
+        setShowCustomValueControl(true);
+      }
+    }
+  }), !shouldUseSelectControl && !showCustomValueControl && (0,external_wp_element_namespaceObject.createElement)(toggle_group_control_component, {
+    label: (0,external_wp_i18n_namespaceObject.__)('Font size'),
+    hideLabelFromVision: true,
+    value: value,
+    onChange: newValue => {
+      onChange(hasUnits ? newValue : Number(newValue));
+    },
+    isBlock: true
+  }, options.map(option => (0,external_wp_element_namespaceObject.createElement)(ToggleGroupControlOption, {
+    key: option.key,
+    value: option.value,
+    label: option.label,
+    "aria-label": option.name,
+    showTooltip: true
+  }))), !withSlider && !disableCustomFontSizes && showCustomValueControl && (0,external_wp_element_namespaceObject.createElement)(flex_component, {
+    justify: "space-between",
+    className: `${baseClassName}__custom-size-control`
+  }, (0,external_wp_element_namespaceObject.createElement)(flex_item_component, {
+    isBlock: true
+  }, (0,external_wp_element_namespaceObject.createElement)(unit_control, {
+    label: (0,external_wp_i18n_namespaceObject.__)('Custom'),
+    labelPosition: "top",
+    hideLabelFromVision: true,
+    value: value,
+    onChange: nextSize => {
+      if (0 === parseFloat(nextSize) || !nextSize) {
+        onChange(undefined);
+      } else {
+        onChange(hasUnits ? nextSize : parseInt(nextSize, 10));
+      }
+    },
+    units: hasUnits ? units : []
+  })), withReset && (0,external_wp_element_namespaceObject.createElement)(flex_item_component, {
+    isBlock: true
+  }, (0,external_wp_element_namespaceObject.createElement)(build_module_button, {
+    className: "components-color-palette__clear",
+    disabled: value === undefined,
+    onClick: () => {
+      onChange(undefined);
+    },
+    isSmall: true,
+    variant: "secondary"
+  }, (0,external_wp_i18n_namespaceObject.__)('Reset'))))), withSlider && (0,external_wp_element_namespaceObject.createElement)(range_control, {
+    className: `${baseClassName}__custom-input`,
+    label: (0,external_wp_i18n_namespaceObject.__)('Custom Size'),
+    value: isPixelValue && noUnitsValue || '',
+    initialPosition: fallbackFontSize,
+    onChange: newValue => {
+      onChange(hasUnits ? newValue + 'px' : newValue);
+    },
+    min: 12,
+    max: 100
+  }));
+}
+
+/* harmony default export */ var font_size_picker = ((0,external_wp_element_namespaceObject.forwardRef)(FontSizePicker));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/form-file-upload/index.js
+
+
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+function FormFileUpload(_ref) {
+  let {
+    accept,
+    children,
+    multiple = false,
+    onChange,
+    onClick,
+    render,
+    ...props
+  } = _ref;
+  const ref = (0,external_wp_element_namespaceObject.useRef)();
+
+  const openFileDialog = () => {
+    ref.current.click();
+  };
+
+  const ui = render ? render({
+    openFileDialog
+  }) : (0,external_wp_element_namespaceObject.createElement)(build_module_button, extends_extends({
+    onClick: openFileDialog
+  }, props), children);
+  return (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: "components-form-file-upload"
+  }, ui, (0,external_wp_element_namespaceObject.createElement)("input", {
+    type: "file",
+    ref: ref,
+    multiple: multiple,
+    style: {
+      display: 'none'
+    },
+    accept: accept,
+    onChange: onChange,
+    onClick: onClick,
+    "data-testid": "form-file-upload-input"
+  }));
+}
+
+/* harmony default export */ var form_file_upload = (FormFileUpload);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/form-toggle/index.js
+
+
+
+/**
+ * External dependencies
+ */
+
+
+
+function FormToggle(_ref) {
+  let {
+    className,
+    checked,
+    id,
+    disabled,
+    onChange = external_lodash_namespaceObject.noop,
+    ...props
+  } = _ref;
+  const wrapperClasses = classnames_default()('components-form-toggle', className, {
+    'is-checked': checked,
+    'is-disabled': disabled
+  });
+  return (0,external_wp_element_namespaceObject.createElement)("span", {
+    className: wrapperClasses
+  }, (0,external_wp_element_namespaceObject.createElement)("input", extends_extends({
+    className: "components-form-toggle__input",
+    id: id,
+    type: "checkbox",
+    checked: checked,
+    onChange: onChange,
+    disabled: disabled
+  }, props)), (0,external_wp_element_namespaceObject.createElement)("span", {
+    className: "components-form-toggle__track"
+  }), (0,external_wp_element_namespaceObject.createElement)("span", {
+    className: "components-form-toggle__thumb"
+  }));
+}
+
+/* harmony default export */ var form_toggle = (FormToggle);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/form-token-field/token.js
+
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+function Token(_ref) {
+  let {
+    value,
+    status,
+    title,
+    displayTransform,
+    isBorderless = false,
+    disabled = false,
+    onClickRemove = external_lodash_namespaceObject.noop,
+    onMouseEnter,
+    onMouseLeave,
+    messages,
+    termPosition,
+    termsCount
+  } = _ref;
+  const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(Token);
+  const tokenClasses = classnames_default()('components-form-token-field__token', {
+    'is-error': 'error' === status,
+    'is-success': 'success' === status,
+    'is-validating': 'validating' === status,
+    'is-borderless': isBorderless,
+    'is-disabled': disabled
+  });
+
+  const onClick = () => onClickRemove({
+    value
+  });
+
+  const transformedValue = displayTransform(value);
+  const termPositionAndCount = (0,external_wp_i18n_namespaceObject.sprintf)(
+  /* translators: 1: term name, 2: term position in a set of terms, 3: total term set count. */
+  (0,external_wp_i18n_namespaceObject.__)('%1$s (%2$s of %3$s)'), transformedValue, termPosition, termsCount);
+  return (0,external_wp_element_namespaceObject.createElement)("span", {
+    className: tokenClasses,
+    onMouseEnter: onMouseEnter,
+    onMouseLeave: onMouseLeave,
+    title: title
+  }, (0,external_wp_element_namespaceObject.createElement)("span", {
+    className: "components-form-token-field__token-text",
+    id: `components-form-token-field__token-text-${instanceId}`
+  }, (0,external_wp_element_namespaceObject.createElement)(visually_hidden_component, {
+    as: "span"
+  }, termPositionAndCount), (0,external_wp_element_namespaceObject.createElement)("span", {
+    "aria-hidden": "true"
+  }, transformedValue)), (0,external_wp_element_namespaceObject.createElement)(build_module_button, {
+    className: "components-form-token-field__remove-token",
+    icon: close_small,
+    onClick: !disabled && onClick,
+    label: messages.remove,
+    "aria-describedby": `components-form-token-field__token-text-${instanceId}`
+  }));
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/higher-order/with-spoken-messages/index.js
+
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * A Higher Order Component used to be provide speak and debounced speak
+ * functions.
+ *
+ * @see https://developer.wordpress.org/block-editor/packages/packages-a11y/#speak
+ *
+ * @param {WPComponent} Component The component to be wrapped.
+ *
+ * @return {WPComponent} The wrapped component.
+ */
+
+/* harmony default export */ var with_spoken_messages = ((0,external_wp_compose_namespaceObject.createHigherOrderComponent)(Component => props => (0,external_wp_element_namespaceObject.createElement)(Component, extends_extends({}, props, {
+  speak: external_wp_a11y_namespaceObject.speak,
+  debouncedSpeak: (0,external_wp_compose_namespaceObject.useDebounce)(external_wp_a11y_namespaceObject.speak, 500)
+})), 'withSpokenMessages'));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/form-token-field/index.js
+
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+const initialState = {
+  incompleteTokenValue: '',
+  inputOffsetFromEnd: 0,
+  isActive: false,
+  isExpanded: false,
+  selectedSuggestionIndex: -1,
+  selectedSuggestionScroll: false
+};
+
+class FormTokenField extends external_wp_element_namespaceObject.Component {
+  constructor() {
+    super(...arguments);
+    this.state = initialState;
+    this.onKeyDown = this.onKeyDown.bind(this);
+    this.onKeyPress = this.onKeyPress.bind(this);
+    this.onFocus = this.onFocus.bind(this);
+    this.onBlur = this.onBlur.bind(this);
+    this.deleteTokenBeforeInput = this.deleteTokenBeforeInput.bind(this);
+    this.deleteTokenAfterInput = this.deleteTokenAfterInput.bind(this);
+    this.addCurrentToken = this.addCurrentToken.bind(this);
+    this.onContainerTouched = this.onContainerTouched.bind(this);
+    this.renderToken = this.renderToken.bind(this);
+    this.onTokenClickRemove = this.onTokenClickRemove.bind(this);
+    this.onSuggestionHovered = this.onSuggestionHovered.bind(this);
+    this.onSuggestionSelected = this.onSuggestionSelected.bind(this);
+    this.onInputChange = this.onInputChange.bind(this);
+    this.bindInput = this.bindInput.bind(this);
+    this.bindTokensAndInput = this.bindTokensAndInput.bind(this);
+    this.updateSuggestions = this.updateSuggestions.bind(this);
+  }
+
+  componentDidUpdate(prevProps) {
+    // Make sure to focus the input when the isActive state is true.
+    if (this.state.isActive && !this.input.hasFocus()) {
+      this.input.focus();
+    }
+
+    const {
+      suggestions,
+      value
+    } = this.props;
+    const suggestionsDidUpdate = !external_wp_isShallowEqual_default()(suggestions, prevProps.suggestions);
+
+    if (suggestionsDidUpdate || value !== prevProps.value) {
+      this.updateSuggestions(suggestionsDidUpdate);
+    }
+  }
+
+  static getDerivedStateFromProps(props, state) {
+    if (!props.disabled || !state.isActive) {
+      return null;
+    }
+
+    return {
+      isActive: false,
+      incompleteTokenValue: ''
+    };
+  }
+
+  bindInput(ref) {
+    this.input = ref;
+  }
+
+  bindTokensAndInput(ref) {
+    this.tokensAndInput = ref;
+  }
+
+  onFocus(event) {
+    const {
+      __experimentalExpandOnFocus
+    } = this.props; // If focus is on the input or on the container, set the isActive state to true.
+
+    if (this.input.hasFocus() || event.target === this.tokensAndInput) {
+      this.setState({
+        isActive: true,
+        isExpanded: !!__experimentalExpandOnFocus || this.state.isExpanded
+      });
+    } else {
+      /*
+       * Otherwise, focus is on one of the token "remove" buttons and we
+       * set the isActive state to false to prevent the input to be
+       * re-focused, see componentDidUpdate().
+       */
+      this.setState({
+        isActive: false
+      });
+    }
+
+    if ('function' === typeof this.props.onFocus) {
+      this.props.onFocus(event);
+    }
+  }
+
+  onBlur() {
+    if (this.inputHasValidValue()) {
+      this.setState({
+        isActive: false
+      });
+    } else {
+      this.setState(initialState);
+    }
+  }
+
+  onKeyDown(event) {
+    let preventDefault = false;
+
+    if (event.defaultPrevented) {
+      return;
+    }
+
+    switch (event.keyCode) {
+      case external_wp_keycodes_namespaceObject.BACKSPACE:
+        preventDefault = this.handleDeleteKey(this.deleteTokenBeforeInput);
+        break;
+
+      case external_wp_keycodes_namespaceObject.ENTER:
+        preventDefault = this.addCurrentToken();
+        break;
+
+      case external_wp_keycodes_namespaceObject.LEFT:
+        preventDefault = this.handleLeftArrowKey();
+        break;
+
+      case external_wp_keycodes_namespaceObject.UP:
+        preventDefault = this.handleUpArrowKey();
+        break;
+
+      case external_wp_keycodes_namespaceObject.RIGHT:
+        preventDefault = this.handleRightArrowKey();
+        break;
+
+      case external_wp_keycodes_namespaceObject.DOWN:
+        preventDefault = this.handleDownArrowKey();
+        break;
+
+      case external_wp_keycodes_namespaceObject.DELETE:
+        preventDefault = this.handleDeleteKey(this.deleteTokenAfterInput);
+        break;
+
+      case external_wp_keycodes_namespaceObject.SPACE:
+        if (this.props.tokenizeOnSpace) {
+          preventDefault = this.addCurrentToken();
+        }
+
+        break;
+
+      case external_wp_keycodes_namespaceObject.ESCAPE:
+        preventDefault = this.handleEscapeKey(event);
+        break;
+
+      default:
+        break;
+    }
+
+    if (preventDefault) {
+      event.preventDefault();
+    }
+  }
+
+  onKeyPress(event) {
+    let preventDefault = false;
+
+    switch (event.charCode) {
+      case 44:
+        // Comma.
+        preventDefault = this.handleCommaKey();
+        break;
+
+      default:
+        break;
+    }
+
+    if (preventDefault) {
+      event.preventDefault();
+    }
+  }
+
+  onContainerTouched(event) {
+    // Prevent clicking/touching the tokensAndInput container from blurring
+    // the input and adding the current token.
+    if (event.target === this.tokensAndInput && this.state.isActive) {
+      event.preventDefault();
+    }
+  }
+
+  onTokenClickRemove(event) {
+    this.deleteToken(event.value);
+    this.input.focus();
+  }
+
+  onSuggestionHovered(suggestion) {
+    const index = this.getMatchingSuggestions().indexOf(suggestion);
+
+    if (index >= 0) {
+      this.setState({
+        selectedSuggestionIndex: index,
+        selectedSuggestionScroll: false
+      });
+    }
+  }
+
+  onSuggestionSelected(suggestion) {
+    this.addNewToken(suggestion);
+  }
+
+  onInputChange(event) {
+    const text = event.value;
+    const separator = this.props.tokenizeOnSpace ? /[ ,\t]+/ : /[,\t]+/;
+    const items = text.split(separator);
+    const tokenValue = (0,external_lodash_namespaceObject.last)(items) || '';
+
+    if (items.length > 1) {
+      this.addNewTokens(items.slice(0, -1));
+    }
+
+    this.setState({
+      incompleteTokenValue: tokenValue
+    }, this.updateSuggestions);
+    this.props.onInputChange(tokenValue);
+  }
+
+  handleDeleteKey(deleteToken) {
+    let preventDefault = false;
+
+    if (this.input.hasFocus() && this.isInputEmpty()) {
+      deleteToken();
+      preventDefault = true;
+    }
+
+    return preventDefault;
+  }
+
+  handleLeftArrowKey() {
+    let preventDefault = false;
+
+    if (this.isInputEmpty()) {
+      this.moveInputBeforePreviousToken();
+      preventDefault = true;
+    }
+
+    return preventDefault;
+  }
+
+  handleRightArrowKey() {
+    let preventDefault = false;
+
+    if (this.isInputEmpty()) {
+      this.moveInputAfterNextToken();
+      preventDefault = true;
+    }
+
+    return preventDefault;
+  }
+
+  handleUpArrowKey() {
+    this.setState((state, props) => ({
+      selectedSuggestionIndex: (state.selectedSuggestionIndex === 0 ? this.getMatchingSuggestions(state.incompleteTokenValue, props.suggestions, props.value, props.maxSuggestions, props.saveTransform).length : state.selectedSuggestionIndex) - 1,
+      selectedSuggestionScroll: true
+    }));
+    return true; // PreventDefault.
+  }
+
+  handleDownArrowKey() {
+    this.setState((state, props) => ({
+      selectedSuggestionIndex: (state.selectedSuggestionIndex + 1) % this.getMatchingSuggestions(state.incompleteTokenValue, props.suggestions, props.value, props.maxSuggestions, props.saveTransform).length,
+      selectedSuggestionScroll: true
+    }));
+    return true; // PreventDefault.
+  }
+
+  handleEscapeKey(event) {
+    this.setState({
+      incompleteTokenValue: event.target.value,
+      isExpanded: false,
+      selectedSuggestionIndex: -1,
+      selectedSuggestionScroll: false
+    });
+    return true; // PreventDefault.
+  }
+
+  handleCommaKey() {
+    if (this.inputHasValidValue()) {
+      this.addNewToken(this.state.incompleteTokenValue);
+    }
+
+    return true; // PreventDefault.
+  }
+
+  moveInputToIndex(index) {
+    this.setState((state, props) => ({
+      inputOffsetFromEnd: props.value.length - Math.max(index, -1) - 1
+    }));
+  }
+
+  moveInputBeforePreviousToken() {
+    this.setState((state, props) => ({
+      inputOffsetFromEnd: Math.min(state.inputOffsetFromEnd + 1, props.value.length)
+    }));
+  }
+
+  moveInputAfterNextToken() {
+    this.setState(state => ({
+      inputOffsetFromEnd: Math.max(state.inputOffsetFromEnd - 1, 0)
+    }));
+  }
+
+  deleteTokenBeforeInput() {
+    const index = this.getIndexOfInput() - 1;
+
+    if (index > -1) {
+      this.deleteToken(this.props.value[index]);
+    }
+  }
+
+  deleteTokenAfterInput() {
+    const index = this.getIndexOfInput();
+
+    if (index < this.props.value.length) {
+      this.deleteToken(this.props.value[index]); // Update input offset since it's the offset from the last token.
+
+      this.moveInputToIndex(index);
+    }
+  }
+
+  addCurrentToken() {
+    let preventDefault = false;
+    const selectedSuggestion = this.getSelectedSuggestion();
+
+    if (selectedSuggestion) {
+      this.addNewToken(selectedSuggestion);
+      preventDefault = true;
+    } else if (this.inputHasValidValue()) {
+      this.addNewToken(this.state.incompleteTokenValue);
+      preventDefault = true;
+    }
+
+    return preventDefault;
+  }
+
+  addNewTokens(tokens) {
+    const tokensToAdd = (0,external_lodash_namespaceObject.uniq)(tokens.map(this.props.saveTransform).filter(Boolean).filter(token => !this.valueContainsToken(token)));
+
+    if (tokensToAdd.length > 0) {
+      const newValue = (0,external_lodash_namespaceObject.clone)(this.props.value);
+      newValue.splice.apply(newValue, [this.getIndexOfInput(), 0].concat(tokensToAdd));
+      this.props.onChange(newValue);
+    }
+  }
+
+  addNewToken(token) {
+    const {
+      __experimentalExpandOnFocus,
+      __experimentalValidateInput
+    } = this.props;
+
+    if (!__experimentalValidateInput(token)) {
+      this.props.speak(this.props.messages.__experimentalInvalid, 'assertive');
+      return;
+    }
+
+    this.addNewTokens([token]);
+    this.props.speak(this.props.messages.added, 'assertive');
+    this.setState({
+      incompleteTokenValue: '',
+      selectedSuggestionIndex: -1,
+      selectedSuggestionScroll: false,
+      isExpanded: !__experimentalExpandOnFocus
+    });
+
+    if (this.state.isActive) {
+      this.input.focus();
+    }
+  }
+
+  deleteToken(token) {
+    const newTokens = this.props.value.filter(item => {
+      return this.getTokenValue(item) !== this.getTokenValue(token);
+    });
+    this.props.onChange(newTokens);
+    this.props.speak(this.props.messages.removed, 'assertive');
+  }
+
+  getTokenValue(token) {
+    if ('object' === typeof token) {
+      return token.value;
+    }
+
+    return token;
+  }
+
+  getMatchingSuggestions() {
+    let searchValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.state.incompleteTokenValue;
+    let suggestions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.props.suggestions;
+    let value = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.props.value;
+    let maxSuggestions = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : this.props.maxSuggestions;
+    let saveTransform = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this.props.saveTransform;
+    let match = saveTransform(searchValue);
+    const startsWithMatch = [];
+    const containsMatch = [];
+
+    if (match.length === 0) {
+      suggestions = (0,external_lodash_namespaceObject.difference)(suggestions, value);
+    } else {
+      match = match.toLocaleLowerCase();
+      (0,external_lodash_namespaceObject.each)(suggestions, suggestion => {
+        const index = suggestion.toLocaleLowerCase().indexOf(match);
+
+        if (value.indexOf(suggestion) === -1) {
+          if (index === 0) {
+            startsWithMatch.push(suggestion);
+          } else if (index > 0) {
+            containsMatch.push(suggestion);
+          }
+        }
+      });
+      suggestions = startsWithMatch.concat(containsMatch);
+    }
+
+    return (0,external_lodash_namespaceObject.take)(suggestions, maxSuggestions);
+  }
+
+  getSelectedSuggestion() {
+    if (this.state.selectedSuggestionIndex !== -1) {
+      return this.getMatchingSuggestions()[this.state.selectedSuggestionIndex];
+    }
+  }
+
+  valueContainsToken(token) {
+    return (0,external_lodash_namespaceObject.some)(this.props.value, item => {
+      return this.getTokenValue(token) === this.getTokenValue(item);
+    });
+  }
+
+  getIndexOfInput() {
+    return this.props.value.length - this.state.inputOffsetFromEnd;
+  }
+
+  isInputEmpty() {
+    return this.state.incompleteTokenValue.length === 0;
+  }
+
+  inputHasValidValue() {
+    return this.props.saveTransform(this.state.incompleteTokenValue).length > 0;
+  }
+
+  updateSuggestions() {
+    let resetSelectedSuggestion = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
+    const {
+      __experimentalExpandOnFocus
+    } = this.props;
+    const {
+      incompleteTokenValue
+    } = this.state;
+    const inputHasMinimumChars = incompleteTokenValue.trim().length > 1;
+    const matchingSuggestions = this.getMatchingSuggestions(incompleteTokenValue);
+    const hasMatchingSuggestions = matchingSuggestions.length > 0;
+    const newState = {
+      isExpanded: __experimentalExpandOnFocus || inputHasMinimumChars && hasMatchingSuggestions
+    };
+
+    if (resetSelectedSuggestion) {
+      newState.selectedSuggestionIndex = -1;
+      newState.selectedSuggestionScroll = false;
+    }
+
+    this.setState(newState);
+
+    if (inputHasMinimumChars) {
+      const {
+        debouncedSpeak
+      } = this.props;
+      const message = hasMatchingSuggestions ? (0,external_wp_i18n_namespaceObject.sprintf)(
+      /* translators: %d: number of results. */
+      (0,external_wp_i18n_namespaceObject._n)('%d result found, use up and down arrow keys to navigate.', '%d results found, use up and down arrow keys to navigate.', matchingSuggestions.length), matchingSuggestions.length) : (0,external_wp_i18n_namespaceObject.__)('No results.');
+      debouncedSpeak(message, 'assertive');
+    }
+  }
+
+  renderTokensAndInput() {
+    const components = (0,external_lodash_namespaceObject.map)(this.props.value, this.renderToken);
+    components.splice(this.getIndexOfInput(), 0, this.renderInput());
+    return components;
+  }
+
+  renderToken(token, index, tokens) {
+    const value = this.getTokenValue(token);
+    const status = token.status ? token.status : undefined;
+    const termPosition = index + 1;
+    const termsCount = tokens.length;
+    return (0,external_wp_element_namespaceObject.createElement)(Token, {
+      key: 'token-' + value,
+      value: value,
+      status: status,
+      title: token.title,
+      displayTransform: this.props.displayTransform,
+      onClickRemove: this.onTokenClickRemove,
+      isBorderless: token.isBorderless || this.props.isBorderless,
+      onMouseEnter: token.onMouseEnter,
+      onMouseLeave: token.onMouseLeave,
+      disabled: 'error' !== status && this.props.disabled,
+      messages: this.props.messages,
+      termsCount: termsCount,
+      termPosition: termPosition
+    });
+  }
+
+  renderInput() {
+    const {
+      autoCapitalize,
+      autoComplete,
+      maxLength,
+      placeholder,
+      value,
+      instanceId
+    } = this.props;
+    let props = {
+      instanceId,
+      autoCapitalize,
+      autoComplete,
+      placeholder: value.length === 0 ? placeholder : '',
+      ref: this.bindInput,
+      key: 'input',
+      disabled: this.props.disabled,
+      value: this.state.incompleteTokenValue,
+      onBlur: this.onBlur,
+      isExpanded: this.state.isExpanded,
+      selectedSuggestionIndex: this.state.selectedSuggestionIndex
+    };
+
+    if (!(maxLength && value.length >= maxLength)) {
+      props = { ...props,
+        onChange: this.onInputChange
+      };
+    }
+
+    return (0,external_wp_element_namespaceObject.createElement)(token_input, props);
+  }
+
+  render() {
+    const {
+      disabled,
+      label = (0,external_wp_i18n_namespaceObject.__)('Add item'),
+      instanceId,
+      className,
+      __experimentalShowHowTo
+    } = this.props;
+    const {
+      isExpanded
+    } = this.state;
+    const classes = classnames_default()(className, 'components-form-token-field__input-container', {
+      'is-active': this.state.isActive,
+      'is-disabled': disabled
+    });
+    let tokenFieldProps = {
+      className: 'components-form-token-field',
+      tabIndex: '-1'
+    };
+    const matchingSuggestions = this.getMatchingSuggestions();
+
+    if (!disabled) {
+      tokenFieldProps = Object.assign({}, tokenFieldProps, {
+        onKeyDown: this.onKeyDown,
+        onKeyPress: this.onKeyPress,
+        onFocus: this.onFocus
+      });
+    } // Disable reason: There is no appropriate role which describes the
+    // input container intended accessible usability.
+    // TODO: Refactor click detection to use blur to stop propagation.
+
+    /* eslint-disable jsx-a11y/no-static-element-interactions */
+
+
+    return (0,external_wp_element_namespaceObject.createElement)("div", tokenFieldProps, (0,external_wp_element_namespaceObject.createElement)("label", {
+      htmlFor: `components-form-token-input-${instanceId}`,
+      className: "components-form-token-field__label"
+    }, label), (0,external_wp_element_namespaceObject.createElement)("div", {
+      ref: this.bindTokensAndInput,
+      className: classes,
+      tabIndex: "-1",
+      onMouseDown: this.onContainerTouched,
+      onTouchStart: this.onContainerTouched
+    }, this.renderTokensAndInput(), isExpanded && (0,external_wp_element_namespaceObject.createElement)(suggestions_list, {
+      instanceId: instanceId,
+      match: this.props.saveTransform(this.state.incompleteTokenValue),
+      displayTransform: this.props.displayTransform,
+      suggestions: matchingSuggestions,
+      selectedIndex: this.state.selectedSuggestionIndex,
+      scrollIntoView: this.state.selectedSuggestionScroll,
+      onHover: this.onSuggestionHovered,
+      onSelect: this.onSuggestionSelected
+    })), __experimentalShowHowTo && (0,external_wp_element_namespaceObject.createElement)("p", {
+      id: `components-form-token-suggestions-howto-${instanceId}`,
+      className: "components-form-token-field__help"
+    }, this.props.tokenizeOnSpace ? (0,external_wp_i18n_namespaceObject.__)('Separate with commas, spaces, or the Enter key.') : (0,external_wp_i18n_namespaceObject.__)('Separate with commas or the Enter key.')));
+    /* eslint-enable jsx-a11y/no-static-element-interactions */
+  }
+
+}
+
+FormTokenField.defaultProps = {
+  suggestions: Object.freeze([]),
+  maxSuggestions: 100,
+  value: Object.freeze([]),
+  displayTransform: external_lodash_namespaceObject.identity,
+  saveTransform: token => token.trim(),
+  onChange: () => {},
+  onInputChange: () => {},
+  isBorderless: false,
+  disabled: false,
+  tokenizeOnSpace: false,
+  messages: {
+    added: (0,external_wp_i18n_namespaceObject.__)('Item added.'),
+    removed: (0,external_wp_i18n_namespaceObject.__)('Item removed.'),
+    remove: (0,external_wp_i18n_namespaceObject.__)('Remove item'),
+    __experimentalInvalid: (0,external_wp_i18n_namespaceObject.__)('Invalid item')
+  },
+  __experimentalExpandOnFocus: false,
+  __experimentalValidateInput: () => true,
+  __experimentalShowHowTo: true
+};
+/* harmony default export */ var form_token_field = (with_spoken_messages((0,external_wp_compose_namespaceObject.withInstanceId)(FormTokenField)));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/guide/icons.js
+
+
+/**
+ * WordPress dependencies
+ */
+
+const PageControlIcon = _ref => {
+  let {
+    isSelected
+  } = _ref;
+  return (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
+    width: "8",
+    height: "8",
+    fill: "none",
+    xmlns: "http://www.w3.org/2000/svg"
+  }, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Circle, {
+    cx: "4",
+    cy: "4",
+    r: "4",
+    fill: isSelected ? '#419ECD' : '#E1E3E6'
+  }));
+};
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/guide/page-control.js
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+function PageControl(_ref) {
+  let {
+    currentPage,
+    numberOfPages,
+    setCurrentPage
+  } = _ref;
+  return (0,external_wp_element_namespaceObject.createElement)("ul", {
+    className: "components-guide__page-control",
+    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Guide controls')
+  }, (0,external_lodash_namespaceObject.times)(numberOfPages, page => (0,external_wp_element_namespaceObject.createElement)("li", {
+    key: page // Set aria-current="step" on the active page, see https://www.w3.org/TR/wai-aria-1.1/#aria-current
+    ,
+    "aria-current": page === currentPage ? 'step' : undefined
+  }, (0,external_wp_element_namespaceObject.createElement)(build_module_button, {
+    key: page,
+    icon: (0,external_wp_element_namespaceObject.createElement)(PageControlIcon, {
+      isSelected: page === currentPage
+    }),
+    "aria-label": (0,external_wp_i18n_namespaceObject.sprintf)(
+    /* translators: 1: current page number 2: total number of pages */
+    (0,external_wp_i18n_namespaceObject.__)('Page %1$d of %2$d'), page + 1, numberOfPages),
+    onClick: () => setCurrentPage(page)
+  }))));
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/guide/index.js
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+function Guide(_ref) {
+  let {
+    children,
+    className,
+    contentLabel,
+    finishButtonText,
+    onFinish,
+    pages = []
+  } = _ref;
+  const guideContainer = (0,external_wp_element_namespaceObject.useRef)();
+  const [currentPage, setCurrentPage] = (0,external_wp_element_namespaceObject.useState)(0);
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    if (external_wp_element_namespaceObject.Children.count(children)) {
+      external_wp_deprecated_default()('Passing children to <Guide>', {
+        since: '5.5',
+        alternative: 'the `pages` prop'
+      });
+    }
+  }, [children]);
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    var _focus$tabbable$find, _focus$tabbable$find$;
+
+    // Each time we change the current page, start from the first element of the page.
+    // This also solves any focus loss that can happen.
+    (_focus$tabbable$find = external_wp_dom_namespaceObject.focus.tabbable.find(guideContainer.current)) === null || _focus$tabbable$find === void 0 ? void 0 : (_focus$tabbable$find$ = _focus$tabbable$find[0]) === null || _focus$tabbable$find$ === void 0 ? void 0 : _focus$tabbable$find$.focus();
+  }, [currentPage]);
+
+  if (external_wp_element_namespaceObject.Children.count(children)) {
+    pages = external_wp_element_namespaceObject.Children.map(children, child => ({
+      content: child
+    }));
+  }
+
+  const canGoBack = currentPage > 0;
+  const canGoForward = currentPage < pages.length - 1;
+
+  const goBack = () => {
+    if (canGoBack) {
+      setCurrentPage(currentPage - 1);
+    }
+  };
+
+  const goForward = () => {
+    if (canGoForward) {
+      setCurrentPage(currentPage + 1);
+    }
+  };
+
+  if (pages.length === 0) {
+    return null;
+  }
+
+  return (0,external_wp_element_namespaceObject.createElement)(modal, {
+    className: classnames_default()('components-guide', className),
+    contentLabel: contentLabel,
+    onRequestClose: onFinish,
+    onKeyDown: event => {
+      if (event.keyCode === external_wp_keycodes_namespaceObject.LEFT) {
+        goBack();
+      } else if (event.keyCode === external_wp_keycodes_namespaceObject.RIGHT) {
+        goForward();
+      }
+    },
+    ref: guideContainer
+  }, (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: "components-guide__container"
+  }, (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: "components-guide__page"
+  }, pages[currentPage].image, pages.length > 1 && (0,external_wp_element_namespaceObject.createElement)(PageControl, {
+    currentPage: currentPage,
+    numberOfPages: pages.length,
+    setCurrentPage: setCurrentPage
+  }), pages[currentPage].content), (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: "components-guide__footer"
+  }, canGoBack && (0,external_wp_element_namespaceObject.createElement)(build_module_button, {
+    className: "components-guide__back-button",
+    onClick: goBack
+  }, (0,external_wp_i18n_namespaceObject.__)('Previous')), canGoForward && (0,external_wp_element_namespaceObject.createElement)(build_module_button, {
+    className: "components-guide__forward-button",
+    onClick: goForward
+  }, (0,external_wp_i18n_namespaceObject.__)('Next')), !canGoForward && (0,external_wp_element_namespaceObject.createElement)(build_module_button, {
+    className: "components-guide__finish-button",
+    onClick: onFinish
+  }, finishButtonText || (0,external_wp_i18n_namespaceObject.__)('Finish')))));
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/guide/page.js
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+function GuidePage(props) {
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    external_wp_deprecated_default()('<GuidePage>', {
+      since: '5.5',
+      alternative: 'the `pages` prop in <Guide>'
+    });
+  }, []);
+  return (0,external_wp_element_namespaceObject.createElement)("div", props);
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/button/deprecated.js
+
+
+// @ts-nocheck
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+function IconButton(_ref, ref) {
+  let {
+    labelPosition,
+    size,
+    tooltip,
+    label,
+    ...props
+  } = _ref;
+  external_wp_deprecated_default()('wp.components.IconButton', {
+    since: '5.4',
+    alternative: 'wp.components.Button',
+    version: '6.2'
+  });
+  return (0,external_wp_element_namespaceObject.createElement)(build_module_button, extends_extends({}, props, {
+    ref: ref,
+    tooltipPosition: labelPosition,
+    iconSize: size,
+    showTooltip: tooltip !== undefined ? !!tooltip : undefined,
+    label: tooltip || label
+  }));
+}
+
+/* harmony default export */ var deprecated = ((0,external_wp_element_namespaceObject.forwardRef)(IconButton));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/item-group/item/hook.js
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+function hook_useItem(props) {
+  const {
+    as: asProp,
+    className,
+    onClick,
+    role = 'listitem',
+    size: sizeProp,
+    ...otherProps
+  } = useContextSystem(props, 'Item');
+  const {
+    spacedAround,
+    size: contextSize
+  } = useItemGroupContext();
+  const size = sizeProp || contextSize;
+  const as = asProp || (typeof onClick !== 'undefined' ? 'button' : 'div');
+  const cx = useCx();
+  const classes = (0,external_wp_element_namespaceObject.useMemo)(() => cx(as === 'button' && unstyledButton, itemSizes[size] || itemSizes.medium, item, spacedAround && styles_spacedAround, className), [as, className, cx, size, spacedAround]);
+  const wrapperClassName = cx(itemWrapper);
+  return {
+    as,
+    className: classes,
+    onClick,
+    wrapperClassName,
+    role,
+    ...otherProps
+  };
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/item-group/item/component.js
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+function component_Item(props, forwardedRef) {
+  const {
+    role,
+    wrapperClassName,
+    ...otherProps
+  } = hook_useItem(props);
+  return (0,external_wp_element_namespaceObject.createElement)("div", {
+    role: role,
+    className: wrapperClassName
+  }, (0,external_wp_element_namespaceObject.createElement)(component, extends_extends({}, otherProps, {
+    ref: forwardedRef
+  })));
+}
+
+/* harmony default export */ var item_component = (contextConnect(component_Item, 'Item'));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/keyboard-shortcuts/index.js
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+function KeyboardShortcut(_ref) {
+  let {
+    target,
+    callback,
+    shortcut,
+    bindGlobal,
+    eventName
+  } = _ref;
+  (0,external_wp_compose_namespaceObject.useKeyboardShortcut)(shortcut, callback, {
+    bindGlobal,
+    target,
+    eventName
+  });
+  return null;
+}
+
+function KeyboardShortcuts(_ref2) {
+  let {
+    children,
+    shortcuts,
+    bindGlobal,
+    eventName
+  } = _ref2;
+  const target = (0,external_wp_element_namespaceObject.useRef)();
+  const element = (0,external_lodash_namespaceObject.map)(shortcuts, (callback, shortcut) => (0,external_wp_element_namespaceObject.createElement)(KeyboardShortcut, {
+    key: shortcut,
+    shortcut: shortcut,
+    callback: callback,
+    bindGlobal: bindGlobal,
+    eventName: eventName,
+    target: target
+  })); // Render as non-visual if there are no children pressed. Keyboard
+  // events will be bound to the document instead.
+
+  if (!external_wp_element_namespaceObject.Children.count(children)) {
+    return element;
+  }
+
+  return (0,external_wp_element_namespaceObject.createElement)("div", {
+    ref: target
+  }, element, children);
+}
+
+/* harmony default export */ var keyboard_shortcuts = (KeyboardShortcuts);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/menu-group/index.js
+
+// @ts-nocheck
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+function MenuGroup(props) {
+  const {
+    children,
+    className = '',
+    label,
+    hideSeparator
+  } = props;
+  const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(MenuGroup);
+
+  if (!external_wp_element_namespaceObject.Children.count(children)) {
+    return null;
+  }
+
+  const labelId = `components-menu-group-label-${instanceId}`;
+  const classNames = classnames_default()(className, 'components-menu-group', {
+    'has-hidden-separator': hideSeparator
+  });
+  return (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: classNames
+  }, label && (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: "components-menu-group__label",
+    id: labelId,
+    "aria-hidden": "true"
+  }, label), (0,external_wp_element_namespaceObject.createElement)("div", {
+    role: "group",
+    "aria-labelledby": label ? labelId : null
+  }, children));
+}
+/* harmony default export */ var menu_group = (MenuGroup);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/menu-item/index.js
+
+
+// @ts-nocheck
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+function MenuItem(props, ref) {
+  let {
+    children,
+    info,
+    className,
+    icon,
+    iconPosition = 'right',
+    shortcut,
+    isSelected,
+    role = 'menuitem',
+    ...buttonProps
+  } = props;
+  className = classnames_default()('components-menu-item__button', className);
+
+  if (info) {
+    children = (0,external_wp_element_namespaceObject.createElement)("span", {
+      className: "components-menu-item__info-wrapper"
+    }, (0,external_wp_element_namespaceObject.createElement)("span", {
+      className: "components-menu-item__item"
+    }, children), (0,external_wp_element_namespaceObject.createElement)("span", {
+      className: "components-menu-item__info"
+    }, info));
+  }
+
+  if (icon && !(0,external_lodash_namespaceObject.isString)(icon)) {
+    icon = (0,external_wp_element_namespaceObject.cloneElement)(icon, {
+      className: classnames_default()('components-menu-items__item-icon', {
+        'has-icon-right': iconPosition === 'right'
+      })
+    });
+  }
+
+  return (0,external_wp_element_namespaceObject.createElement)(build_module_button, extends_extends({
+    ref: ref // Make sure aria-checked matches spec https://www.w3.org/TR/wai-aria-1.1/#aria-checked
+    ,
+    "aria-checked": role === 'menuitemcheckbox' || role === 'menuitemradio' ? isSelected : undefined,
+    role: role,
+    icon: iconPosition === 'left' ? icon : undefined,
+    className: className
+  }, buttonProps), (0,external_wp_element_namespaceObject.createElement)("span", {
+    className: "components-menu-item__item"
+  }, children), (0,external_wp_element_namespaceObject.createElement)(build_module_shortcut, {
+    className: "components-menu-item__shortcut",
+    shortcut: shortcut
+  }), icon && iconPosition === 'right' && (0,external_wp_element_namespaceObject.createElement)(build_module_icon, {
+    icon: icon
+  }));
+}
+/* harmony default export */ var menu_item = ((0,external_wp_element_namespaceObject.forwardRef)(MenuItem));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/menu-items-choice/index.js
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+function MenuItemsChoice(_ref) {
+  let {
+    choices = [],
+    onHover = external_lodash_namespaceObject.noop,
+    onSelect,
+    value
+  } = _ref;
+  return choices.map(item => {
+    const isSelected = value === item.value;
+    return (0,external_wp_element_namespaceObject.createElement)(menu_item, {
+      key: item.value,
+      role: "menuitemradio",
+      icon: isSelected && library_check,
+      info: item.info,
+      isSelected: isSelected,
+      shortcut: item.shortcut,
+      className: "components-menu-items-choice",
+      onClick: () => {
+        if (!isSelected) {
+          onSelect(item.value);
+        }
+      },
+      onMouseEnter: () => onHover(item.value),
+      onMouseLeave: () => onHover(null),
+      "aria-label": item['aria-label']
+    }, item.label);
+  });
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigable-container/tabbable.js
+
+
+// @ts-nocheck
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+function TabbableContainer(_ref, ref) {
+  let {
+    eventToOffset,
+    ...props
+  } = _ref;
+
+  const innerEventToOffset = evt => {
+    const {
+      keyCode,
+      shiftKey
+    } = evt;
+
+    if (external_wp_keycodes_namespaceObject.TAB === keyCode) {
+      return shiftKey ? -1 : 1;
+    } // Allow custom handling of keys besides Tab.
+    //
+    // By default, TabbableContainer will move focus forward on Tab and
+    // backward on Shift+Tab. The handler below will be used for all other
+    // events. The semantics for `eventToOffset`'s return
+    // values are the following:
+    //
+    // - +1: move focus forward
+    // - -1: move focus backward
+    // -  0: don't move focus, but acknowledge event and thus stop it
+    // - undefined: do nothing, let the event propagate.
+
+
+    if (eventToOffset) {
+      return eventToOffset(evt);
+    }
+  };
+
+  return (0,external_wp_element_namespaceObject.createElement)(container, extends_extends({
+    ref: ref,
+    stopNavigationEvents: true,
+    onlyBrowserTabstops: true,
+    eventToOffset: innerEventToOffset
+  }, props));
+}
+/* harmony default export */ var tabbable = ((0,external_wp_element_namespaceObject.forwardRef)(TabbableContainer));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigation/constants.js
+const ROOT_MENU = 'root';
+const SEARCH_FOCUS_DELAY = 100;
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigation/context.js
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+const NavigationContext = (0,external_wp_element_namespaceObject.createContext)({
+  activeItem: undefined,
+  activeMenu: ROOT_MENU,
+  setActiveMenu: external_lodash_namespaceObject.noop,
+  isMenuEmpty: external_lodash_namespaceObject.noop,
+  navigationTree: {
+    items: {},
+    getItem: external_lodash_namespaceObject.noop,
+    addItem: external_lodash_namespaceObject.noop,
+    removeItem: external_lodash_namespaceObject.noop,
+    menus: {},
+    getMenu: external_lodash_namespaceObject.noop,
+    addMenu: external_lodash_namespaceObject.noop,
+    removeMenu: external_lodash_namespaceObject.noop,
+    childMenu: {},
+    traverseMenu: external_lodash_namespaceObject.noop,
+    isMenuEmpty: external_lodash_namespaceObject.noop
+  }
+});
+const useNavigationContext = () => (0,external_wp_element_namespaceObject.useContext)(NavigationContext);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/search.js
+
+
+/**
+ * WordPress dependencies
+ */
+
+const search = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
+  xmlns: "http://www.w3.org/2000/svg",
+  viewBox: "0 0 24 24"
+}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
+  d: "M13.5 6C10.5 6 8 8.5 8 11.5c0 1.1.3 2.1.9 3l-3.4 3 1 1.1 3.4-2.9c1 .9 2.2 1.4 3.6 1.4 3 0 5.5-2.5 5.5-5.5C19 8.5 16.5 6 13.5 6zm0 9.5c-2.2 0-4-1.8-4-4s1.8-4 4-4 4 1.8 4 4-1.8 4-4 4z"
+}));
+/* harmony default export */ var library_search = (search);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/hooks/use-combined-ref.js
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * External dependencies
+ */
+
+function useCombinedRef() {
+  for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {
+    refs[_key] = arguments[_key];
+  }
+
+  const targetRef = (0,external_wp_element_namespaceObject.useRef)(null);
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    refs.forEach(ref => {
+      if (!ref) return;
+
+      if (typeof ref === 'function') {
+        ref(targetRef.current);
+      } else {
+        ref.current = targetRef.current;
+      }
+    });
+  }, [refs]);
+  return targetRef;
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/search-control/index.js
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+function SearchControl(_ref, ref) {
+  let {
+    className,
+    onChange,
+    onKeyDown,
+    value,
+    label,
+    placeholder = (0,external_wp_i18n_namespaceObject.__)('Search'),
+    hideLabelFromVision = true,
+    help,
+    onClose
+  } = _ref;
+  const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(SearchControl);
+  const searchInput = useCombinedRef(ref);
+  const id = `components-search-control-${instanceId}`;
+
+  const renderRightButton = () => {
+    if (onClose) {
+      return (0,external_wp_element_namespaceObject.createElement)(build_module_button, {
+        icon: close_small,
+        label: (0,external_wp_i18n_namespaceObject.__)('Close search'),
+        onClick: onClose
+      });
+    }
+
+    if (!!value) {
+      return (0,external_wp_element_namespaceObject.createElement)(build_module_button, {
+        icon: close_small,
+        label: (0,external_wp_i18n_namespaceObject.__)('Reset search'),
+        onClick: () => {
+          onChange('');
+          searchInput.current.focus();
+        }
+      });
+    }
+
+    return (0,external_wp_element_namespaceObject.createElement)(icons_build_module_icon, {
+      icon: library_search
+    });
+  };
+
+  return (0,external_wp_element_namespaceObject.createElement)(base_control, {
+    label: label,
+    id: id,
+    hideLabelFromVision: hideLabelFromVision,
+    help: help,
+    className: classnames_default()(className, 'components-search-control')
+  }, (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: "components-search-control__input-wrapper"
+  }, (0,external_wp_element_namespaceObject.createElement)("input", {
+    ref: searchInput,
+    className: "components-search-control__input",
+    id: id,
+    type: "search",
+    placeholder: placeholder,
+    onChange: event => onChange(event.target.value),
+    onKeyDown: onKeyDown,
+    autoComplete: "off",
+    value: value || ''
+  }), (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: "components-search-control__icon"
+  }, renderRightButton())));
+}
+
+/* harmony default export */ var search_control = ((0,external_wp_element_namespaceObject.forwardRef)(SearchControl));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigation/styles/navigation-styles.js
+
+
+function navigation_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+
+
+const NavigationUI = emotion_styled_base_browser_esm("div",  true ? {
+  target: "ejwewyf11"
+} : 0)("width:100%;box-sizing:border-box;padding:0 ", space(4), ";overflow:hidden;" + ( true ? "" : 0));
+const MenuUI = emotion_styled_base_browser_esm("div",  true ? {
+  target: "ejwewyf10"
+} : 0)("margin-top:", space(6), ";margin-bottom:", space(6), ";display:flex;flex-direction:column;ul{padding:0;margin:0;list-style:none;}.components-navigation__back-button{margin-bottom:", space(6), ";}.components-navigation__group+.components-navigation__group{margin-top:", space(6), ";}" + ( true ? "" : 0));
+const MenuBackButtonUI = /*#__PURE__*/emotion_styled_base_browser_esm(build_module_button,  true ? {
+  target: "ejwewyf9"
+} : 0)( true ? {
+  name: "26l0q2",
+  styles: "&.is-tertiary{color:inherit;opacity:0.7;&:hover:not( :disabled ){opacity:1;box-shadow:none;color:inherit;}&:active:not( :disabled ){background:transparent;opacity:1;color:inherit;}}"
+} : 0);
+const MenuTitleUI = emotion_styled_base_browser_esm("div",  true ? {
+  target: "ejwewyf8"
+} : 0)( true ? {
+  name: "1aubja5",
+  styles: "overflow:hidden;width:100%"
+} : 0);
+const MenuTitleActionsUI = emotion_styled_base_browser_esm("span",  true ? {
+  target: "ejwewyf7"
+} : 0)("height:", space(6), ";.components-button.is-small{color:inherit;opacity:0.7;margin-right:", space(1), ";padding:0;&:active:not( :disabled ){background:none;opacity:1;color:inherit;}&:hover:not( :disabled ){box-shadow:none;opacity:1;color:inherit;}}" + ( true ? "" : 0));
+const MenuTitleSearchUI = /*#__PURE__*/emotion_styled_base_browser_esm(search_control,  true ? {
+  target: "ejwewyf6"
+} : 0)( true ? {
+  name: "za3n3e",
+  styles: "input[type='search'].components-search-control__input{margin:0;background:#303030;color:#fff;&:focus{background:#434343;color:#fff;}&::placeholder{color:rgba( 255, 255, 255, 0.6 );}}svg{fill:white;}.components-button.has-icon{padding:0;min-width:auto;}"
+} : 0);
+const GroupTitleUI = /*#__PURE__*/emotion_styled_base_browser_esm(heading_component,  true ? {
+  target: "ejwewyf5"
+} : 0)("min-height:", space(12), ";align-items:center;color:inherit;display:flex;justify-content:space-between;margin-bottom:", space(2), ";padding:", () => (0,external_wp_i18n_namespaceObject.isRTL)() ? `${space(1)} ${space(4)} ${space(1)} ${space(2)}` : `${space(1)} ${space(2)} ${space(1)} ${space(4)}`, ";" + ( true ? "" : 0));
+const ItemBaseUI = emotion_styled_base_browser_esm("li",  true ? {
+  target: "ejwewyf4"
+} : 0)("border-radius:2px;color:inherit;margin-bottom:0;>button,>a.components-button,>a{width:100%;color:inherit;opacity:0.7;padding:", space(2), " ", space(4), ";", rtl({
+  textAlign: 'left'
+}, {
+  textAlign: 'right'
+}), " &:hover,&:focus:not( [aria-disabled='true'] ):active,&:active:not( [aria-disabled='true'] ):active{color:inherit;opacity:1;}}&.is-active{background-color:", UI.theme, ";color:", BASE.white, ";>button,>a{color:", BASE.white, ";opacity:1;}}>svg path{color:", G2.lightGray.ui, ";}" + ( true ? "" : 0));
+const ItemUI = emotion_styled_base_browser_esm("div",  true ? {
+  target: "ejwewyf3"
+} : 0)("display:flex;align-items:center;height:auto;min-height:40px;margin:0;padding:", space(1.5), " ", space(4), ";font-weight:400;line-height:20px;width:100%;color:inherit;opacity:0.7;" + ( true ? "" : 0));
+const ItemIconUI = emotion_styled_base_browser_esm("span",  true ? {
+  target: "ejwewyf2"
+} : 0)("display:flex;margin-right:", space(2), ";" + ( true ? "" : 0));
+const ItemBadgeUI = emotion_styled_base_browser_esm("span",  true ? {
+  target: "ejwewyf1"
+} : 0)("margin-left:", () => (0,external_wp_i18n_namespaceObject.isRTL)() ? '0' : space(2), ";margin-right:", () => (0,external_wp_i18n_namespaceObject.isRTL)() ? space(2) : '0', ";display:inline-flex;padding:", space(1), " ", space(3), ";border-radius:2px;animation:fade-in 250ms ease-out;@keyframes fade-in{from{opacity:0;}to{opacity:1;}}", reduceMotion('animation'), ";" + ( true ? "" : 0));
+const ItemTitleUI = /*#__PURE__*/emotion_styled_base_browser_esm(text_component,  true ? {
+  target: "ejwewyf0"
+} : 0)(() => (0,external_wp_i18n_namespaceObject.isRTL)() ? 'margin-left: auto;' : 'margin-right: auto;', " font-size:14px;line-height:20px;color:inherit;" + ( true ? "" : 0));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigation/use-navigation-tree-nodes.js
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+const useNavigationTreeNodes = () => {
+  const [nodes, setNodes] = (0,external_wp_element_namespaceObject.useState)({});
+
+  const getNode = key => nodes[key];
+
+  const addNode = (key, value) => setNodes(original => ({ ...original,
+    [key]: (0,external_lodash_namespaceObject.omit)(value, 'children')
+  }));
+
+  const removeNode = key => setNodes(original => (0,external_lodash_namespaceObject.omit)(original, key));
+
+  return {
+    nodes,
+    getNode,
+    addNode,
+    removeNode
+  };
+};
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigation/use-create-navigation-tree.js
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+const useCreateNavigationTree = () => {
+  const {
+    nodes: items,
+    getNode: getItem,
+    addNode: addItem,
+    removeNode: removeItem
+  } = useNavigationTreeNodes();
+  const {
+    nodes: menus,
+    getNode: getMenu,
+    addNode: addMenu,
+    removeNode: removeMenu
+  } = useNavigationTreeNodes();
+  /**
+   * Stores direct nested menus of menus
+   * This makes it easy to traverse menu tree
+   *
+   * Key is the menu prop of the menu
+   * Value is an array of menu keys
+   */
+
+  const [childMenu, setChildMenu] = (0,external_wp_element_namespaceObject.useState)({});
+
+  const getChildMenu = menu => childMenu[menu] || [];
+
+  const traverseMenu = (startMenu, callback) => {
+    const visited = [];
+    let queue = [startMenu];
+    let current;
+
+    while (queue.length > 0) {
+      current = getMenu(queue.shift());
+
+      if (!current || visited.includes(current.menu)) {
+        continue;
+      }
+
+      visited.push(current.menu);
+      queue = [...queue, ...getChildMenu(current.menu)];
+
+      if (callback(current) === false) {
+        break;
+      }
+    }
+  };
+
+  const isMenuEmpty = menuToCheck => {
+    let isEmpty = true;
+    traverseMenu(menuToCheck, current => {
+      if (!current.isEmpty) {
+        isEmpty = false;
+        return false;
+      }
+    });
+    return isEmpty;
+  };
+
+  return {
+    items,
+    getItem,
+    addItem,
+    removeItem,
+    menus,
+    getMenu,
+    addMenu: (key, value) => {
+      setChildMenu(state => {
+        const newState = { ...state
+        };
+
+        if (!newState[value.parentMenu]) {
+          newState[value.parentMenu] = [];
+        }
+
+        newState[value.parentMenu].push(key);
+        return newState;
+      });
+      addMenu(key, value);
+    },
+    removeMenu,
+    childMenu,
+    traverseMenu,
+    isMenuEmpty
+  };
+};
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigation/index.js
+
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+function Navigation(_ref) {
+  let {
+    activeItem,
+    activeMenu = ROOT_MENU,
+    children,
+    className,
+    onActivateMenu = external_lodash_namespaceObject.noop
+  } = _ref;
+  const [menu, setMenu] = (0,external_wp_element_namespaceObject.useState)(activeMenu);
+  const [slideOrigin, setSlideOrigin] = (0,external_wp_element_namespaceObject.useState)();
+  const navigationTree = useCreateNavigationTree();
+  const defaultSlideOrigin = (0,external_wp_i18n_namespaceObject.isRTL)() ? 'right' : 'left';
+
+  const setActiveMenu = function (menuId) {
+    let slideInOrigin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultSlideOrigin;
+
+    if (!navigationTree.getMenu(menuId)) {
+      return;
+    }
+
+    setSlideOrigin(slideInOrigin);
+    setMenu(menuId);
+    onActivateMenu(menuId);
+  }; // Used to prevent the sliding animation on mount
+
+
+  const isMounted = (0,external_wp_element_namespaceObject.useRef)(false);
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    if (!isMounted.current) {
+      isMounted.current = true;
+    }
+  }, []);
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    if (activeMenu !== menu) {
+      setActiveMenu(activeMenu);
+    }
+  }, [activeMenu]);
+  const context = {
+    activeItem,
+    activeMenu: menu,
+    setActiveMenu,
+    navigationTree
+  };
+  const classes = classnames_default()('components-navigation', className);
+  const animateClassName = getAnimateClassName({
+    type: 'slide-in',
+    origin: slideOrigin
+  });
+  return (0,external_wp_element_namespaceObject.createElement)(NavigationUI, {
+    className: classes
+  }, (0,external_wp_element_namespaceObject.createElement)("div", {
+    key: menu,
+    className: classnames_default()({
+      [animateClassName]: isMounted.current && slideOrigin
+    })
+  }, (0,external_wp_element_namespaceObject.createElement)(NavigationContext.Provider, {
+    value: context
+  }, children)));
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/chevron-right.js
+
+
+/**
+ * WordPress dependencies
+ */
+
+const chevronRight = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
+  xmlns: "http://www.w3.org/2000/svg",
+  viewBox: "0 0 24 24"
+}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
+  d: "M10.6 6L9.4 7l4.6 5-4.6 5 1.2 1 5.4-6z"
+}));
+/* harmony default export */ var chevron_right = (chevronRight);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/chevron-left.js
+
+
+/**
+ * WordPress dependencies
+ */
+
+const chevronLeft = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
+  xmlns: "http://www.w3.org/2000/svg",
+  viewBox: "0 0 24 24"
+}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
+  d: "M14.6 7l-1.2-1L8 12l5.4 6 1.2-1-4.6-5z"
+}));
+/* harmony default export */ var chevron_left = (chevronLeft);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigation/back-button/index.js
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+function NavigationBackButton(_ref, ref) {
+  var _navigationTree$getMe;
+
+  let {
+    backButtonLabel,
+    className,
+    href,
+    onClick,
+    parentMenu
+  } = _ref;
+  const {
+    setActiveMenu,
+    navigationTree
+  } = useNavigationContext();
+  const classes = classnames_default()('components-navigation__back-button', className);
+  const parentMenuTitle = (_navigationTree$getMe = navigationTree.getMenu(parentMenu)) === null || _navigationTree$getMe === void 0 ? void 0 : _navigationTree$getMe.title;
+
+  const handleOnClick = event => {
+    if (typeof onClick === 'function') {
+      onClick(event);
+    }
+
+    const animationDirection = (0,external_wp_i18n_namespaceObject.isRTL)() ? 'left' : 'right';
+
+    if (parentMenu && !event.defaultPrevented) {
+      setActiveMenu(parentMenu, animationDirection);
+    }
+  };
+
+  const icon = (0,external_wp_i18n_namespaceObject.isRTL)() ? chevron_right : chevron_left;
+  return (0,external_wp_element_namespaceObject.createElement)(MenuBackButtonUI, {
+    className: classes,
+    href: href,
+    variant: "tertiary",
+    ref: ref,
+    onClick: handleOnClick
+  }, (0,external_wp_element_namespaceObject.createElement)(icons_build_module_icon, {
+    icon: icon
+  }), backButtonLabel || parentMenuTitle || (0,external_wp_i18n_namespaceObject.__)('Back'));
+}
+
+/* harmony default export */ var back_button = ((0,external_wp_element_namespaceObject.forwardRef)(NavigationBackButton));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigation/group/context.js
+/**
+ * WordPress dependencies
+ */
+
+const NavigationGroupContext = (0,external_wp_element_namespaceObject.createContext)({
+  group: undefined
+});
+const useNavigationGroupContext = () => (0,external_wp_element_namespaceObject.useContext)(NavigationGroupContext);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigation/group/index.js
+
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+function NavigationGroup(_ref) {
+  let {
+    children,
+    className,
+    title
+  } = _ref;
+  const [groupId] = (0,external_wp_element_namespaceObject.useState)((0,external_lodash_namespaceObject.uniqueId)('group-'));
+  const {
+    navigationTree: {
+      items
+    }
+  } = useNavigationContext();
+  const context = {
+    group: groupId
+  }; // Keep the children rendered to make sure invisible items are included in the navigation tree.
+
+  if (!(0,external_lodash_namespaceObject.find)(items, {
+    group: groupId,
+    _isVisible: true
+  })) {
+    return (0,external_wp_element_namespaceObject.createElement)(NavigationGroupContext.Provider, {
+      value: context
+    }, children);
+  }
+
+  const groupTitleId = `components-navigation__group-title-${groupId}`;
+  const classes = classnames_default()('components-navigation__group', className);
+  return (0,external_wp_element_namespaceObject.createElement)(NavigationGroupContext.Provider, {
+    value: context
+  }, (0,external_wp_element_namespaceObject.createElement)("li", {
+    className: classes
+  }, title && (0,external_wp_element_namespaceObject.createElement)(GroupTitleUI, {
+    className: "components-navigation__group-title",
+    id: groupTitleId,
+    level: 3
+  }, title), (0,external_wp_element_namespaceObject.createElement)("ul", {
+    "aria-labelledby": groupTitleId,
+    role: "group"
+  }, children)));
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigation/item/base-content.js
+
+
+/**
+ * Internal dependencies
+ */
+
+function NavigationItemBaseContent(props) {
+  const {
+    badge,
+    title
+  } = props;
+  return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, title && (0,external_wp_element_namespaceObject.createElement)(ItemTitleUI, {
+    className: "components-navigation__item-title",
+    variant: "body.small",
+    as: "span"
+  }, title), badge && (0,external_wp_element_namespaceObject.createElement)(ItemBadgeUI, {
+    className: "components-navigation__item-badge"
+  }, badge));
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigation/menu/context.js
+/**
+ * WordPress dependencies
+ */
+
+const NavigationMenuContext = (0,external_wp_element_namespaceObject.createContext)({
+  menu: undefined,
+  search: ''
+});
+const useNavigationMenuContext = () => (0,external_wp_element_namespaceObject.useContext)(NavigationMenuContext);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigation/utils.js
+/**
+ * External dependencies
+ */
+ // @see packages/block-editor/src/components/inserter/search-items.js
+
+const normalizeInput = input => (0,external_lodash_namespaceObject.deburr)(input).replace(/^\//, '').toLowerCase();
+const normalizedSearch = (title, search) => -1 !== normalizeInput(title).indexOf(normalizeInput(search));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigation/item/use-navigation-tree-item.js
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+const useNavigationTreeItem = (itemId, props) => {
+  const {
+    activeMenu,
+    navigationTree: {
+      addItem,
+      removeItem
+    }
+  } = useNavigationContext();
+  const {
+    group
+  } = useNavigationGroupContext();
+  const {
+    menu,
+    search
+  } = useNavigationMenuContext();
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    const isMenuActive = activeMenu === menu;
+    const isItemVisible = !search || normalizedSearch(props.title, search);
+    addItem(itemId, { ...props,
+      group,
+      menu,
+      _isVisible: isMenuActive && isItemVisible
+    });
+    return () => {
+      removeItem(itemId);
+    };
+  }, [activeMenu, search]);
+};
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigation/item/base.js
+
+
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+function NavigationItemBase(props) {
+  var _navigationTree$getIt;
+
+  const {
+    children,
+    className,
+    ...restProps
+  } = props;
+  const [itemId] = (0,external_wp_element_namespaceObject.useState)((0,external_lodash_namespaceObject.uniqueId)('item-'));
+  useNavigationTreeItem(itemId, props);
+  const {
+    navigationTree
+  } = useNavigationContext();
+
+  if (!((_navigationTree$getIt = navigationTree.getItem(itemId)) !== null && _navigationTree$getIt !== void 0 && _navigationTree$getIt._isVisible)) {
+    return null;
+  }
+
+  const classes = classnames_default()('components-navigation__item', className);
+  return (0,external_wp_element_namespaceObject.createElement)(ItemBaseUI, extends_extends({
+    className: classes
+  }, restProps), children);
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigation/item/index.js
+
+
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+function NavigationItem(props) {
+  const {
+    badge,
+    children,
+    className,
+    href,
+    item,
+    navigateToMenu,
+    onClick = external_lodash_namespaceObject.noop,
+    title,
+    icon,
+    hideIfTargetMenuEmpty,
+    isText,
+    ...restProps
+  } = props;
+  const {
+    activeItem,
+    setActiveMenu,
+    navigationTree: {
+      isMenuEmpty
+    }
+  } = useNavigationContext(); // If hideIfTargetMenuEmpty prop is true
+  // And the menu we are supposed to navigate to
+  // Is marked as empty, then we skip rendering the item.
+
+  if (hideIfTargetMenuEmpty && navigateToMenu && isMenuEmpty(navigateToMenu)) {
+    return null;
+  }
+
+  const isActive = item && activeItem === item;
+  const classes = classnames_default()(className, {
+    'is-active': isActive
+  });
+
+  const onItemClick = event => {
+    if (navigateToMenu) {
+      setActiveMenu(navigateToMenu);
+    }
+
+    onClick(event);
+  };
+
+  const navigationIcon = (0,external_wp_i18n_namespaceObject.isRTL)() ? chevron_left : chevron_right;
+  const baseProps = children ? props : { ...props,
+    onClick: undefined
+  };
+  const itemProps = isText ? restProps : {
+    as: build_module_button,
+    href,
+    onClick: onItemClick,
+    'aria-current': isActive ? 'page' : undefined,
+    ...restProps
+  };
+  return (0,external_wp_element_namespaceObject.createElement)(NavigationItemBase, extends_extends({}, baseProps, {
+    className: classes
+  }), children || (0,external_wp_element_namespaceObject.createElement)(ItemUI, itemProps, icon && (0,external_wp_element_namespaceObject.createElement)(ItemIconUI, null, (0,external_wp_element_namespaceObject.createElement)(icons_build_module_icon, {
+    icon: icon
+  })), (0,external_wp_element_namespaceObject.createElement)(NavigationItemBaseContent, {
+    title: title,
+    badge: badge
+  }), navigateToMenu && (0,external_wp_element_namespaceObject.createElement)(icons_build_module_icon, {
+    icon: navigationIcon
+  })));
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigation/menu/use-navigation-tree-menu.js
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+const useNavigationTreeMenu = props => {
+  const {
+    navigationTree: {
+      addMenu,
+      removeMenu
+    }
+  } = useNavigationContext();
+  const key = props.menu || ROOT_MENU;
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    addMenu(key, { ...props,
+      menu: key
+    });
+    return () => {
+      removeMenu(key);
+    };
+  }, []);
+};
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigation/menu/menu-title-search.js
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+
+function MenuTitleSearch(_ref) {
+  let {
+    debouncedSpeak,
+    onCloseSearch,
+    onSearch,
+    search,
+    title
+  } = _ref;
+  const {
+    navigationTree: {
+      items
+    }
+  } = useNavigationContext();
+  const {
+    menu
+  } = useNavigationMenuContext();
+  const inputRef = (0,external_wp_element_namespaceObject.useRef)(); // Wait for the slide-in animation to complete before autofocusing the input.
+  // This prevents scrolling to the input during the animation.
+
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    const delayedFocus = setTimeout(() => {
+      inputRef.current.focus();
+    }, SEARCH_FOCUS_DELAY);
+    return () => {
+      clearTimeout(delayedFocus);
+    };
+  }, []);
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    if (!search) {
+      return;
+    }
+
+    const count = (0,external_lodash_namespaceObject.filter)(items, '_isVisible').length;
+    const resultsFoundMessage = (0,external_wp_i18n_namespaceObject.sprintf)(
+    /* translators: %d: number of results. */
+    (0,external_wp_i18n_namespaceObject._n)('%d result found.', '%d results found.', count), count);
+    debouncedSpeak(resultsFoundMessage);
+  }, [items, search]);
+
+  const onClose = () => {
+    onSearch('');
+    onCloseSearch();
+  };
+
+  function onKeyDown(event) {
+    if (event.keyCode === external_wp_keycodes_namespaceObject.ESCAPE && !event.defaultPrevented) {
+      event.preventDefault();
+      onClose();
+    }
+  }
+
+  const inputId = `components-navigation__menu-title-search-${menu}`;
+  const placeholder = (0,external_wp_i18n_namespaceObject.sprintf)(
+  /* translators: placeholder for menu search box. %s: menu title */
+  (0,external_wp_i18n_namespaceObject.__)('Search %s'), title === null || title === void 0 ? void 0 : title.toLowerCase()).trim();
+  return (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: "components-navigation__menu-title-search"
+  }, (0,external_wp_element_namespaceObject.createElement)(MenuTitleSearchUI, {
+    autoComplete: "off",
+    className: "components-navigation__menu-search-input",
+    id: inputId,
+    onChange: value => onSearch(value),
+    onKeyDown: onKeyDown,
+    placeholder: placeholder,
+    onClose: onClose,
+    ref: inputRef,
+    type: "search",
+    value: search
+  }));
+}
+
+/* harmony default export */ var menu_title_search = (with_spoken_messages(MenuTitleSearch));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigation/menu/menu-title.js
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+
+function NavigationMenuTitle(_ref) {
+  let {
+    hasSearch,
+    onSearch,
+    search,
+    title,
+    titleAction
+  } = _ref;
+  const [isSearching, setIsSearching] = (0,external_wp_element_namespaceObject.useState)(false);
+  const {
+    menu
+  } = useNavigationMenuContext();
+  const searchButtonRef = (0,external_wp_element_namespaceObject.useRef)();
+
+  if (!title) {
+    return null;
+  }
+
+  const onCloseSearch = () => {
+    setIsSearching(false); // Wait for the slide-in animation to complete before focusing the search button.
+    // eslint-disable-next-line @wordpress/react-no-unsafe-timeout
+
+    setTimeout(() => {
+      searchButtonRef.current.focus();
+    }, SEARCH_FOCUS_DELAY);
+  };
+
+  const menuTitleId = `components-navigation__menu-title-${menu}`;
+  /* translators: search button label for menu search box. %s: menu title */
+
+  const searchButtonLabel = (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('Search in %s'), title);
+  return (0,external_wp_element_namespaceObject.createElement)(MenuTitleUI, {
+    className: "components-navigation__menu-title"
+  }, !isSearching && (0,external_wp_element_namespaceObject.createElement)(GroupTitleUI, {
+    as: "h2",
+    className: "components-navigation__menu-title-heading",
+    level: 3
+  }, (0,external_wp_element_namespaceObject.createElement)("span", {
+    id: menuTitleId
+  }, title), (hasSearch || titleAction) && (0,external_wp_element_namespaceObject.createElement)(MenuTitleActionsUI, null, titleAction, hasSearch && (0,external_wp_element_namespaceObject.createElement)(build_module_button, {
+    isSmall: true,
+    variant: "tertiary",
+    label: searchButtonLabel,
+    onClick: () => setIsSearching(true),
+    ref: searchButtonRef
+  }, (0,external_wp_element_namespaceObject.createElement)(icons_build_module_icon, {
+    icon: library_search
+  })))), isSearching && (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: getAnimateClassName({
+      type: 'slide-in',
+      origin: 'left'
+    })
+  }, (0,external_wp_element_namespaceObject.createElement)(menu_title_search, {
+    onCloseSearch: onCloseSearch,
+    onSearch: onSearch,
+    search: search,
+    title: title
+  })));
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigation/menu/search-no-results-found.js
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+function NavigationSearchNoResultsFound(_ref) {
+  let {
+    search
+  } = _ref;
+  const {
+    navigationTree: {
+      items
+    }
+  } = useNavigationContext();
+  const resultsCount = (0,external_lodash_namespaceObject.filter)(items, '_isVisible').length;
+
+  if (!search || !!resultsCount) {
+    return null;
+  }
+
+  return (0,external_wp_element_namespaceObject.createElement)(ItemBaseUI, null, (0,external_wp_element_namespaceObject.createElement)(ItemUI, null, (0,external_wp_i18n_namespaceObject.__)('No results found.'), " "));
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigation/menu/index.js
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+
+
+
+
+function NavigationMenu(props) {
+  const {
+    backButtonLabel,
+    children,
+    className,
+    hasSearch,
+    menu = ROOT_MENU,
+    onBackButtonClick,
+    onSearch: setControlledSearch,
+    parentMenu,
+    search: controlledSearch,
+    isSearchDebouncing,
+    title,
+    titleAction
+  } = props;
+  const [uncontrolledSearch, setUncontrolledSearch] = (0,external_wp_element_namespaceObject.useState)('');
+  useNavigationTreeMenu(props);
+  const {
+    activeMenu
+  } = useNavigationContext();
+  const context = {
+    menu,
+    search: uncontrolledSearch
+  }; // Keep the children rendered to make sure invisible items are included in the navigation tree.
+
+  if (activeMenu !== menu) {
+    return (0,external_wp_element_namespaceObject.createElement)(NavigationMenuContext.Provider, {
+      value: context
+    }, children);
+  }
+
+  const isControlledSearch = !!setControlledSearch;
+  const search = isControlledSearch ? controlledSearch : uncontrolledSearch;
+  const onSearch = isControlledSearch ? setControlledSearch : setUncontrolledSearch;
+  const menuTitleId = `components-navigation__menu-title-${menu}`;
+  const classes = classnames_default()('components-navigation__menu', className);
+  return (0,external_wp_element_namespaceObject.createElement)(NavigationMenuContext.Provider, {
+    value: context
+  }, (0,external_wp_element_namespaceObject.createElement)(MenuUI, {
+    className: classes
+  }, (parentMenu || onBackButtonClick) && (0,external_wp_element_namespaceObject.createElement)(back_button, {
+    backButtonLabel: backButtonLabel,
+    parentMenu: parentMenu,
+    onClick: onBackButtonClick
+  }), title && (0,external_wp_element_namespaceObject.createElement)(NavigationMenuTitle, {
+    hasSearch: hasSearch,
+    onSearch: onSearch,
+    search: search,
+    title: title,
+    titleAction: titleAction
+  }), (0,external_wp_element_namespaceObject.createElement)(navigable_container_menu, null, (0,external_wp_element_namespaceObject.createElement)("ul", {
+    "aria-labelledby": menuTitleId
+  }, children, search && !isSearchDebouncing && (0,external_wp_element_namespaceObject.createElement)(NavigationSearchNoResultsFound, {
+    search: search
+  })))));
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigator/context.js
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+const initialContextValue = {
+  location: {},
+  goTo: () => {},
+  goBack: () => {}
+};
+const NavigatorContext = (0,external_wp_element_namespaceObject.createContext)(initialContextValue);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigator/navigator-provider/component.js
+
+
+
+function component_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+var component_ref =  true ? {
+  name: "15bx5k",
+  styles: "overflow-x:hidden"
+} : 0;
+
+function NavigatorProvider(props, forwardedRef) {
+  const {
+    initialPath,
+    children,
+    className,
+    ...otherProps
+  } = useContextSystem(props, 'NavigatorProvider');
+  const [locationHistory, setLocationHistory] = (0,external_wp_element_namespaceObject.useState)([{
+    path: initialPath
+  }]);
+  const goTo = (0,external_wp_element_namespaceObject.useCallback)(function (path) {
+    let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+    setLocationHistory([...locationHistory, { ...options,
+      path,
+      isBack: false
+    }]);
+  }, [locationHistory]);
+  const goBack = (0,external_wp_element_namespaceObject.useCallback)(() => {
+    if (locationHistory.length > 1) {
+      setLocationHistory([...locationHistory.slice(0, -2), { ...locationHistory[locationHistory.length - 2],
+        isBack: true
+      }]);
+    }
+  }, [locationHistory]);
+  const navigatorContextValue = (0,external_wp_element_namespaceObject.useMemo)(() => ({
+    location: { ...locationHistory[locationHistory.length - 1],
+      isInitial: locationHistory.length === 1
+    },
+    goTo,
+    goBack
+  }), [locationHistory, goTo, goBack]);
+  const cx = useCx();
+  const classes = (0,external_wp_element_namespaceObject.useMemo)( // Prevents horizontal overflow while animating screen transitions.
+  () => cx(component_ref, className), [className, cx]);
+  return (0,external_wp_element_namespaceObject.createElement)(component, extends_extends({
+    ref: forwardedRef,
+    className: classes
+  }, otherProps), (0,external_wp_element_namespaceObject.createElement)(NavigatorContext.Provider, {
+    value: navigatorContextValue
+  }, children));
+}
+/**
+ * The `NavigatorProvider` component allows rendering nested views/panels/menus
+ * (via the `NavigatorScreen` component and navigate between these different
+ * view (via the `NavigatorButton` and `NavigatorBackButton` components or the
+ * `useNavigator` hook).
+ *
+ * @example
+ * ```jsx
+ * import {
+ *   __experimentalNavigatorProvider as NavigatorProvider,
+ *   __experimentalNavigatorScreen as NavigatorScreen,
+ *   __experimentalNavigatorButton as NavigatorButton,
+ *   __experimentalNavigatorBackButton as NavigatorBackButton,
+ * } from '@wordpress/components';
+ *
+ * const MyNavigation = () => (
+ *   <NavigatorProvider initialPath="/">
+ *     <NavigatorScreen path="/">
+ *       <p>This is the home screen.</p>
+ *        <NavigatorButton path="/child">
+ *          Navigate to child screen.
+ *       </NavigatorButton>
+ *     </NavigatorScreen>
+ *
+ *     <NavigatorScreen path="/child">
+ *       <p>This is the child screen.</p>
+ *       <NavigatorBackButton>
+ *         Go back
+ *       </NavigatorBackButton>
+ *     </NavigatorScreen>
+ *   </NavigatorProvider>
+ * );
+ * ```
+ */
+
+
+const ConnectedNavigatorProvider = contextConnect(NavigatorProvider, 'NavigatorProvider');
+/* harmony default export */ var navigator_provider_component = (ConnectedNavigatorProvider);
+
+;// CONCATENATED MODULE: external ["wp","escapeHtml"]
+var external_wp_escapeHtml_namespaceObject = window["wp"]["escapeHtml"];
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigator/navigator-screen/component.js
+
+
+
+function navigator_screen_component_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
+
+/**
+ * External dependencies
+ */
+// eslint-disable-next-line no-restricted-imports
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+const animationEnterDelay = 0;
+const animationEnterDuration = 0.14;
+const animationExitDuration = 0.14;
+const animationExitDelay = 0; // Props specific to `framer-motion` can't be currently passed to `NavigatorScreen`,
+// as some of them would overlap with HTML props (e.g. `onAnimationStart`, ...)
+
+var navigator_screen_component_ref =  true ? {
+  name: "14x3t6z",
+  styles: "overflow-x:auto;max-height:100%"
+} : 0;
+
+function NavigatorScreen(props, forwardedRef) {
+  const {
+    children,
+    className,
+    path,
+    ...otherProps
+  } = useContextSystem(props, 'NavigatorScreen');
+  const prefersReducedMotion = (0,external_wp_compose_namespaceObject.useReducedMotion)();
+  const {
+    location
+  } = (0,external_wp_element_namespaceObject.useContext)(NavigatorContext);
+  const isMatch = location.path === (0,external_wp_escapeHtml_namespaceObject.escapeAttribute)(path);
+  const wrapperRef = (0,external_wp_element_namespaceObject.useRef)(null);
+  const previousLocation = (0,external_wp_compose_namespaceObject.usePrevious)(location);
+  const cx = useCx();
+  const classes = (0,external_wp_element_namespaceObject.useMemo)(() => cx(navigator_screen_component_ref, className), [className, cx]); // Focus restoration
+
+  const isInitialLocation = location.isInitial && !location.isBack;
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    // Only attempt to restore focus:
+    // - if the current location is not the initial one (to avoid moving focus on page load)
+    // - when the screen becomes visible
+    // - if the wrapper ref has been assigned
+    if (isInitialLocation || !isMatch || !wrapperRef.current) {
+      return;
+    }
+
+    let elementToFocus = null; // When navigating back, if a selector is provided, use it to look for the
+    // target element (assumed to be a node inside the current NavigatorScreen)
+
+    if (location.isBack && previousLocation !== null && previousLocation !== void 0 && previousLocation.focusTargetSelector) {
+      elementToFocus = wrapperRef.current.querySelector(previousLocation.focusTargetSelector);
+    } // If the previous query didn't run or find any element to focus, fallback
+    // to the first tabbable element in the screen (or the screen itself).
+
+
+    if (!elementToFocus) {
+      const firstTabbable = external_wp_dom_namespaceObject.focus.tabbable.find(wrapperRef.current)[0];
+      elementToFocus = firstTabbable !== null && firstTabbable !== void 0 ? firstTabbable : wrapperRef.current;
+    }
+
+    elementToFocus.focus();
+  }, [isInitialLocation, isMatch]);
+  const mergedWrapperRef = (0,external_wp_compose_namespaceObject.useMergeRefs)([forwardedRef, wrapperRef]);
+
+  if (!isMatch) {
+    return null;
+  }
+
+  if (prefersReducedMotion) {
+    return (0,external_wp_element_namespaceObject.createElement)(component, extends_extends({
+      ref: mergedWrapperRef,
+      className: classes
+    }, otherProps), children);
+  }
+
+  const animate = {
+    opacity: 1,
+    transition: {
+      delay: animationEnterDelay,
+      duration: animationEnterDuration,
+      ease: 'easeInOut'
+    },
+    x: 0
+  };
+  const initial = {
+    opacity: 0,
+    x: (0,external_wp_i18n_namespaceObject.isRTL)() && location.isBack || !(0,external_wp_i18n_namespaceObject.isRTL)() && !location.isBack ? 50 : -50
+  };
+  const exit = {
+    delay: animationExitDelay,
+    opacity: 0,
+    x: !(0,external_wp_i18n_namespaceObject.isRTL)() && location.isBack || (0,external_wp_i18n_namespaceObject.isRTL)() && !location.isBack ? 50 : -50,
+    transition: {
+      duration: animationExitDuration,
+      ease: 'easeInOut'
+    }
+  };
+  const animatedProps = {
+    animate,
+    exit,
+    initial
+  };
+  return (0,external_wp_element_namespaceObject.createElement)(motion.div, extends_extends({
+    ref: mergedWrapperRef,
+    className: classes
+  }, otherProps, animatedProps), children);
+}
+/**
+ * The `NavigatorScreen` component represents a single view/screen/panel and
+ * should be used in combination with the `NavigatorProvider`, the
+ * `NavigatorButton` and the `NavigatorBackButton` components (or the `useNavigator`
+ * hook).
+ *
+ * @example
+ * ```jsx
+ * import {
+ *   __experimentalNavigatorProvider as NavigatorProvider,
+ *   __experimentalNavigatorScreen as NavigatorScreen,
+ *   __experimentalNavigatorButton as NavigatorButton,
+ *   __experimentalNavigatorBackButton as NavigatorBackButton,
+ * } from '@wordpress/components';
+ *
+ * const MyNavigation = () => (
+ *   <NavigatorProvider initialPath="/">
+ *     <NavigatorScreen path="/">
+ *       <p>This is the home screen.</p>
+ *        <NavigatorButton path="/child">
+ *          Navigate to child screen.
+ *       </NavigatorButton>
+ *     </NavigatorScreen>
+ *
+ *     <NavigatorScreen path="/child">
+ *       <p>This is the child screen.</p>
+ *       <NavigatorBackButton>
+ *         Go back
+ *       </NavigatorBackButton>
+ *     </NavigatorScreen>
+ *   </NavigatorProvider>
+ * );
+ * ```
+ */
+
+
+const ConnectedNavigatorScreen = contextConnect(NavigatorScreen, 'NavigatorScreen');
+/* harmony default export */ var navigator_screen_component = (ConnectedNavigatorScreen);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigator/use-navigator.js
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+/**
+ * Retrieves a `navigator` instance.
+ */
+function useNavigator() {
+  const {
+    location,
+    goTo,
+    goBack
+  } = (0,external_wp_element_namespaceObject.useContext)(NavigatorContext);
+  return {
+    location,
+    goTo,
+    goBack
+  };
+}
+
+/* harmony default export */ var use_navigator = (useNavigator);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigator/navigator-button/hook.js
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+const cssSelectorForAttribute = (attrName, attrValue) => `[${attrName}="${attrValue}"]`;
+
+function useNavigatorButton(props) {
+  const {
+    path,
+    onClick,
+    as = build_module_button,
+    attributeName = 'id',
+    ...otherProps
+  } = useContextSystem(props, 'NavigatorButton');
+  const escapedPath = (0,external_wp_escapeHtml_namespaceObject.escapeAttribute)(path);
+  const {
+    goTo
+  } = use_navigator();
+  const handleClick = (0,external_wp_element_namespaceObject.useCallback)(e => {
+    e.preventDefault();
+    goTo(escapedPath, {
+      focusTargetSelector: cssSelectorForAttribute(attributeName, escapedPath)
+    });
+    onClick === null || onClick === void 0 ? void 0 : onClick(e);
+  }, [goTo, onClick]);
+  return {
+    as,
+    onClick: handleClick,
+    ...otherProps,
+    [attributeName]: escapedPath
+  };
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigator/navigator-button/component.js
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+function NavigatorButton(props, forwardedRef) {
+  const navigatorButtonProps = useNavigatorButton(props);
+  return (0,external_wp_element_namespaceObject.createElement)(component, extends_extends({
+    ref: forwardedRef
+  }, navigatorButtonProps));
+}
+/**
+ * The `NavigatorButton` component can be used to navigate to a screen and should
+ * be used in combination with the `NavigatorProvider`, the `NavigatorScreen`
+ * and the `NavigatorBackButton` components (or the `useNavigator` hook).
+ *
+ * @example
+ * ```jsx
+ * import {
+ *   __experimentalNavigatorProvider as NavigatorProvider,
+ *   __experimentalNavigatorScreen as NavigatorScreen,
+ *   __experimentalNavigatorButton as NavigatorButton,
+ *   __experimentalNavigatorBackButton as NavigatorBackButton,
+ * } from '@wordpress/components';
+ *
+ * const MyNavigation = () => (
+ *   <NavigatorProvider initialPath="/">
+ *     <NavigatorScreen path="/">
+ *       <p>This is the home screen.</p>
+ *        <NavigatorButton path="/child">
+ *          Navigate to child screen.
+ *       </NavigatorButton>
+ *     </NavigatorScreen>
+ *
+ *     <NavigatorScreen path="/child">
+ *       <p>This is the child screen.</p>
+ *       <NavigatorBackButton>
+ *         Go back
+ *       </NavigatorBackButton>
+ *     </NavigatorScreen>
+ *   </NavigatorProvider>
+ * );
+ * ```
+ */
+
+
+const ConnectedNavigatorButton = contextConnect(NavigatorButton, 'NavigatorButton');
+/* harmony default export */ var navigator_button_component = (ConnectedNavigatorButton);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigator/navigator-back-button/hook.js
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+function useNavigatorBackButton(props) {
+  const {
+    onClick,
+    as = build_module_button,
+    ...otherProps
+  } = useContextSystem(props, 'NavigatorBackButton');
+  const {
+    goBack
+  } = use_navigator();
+  const handleClick = (0,external_wp_element_namespaceObject.useCallback)(e => {
+    e.preventDefault();
+    goBack();
+    onClick === null || onClick === void 0 ? void 0 : onClick(e);
+  }, [goBack, onClick]);
+  return {
+    as,
+    onClick: handleClick,
+    ...otherProps
+  };
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigator/navigator-back-button/component.js
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+function NavigatorBackButton(props, forwardedRef) {
+  const navigatorBackButtonProps = useNavigatorBackButton(props);
+  return (0,external_wp_element_namespaceObject.createElement)(component, extends_extends({
+    ref: forwardedRef
+  }, navigatorBackButtonProps));
+}
+/**
+ * The `NavigatorBackButton` component can be used to navigate to a screen and
+ * should be used in combination with the `NavigatorProvider`, the
+ * `NavigatorScreen` and the `NavigatorButton` components (or the `useNavigator`
+ * hook).
+ *
+ * @example
+ * ```jsx
+ * import {
+ *   __experimentalNavigatorProvider as NavigatorProvider,
+ *   __experimentalNavigatorScreen as NavigatorScreen,
+ *   __experimentalNavigatorButton as NavigatorButton,
+ *   __experimentalNavigatorBackButton as NavigatorBackButton,
+ * } from '@wordpress/components';
+ *
+ * const MyNavigation = () => (
+ *   <NavigatorProvider initialPath="/">
+ *     <NavigatorScreen path="/">
+ *       <p>This is the home screen.</p>
+ *        <NavigatorButton path="/child">
+ *          Navigate to child screen.
+ *       </NavigatorButton>
+ *     </NavigatorScreen>
+ *
+ *     <NavigatorScreen path="/child">
+ *       <p>This is the child screen.</p>
+ *       <NavigatorBackButton>
+ *         Go back
+ *       </NavigatorBackButton>
+ *     </NavigatorScreen>
+ *   </NavigatorProvider>
+ * );
+ * ```
+ */
+
+
+const ConnectedNavigatorBackButton = contextConnect(NavigatorBackButton, 'NavigatorBackButton');
+/* harmony default export */ var navigator_back_button_component = (ConnectedNavigatorBackButton);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/notice/index.js
+
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+/** @typedef {import('@wordpress/element').WPElement} WPElement */
+
+/**
+ * Custom hook which announces the message with the given politeness, if a
+ * valid message is provided.
+ *
+ * @param {string|WPElement}     [message]  Message to announce.
+ * @param {'polite'|'assertive'} politeness Politeness to announce.
+ */
+
+function useSpokenMessage(message, politeness) {
+  const spokenMessage = typeof message === 'string' ? message : (0,external_wp_element_namespaceObject.renderToString)(message);
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    if (spokenMessage) {
+      (0,external_wp_a11y_namespaceObject.speak)(spokenMessage, politeness);
+    }
+  }, [spokenMessage, politeness]);
+}
+/**
+ * Given a notice status, returns an assumed default politeness for the status.
+ * Defaults to 'assertive'.
+ *
+ * @param {string} [status] Notice status.
+ *
+ * @return {'polite'|'assertive'} Notice politeness.
+ */
+
+
+function getDefaultPoliteness(status) {
+  switch (status) {
+    case 'success':
+    case 'warning':
+    case 'info':
+      return 'polite';
+
+    case 'error':
+    default:
+      return 'assertive';
+  }
+}
+
+function Notice(_ref) {
+  let {
+    className,
+    status = 'info',
+    children,
+    spokenMessage = children,
+    onRemove = external_lodash_namespaceObject.noop,
+    isDismissible = true,
+    actions = [],
+    politeness = getDefaultPoliteness(status),
+    __unstableHTML,
+    // onDismiss is a callback executed when the notice is dismissed.
+    // It is distinct from onRemove, which _looks_ like a callback but is
+    // actually the function to call to remove the notice from the UI.
+    onDismiss = external_lodash_namespaceObject.noop
+  } = _ref;
+  useSpokenMessage(spokenMessage, politeness);
+  const classes = classnames_default()(className, 'components-notice', 'is-' + status, {
+    'is-dismissible': isDismissible
+  });
+
+  if (__unstableHTML) {
+    children = (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.RawHTML, null, children);
+  }
+
+  const onDismissNotice = event => {
+    var _event$preventDefault;
+
+    event === null || event === void 0 ? void 0 : (_event$preventDefault = event.preventDefault) === null || _event$preventDefault === void 0 ? void 0 : _event$preventDefault.call(event);
+    onDismiss();
+    onRemove();
+  };
+
+  return (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: classes
+  }, (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: "components-notice__content"
+  }, children, (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: "components-notice__actions"
+  }, actions.map((_ref2, index) => {
+    let {
+      className: buttonCustomClasses,
+      label,
+      isPrimary,
+      variant,
+      noDefaultClasses = false,
+      onClick,
+      url
+    } = _ref2;
+    let computedVariant = variant;
+
+    if (variant !== 'primary' && !noDefaultClasses) {
+      computedVariant = !url ? 'secondary' : 'link';
+    }
+
+    if (typeof computedVariant === 'undefined' && isPrimary) {
+      computedVariant = 'primary';
+    }
+
+    return (0,external_wp_element_namespaceObject.createElement)(build_module_button, {
+      key: index,
+      href: url,
+      variant: computedVariant,
+      onClick: url ? undefined : onClick,
+      className: classnames_default()('components-notice__action', buttonCustomClasses)
+    }, label);
+  }))), isDismissible && (0,external_wp_element_namespaceObject.createElement)(build_module_button, {
+    className: "components-notice__dismiss",
+    icon: library_close,
+    label: (0,external_wp_i18n_namespaceObject.__)('Dismiss this notice'),
+    onClick: onDismissNotice,
+    showTooltip: false
+  }));
+}
+
+/* harmony default export */ var build_module_notice = (Notice);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/notice/list.js
+
+
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+/**
+ * Renders a list of notices.
+ *
+ * @param {Object}   $0           Props passed to the component.
+ * @param {Array}    $0.notices   Array of notices to render.
+ * @param {Function} $0.onRemove  Function called when a notice should be removed / dismissed.
+ * @param {Object}   $0.className Name of the class used by the component.
+ * @param {Object}   $0.children  Array of children to be rendered inside the notice list.
+ *
+ * @return {Object} The rendered notices list.
+ */
+
+function NoticeList(_ref) {
+  let {
+    notices,
+    onRemove = external_lodash_namespaceObject.noop,
+    className,
+    children
+  } = _ref;
+
+  const removeNotice = id => () => onRemove(id);
+
+  className = classnames_default()('components-notice-list', className);
+  return (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: className
+  }, children, [...notices].reverse().map(notice => (0,external_wp_element_namespaceObject.createElement)(build_module_notice, extends_extends({}, (0,external_lodash_namespaceObject.omit)(notice, ['content']), {
+    key: notice.id,
+    onRemove: removeNotice(notice.id)
+  }), notice.content)));
+}
+
+/* harmony default export */ var list = (NoticeList);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/panel/header.js
+
+
+function PanelHeader(_ref) {
+  let {
+    label,
+    children
+  } = _ref;
+  return (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: "components-panel__header"
+  }, label && (0,external_wp_element_namespaceObject.createElement)("h2", null, label), children);
+}
+
+/* harmony default export */ var panel_header = (PanelHeader);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/panel/index.js
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+function Panel(_ref, ref) {
+  let {
+    header,
+    className,
+    children
+  } = _ref;
+  const classNames = classnames_default()(className, 'components-panel');
+  return (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: classNames,
+    ref: ref
+  }, header && (0,external_wp_element_namespaceObject.createElement)(panel_header, {
+    label: header
+  }), children);
+}
+
+/* harmony default export */ var panel = ((0,external_wp_element_namespaceObject.forwardRef)(Panel));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/chevron-up.js
+
+
+/**
+ * WordPress dependencies
+ */
+
+const chevronUp = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
+  viewBox: "0 0 24 24",
+  xmlns: "http://www.w3.org/2000/svg"
+}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
+  d: "M6.5 12.4L12 8l5.5 4.4-.9 1.2L12 10l-4.5 3.6-1-1.2z"
+}));
+/* harmony default export */ var chevron_up = (chevronUp);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/panel/body.js
+
+
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+function PanelBody(_ref, ref) {
+  let {
+    buttonProps = {},
+    children,
+    className,
+    icon,
+    initialOpen,
+    onToggle = external_lodash_namespaceObject.noop,
+    opened,
+    title,
+    scrollAfterOpen = true
+  } = _ref;
+  const [isOpened, setIsOpened] = use_controlled_state(opened, {
+    initial: initialOpen === undefined ? true : initialOpen
+  });
+  const nodeRef = (0,external_wp_element_namespaceObject.useRef)(); // Defaults to 'smooth' scrolling
+  // https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView
+
+  const scrollBehavior = (0,external_wp_compose_namespaceObject.useReducedMotion)() ? 'auto' : 'smooth';
+
+  const handleOnToggle = event => {
+    event.preventDefault();
+    const next = !isOpened;
+    setIsOpened(next);
+    onToggle(next);
+  }; // Ref is used so that the effect does not re-run upon scrollAfterOpen changing value.
+
+
+  const scrollAfterOpenRef = (0,external_wp_element_namespaceObject.useRef)();
+  scrollAfterOpenRef.current = scrollAfterOpen; // Runs after initial render.
+
+  use_update_effect(() => {
+    var _nodeRef$current;
+
+    if (isOpened && scrollAfterOpenRef.current && (_nodeRef$current = nodeRef.current) !== null && _nodeRef$current !== void 0 && _nodeRef$current.scrollIntoView) {
+      /*
+       * Scrolls the content into view when visible.
+       * This improves the UX when there are multiple stacking <PanelBody />
+       * components in a scrollable container.
+       */
+      nodeRef.current.scrollIntoView({
+        inline: 'nearest',
+        block: 'nearest',
+        behavior: scrollBehavior
+      });
+    }
+  }, [isOpened, scrollBehavior]);
+  const classes = classnames_default()('components-panel__body', className, {
+    'is-opened': isOpened
+  });
+  return (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: classes,
+    ref: (0,external_wp_compose_namespaceObject.useMergeRefs)([nodeRef, ref])
+  }, (0,external_wp_element_namespaceObject.createElement)(PanelBodyTitle, extends_extends({
+    icon: icon,
+    isOpened: isOpened,
+    onClick: handleOnToggle,
+    title: title
+  }, buttonProps)), typeof children === 'function' ? children({
+    opened: isOpened
+  }) : isOpened && children);
+}
+const PanelBodyTitle = (0,external_wp_element_namespaceObject.forwardRef)((_ref2, ref) => {
+  let {
+    isOpened,
+    icon,
+    title,
+    ...props
+  } = _ref2;
+  if (!title) return null;
+  return (0,external_wp_element_namespaceObject.createElement)("h2", {
+    className: "components-panel__body-title"
+  }, (0,external_wp_element_namespaceObject.createElement)(build_module_button, extends_extends({
+    className: "components-panel__body-toggle",
+    "aria-expanded": isOpened,
+    ref: ref
+  }, props), (0,external_wp_element_namespaceObject.createElement)("span", {
+    "aria-hidden": "true"
+  }, (0,external_wp_element_namespaceObject.createElement)(build_module_icon, {
+    className: "components-panel__arrow",
+    icon: isOpened ? chevron_up : chevron_down
+  })), title, icon && (0,external_wp_element_namespaceObject.createElement)(build_module_icon, {
+    icon: icon,
+    className: "components-panel__icon",
+    size: 20
+  })));
+});
+const body_ForwardedComponent = (0,external_wp_element_namespaceObject.forwardRef)(PanelBody);
+body_ForwardedComponent.displayName = 'PanelBody';
+/* harmony default export */ var body = (body_ForwardedComponent);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/panel/row.js
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+const PanelRow = (0,external_wp_element_namespaceObject.forwardRef)((_ref, ref) => {
+  let {
+    className,
+    children
+  } = _ref;
+  return (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: classnames_default()('components-panel__row', className),
+    ref: ref
+  }, children);
+});
+/* harmony default export */ var row = (PanelRow);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/placeholder/index.js
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+/**
+ * Renders a placeholder. Normally used by blocks to render their empty state.
+ *
+ * @param {Object}    props                The component props.
+ * @param {WPIcon}    props.icon           An icon rendered before the label.
+ * @param {WPElement} props.children       Children to be rendered.
+ * @param {string}    props.label          Title of the placeholder.
+ * @param {string}    props.instructions   Instructions of the placeholder.
+ * @param {string}    props.className      Class to set on the container div.
+ * @param {Object}    props.notices        A rendered notices list.
+ * @param {Object}    props.preview        Preview to be rendered in the placeholder.
+ * @param {boolean}   props.isColumnLayout Whether a column layout should be used.
+ *
+ * @return {Object} The rendered placeholder.
+ */
+
+function Placeholder(_ref) {
+  let {
+    icon,
+    children,
+    label,
+    instructions,
+    className,
+    notices,
+    preview,
+    isColumnLayout,
+    ...additionalProps
+  } = _ref;
+  const [resizeListener, {
+    width
+  }] = (0,external_wp_compose_namespaceObject.useResizeObserver)(); // Since `useResizeObserver` will report a width of `null` until after the
+  // first render, avoid applying any modifier classes until width is known.
+
+  let modifierClassNames;
+
+  if (typeof width === 'number') {
+    modifierClassNames = {
+      'is-large': width >= 480,
+      'is-medium': width >= 160 && width < 480,
+      'is-small': width < 160
+    };
+  }
+
+  const classes = classnames_default()('components-placeholder', className, modifierClassNames);
+  const fieldsetClasses = classnames_default()('components-placeholder__fieldset', {
+    'is-column-layout': isColumnLayout
+  });
+  return (0,external_wp_element_namespaceObject.createElement)("div", extends_extends({}, additionalProps, {
+    className: classes
+  }), resizeListener, notices, preview && (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: "components-placeholder__preview"
+  }, preview), (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: "components-placeholder__label"
+  }, (0,external_wp_element_namespaceObject.createElement)(build_module_icon, {
+    icon: icon
+  }), label), (0,external_wp_element_namespaceObject.createElement)("fieldset", {
+    className: fieldsetClasses
+  }, !!instructions && (0,external_wp_element_namespaceObject.createElement)("legend", {
+    className: "components-placeholder__instructions"
+  }, instructions), children));
+}
+
+/* harmony default export */ var placeholder = (Placeholder);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/query-controls/terms.js
+/**
+ * External dependencies
+ */
+
+/**
+ * Returns terms in a tree form.
+ *
+ * @param {Array} flatTerms Array of terms in flat format.
+ *
+ * @return {Array} Array of terms in tree format.
+ */
+
+function buildTermsTree(flatTerms) {
+  const flatTermsWithParentAndChildren = flatTerms.map(term => {
+    return {
+      children: [],
+      parent: null,
+      ...term
+    };
+  });
+  const termsByParent = (0,external_lodash_namespaceObject.groupBy)(flatTermsWithParentAndChildren, 'parent');
+
+  if (termsByParent.null && termsByParent.null.length) {
+    return flatTermsWithParentAndChildren;
+  }
+
+  const fillWithChildren = terms => {
+    return terms.map(term => {
+      const children = termsByParent[term.id];
+      return { ...term,
+        children: children && children.length ? fillWithChildren(children) : []
+      };
+    });
+  };
+
+  return fillWithChildren(termsByParent['0'] || []);
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/tree-select/index.js
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+function tree_select_getSelectOptions(tree) {
+  let level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
+  return (0,external_lodash_namespaceObject.flatMap)(tree, treeNode => [{
+    value: treeNode.id,
+    label: (0,external_lodash_namespaceObject.repeat)('\u00A0', level * 3) + (0,external_lodash_namespaceObject.unescape)(treeNode.name)
+  }, ...tree_select_getSelectOptions(treeNode.children || [], level + 1)]);
+}
+
+function TreeSelect(_ref) {
+  let {
+    label,
+    noOptionLabel,
+    onChange,
+    selectedId,
+    tree,
+    ...props
+  } = _ref;
+  const options = (0,external_wp_element_namespaceObject.useMemo)(() => {
+    return (0,external_lodash_namespaceObject.compact)([noOptionLabel && {
+      value: '',
+      label: noOptionLabel
+    }, ...tree_select_getSelectOptions(tree)]);
+  }, [noOptionLabel, tree]);
+  return (0,external_wp_element_namespaceObject.createElement)(select_control, extends_extends({
+    label,
+    options,
+    onChange,
+    value: selectedId
+  }, props));
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/query-controls/category-select.js
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+function CategorySelect(_ref) {
+  let {
+    label,
+    noOptionLabel,
+    categoriesList,
+    selectedCategoryId,
+    onChange,
+    ...props
+  } = _ref;
+  const termsTree = (0,external_wp_element_namespaceObject.useMemo)(() => {
+    return buildTermsTree(categoriesList);
+  }, [categoriesList]);
+  return (0,external_wp_element_namespaceObject.createElement)(TreeSelect, extends_extends({
+    label,
+    noOptionLabel,
+    onChange,
+    tree: termsTree,
+    selectedId: selectedCategoryId
+  }, props));
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/query-controls/author-select.js
+
+
+/**
+ * Internal dependencies
+ */
+
+
+function AuthorSelect(_ref) {
+  let {
+    label,
+    noOptionLabel,
+    authorList,
+    selectedAuthorId,
+    onChange
+  } = _ref;
+  if (!authorList) return null;
+  const termsTree = buildTermsTree(authorList);
+  return (0,external_wp_element_namespaceObject.createElement)(TreeSelect, {
+    label,
+    noOptionLabel,
+    onChange,
+    tree: termsTree,
+    selectedId: selectedAuthorId
+  });
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/query-controls/index.js
+
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+const DEFAULT_MIN_ITEMS = 1;
+const DEFAULT_MAX_ITEMS = 100;
+const MAX_CATEGORIES_SUGGESTIONS = 20;
+function QueryControls(_ref) {
+  let {
+    authorList,
+    selectedAuthorId,
+    categoriesList,
+    selectedCategoryId,
+    categorySuggestions,
+    selectedCategories,
+    numberOfItems,
+    order,
+    orderBy,
+    maxItems = DEFAULT_MAX_ITEMS,
+    minItems = DEFAULT_MIN_ITEMS,
+    onCategoryChange,
+    onAuthorChange,
+    onNumberOfItemsChange,
+    onOrderChange,
+    onOrderByChange
+  } = _ref;
+  return [onOrderChange && onOrderByChange && (0,external_wp_element_namespaceObject.createElement)(select_control, {
+    key: "query-controls-order-select",
+    label: (0,external_wp_i18n_namespaceObject.__)('Order by'),
+    value: `${orderBy}/${order}`,
+    options: [{
+      label: (0,external_wp_i18n_namespaceObject.__)('Newest to oldest'),
+      value: 'date/desc'
+    }, {
+      label: (0,external_wp_i18n_namespaceObject.__)('Oldest to newest'),
+      value: 'date/asc'
+    }, {
+      /* translators: label for ordering posts by title in ascending order */
+      label: (0,external_wp_i18n_namespaceObject.__)('A → Z'),
+      value: 'title/asc'
+    }, {
+      /* translators: label for ordering posts by title in descending order */
+      label: (0,external_wp_i18n_namespaceObject.__)('Z → A'),
+      value: 'title/desc'
+    }],
+    onChange: value => {
+      const [newOrderBy, newOrder] = value.split('/');
+
+      if (newOrder !== order) {
+        onOrderChange(newOrder);
+      }
+
+      if (newOrderBy !== orderBy) {
+        onOrderByChange(newOrderBy);
+      }
+    }
+  }), categoriesList && onCategoryChange && (0,external_wp_element_namespaceObject.createElement)(CategorySelect, {
+    key: "query-controls-category-select",
+    categoriesList: categoriesList,
+    label: (0,external_wp_i18n_namespaceObject.__)('Category'),
+    noOptionLabel: (0,external_wp_i18n_namespaceObject.__)('All'),
+    selectedCategoryId: selectedCategoryId,
+    onChange: onCategoryChange
+  }), categorySuggestions && onCategoryChange && (0,external_wp_element_namespaceObject.createElement)(form_token_field, {
+    key: "query-controls-categories-select",
+    label: (0,external_wp_i18n_namespaceObject.__)('Categories'),
+    value: selectedCategories && selectedCategories.map(item => ({
+      id: item.id,
+      value: item.name || item.value
+    })),
+    suggestions: Object.keys(categorySuggestions),
+    onChange: onCategoryChange,
+    maxSuggestions: MAX_CATEGORIES_SUGGESTIONS
+  }), onAuthorChange && (0,external_wp_element_namespaceObject.createElement)(AuthorSelect, {
+    key: "query-controls-author-select",
+    authorList: authorList,
+    label: (0,external_wp_i18n_namespaceObject.__)('Author'),
+    noOptionLabel: (0,external_wp_i18n_namespaceObject.__)('All'),
+    selectedAuthorId: selectedAuthorId,
+    onChange: onAuthorChange
+  }), onNumberOfItemsChange && (0,external_wp_element_namespaceObject.createElement)(range_control, {
+    key: "query-controls-range-control",
+    label: (0,external_wp_i18n_namespaceObject.__)('Number of items'),
+    value: numberOfItems,
+    onChange: onNumberOfItemsChange,
+    min: minItems,
+    max: maxItems,
+    required: true
+  })];
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/radio-context/index.js
+/**
+ * WordPress dependencies
+ */
+
+const RadioContext = (0,external_wp_element_namespaceObject.createContext)({
+  state: null,
+  setState: () => {}
+});
+/* harmony default export */ var radio_context = (RadioContext);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/radio/index.js
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+function radio_Radio(_ref, ref) {
+  let {
+    children,
+    value,
+    ...props
+  } = _ref;
+  const radioContext = (0,external_wp_element_namespaceObject.useContext)(radio_context);
+  const checked = radioContext.state === value;
+  return (0,external_wp_element_namespaceObject.createElement)(Radio, extends_extends({
+    ref: ref,
+    as: build_module_button,
+    variant: checked ? 'primary' : 'secondary',
+    value: value
+  }, radioContext, props), children || value);
+}
+
+/* harmony default export */ var build_module_radio = ((0,external_wp_element_namespaceObject.forwardRef)(radio_Radio));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/radio-group/index.js
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+function radio_group_RadioGroup(_ref, ref) {
+  let {
+    label,
+    checked,
+    defaultChecked,
+    disabled,
+    onChange,
+    ...props
+  } = _ref;
+  const radioState = useRadioState({
+    state: defaultChecked,
+    baseId: props.id
+  });
+  const radioContext = { ...radioState,
+    disabled,
+    // Controlled or uncontrolled.
+    state: checked !== null && checked !== void 0 ? checked : radioState.state,
+    setState: onChange !== null && onChange !== void 0 ? onChange : radioState.setState
+  };
+  return (0,external_wp_element_namespaceObject.createElement)(radio_context.Provider, {
+    value: radioContext
+  }, (0,external_wp_element_namespaceObject.createElement)(RadioGroup, extends_extends({
+    ref: ref,
+    as: button_group,
+    "aria-label": label
+  }, radioState, props)));
+}
+
+/* harmony default export */ var radio_group = ((0,external_wp_element_namespaceObject.forwardRef)(radio_group_RadioGroup));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/radio-control/index.js
+
+
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+function RadioControl(_ref) {
+  let {
+    label,
+    className,
+    selected,
+    help,
+    onChange,
+    hideLabelFromVision,
+    options = [],
+    ...props
+  } = _ref;
+  const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(RadioControl);
+  const id = `inspector-radio-control-${instanceId}`;
+
+  const onChangeValue = event => onChange(event.target.value);
+
+  return !(0,external_lodash_namespaceObject.isEmpty)(options) && (0,external_wp_element_namespaceObject.createElement)(base_control, {
+    label: label,
+    id: id,
+    hideLabelFromVision: hideLabelFromVision,
+    help: help,
+    className: classnames_default()(className, 'components-radio-control')
+  }, options.map((option, index) => (0,external_wp_element_namespaceObject.createElement)("div", {
+    key: `${id}-${index}`,
+    className: "components-radio-control__option"
+  }, (0,external_wp_element_namespaceObject.createElement)("input", extends_extends({
+    id: `${id}-${index}`,
+    className: "components-radio-control__input",
+    type: "radio",
+    name: id,
+    value: option.value,
+    onChange: onChangeValue,
+    checked: option.value === selected,
+    "aria-describedby": !!help ? `${id}__help` : undefined
+  }, props)), (0,external_wp_element_namespaceObject.createElement)("label", {
+    htmlFor: `${id}-${index}`
+  }, option.label))));
+}
+
+;// CONCATENATED MODULE: ./node_modules/re-resizable/lib/resizer.js
+var resizer_extends = (undefined && undefined.__extends) || (function () {
+    var extendStatics = function (d, b) {
+        extendStatics = Object.setPrototypeOf ||
+            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
+        return extendStatics(d, b);
+    };
+    return function (d, b) {
+        extendStatics(d, b);
+        function __() { this.constructor = d; }
+        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+    };
+})();
+var resizer_assign = (undefined && undefined.__assign) || function () {
+    resizer_assign = Object.assign || function(t) {
+        for (var s, i = 1, n = arguments.length; i < n; i++) {
+            s = arguments[i];
+            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
+                t[p] = s[p];
+        }
+        return t;
+    };
+    return resizer_assign.apply(this, arguments);
+};
+
+var rowSizeBase = {
+    width: '100%',
+    height: '10px',
+    top: '0px',
+    left: '0px',
+    cursor: 'row-resize',
+};
+var colSizeBase = {
+    width: '10px',
+    height: '100%',
+    top: '0px',
+    left: '0px',
+    cursor: 'col-resize',
+};
+var edgeBase = {
+    width: '20px',
+    height: '20px',
+    position: 'absolute',
+};
+var styles = {
+    top: resizer_assign(resizer_assign({}, rowSizeBase), { top: '-5px' }),
+    right: resizer_assign(resizer_assign({}, colSizeBase), { left: undefined, right: '-5px' }),
+    bottom: resizer_assign(resizer_assign({}, rowSizeBase), { top: undefined, bottom: '-5px' }),
+    left: resizer_assign(resizer_assign({}, colSizeBase), { left: '-5px' }),
+    topRight: resizer_assign(resizer_assign({}, edgeBase), { right: '-10px', top: '-10px', cursor: 'ne-resize' }),
+    bottomRight: resizer_assign(resizer_assign({}, edgeBase), { right: '-10px', bottom: '-10px', cursor: 'se-resize' }),
+    bottomLeft: resizer_assign(resizer_assign({}, edgeBase), { left: '-10px', bottom: '-10px', cursor: 'sw-resize' }),
+    topLeft: resizer_assign(resizer_assign({}, edgeBase), { left: '-10px', top: '-10px', cursor: 'nw-resize' }),
+};
+var Resizer = /** @class */ (function (_super) {
+    resizer_extends(Resizer, _super);
+    function Resizer() {
+        var _this = _super !== null && _super.apply(this, arguments) || this;
+        _this.onMouseDown = function (e) {
+            _this.props.onResizeStart(e, _this.props.direction);
+        };
+        _this.onTouchStart = function (e) {
+            _this.props.onResizeStart(e, _this.props.direction);
+        };
+        return _this;
+    }
+    Resizer.prototype.render = function () {
+        return (external_React_.createElement("div", { className: this.props.className || '', style: resizer_assign(resizer_assign({ position: 'absolute', userSelect: 'none' }, styles[this.props.direction]), (this.props.replaceStyles || {})), onMouseDown: this.onMouseDown, onTouchStart: this.onTouchStart }, this.props.children));
+    };
+    return Resizer;
+}(external_React_.PureComponent));
+
+
+;// CONCATENATED MODULE: ./node_modules/re-resizable/lib/index.js
+var lib_extends = (undefined && undefined.__extends) || (function () {
+    var extendStatics = function (d, b) {
+        extendStatics = Object.setPrototypeOf ||
+            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
+        return extendStatics(d, b);
+    };
+    return function (d, b) {
+        extendStatics(d, b);
+        function __() { this.constructor = d; }
+        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+    };
+})();
+var lib_assign = (undefined && undefined.__assign) || function () {
+    lib_assign = Object.assign || function(t) {
+        for (var s, i = 1, n = arguments.length; i < n; i++) {
+            s = arguments[i];
+            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
+                t[p] = s[p];
+        }
+        return t;
+    };
+    return lib_assign.apply(this, arguments);
+};
+
+
+
+var DEFAULT_SIZE = {
+    width: 'auto',
+    height: 'auto',
+};
+var lib_clamp = function (n, min, max) { return Math.max(Math.min(n, max), min); };
+var snap = function (n, size) { return Math.round(n / size) * size; };
+var hasDirection = function (dir, target) {
+    return new RegExp(dir, 'i').test(target);
+};
+// INFO: In case of window is a Proxy and does not porxy Events correctly, use isTouchEvent & isMouseEvent to distinguish event type instead of `instanceof`.
+var lib_isTouchEvent = function (event) {
+    return Boolean(event.touches && event.touches.length);
+};
+var lib_isMouseEvent = function (event) {
+    return Boolean((event.clientX || event.clientX === 0) &&
+        (event.clientY || event.clientY === 0));
+};
+var findClosestSnap = function (n, snapArray, snapGap) {
+    if (snapGap === void 0) { snapGap = 0; }
+    var closestGapIndex = snapArray.reduce(function (prev, curr, index) { return (Math.abs(curr - n) < Math.abs(snapArray[prev] - n) ? index : prev); }, 0);
+    var gap = Math.abs(snapArray[closestGapIndex] - n);
+    return snapGap === 0 || gap < snapGap ? snapArray[closestGapIndex] : n;
+};
+var getStringSize = function (n) {
+    n = n.toString();
+    if (n === 'auto') {
+        return n;
+    }
+    if (n.endsWith('px')) {
+        return n;
+    }
+    if (n.endsWith('%')) {
+        return n;
+    }
+    if (n.endsWith('vh')) {
+        return n;
+    }
+    if (n.endsWith('vw')) {
+        return n;
+    }
+    if (n.endsWith('vmax')) {
+        return n;
+    }
+    if (n.endsWith('vmin')) {
+        return n;
+    }
+    return n + "px";
+};
+var getPixelSize = function (size, parentSize, innerWidth, innerHeight) {
+    if (size && typeof size === 'string') {
+        if (size.endsWith('px')) {
+            return Number(size.replace('px', ''));
+        }
+        if (size.endsWith('%')) {
+            var ratio = Number(size.replace('%', '')) / 100;
+            return parentSize * ratio;
+        }
+        if (size.endsWith('vw')) {
+            var ratio = Number(size.replace('vw', '')) / 100;
+            return innerWidth * ratio;
+        }
+        if (size.endsWith('vh')) {
+            var ratio = Number(size.replace('vh', '')) / 100;
+            return innerHeight * ratio;
+        }
+    }
+    return size;
+};
+var calculateNewMax = function (parentSize, innerWidth, innerHeight, maxWidth, maxHeight, minWidth, minHeight) {
+    maxWidth = getPixelSize(maxWidth, parentSize.width, innerWidth, innerHeight);
+    maxHeight = getPixelSize(maxHeight, parentSize.height, innerWidth, innerHeight);
+    minWidth = getPixelSize(minWidth, parentSize.width, innerWidth, innerHeight);
+    minHeight = getPixelSize(minHeight, parentSize.height, innerWidth, innerHeight);
+    return {
+        maxWidth: typeof maxWidth === 'undefined' ? undefined : Number(maxWidth),
+        maxHeight: typeof maxHeight === 'undefined' ? undefined : Number(maxHeight),
+        minWidth: typeof minWidth === 'undefined' ? undefined : Number(minWidth),
+        minHeight: typeof minHeight === 'undefined' ? undefined : Number(minHeight),
+    };
+};
+var definedProps = [
+    'as',
+    'style',
+    'className',
+    'grid',
+    'snap',
+    'bounds',
+    'boundsByDirection',
+    'size',
+    'defaultSize',
+    'minWidth',
+    'minHeight',
+    'maxWidth',
+    'maxHeight',
+    'lockAspectRatio',
+    'lockAspectRatioExtraWidth',
+    'lockAspectRatioExtraHeight',
+    'enable',
+    'handleStyles',
+    'handleClasses',
+    'handleWrapperStyle',
+    'handleWrapperClass',
+    'children',
+    'onResizeStart',
+    'onResize',
+    'onResizeStop',
+    'handleComponent',
+    'scale',
+    'resizeRatio',
+    'snapGap',
+];
+// HACK: This class is used to calculate % size.
+var baseClassName = '__resizable_base__';
+var Resizable = /** @class */ (function (_super) {
+    lib_extends(Resizable, _super);
+    function Resizable(props) {
+        var _this = _super.call(this, props) || this;
+        _this.ratio = 1;
+        _this.resizable = null;
+        // For parent boundary
+        _this.parentLeft = 0;
+        _this.parentTop = 0;
+        // For boundary
+        _this.resizableLeft = 0;
+        _this.resizableRight = 0;
+        _this.resizableTop = 0;
+        _this.resizableBottom = 0;
+        // For target boundary
+        _this.targetLeft = 0;
+        _this.targetTop = 0;
+        _this.appendBase = function () {
+            if (!_this.resizable || !_this.window) {
+                return null;
+            }
+            var parent = _this.parentNode;
+            if (!parent) {
+                return null;
+            }
+            var element = _this.window.document.createElement('div');
+            element.style.width = '100%';
+            element.style.height = '100%';
+            element.style.position = 'absolute';
+            element.style.transform = 'scale(0, 0)';
+            element.style.left = '0';
+            element.style.flex = '0 0 100%';
+            if (element.classList) {
+                element.classList.add(baseClassName);
+            }
+            else {
+                element.className += baseClassName;
+            }
+            parent.appendChild(element);
+            return element;
+        };
+        _this.removeBase = function (base) {
+            var parent = _this.parentNode;
+            if (!parent) {
+                return;
+            }
+            parent.removeChild(base);
+        };
+        _this.ref = function (c) {
+            if (c) {
+                _this.resizable = c;
+            }
+        };
+        _this.state = {
+            isResizing: false,
+            width: typeof (_this.propsSize && _this.propsSize.width) === 'undefined'
+                ? 'auto'
+                : _this.propsSize && _this.propsSize.width,
+            height: typeof (_this.propsSize && _this.propsSize.height) === 'undefined'
+                ? 'auto'
+                : _this.propsSize && _this.propsSize.height,
+            direction: 'right',
+            original: {
+                x: 0,
+                y: 0,
+                width: 0,
+                height: 0,
+            },
+            backgroundStyle: {
+                height: '100%',
+                width: '100%',
+                backgroundColor: 'rgba(0,0,0,0)',
+                cursor: 'auto',
+                opacity: 0,
+                position: 'fixed',
+                zIndex: 9999,
+                top: '0',
+                left: '0',
+                bottom: '0',
+                right: '0',
+            },
+            flexBasis: undefined,
+        };
+        _this.onResizeStart = _this.onResizeStart.bind(_this);
+        _this.onMouseMove = _this.onMouseMove.bind(_this);
+        _this.onMouseUp = _this.onMouseUp.bind(_this);
+        return _this;
+    }
+    Object.defineProperty(Resizable.prototype, "parentNode", {
+        get: function () {
+            if (!this.resizable) {
+                return null;
+            }
+            return this.resizable.parentNode;
+        },
+        enumerable: false,
+        configurable: true
+    });
+    Object.defineProperty(Resizable.prototype, "window", {
+        get: function () {
+            if (!this.resizable) {
+                return null;
+            }
+            if (!this.resizable.ownerDocument) {
+                return null;
+            }
+            return this.resizable.ownerDocument.defaultView;
+        },
+        enumerable: false,
+        configurable: true
+    });
+    Object.defineProperty(Resizable.prototype, "propsSize", {
+        get: function () {
+            return this.props.size || this.props.defaultSize || DEFAULT_SIZE;
+        },
+        enumerable: false,
+        configurable: true
+    });
+    Object.defineProperty(Resizable.prototype, "size", {
+        get: function () {
+            var width = 0;
+            var height = 0;
+            if (this.resizable && this.window) {
+                var orgWidth = this.resizable.offsetWidth;
+                var orgHeight = this.resizable.offsetHeight;
+                // HACK: Set position `relative` to get parent size.
+                //       This is because when re-resizable set `absolute`, I can not get base width correctly.
+                var orgPosition = this.resizable.style.position;
+                if (orgPosition !== 'relative') {
+                    this.resizable.style.position = 'relative';
+                }
+                // INFO: Use original width or height if set auto.
+                width = this.resizable.style.width !== 'auto' ? this.resizable.offsetWidth : orgWidth;
+                height = this.resizable.style.height !== 'auto' ? this.resizable.offsetHeight : orgHeight;
+                // Restore original position
+                this.resizable.style.position = orgPosition;
+            }
+            return { width: width, height: height };
+        },
+        enumerable: false,
+        configurable: true
+    });
+    Object.defineProperty(Resizable.prototype, "sizeStyle", {
+        get: function () {
+            var _this = this;
+            var size = this.props.size;
+            var getSize = function (key) {
+                if (typeof _this.state[key] === 'undefined' || _this.state[key] === 'auto') {
+                    return 'auto';
+                }
+                if (_this.propsSize && _this.propsSize[key] && _this.propsSize[key].toString().endsWith('%')) {
+                    if (_this.state[key].toString().endsWith('%')) {
+                        return _this.state[key].toString();
+                    }
+                    var parentSize = _this.getParentSize();
+                    var value = Number(_this.state[key].toString().replace('px', ''));
+                    var percent = (value / parentSize[key]) * 100;
+                    return percent + "%";
+                }
+                return getStringSize(_this.state[key]);
+            };
+            var width = size && typeof size.width !== 'undefined' && !this.state.isResizing
+                ? getStringSize(size.width)
+                : getSize('width');
+            var height = size && typeof size.height !== 'undefined' && !this.state.isResizing
+                ? getStringSize(size.height)
+                : getSize('height');
+            return { width: width, height: height };
+        },
+        enumerable: false,
+        configurable: true
+    });
+    Resizable.prototype.getParentSize = function () {
+        if (!this.parentNode) {
+            if (!this.window) {
+                return { width: 0, height: 0 };
+            }
+            return { width: this.window.innerWidth, height: this.window.innerHeight };
+        }
+        var base = this.appendBase();
+        if (!base) {
+            return { width: 0, height: 0 };
+        }
+        // INFO: To calculate parent width with flex layout
+        var wrapChanged = false;
+        var wrap = this.parentNode.style.flexWrap;
+        if (wrap !== 'wrap') {
+            wrapChanged = true;
+            this.parentNode.style.flexWrap = 'wrap';
+            // HACK: Use relative to get parent padding size
+        }
+        base.style.position = 'relative';
+        base.style.minWidth = '100%';
+        base.style.minHeight = '100%';
+        var size = {
+            width: base.offsetWidth,
+            height: base.offsetHeight,
+        };
+        if (wrapChanged) {
+            this.parentNode.style.flexWrap = wrap;
+        }
+        this.removeBase(base);
+        return size;
+    };
+    Resizable.prototype.bindEvents = function () {
+        if (this.window) {
+            this.window.addEventListener('mouseup', this.onMouseUp);
+            this.window.addEventListener('mousemove', this.onMouseMove);
+            this.window.addEventListener('mouseleave', this.onMouseUp);
+            this.window.addEventListener('touchmove', this.onMouseMove, {
+                capture: true,
+                passive: false,
+            });
+            this.window.addEventListener('touchend', this.onMouseUp);
+        }
+    };
+    Resizable.prototype.unbindEvents = function () {
+        if (this.window) {
+            this.window.removeEventListener('mouseup', this.onMouseUp);
+            this.window.removeEventListener('mousemove', this.onMouseMove);
+            this.window.removeEventListener('mouseleave', this.onMouseUp);
+            this.window.removeEventListener('touchmove', this.onMouseMove, true);
+            this.window.removeEventListener('touchend', this.onMouseUp);
+        }
+    };
+    Resizable.prototype.componentDidMount = function () {
+        if (!this.resizable || !this.window) {
+            return;
+        }
+        var computedStyle = this.window.getComputedStyle(this.resizable);
+        this.setState({
+            width: this.state.width || this.size.width,
+            height: this.state.height || this.size.height,
+            flexBasis: computedStyle.flexBasis !== 'auto' ? computedStyle.flexBasis : undefined,
+        });
+    };
+    Resizable.prototype.componentWillUnmount = function () {
+        if (this.window) {
+            this.unbindEvents();
+        }
+    };
+    Resizable.prototype.createSizeForCssProperty = function (newSize, kind) {
+        var propsSize = this.propsSize && this.propsSize[kind];
+        return this.state[kind] === 'auto' &&
+            this.state.original[kind] === newSize &&
+            (typeof propsSize === 'undefined' || propsSize === 'auto')
+            ? 'auto'
+            : newSize;
+    };
+    Resizable.prototype.calculateNewMaxFromBoundary = function (maxWidth, maxHeight) {
+        var boundsByDirection = this.props.boundsByDirection;
+        var direction = this.state.direction;
+        var widthByDirection = boundsByDirection && hasDirection('left', direction);
+        var heightByDirection = boundsByDirection && hasDirection('top', direction);
+        var boundWidth;
+        var boundHeight;
+        if (this.props.bounds === 'parent') {
+            var parent_1 = this.parentNode;
+            if (parent_1) {
+                boundWidth = widthByDirection
+                    ? this.resizableRight - this.parentLeft
+                    : parent_1.offsetWidth + (this.parentLeft - this.resizableLeft);
+                boundHeight = heightByDirection
+                    ? this.resizableBottom - this.parentTop
+                    : parent_1.offsetHeight + (this.parentTop - this.resizableTop);
+            }
+        }
+        else if (this.props.bounds === 'window') {
+            if (this.window) {
+                boundWidth = widthByDirection ? this.resizableRight : this.window.innerWidth - this.resizableLeft;
+                boundHeight = heightByDirection ? this.resizableBottom : this.window.innerHeight - this.resizableTop;
+            }
+        }
+        else if (this.props.bounds) {
+            boundWidth = widthByDirection
+                ? this.resizableRight - this.targetLeft
+                : this.props.bounds.offsetWidth + (this.targetLeft - this.resizableLeft);
+            boundHeight = heightByDirection
+                ? this.resizableBottom - this.targetTop
+                : this.props.bounds.offsetHeight + (this.targetTop - this.resizableTop);
+        }
+        if (boundWidth && Number.isFinite(boundWidth)) {
+            maxWidth = maxWidth && maxWidth < boundWidth ? maxWidth : boundWidth;
+        }
+        if (boundHeight && Number.isFinite(boundHeight)) {
+            maxHeight = maxHeight && maxHeight < boundHeight ? maxHeight : boundHeight;
+        }
+        return { maxWidth: maxWidth, maxHeight: maxHeight };
+    };
+    Resizable.prototype.calculateNewSizeFromDirection = function (clientX, clientY) {
+        var scale = this.props.scale || 1;
+        var resizeRatio = this.props.resizeRatio || 1;
+        var _a = this.state, direction = _a.direction, original = _a.original;
+        var _b = this.props, lockAspectRatio = _b.lockAspectRatio, lockAspectRatioExtraHeight = _b.lockAspectRatioExtraHeight, lockAspectRatioExtraWidth = _b.lockAspectRatioExtraWidth;
+        var newWidth = original.width;
+        var newHeight = original.height;
+        var extraHeight = lockAspectRatioExtraHeight || 0;
+        var extraWidth = lockAspectRatioExtraWidth || 0;
+        if (hasDirection('right', direction)) {
+            newWidth = original.width + ((clientX - original.x) * resizeRatio) / scale;
+            if (lockAspectRatio) {
+                newHeight = (newWidth - extraWidth) / this.ratio + extraHeight;
+            }
+        }
+        if (hasDirection('left', direction)) {
+            newWidth = original.width - ((clientX - original.x) * resizeRatio) / scale;
+            if (lockAspectRatio) {
+                newHeight = (newWidth - extraWidth) / this.ratio + extraHeight;
+            }
+        }
+        if (hasDirection('bottom', direction)) {
+            newHeight = original.height + ((clientY - original.y) * resizeRatio) / scale;
+            if (lockAspectRatio) {
+                newWidth = (newHeight - extraHeight) * this.ratio + extraWidth;
+            }
+        }
+        if (hasDirection('top', direction)) {
+            newHeight = original.height - ((clientY - original.y) * resizeRatio) / scale;
+            if (lockAspectRatio) {
+                newWidth = (newHeight - extraHeight) * this.ratio + extraWidth;
+            }
+        }
+        return { newWidth: newWidth, newHeight: newHeight };
+    };
+    Resizable.prototype.calculateNewSizeFromAspectRatio = function (newWidth, newHeight, max, min) {
+        var _a = this.props, lockAspectRatio = _a.lockAspectRatio, lockAspectRatioExtraHeight = _a.lockAspectRatioExtraHeight, lockAspectRatioExtraWidth = _a.lockAspectRatioExtraWidth;
+        var computedMinWidth = typeof min.width === 'undefined' ? 10 : min.width;
+        var computedMaxWidth = typeof max.width === 'undefined' || max.width < 0 ? newWidth : max.width;
+        var computedMinHeight = typeof min.height === 'undefined' ? 10 : min.height;
+        var computedMaxHeight = typeof max.height === 'undefined' || max.height < 0 ? newHeight : max.height;
+        var extraHeight = lockAspectRatioExtraHeight || 0;
+        var extraWidth = lockAspectRatioExtraWidth || 0;
+        if (lockAspectRatio) {
+            var extraMinWidth = (computedMinHeight - extraHeight) * this.ratio + extraWidth;
+            var extraMaxWidth = (computedMaxHeight - extraHeight) * this.ratio + extraWidth;
+            var extraMinHeight = (computedMinWidth - extraWidth) / this.ratio + extraHeight;
+            var extraMaxHeight = (computedMaxWidth - extraWidth) / this.ratio + extraHeight;
+            var lockedMinWidth = Math.max(computedMinWidth, extraMinWidth);
+            var lockedMaxWidth = Math.min(computedMaxWidth, extraMaxWidth);
+            var lockedMinHeight = Math.max(computedMinHeight, extraMinHeight);
+            var lockedMaxHeight = Math.min(computedMaxHeight, extraMaxHeight);
+            newWidth = lib_clamp(newWidth, lockedMinWidth, lockedMaxWidth);
+            newHeight = lib_clamp(newHeight, lockedMinHeight, lockedMaxHeight);
+        }
+        else {
+            newWidth = lib_clamp(newWidth, computedMinWidth, computedMaxWidth);
+            newHeight = lib_clamp(newHeight, computedMinHeight, computedMaxHeight);
+        }
+        return { newWidth: newWidth, newHeight: newHeight };
+    };
+    Resizable.prototype.setBoundingClientRect = function () {
+        // For parent boundary
+        if (this.props.bounds === 'parent') {
+            var parent_2 = this.parentNode;
+            if (parent_2) {
+                var parentRect = parent_2.getBoundingClientRect();
+                this.parentLeft = parentRect.left;
+                this.parentTop = parentRect.top;
+            }
+        }
+        // For target(html element) boundary
+        if (this.props.bounds && typeof this.props.bounds !== 'string') {
+            var targetRect = this.props.bounds.getBoundingClientRect();
+            this.targetLeft = targetRect.left;
+            this.targetTop = targetRect.top;
+        }
+        // For boundary
+        if (this.resizable) {
+            var _a = this.resizable.getBoundingClientRect(), left = _a.left, top_1 = _a.top, right = _a.right, bottom = _a.bottom;
+            this.resizableLeft = left;
+            this.resizableRight = right;
+            this.resizableTop = top_1;
+            this.resizableBottom = bottom;
+        }
+    };
+    Resizable.prototype.onResizeStart = function (event, direction) {
+        if (!this.resizable || !this.window) {
+            return;
+        }
+        var clientX = 0;
+        var clientY = 0;
+        if (event.nativeEvent && lib_isMouseEvent(event.nativeEvent)) {
+            clientX = event.nativeEvent.clientX;
+            clientY = event.nativeEvent.clientY;
+        }
+        else if (event.nativeEvent && lib_isTouchEvent(event.nativeEvent)) {
+            clientX = event.nativeEvent.touches[0].clientX;
+            clientY = event.nativeEvent.touches[0].clientY;
+        }
+        if (this.props.onResizeStart) {
+            if (this.resizable) {
+                var startResize = this.props.onResizeStart(event, direction, this.resizable);
+                if (startResize === false) {
+                    return;
+                }
+            }
+        }
+        // Fix #168
+        if (this.props.size) {
+            if (typeof this.props.size.height !== 'undefined' && this.props.size.height !== this.state.height) {
+                this.setState({ height: this.props.size.height });
+            }
+            if (typeof this.props.size.width !== 'undefined' && this.props.size.width !== this.state.width) {
+                this.setState({ width: this.props.size.width });
+            }
+        }
+        // For lockAspectRatio case
+        this.ratio =
+            typeof this.props.lockAspectRatio === 'number' ? this.props.lockAspectRatio : this.size.width / this.size.height;
+        var flexBasis;
+        var computedStyle = this.window.getComputedStyle(this.resizable);
+        if (computedStyle.flexBasis !== 'auto') {
+            var parent_3 = this.parentNode;
+            if (parent_3) {
+                var dir = this.window.getComputedStyle(parent_3).flexDirection;
+                this.flexDir = dir.startsWith('row') ? 'row' : 'column';
+                flexBasis = computedStyle.flexBasis;
+            }
+        }
+        // For boundary
+        this.setBoundingClientRect();
+        this.bindEvents();
+        var state = {
+            original: {
+                x: clientX,
+                y: clientY,
+                width: this.size.width,
+                height: this.size.height,
+            },
+            isResizing: true,
+            backgroundStyle: lib_assign(lib_assign({}, this.state.backgroundStyle), { cursor: this.window.getComputedStyle(event.target).cursor || 'auto' }),
+            direction: direction,
+            flexBasis: flexBasis,
+        };
+        this.setState(state);
+    };
+    Resizable.prototype.onMouseMove = function (event) {
+        var _this = this;
+        if (!this.state.isResizing || !this.resizable || !this.window) {
+            return;
+        }
+        if (this.window.TouchEvent && lib_isTouchEvent(event)) {
+            try {
+                event.preventDefault();
+                event.stopPropagation();
+            }
+            catch (e) {
+                // Ignore on fail
+            }
+        }
+        var _a = this.props, maxWidth = _a.maxWidth, maxHeight = _a.maxHeight, minWidth = _a.minWidth, minHeight = _a.minHeight;
+        var clientX = lib_isTouchEvent(event) ? event.touches[0].clientX : event.clientX;
+        var clientY = lib_isTouchEvent(event) ? event.touches[0].clientY : event.clientY;
+        var _b = this.state, direction = _b.direction, original = _b.original, width = _b.width, height = _b.height;
+        var parentSize = this.getParentSize();
+        var max = calculateNewMax(parentSize, this.window.innerWidth, this.window.innerHeight, maxWidth, maxHeight, minWidth, minHeight);
+        maxWidth = max.maxWidth;
+        maxHeight = max.maxHeight;
+        minWidth = max.minWidth;
+        minHeight = max.minHeight;
+        // Calculate new size
+        var _c = this.calculateNewSizeFromDirection(clientX, clientY), newHeight = _c.newHeight, newWidth = _c.newWidth;
+        // Calculate max size from boundary settings
+        var boundaryMax = this.calculateNewMaxFromBoundary(maxWidth, maxHeight);
+        if (this.props.snap && this.props.snap.x) {
+            newWidth = findClosestSnap(newWidth, this.props.snap.x, this.props.snapGap);
+        }
+        if (this.props.snap && this.props.snap.y) {
+            newHeight = findClosestSnap(newHeight, this.props.snap.y, this.props.snapGap);
+        }
+        // Calculate new size from aspect ratio
+        var newSize = this.calculateNewSizeFromAspectRatio(newWidth, newHeight, { width: boundaryMax.maxWidth, height: boundaryMax.maxHeight }, { width: minWidth, height: minHeight });
+        newWidth = newSize.newWidth;
+        newHeight = newSize.newHeight;
+        if (this.props.grid) {
+            var newGridWidth = snap(newWidth, this.props.grid[0]);
+            var newGridHeight = snap(newHeight, this.props.grid[1]);
+            var gap = this.props.snapGap || 0;
+            newWidth = gap === 0 || Math.abs(newGridWidth - newWidth) <= gap ? newGridWidth : newWidth;
+            newHeight = gap === 0 || Math.abs(newGridHeight - newHeight) <= gap ? newGridHeight : newHeight;
+        }
+        var delta = {
+            width: newWidth - original.width,
+            height: newHeight - original.height,
+        };
+        if (width && typeof width === 'string') {
+            if (width.endsWith('%')) {
+                var percent = (newWidth / parentSize.width) * 100;
+                newWidth = percent + "%";
+            }
+            else if (width.endsWith('vw')) {
+                var vw = (newWidth / this.window.innerWidth) * 100;
+                newWidth = vw + "vw";
+            }
+            else if (width.endsWith('vh')) {
+                var vh = (newWidth / this.window.innerHeight) * 100;
+                newWidth = vh + "vh";
+            }
+        }
+        if (height && typeof height === 'string') {
+            if (height.endsWith('%')) {
+                var percent = (newHeight / parentSize.height) * 100;
+                newHeight = percent + "%";
+            }
+            else if (height.endsWith('vw')) {
+                var vw = (newHeight / this.window.innerWidth) * 100;
+                newHeight = vw + "vw";
+            }
+            else if (height.endsWith('vh')) {
+                var vh = (newHeight / this.window.innerHeight) * 100;
+                newHeight = vh + "vh";
+            }
+        }
+        var newState = {
+            width: this.createSizeForCssProperty(newWidth, 'width'),
+            height: this.createSizeForCssProperty(newHeight, 'height'),
+        };
+        if (this.flexDir === 'row') {
+            newState.flexBasis = newState.width;
+        }
+        else if (this.flexDir === 'column') {
+            newState.flexBasis = newState.height;
+        }
+        // For v18, update state sync
+        (0,external_ReactDOM_namespaceObject.flushSync)(function () {
+            _this.setState(newState);
+        });
+        if (this.props.onResize) {
+            this.props.onResize(event, direction, this.resizable, delta);
+        }
+    };
+    Resizable.prototype.onMouseUp = function (event) {
+        var _a = this.state, isResizing = _a.isResizing, direction = _a.direction, original = _a.original;
+        if (!isResizing || !this.resizable) {
+            return;
+        }
+        var delta = {
+            width: this.size.width - original.width,
+            height: this.size.height - original.height,
+        };
+        if (this.props.onResizeStop) {
+            this.props.onResizeStop(event, direction, this.resizable, delta);
+        }
+        if (this.props.size) {
+            this.setState(this.props.size);
+        }
+        this.unbindEvents();
+        this.setState({
+            isResizing: false,
+            backgroundStyle: lib_assign(lib_assign({}, this.state.backgroundStyle), { cursor: 'auto' }),
+        });
+    };
+    Resizable.prototype.updateSize = function (size) {
+        this.setState({ width: size.width, height: size.height });
+    };
+    Resizable.prototype.renderResizer = function () {
+        var _this = this;
+        var _a = this.props, enable = _a.enable, handleStyles = _a.handleStyles, handleClasses = _a.handleClasses, handleWrapperStyle = _a.handleWrapperStyle, handleWrapperClass = _a.handleWrapperClass, handleComponent = _a.handleComponent;
+        if (!enable) {
+            return null;
+        }
+        var resizers = Object.keys(enable).map(function (dir) {
+            if (enable[dir] !== false) {
+                return (external_React_.createElement(Resizer, { key: dir, direction: dir, onResizeStart: _this.onResizeStart, replaceStyles: handleStyles && handleStyles[dir], className: handleClasses && handleClasses[dir] }, handleComponent && handleComponent[dir] ? handleComponent[dir] : null));
+            }
+            return null;
+        });
+        // #93 Wrap the resize box in span (will not break 100% width/height)
+        return (external_React_.createElement("div", { className: handleWrapperClass, style: handleWrapperStyle }, resizers));
+    };
+    Resizable.prototype.render = function () {
+        var _this = this;
+        var extendsProps = Object.keys(this.props).reduce(function (acc, key) {
+            if (definedProps.indexOf(key) !== -1) {
+                return acc;
+            }
+            acc[key] = _this.props[key];
+            return acc;
+        }, {});
+        var style = lib_assign(lib_assign(lib_assign({ position: 'relative', userSelect: this.state.isResizing ? 'none' : 'auto' }, this.props.style), this.sizeStyle), { maxWidth: this.props.maxWidth, maxHeight: this.props.maxHeight, minWidth: this.props.minWidth, minHeight: this.props.minHeight, boxSizing: 'border-box', flexShrink: 0 });
+        if (this.state.flexBasis) {
+            style.flexBasis = this.state.flexBasis;
+        }
+        var Wrapper = this.props.as || 'div';
+        return (external_React_.createElement(Wrapper, lib_assign({ ref: this.ref, style: style, className: this.props.className }, extendsProps),
+            this.state.isResizing && external_React_.createElement("div", { style: this.state.backgroundStyle }),
+            this.props.children,
+            this.renderResizer()));
+    };
+    Resizable.defaultProps = {
+        as: 'div',
+        onResizeStart: function () { },
+        onResize: function () { },
+        onResizeStop: function () { },
+        enable: {
+            top: true,
+            right: true,
+            bottom: true,
+            left: true,
+            topRight: true,
+            bottomRight: true,
+            bottomLeft: true,
+            topLeft: true,
+        },
+        style: {},
+        grid: [1, 1],
+        lockAspectRatio: false,
+        lockAspectRatioExtraWidth: 0,
+        lockAspectRatioExtraHeight: 0,
+        scale: 1,
+        resizeRatio: 1,
+        snapGap: 0,
+    };
+    return Resizable;
+}(external_React_.PureComponent));
+
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/resizable-box/resize-tooltip/utils.js
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+const {
+  clearTimeout: utils_clearTimeout,
+  setTimeout: utils_setTimeout
+} = window;
+const POSITIONS = {
+  bottom: 'bottom',
+  corner: 'corner'
+};
+
+/**
+ * Custom hook that manages resize listener events. It also provides a label
+ * based on current resize width x height values.
+ *
+ * @param  props
+ * @param  props.axis        Only shows the label corresponding to the axis.
+ * @param  props.fadeTimeout Duration (ms) before deactivating the resize label.
+ * @param  props.onResize    Callback when a resize occurs. Provides { width, height } callback.
+ * @param  props.position    Adjusts label value.
+ * @param  props.showPx      Whether to add `PX` to the label.
+ *
+ * @return Properties for hook.
+ */
+function useResizeLabel(_ref) {
+  let {
+    axis,
+    fadeTimeout = 180,
+    onResize = external_lodash_namespaceObject.noop,
+    position = POSITIONS.bottom,
+    showPx = false
+  } = _ref;
+
+  /*
+   * The width/height values derive from this special useResizeAware hook.
+   * This custom hook uses injects an iFrame into the element, allowing it
+   * to tap into the onResize (window) callback events.
+   */
+  const [resizeListener, sizes] = react_resize_aware_dist_default()();
+  /*
+   * Indicates if the x/y axis is preferred.
+   * If set, we will avoid resetting the moveX and moveY values.
+   * This will allow for the preferred axis values to persist in the label.
+   */
+
+  const isAxisControlled = !!axis;
+  /*
+   * The moveX and moveY values are used to track whether the label should
+   * display width, height, or width x height.
+   */
+
+  const [moveX, setMoveX] = (0,external_wp_element_namespaceObject.useState)(false);
+  const [moveY, setMoveY] = (0,external_wp_element_namespaceObject.useState)(false);
+  /*
+   * Cached dimension values to check for width/height updates from the
+   * sizes property from useResizeAware()
+   */
+
+  const {
+    width,
+    height
+  } = sizes;
+  const heightRef = (0,external_wp_element_namespaceObject.useRef)(height);
+  const widthRef = (0,external_wp_element_namespaceObject.useRef)(width);
+  /*
+   * This timeout is used with setMoveX and setMoveY to determine of
+   * both width and height values have changed at (roughly) the same time.
+   */
+
+  const moveTimeoutRef = (0,external_wp_element_namespaceObject.useRef)();
+
+  const unsetMoveXY = () => {
+    /*
+     * If axis is controlled, we will avoid resetting the moveX and moveY values.
+     * This will allow for the preferred axis values to persist in the label.
+     */
+    if (isAxisControlled) return;
+    setMoveX(false);
+    setMoveY(false);
+  };
+
+  const debounceUnsetMoveXY = () => {
+    if (moveTimeoutRef.current) {
+      utils_clearTimeout(moveTimeoutRef.current);
+    }
+
+    moveTimeoutRef.current = utils_setTimeout(unsetMoveXY, fadeTimeout);
+  };
+
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    /*
+     * On the initial render of useResizeAware, the height and width values are
+     * null. They are calculated then set using via an internal useEffect hook.
+     */
+    const isRendered = width !== null || height !== null;
+    if (!isRendered) return;
+    const didWidthChange = width !== widthRef.current;
+    const didHeightChange = height !== heightRef.current;
+    if (!didWidthChange && !didHeightChange) return;
+    /*
+     * After the initial render, the useResizeAware will set the first
+     * width and height values. We'll sync those values with our
+     * width and height refs. However, we shouldn't render our Tooltip
+     * label on this first cycle.
+     */
+
+    if (width && !widthRef.current && height && !heightRef.current) {
+      widthRef.current = width;
+      heightRef.current = height;
+      return;
+    }
+    /*
+     * After the first cycle, we can track width and height changes.
+     */
+
+
+    if (didWidthChange) {
+      setMoveX(true);
+      widthRef.current = width;
+    }
+
+    if (didHeightChange) {
+      setMoveY(true);
+      heightRef.current = height;
+    }
+
+    onResize({
+      width,
+      height
+    });
+    debounceUnsetMoveXY();
+  }, [width, height]);
+  const label = getSizeLabel({
+    axis,
+    height,
+    moveX,
+    moveY,
+    position,
+    showPx,
+    width
+  });
+  return {
+    label,
+    resizeListener
+  };
+}
+
+/**
+ * Gets the resize label based on width and height values (as well as recent changes).
+ *
+ * @param  props
+ * @param  props.axis     Only shows the label corresponding to the axis.
+ * @param  props.height   Height value.
+ * @param  props.moveX    Recent width (x axis) changes.
+ * @param  props.moveY    Recent width (y axis) changes.
+ * @param  props.position Adjusts label value.
+ * @param  props.showPx   Whether to add `PX` to the label.
+ * @param  props.width    Width value.
+ *
+ * @return The rendered label.
+ */
+function getSizeLabel(_ref2) {
+  let {
+    axis,
+    height,
+    moveX = false,
+    moveY = false,
+    position = POSITIONS.bottom,
+    showPx = false,
+    width
+  } = _ref2;
+  if (!moveX && !moveY) return undefined;
+  /*
+   * Corner position...
+   * We want the label to appear like width x height.
+   */
+
+  if (position === POSITIONS.corner) {
+    return `${width} x ${height}`;
+  }
+  /*
+   * Other POSITIONS...
+   * The label will combine both width x height values if both
+   * values have recently been changed.
+   *
+   * Otherwise, only width or height will be displayed.
+   * The `PX` unit will be added, if specified by the `showPx` prop.
+   */
+
+
+  const labelUnit = showPx ? ' px' : '';
+
+  if (axis) {
+    if (axis === 'x' && moveX) {
+      return `${width}${labelUnit}`;
+    }
+
+    if (axis === 'y' && moveY) {
+      return `${height}${labelUnit}`;
+    }
+  }
+
+  if (moveX && moveY) {
+    return `${width} x ${height}`;
+  }
+
+  if (moveX) {
+    return `${width}${labelUnit}`;
+  }
+
+  if (moveY) {
+    return `${height}${labelUnit}`;
+  }
+
+  return undefined;
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js
+
+
+function resize_tooltip_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+const resize_tooltip_styles_Root = emotion_styled_base_browser_esm("div",  true ? {
+  target: "ekdag503"
+} : 0)( true ? {
+  name: "1cd7zoc",
+  styles: "bottom:0;box-sizing:border-box;left:0;pointer-events:none;position:absolute;right:0;top:0"
+} : 0);
+const TooltipWrapper = emotion_styled_base_browser_esm("div",  true ? {
+  target: "ekdag502"
+} : 0)( true ? {
+  name: "ajymcs",
+  styles: "align-items:center;box-sizing:border-box;display:inline-flex;justify-content:center;opacity:0;pointer-events:none;transition:opacity 120ms linear"
+} : 0);
+const resize_tooltip_styles_Tooltip = emotion_styled_base_browser_esm("div",  true ? {
+  target: "ekdag501"
+} : 0)("background:", COLORS.ui.border, ";border-radius:2px;box-sizing:border-box;font-size:12px;color:", COLORS.ui.textDark, ";padding:4px 8px;position:relative;" + ( true ? "" : 0)); // TODO: Resolve need to use &&& to increase specificity
+// https://github.com/WordPress/gutenberg/issues/18483
+
+const LabelText = /*#__PURE__*/emotion_styled_base_browser_esm(text_component,  true ? {
+  target: "ekdag500"
+} : 0)("&&&{color:", COLORS.ui.textDark, ";display:block;font-size:13px;line-height:1.4;white-space:nowrap;}" + ( true ? "" : 0));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/resizable-box/resize-tooltip/label.js
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+const CORNER_OFFSET = 4;
+const CURSOR_OFFSET_TOP = CORNER_OFFSET * 2.5;
+
+function resize_tooltip_label_Label(_ref, ref) {
+  let {
+    label,
+    position = POSITIONS.corner,
+    zIndex = 1000,
+    ...props
+  } = _ref;
+  const showLabel = !!label;
+  const isBottom = position === POSITIONS.bottom;
+  const isCorner = position === POSITIONS.corner;
+  if (!showLabel) return null;
+  let style = {
+    opacity: showLabel ? 1 : undefined,
+    zIndex
+  };
+  let labelStyle = {};
+
+  if (isBottom) {
+    style = { ...style,
+      position: 'absolute',
+      bottom: CURSOR_OFFSET_TOP * -1,
+      left: '50%',
+      transform: 'translate(-50%, 0)'
+    };
+    labelStyle = {
+      transform: `translate(0, 100%)`
+    };
+  }
+
+  if (isCorner) {
+    style = { ...style,
+      position: 'absolute',
+      top: CORNER_OFFSET,
+      right: (0,external_wp_i18n_namespaceObject.isRTL)() ? undefined : CORNER_OFFSET,
+      left: (0,external_wp_i18n_namespaceObject.isRTL)() ? CORNER_OFFSET : undefined
+    };
+  }
+
+  return (0,external_wp_element_namespaceObject.createElement)(TooltipWrapper, extends_extends({
+    "aria-hidden": "true",
+    className: "components-resizable-tooltip__tooltip-wrapper",
+    ref: ref,
+    style: style
+  }, props), (0,external_wp_element_namespaceObject.createElement)(resize_tooltip_styles_Tooltip, {
+    className: "components-resizable-tooltip__tooltip",
+    style: labelStyle
+  }, (0,external_wp_element_namespaceObject.createElement)(LabelText, {
+    as: "span"
+  }, label)));
+}
+
+const label_ForwardedComponent = (0,external_wp_element_namespaceObject.forwardRef)(resize_tooltip_label_Label);
+/* harmony default export */ var resize_tooltip_label = (label_ForwardedComponent);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/resizable-box/resize-tooltip/index.js
+
+
+
+/**
+ * External dependencies
+ */
+
+
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+function ResizeTooltip(_ref, ref) {
+  let {
+    axis,
+    className,
+    fadeTimeout = 180,
+    isVisible = true,
+    labelRef,
+    onResize = external_lodash_namespaceObject.noop,
+    position = POSITIONS.bottom,
+    showPx = true,
+    zIndex = 1000,
+    ...props
+  } = _ref;
+  const {
+    label,
+    resizeListener
+  } = useResizeLabel({
+    axis,
+    fadeTimeout,
+    onResize,
+    showPx,
+    position
+  });
+  if (!isVisible) return null;
+  const classes = classnames_default()('components-resize-tooltip', className);
+  return (0,external_wp_element_namespaceObject.createElement)(resize_tooltip_styles_Root, extends_extends({
+    "aria-hidden": "true",
+    className: classes,
+    ref: ref
+  }, props), resizeListener, (0,external_wp_element_namespaceObject.createElement)(resize_tooltip_label, {
+    "aria-hidden": props['aria-hidden'],
+    label: label,
+    position: position,
+    ref: labelRef,
+    zIndex: zIndex
+  }));
+}
+
+const resize_tooltip_ForwardedComponent = (0,external_wp_element_namespaceObject.forwardRef)(ResizeTooltip);
+/* harmony default export */ var resize_tooltip = (resize_tooltip_ForwardedComponent);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/resizable-box/index.js
+
+
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * External dependencies
+ */
+
+
+
+
+/**
+ * Internal dependencies
+ */
+
+const HANDLE_CLASS_NAME = 'components-resizable-box__handle';
+const SIDE_HANDLE_CLASS_NAME = 'components-resizable-box__side-handle';
+const CORNER_HANDLE_CLASS_NAME = 'components-resizable-box__corner-handle';
+const HANDLE_CLASSES = {
+  top: classnames_default()(HANDLE_CLASS_NAME, SIDE_HANDLE_CLASS_NAME, 'components-resizable-box__handle-top'),
+  right: classnames_default()(HANDLE_CLASS_NAME, SIDE_HANDLE_CLASS_NAME, 'components-resizable-box__handle-right'),
+  bottom: classnames_default()(HANDLE_CLASS_NAME, SIDE_HANDLE_CLASS_NAME, 'components-resizable-box__handle-bottom'),
+  left: classnames_default()(HANDLE_CLASS_NAME, SIDE_HANDLE_CLASS_NAME, 'components-resizable-box__handle-left'),
+  topLeft: classnames_default()(HANDLE_CLASS_NAME, CORNER_HANDLE_CLASS_NAME, 'components-resizable-box__handle-top', 'components-resizable-box__handle-left'),
+  topRight: classnames_default()(HANDLE_CLASS_NAME, CORNER_HANDLE_CLASS_NAME, 'components-resizable-box__handle-top', 'components-resizable-box__handle-right'),
+  bottomRight: classnames_default()(HANDLE_CLASS_NAME, CORNER_HANDLE_CLASS_NAME, 'components-resizable-box__handle-bottom', 'components-resizable-box__handle-right'),
+  bottomLeft: classnames_default()(HANDLE_CLASS_NAME, CORNER_HANDLE_CLASS_NAME, 'components-resizable-box__handle-bottom', 'components-resizable-box__handle-left')
+}; // Removes the inline styles in the drag handles.
+
+const HANDLE_STYLES_OVERRIDES = {
+  width: undefined,
+  height: undefined,
+  top: undefined,
+  right: undefined,
+  bottom: undefined,
+  left: undefined
+};
+const HANDLE_STYLES = {
+  top: HANDLE_STYLES_OVERRIDES,
+  right: HANDLE_STYLES_OVERRIDES,
+  bottom: HANDLE_STYLES_OVERRIDES,
+  left: HANDLE_STYLES_OVERRIDES,
+  topLeft: HANDLE_STYLES_OVERRIDES,
+  topRight: HANDLE_STYLES_OVERRIDES,
+  bottomRight: HANDLE_STYLES_OVERRIDES,
+  bottomLeft: HANDLE_STYLES_OVERRIDES
+};
+
+function ResizableBox(_ref, ref) {
+  let {
+    className,
+    children,
+    showHandle = true,
+    __experimentalShowTooltip: showTooltip = false,
+    __experimentalTooltipProps: tooltipProps = {},
+    ...props
+  } = _ref;
+  return (0,external_wp_element_namespaceObject.createElement)(Resizable, extends_extends({
+    className: classnames_default()('components-resizable-box__container', showHandle && 'has-show-handle', className),
+    handleClasses: HANDLE_CLASSES,
+    handleStyles: HANDLE_STYLES,
+    ref: ref
+  }, props), children, showTooltip && (0,external_wp_element_namespaceObject.createElement)(resize_tooltip, tooltipProps));
+}
+
+/* harmony default export */ var resizable_box = ((0,external_wp_element_namespaceObject.forwardRef)(ResizableBox));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/responsive-wrapper/index.js
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+function ResponsiveWrapper(_ref) {
+  let {
+    naturalWidth,
+    naturalHeight,
+    children,
+    isInline = false
+  } = _ref;
+  const [containerResizeListener, {
+    width: containerWidth
+  }] = (0,external_wp_compose_namespaceObject.useResizeObserver)();
+
+  if (external_wp_element_namespaceObject.Children.count(children) !== 1) {
+    return null;
+  }
+
+  const imageStyle = {
+    paddingBottom: naturalWidth < containerWidth ? naturalHeight : naturalHeight / naturalWidth * 100 + '%'
+  };
+  const TagName = isInline ? 'span' : 'div';
+  return (0,external_wp_element_namespaceObject.createElement)(TagName, {
+    className: "components-responsive-wrapper"
+  }, containerResizeListener, (0,external_wp_element_namespaceObject.createElement)(TagName, {
+    style: imageStyle
+  }), (0,external_wp_element_namespaceObject.cloneElement)(children, {
+    className: classnames_default()('components-responsive-wrapper__content', children.props.className)
+  }));
+}
+
+/* harmony default export */ var responsive_wrapper = (ResponsiveWrapper);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/sandbox/index.js
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+const observeAndResizeJS = `
+	( function() {
+		var observer;
+
+		if ( ! window.MutationObserver || ! document.body || ! window.parent ) {
+			return;
+		}
+
+		function sendResize() {
+			var clientBoundingRect = document.body.getBoundingClientRect();
+
+			window.parent.postMessage( {
+				action: 'resize',
+				width: clientBoundingRect.width,
+				height: clientBoundingRect.height,
+			}, '*' );
+		}
+
+		observer = new MutationObserver( sendResize );
+		observer.observe( document.body, {
+			attributes: true,
+			attributeOldValue: false,
+			characterData: true,
+			characterDataOldValue: false,
+			childList: true,
+			subtree: true
+		} );
+
+		window.addEventListener( 'load', sendResize, true );
+
+		// Hack: Remove viewport unit styles, as these are relative
+		// the iframe root and interfere with our mechanism for
+		// determining the unconstrained page bounds.
+		function removeViewportStyles( ruleOrNode ) {
+			if( ruleOrNode.style ) {
+				[ 'width', 'height', 'minHeight', 'maxHeight' ].forEach( function( style ) {
+					if ( /^\\d+(vmin|vmax|vh|vw)$/.test( ruleOrNode.style[ style ] ) ) {
+						ruleOrNode.style[ style ] = '';
+					}
+				} );
+			}
+		}
+
+		Array.prototype.forEach.call( document.querySelectorAll( '[style]' ), removeViewportStyles );
+		Array.prototype.forEach.call( document.styleSheets, function( stylesheet ) {
+			Array.prototype.forEach.call( stylesheet.cssRules || stylesheet.rules, removeViewportStyles );
+		} );
+
+		document.body.style.position = 'absolute';
+		document.body.style.width = '100%';
+		document.body.setAttribute( 'data-resizable-iframe-connected', '' );
+
+		sendResize();
+
+		// Resize events can change the width of elements with 100% width, but we don't
+		// get an DOM mutations for that, so do the resize when the window is resized, too.
+		window.addEventListener( 'resize', sendResize, true );
+} )();`;
+const style = `
+	body {
+		margin: 0;
+	}
+	html,
+	body,
+	body > div,
+	body > div iframe {
+		width: 100%;
+	}
+	html.wp-has-aspect-ratio,
+	body.wp-has-aspect-ratio,
+	body.wp-has-aspect-ratio > div,
+	body.wp-has-aspect-ratio > div iframe {
+		height: 100%;
+		overflow: hidden; /* If it has an aspect ratio, it shouldn't scroll. */
+	}
+	body > div > * {
+		margin-top: 0 !important; /* Has to have !important to override inline styles. */
+		margin-bottom: 0 !important;
+	}
+`;
+function Sandbox(_ref) {
+  let {
+    html = '',
+    title = '',
+    type,
+    styles = [],
+    scripts = [],
+    onFocus
+  } = _ref;
+  const ref = (0,external_wp_element_namespaceObject.useRef)();
+  const [width, setWidth] = (0,external_wp_element_namespaceObject.useState)(0);
+  const [height, setHeight] = (0,external_wp_element_namespaceObject.useState)(0);
+
+  function isFrameAccessible() {
+    try {
+      return !!ref.current.contentDocument.body;
+    } catch (e) {
+      return false;
+    }
+  }
+
+  function trySandbox() {
+    let forceRerender = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
+
+    if (!isFrameAccessible()) {
+      return;
+    }
+
+    const {
+      contentDocument,
+      ownerDocument
+    } = ref.current;
+    const {
+      body
+    } = contentDocument;
+
+    if (!forceRerender && null !== body.getAttribute('data-resizable-iframe-connected')) {
+      return;
+    } // Put the html snippet into a html document, and then write it to the iframe's document
+    // we can use this in the future to inject custom styles or scripts.
+    // Scripts go into the body rather than the head, to support embedded content such as Instagram
+    // that expect the scripts to be part of the body.
+
+
+    const htmlDoc = (0,external_wp_element_namespaceObject.createElement)("html", {
+      lang: ownerDocument.documentElement.lang,
+      className: type
+    }, (0,external_wp_element_namespaceObject.createElement)("head", null, (0,external_wp_element_namespaceObject.createElement)("title", null, title), (0,external_wp_element_namespaceObject.createElement)("style", {
+      dangerouslySetInnerHTML: {
+        __html: style
+      }
+    }), styles.map((rules, i) => (0,external_wp_element_namespaceObject.createElement)("style", {
+      key: i,
+      dangerouslySetInnerHTML: {
+        __html: rules
+      }
+    }))), (0,external_wp_element_namespaceObject.createElement)("body", {
+      "data-resizable-iframe-connected": "data-resizable-iframe-connected",
+      className: type
+    }, (0,external_wp_element_namespaceObject.createElement)("div", {
+      dangerouslySetInnerHTML: {
+        __html: html
+      }
+    }), (0,external_wp_element_namespaceObject.createElement)("script", {
+      type: "text/javascript",
+      dangerouslySetInnerHTML: {
+        __html: observeAndResizeJS
+      }
+    }), scripts.map(src => (0,external_wp_element_namespaceObject.createElement)("script", {
+      key: src,
+      src: src
+    })))); // Writing the document like this makes it act in the same way as if it was
+    // loaded over the network, so DOM creation and mutation, script execution, etc.
+    // all work as expected.
+
+    contentDocument.open();
+    contentDocument.write('<!DOCTYPE html>' + (0,external_wp_element_namespaceObject.renderToString)(htmlDoc));
+    contentDocument.close();
+  }
+
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    trySandbox();
+
+    function tryNoForceSandbox() {
+      trySandbox(false);
+    }
+
+    function checkMessageForResize(event) {
+      const iframe = ref.current; // Verify that the mounted element is the source of the message.
+
+      if (!iframe || iframe.contentWindow !== event.source) {
+        return;
+      } // Attempt to parse the message data as JSON if passed as string.
+
+
+      let data = event.data || {};
+
+      if ('string' === typeof data) {
+        try {
+          data = JSON.parse(data);
+        } catch (e) {}
+      } // Update the state only if the message is formatted as we expect,
+      // i.e. as an object with a 'resize' action.
+
+
+      if ('resize' !== data.action) {
+        return;
+      }
+
+      setWidth(data.width);
+      setHeight(data.height);
+    }
+
+    const {
+      ownerDocument
+    } = ref.current;
+    const {
+      defaultView
+    } = ownerDocument; // This used to be registered using <iframe onLoad={} />, but it made the iframe blank
+    // after reordering the containing block. See these two issues for more details:
+    // https://github.com/WordPress/gutenberg/issues/6146
+    // https://github.com/facebook/react/issues/18752
+
+    ref.current.addEventListener('load', tryNoForceSandbox, false);
+    defaultView.addEventListener('message', checkMessageForResize);
+    return () => {
+      var _ref$current;
+
+      (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.removeEventListener('load', tryNoForceSandbox, false);
+      defaultView.addEventListener('message', checkMessageForResize);
+    };
+  }, []);
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    trySandbox();
+  }, [title, type, styles, scripts]);
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    trySandbox(true);
+  }, [html]);
+  return (0,external_wp_element_namespaceObject.createElement)("iframe", {
+    ref: (0,external_wp_compose_namespaceObject.useMergeRefs)([ref, (0,external_wp_compose_namespaceObject.useFocusableIframe)()]),
+    title: title,
+    className: "components-sandbox",
+    sandbox: "allow-scripts allow-same-origin allow-presentation",
+    onFocus: onFocus,
+    width: Math.ceil(width),
+    height: Math.ceil(height)
+  });
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/snackbar/index.js
+
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+const NOTICE_TIMEOUT = 10000;
+/** @typedef {import('@wordpress/element').WPElement} WPElement */
+
+/**
+ * Custom hook which announces the message with the given politeness, if a
+ * valid message is provided.
+ *
+ * @param {string|WPElement}     [message]  Message to announce.
+ * @param {'polite'|'assertive'} politeness Politeness to announce.
+ */
+
+function snackbar_useSpokenMessage(message, politeness) {
+  const spokenMessage = typeof message === 'string' ? message : (0,external_wp_element_namespaceObject.renderToString)(message);
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    if (spokenMessage) {
+      (0,external_wp_a11y_namespaceObject.speak)(spokenMessage, politeness);
+    }
+  }, [spokenMessage, politeness]);
+}
+
+function Snackbar(_ref, ref) {
+  let {
+    className,
+    children,
+    spokenMessage = children,
+    politeness = 'polite',
+    actions = [],
+    onRemove = external_lodash_namespaceObject.noop,
+    icon = null,
+    explicitDismiss = false,
+    // onDismiss is a callback executed when the snackbar is dismissed.
+    // It is distinct from onRemove, which _looks_ like a callback but is
+    // actually the function to call to remove the snackbar from the UI.
+    onDismiss = external_lodash_namespaceObject.noop,
+    listRef
+  } = _ref;
+  onDismiss = onDismiss || external_lodash_namespaceObject.noop;
+
+  function dismissMe(event) {
+    if (event && event.preventDefault) {
+      event.preventDefault();
+    } // Prevent focus loss by moving it to the list element.
+
+
+    listRef.current.focus();
+    onDismiss();
+    onRemove();
+  }
+
+  function onActionClick(event, onClick) {
+    event.stopPropagation();
+    onRemove();
+
+    if (onClick) {
+      onClick(event);
+    }
+  }
+
+  snackbar_useSpokenMessage(spokenMessage, politeness); // Only set up the timeout dismiss if we're not explicitly dismissing.
+
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    const timeoutHandle = setTimeout(() => {
+      if (!explicitDismiss) {
+        onDismiss();
+        onRemove();
+      }
+    }, NOTICE_TIMEOUT);
+    return () => clearTimeout(timeoutHandle);
+  }, [onDismiss, onRemove]);
+  const classes = classnames_default()(className, 'components-snackbar', {
+    'components-snackbar-explicit-dismiss': !!explicitDismiss
+  });
+
+  if (actions && actions.length > 1) {
+    // We need to inform developers that snackbar only accepts 1 action.
+    typeof process !== "undefined" && process.env && "production" !== "production" ? 0 : void 0; // return first element only while keeping it inside an array
+
+    actions = [actions[0]];
+  }
+
+  const snackbarContentClassnames = classnames_default()('components-snackbar__content', {
+    'components-snackbar__content-with-icon': !!icon
+  });
+  return (0,external_wp_element_namespaceObject.createElement)("div", {
+    ref: ref,
+    className: classes,
+    onClick: !explicitDismiss ? dismissMe : external_lodash_namespaceObject.noop,
+    tabIndex: "0",
+    role: !explicitDismiss ? 'button' : '',
+    onKeyPress: !explicitDismiss ? dismissMe : external_lodash_namespaceObject.noop,
+    "aria-label": !explicitDismiss ? (0,external_wp_i18n_namespaceObject.__)('Dismiss this notice') : ''
+  }, (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: snackbarContentClassnames
+  }, icon && (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: "components-snackbar__icon"
+  }, icon), children, actions.map((_ref2, index) => {
+    let {
+      label,
+      onClick,
+      url
+    } = _ref2;
+    return (0,external_wp_element_namespaceObject.createElement)(build_module_button, {
+      key: index,
+      href: url,
+      variant: "tertiary",
+      onClick: event => onActionClick(event, onClick),
+      className: "components-snackbar__action"
+    }, label);
+  }), explicitDismiss && (0,external_wp_element_namespaceObject.createElement)("span", {
+    role: "button",
+    "aria-label": "Dismiss this notice",
+    tabIndex: "0",
+    className: "components-snackbar__dismiss-button",
+    onClick: dismissMe,
+    onKeyPress: dismissMe
+  }, "\u2715")));
+}
+
+/* harmony default export */ var snackbar = ((0,external_wp_element_namespaceObject.forwardRef)(Snackbar));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/snackbar/list.js
+
+
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+const SNACKBAR_VARIANTS = {
+  init: {
+    height: 0,
+    opacity: 0
+  },
+  open: {
+    height: 'auto',
+    opacity: 1,
+    transition: {
+      height: {
+        stiffness: 1000,
+        velocity: -100
+      }
+    }
+  },
+  exit: {
+    opacity: 0,
+    transition: {
+      duration: 0.5
+    }
+  }
+};
+const SNACKBAR_REDUCE_MOTION_VARIANTS = {
+  init: false,
+  open: false,
+  exit: false
+};
+/**
+ * Renders a list of notices.
+ *
+ * @param {Object}   $0           Props passed to the component.
+ * @param {Array}    $0.notices   Array of notices to render.
+ * @param {Function} $0.onRemove  Function called when a notice should be removed / dismissed.
+ * @param {Object}   $0.className Name of the class used by the component.
+ * @param {Object}   $0.children  Array of children to be rendered inside the notice list.
+ *
+ * @return {Object} The rendered notices list.
+ */
+
+function SnackbarList(_ref) {
+  let {
+    notices,
+    className,
+    children,
+    onRemove = external_lodash_namespaceObject.noop
+  } = _ref;
+  const listRef = (0,external_wp_element_namespaceObject.useRef)();
+  const isReducedMotion = (0,external_wp_compose_namespaceObject.useReducedMotion)();
+  className = classnames_default()('components-snackbar-list', className);
+
+  const removeNotice = notice => () => onRemove(notice.id);
+
+  return (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: className,
+    tabIndex: -1,
+    ref: listRef
+  }, children, (0,external_wp_element_namespaceObject.createElement)(AnimatePresence, null, notices.map(notice => {
+    return (0,external_wp_element_namespaceObject.createElement)(motion.div, {
+      layout: !isReducedMotion // See https://www.framer.com/docs/animation/#layout-animations
+      ,
+      initial: 'init',
+      animate: 'open',
+      exit: 'exit',
+      key: notice.id,
+      variants: isReducedMotion ? SNACKBAR_REDUCE_MOTION_VARIANTS : SNACKBAR_VARIANTS
+    }, (0,external_wp_element_namespaceObject.createElement)("div", {
+      className: "components-snackbar-list__notice-container"
+    }, (0,external_wp_element_namespaceObject.createElement)(snackbar, extends_extends({}, (0,external_lodash_namespaceObject.omit)(notice, ['content']), {
+      onRemove: removeNotice(notice),
+      listRef: listRef
+    }), notice.content)));
+  })));
+}
+
+/* harmony default export */ var snackbar_list = (SnackbarList);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/spinner/styles.js
+
+
+function spinner_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+const spinAnimation = emotion_react_browser_esm_keyframes`
+	from {
+		transform: rotate(0deg);
+	}
+	to {
+		transform: rotate(360deg);
+	}
+ `;
+const StyledSpinner = emotion_styled_base_browser_esm("svg",  true ? {
+  target: "e1bj2jdf2"
+} : 0)("width:", config_values.spinnerSize, "px;height:", config_values.spinnerSize, "px;display:inline-block;margin:5px 11px 0;position:relative;color:var( --wp-admin-theme-color );overflow:visible;" + ( true ? "" : 0));
+const commonPathProps =  true ? {
+  name: "9s4963",
+  styles: "fill:transparent;stroke-width:1.5px"
+} : 0;
+const SpinnerTrack = emotion_styled_base_browser_esm("circle",  true ? {
+  target: "e1bj2jdf1"
+} : 0)(commonPathProps, ";stroke:", COLORS.gray[300], ";" + ( true ? "" : 0));
+const SpinnerIndicator = emotion_styled_base_browser_esm("path",  true ? {
+  target: "e1bj2jdf0"
+} : 0)(commonPathProps, ";stroke:currentColor;stroke-linecap:round;transform-origin:50% 50%;animation:1.4s linear infinite both ", spinAnimation, ";" + ( true ? "" : 0));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/spinner/index.js
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+/**
+ * @typedef OwnProps
+ *
+ * @property {string} [className] Class name
+ */
+
+/** @typedef {import('react').ComponentPropsWithoutRef<'svg'> & OwnProps} Props */
+
+/**
+ * @param {Props} props
+ * @return {JSX.Element} Element
+ */
+
+function Spinner(_ref) {
+  let {
+    className,
+    ...props
+  } = _ref;
+  return (0,external_wp_element_namespaceObject.createElement)(StyledSpinner, extends_extends({
+    className: classnames_default()('components-spinner', className),
+    viewBox: "0 0 100 100",
+    xmlns: "http://www.w3.org/2000/svg",
+    role: "presentation",
+    focusable: "false"
+  }, props), (0,external_wp_element_namespaceObject.createElement)(SpinnerTrack, {
+    cx: "50",
+    cy: "50",
+    r: "50",
+    vectorEffect: "non-scaling-stroke"
+  }), (0,external_wp_element_namespaceObject.createElement)(SpinnerIndicator, {
+    d: "m 50 0 a 50 50 0 0 1 50 50",
+    vectorEffect: "non-scaling-stroke"
+  }));
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/surface/component.js
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+/**
+ * @param {import('../ui/context').WordPressComponentProps<import('./types').Props, 'div'>} props
+ * @param {import('react').ForwardedRef<any>}                                               forwardedRef
+ */
+
+function component_Surface(props, forwardedRef) {
+  const surfaceProps = useSurface(props);
+  return (0,external_wp_element_namespaceObject.createElement)(component, extends_extends({}, surfaceProps, {
+    ref: forwardedRef
+  }));
+}
+/**
+ * `Surface` is a core component that renders a primary background color.
+ *
+ * In the example below, notice how the `Surface` renders in white (or dark gray if in dark mode).
+ *
+ * ```jsx
+ * import {
+ *	__experimentalSurface as Surface,
+ *	__experimentalText as Text,
+ * } from '@wordpress/components';
+ *
+ * function Example() {
+ * 	return (
+ * 		<Surface>
+ * 			<Text>Code is Poetry</Text>
+ * 		</Surface>
+ * 	);
+ * }
+ * ```
+ */
+
+
+const ConnectedSurface = contextConnect(component_Surface, 'Surface');
+/* harmony default export */ var surface_component = (ConnectedSurface);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/tab-panel/index.js
+
+
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+const TabButton = _ref => {
+  let {
+    tabId,
+    onClick,
+    children,
+    selected,
+    ...rest
+  } = _ref;
+  return (0,external_wp_element_namespaceObject.createElement)(build_module_button, extends_extends({
+    role: "tab",
+    tabIndex: selected ? null : -1,
+    "aria-selected": selected,
+    id: tabId,
+    onClick: onClick
+  }, rest), children);
+};
+
+function TabPanel(_ref2) {
+  var _selectedTab$name;
+
+  let {
+    className,
+    children,
+    tabs,
+    initialTabName,
+    orientation = 'horizontal',
+    activeClass = 'is-active',
+    onSelect = external_lodash_namespaceObject.noop
+  } = _ref2;
+  const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(TabPanel, 'tab-panel');
+  const [selected, setSelected] = (0,external_wp_element_namespaceObject.useState)(null);
+
+  const handleClick = tabKey => {
+    setSelected(tabKey);
+    onSelect(tabKey);
+  };
+
+  const onNavigate = (childIndex, child) => {
+    child.click();
+  };
+
+  const selectedTab = (0,external_lodash_namespaceObject.find)(tabs, {
+    name: selected
+  });
+  const selectedId = `${instanceId}-${(_selectedTab$name = selectedTab === null || selectedTab === void 0 ? void 0 : selectedTab.name) !== null && _selectedTab$name !== void 0 ? _selectedTab$name : 'none'}`;
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    const newSelectedTab = (0,external_lodash_namespaceObject.find)(tabs, {
+      name: selected
+    });
+
+    if (!newSelectedTab) {
+      setSelected(initialTabName || (tabs.length > 0 ? tabs[0].name : null));
+    }
+  }, [tabs]);
+  return (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: className
+  }, (0,external_wp_element_namespaceObject.createElement)(navigable_container_menu, {
+    role: "tablist",
+    orientation: orientation,
+    onNavigate: onNavigate,
+    className: "components-tab-panel__tabs"
+  }, tabs.map(tab => (0,external_wp_element_namespaceObject.createElement)(TabButton, {
+    className: classnames_default()('components-tab-panel__tabs-item', tab.className, {
+      [activeClass]: tab.name === selected
+    }),
+    tabId: `${instanceId}-${tab.name}`,
+    "aria-controls": `${instanceId}-${tab.name}-view`,
+    selected: tab.name === selected,
+    key: tab.name,
+    onClick: (0,external_lodash_namespaceObject.partial)(handleClick, tab.name)
+  }, tab.title))), selectedTab && (0,external_wp_element_namespaceObject.createElement)("div", {
+    key: selectedId,
+    "aria-labelledby": selectedId,
+    role: "tabpanel",
+    id: `${selectedId}-view`,
+    className: "components-tab-panel__tab-content"
+  }, children(selectedTab)));
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/text-control/index.js
+
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+/**
+ * @typedef OwnProps
+ * @property {string}                  label                 Label for the control.
+ * @property {boolean}                 [hideLabelFromVision] Whether to accessibly hide the label.
+ * @property {string}                  value                 Value of the input.
+ * @property {string}                  [help]                Optional help text for the control.
+ * @property {string}                  [className]           Classname passed to BaseControl wrapper
+ * @property {(value: string) => void} onChange              Handle changes.
+ * @property {string}                  [type='text']         Type of the input.
+ */
+
+/** @typedef {OwnProps & import('react').ComponentProps<'input'>} Props */
+
+/**
+ *
+ * @param {Props}                                          props Props
+ * @param {import('react').ForwardedRef<HTMLInputElement>} ref
+ */
+
+function TextControl(_ref, ref) {
+  let {
+    label,
+    hideLabelFromVision,
+    value,
+    help,
+    className,
+    onChange,
+    type = 'text',
+    ...props
+  } = _ref;
+  const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(TextControl);
+  const id = `inspector-text-control-${instanceId}`;
+
+  const onChangeValue = (
+  /** @type {import('react').ChangeEvent<HTMLInputElement>} */
+  event) => onChange(event.target.value);
+
+  return (0,external_wp_element_namespaceObject.createElement)(base_control, {
+    label: label,
+    hideLabelFromVision: hideLabelFromVision,
+    id: id,
+    help: help,
+    className: className
+  }, (0,external_wp_element_namespaceObject.createElement)("input", extends_extends({
+    className: "components-text-control__input",
+    type: type,
+    id: id,
+    value: value,
+    onChange: onChangeValue,
+    "aria-describedby": !!help ? id + '__help' : undefined,
+    ref: ref
+  }, props)));
+}
+
+/* harmony default export */ var text_control = ((0,external_wp_element_namespaceObject.forwardRef)(TextControl));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/input/base.js
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+const inputStyleNeutral = /*#__PURE__*/emotion_react_browser_esm_css("box-shadow:0 0 0 transparent;transition:box-shadow 0.1s linear;border-radius:", config_values.radiusBlockUi, ";border:", config_values.borderWidth, " solid ", COLORS.ui.border, ";" + ( true ? "" : 0),  true ? "" : 0);
+const inputStyleFocus = /*#__PURE__*/emotion_react_browser_esm_css("border-color:var( --wp-admin-theme-color );box-shadow:0 0 0 calc( ", config_values.borderWidthFocus, " - ", config_values.borderWidth, " ) var( --wp-admin-theme-color );outline:2px solid transparent;" + ( true ? "" : 0),  true ? "" : 0);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/breakpoint-values.js
+/* harmony default export */ var breakpoint_values = ({
+  huge: '1440px',
+  wide: '1280px',
+  'x-large': '1080px',
+  large: '960px',
+  // admin sidebar auto folds
+  medium: '782px',
+  // Adminbar goes big.
+  small: '600px',
+  mobile: '480px',
+  'zoomed-in': '280px'
+});
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/breakpoint.js
+/**
+ * Internal dependencies
+ */
+
+/**
+ * @param {keyof breakpoints} point
+ * @return {string} Media query declaration.
+ */
+
+const breakpoint = point => `@media (min-width: ${breakpoint_values[point]})`;
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/input/input-control.js
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+const inputControl = /*#__PURE__*/emotion_react_browser_esm_css("font-family:", font('default.fontFamily'), ";padding:6px 8px;", inputStyleNeutral, ";font-size:", font('mobileTextMinFontSize'), ";line-height:normal;", breakpoint('small'), "{font-size:", font('default.fontSize'), ";line-height:normal;}&:focus{", inputStyleFocus, ";}&::-webkit-input-placeholder{color:", COLORS.darkGray.placeholder, ";}&::-moz-placeholder{opacity:1;color:", COLORS.darkGray.placeholder, ";}&:-ms-input-placeholder{color:", COLORS.darkGray.placeholder, ";}.is-dark-theme &{&::-webkit-input-placeholder{color:", COLORS.lightGray.placeholder, ";}&::-moz-placeholder{opacity:1;color:", COLORS.lightGray.placeholder, ";}&:-ms-input-placeholder{color:", COLORS.lightGray.placeholder, ";}}" + ( true ? "" : 0),  true ? "" : 0);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/textarea-control/styles/textarea-control-styles.js
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+const StyledTextarea = emotion_styled_base_browser_esm("textarea",  true ? {
+  target: "ebk7yr50"
+} : 0)("width:100%;", inputControl, ";" + ( true ? "" : 0));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/textarea-control/index.js
+
+
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+function TextareaControl(_ref) {
+  let {
+    label,
+    hideLabelFromVision,
+    value,
+    help,
+    onChange,
+    rows = 4,
+    className,
+    ...props
+  } = _ref;
+  const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(TextareaControl);
+  const id = `inspector-textarea-control-${instanceId}`;
+
+  const onChangeValue = event => onChange(event.target.value);
+
+  return (0,external_wp_element_namespaceObject.createElement)(base_control, {
+    label: label,
+    hideLabelFromVision: hideLabelFromVision,
+    id: id,
+    help: help,
+    className: className
+  }, (0,external_wp_element_namespaceObject.createElement)(StyledTextarea, extends_extends({
+    className: "components-textarea-control__input",
+    id: id,
+    rows: rows,
+    onChange: onChangeValue,
+    "aria-describedby": !!help ? id + '__help' : undefined,
+    value: value
+  }, props)));
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/text-highlight/index.js
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+const TextHighlight = _ref => {
+  let {
+    text = '',
+    highlight = ''
+  } = _ref;
+  const trimmedHighlightText = highlight.trim();
+
+  if (!trimmedHighlightText) {
+    return text;
+  }
+
+  const regex = new RegExp(`(${(0,external_lodash_namespaceObject.escapeRegExp)(trimmedHighlightText)})`, 'gi');
+  return (0,external_wp_element_namespaceObject.createInterpolateElement)(text.replace(regex, '<mark>$&</mark>'), {
+    mark: (0,external_wp_element_namespaceObject.createElement)("mark", null)
+  });
+};
+
+/* harmony default export */ var text_highlight = (TextHighlight);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/tip.js
+
+
+/**
+ * WordPress dependencies
+ */
+
+const tip = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
+  xmlns: "http://www.w3.org/2000/svg",
+  viewBox: "0 0 24 24"
+}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
+  d: "M12 15.8c-3.7 0-6.8-3-6.8-6.8s3-6.8 6.8-6.8c3.7 0 6.8 3 6.8 6.8s-3.1 6.8-6.8 6.8zm0-12C9.1 3.8 6.8 6.1 6.8 9s2.4 5.2 5.2 5.2c2.9 0 5.2-2.4 5.2-5.2S14.9 3.8 12 3.8zM8 17.5h8V19H8zM10 20.5h4V22h-4z"
+}));
+/* harmony default export */ var library_tip = (tip);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/tip/index.js
+
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * @typedef Props
+ * @property {import('react').ReactNode} children Children to render in the tip.
+ */
+
+/**
+ * @param {Props} props
+ * @return {JSX.Element} Element
+ */
+
+function Tip(props) {
+  return (0,external_wp_element_namespaceObject.createElement)("div", {
+    className: "components-tip"
+  }, (0,external_wp_element_namespaceObject.createElement)(icons_build_module_icon, {
+    icon: library_tip
+  }), (0,external_wp_element_namespaceObject.createElement)("p", null, props.children));
+}
+
+/* harmony default export */ var build_module_tip = (Tip);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/toggle-control/index.js
+
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+function ToggleControl(_ref) {
+  let {
+    label,
+    checked,
+    help,
+    className,
+    onChange,
+    disabled
+  } = _ref;
+
+  function onChangeToggle(event) {
+    onChange(event.target.checked);
+  }
+
+  const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(ToggleControl);
+  const id = `inspector-toggle-control-${instanceId}`;
+  let describedBy, helpLabel;
+
+  if (help) {
+    describedBy = id + '__help';
+    helpLabel = (0,external_lodash_namespaceObject.isFunction)(help) ? help(checked) : help;
+  }
+
+  return (0,external_wp_element_namespaceObject.createElement)(base_control, {
+    id: id,
+    help: helpLabel,
+    className: classnames_default()('components-toggle-control', className)
+  }, (0,external_wp_element_namespaceObject.createElement)(form_toggle, {
+    id: id,
+    checked: checked,
+    onChange: onChangeToggle,
+    "aria-describedby": describedBy,
+    disabled: disabled
+  }), (0,external_wp_element_namespaceObject.createElement)("label", {
+    htmlFor: id,
+    className: "components-toggle-control__label"
+  }, label));
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/toggle-group-control/toggle-group-control-option-icon/component.js
+
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+function ToggleGroupControlOptionIcon(props) {
+  const {
+    icon,
+    ...restProps
+  } = props;
+  return (0,external_wp_element_namespaceObject.createElement)(toggle_group_control_option_base_component, restProps, (0,external_wp_element_namespaceObject.createElement)(icons_build_module_icon, {
+    icon: icon
+  }));
+}
+/**
+ * `ToggleGroupControlOptionIcon` is a form component which is meant to be used as a
+ * child of `ToggleGroupControl` and displays an icon.
+ *
+ * @example
+ * ```jsx
+ *
+ * import {
+ *	__experimentalToggleGroupControl as ToggleGroupControl,
+ *	__experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon,
+ * from '@wordpress/components';
+ * import { formatLowercase, formatUppercase } from '@wordpress/icons';
+ *
+ * function Example() {
+ *	return (
+ *		<ToggleGroupControl label="my label" value="vertical" isBlock>
+ *			<ToggleGroupControlOptionIcon
+ *				value="uppercase"
+ *				icon={ formatUppercase }
+ *			/>
+ *			<ToggleGroupControlOptionIcon
+ *				value="lowercase"
+ *				icon={ formatLowercase }
+ *			/>
+ *		</ToggleGroupControl>
+ *	);
+ * }
+ ** ```
+ */
+
+;// CONCATENATED MODULE: ./node_modules/reakit/es/__keys-ae468c11.js
+// Automatically generated
+var TOOLBAR_STATE_KEYS = ["baseId", "unstable_idCountRef", "unstable_virtual", "rtl", "orientation", "items", "groups", "currentId", "loop", "wrap", "shift", "unstable_moves", "unstable_hasActiveWidget", "unstable_includesBaseElement", "setBaseId", "registerItem", "unregisterItem", "registerGroup", "unregisterGroup", "move", "next", "previous", "up", "down", "first", "last", "sort", "unstable_setVirtual", "setRTL", "setOrientation", "setCurrentId", "setLoop", "setWrap", "setShift", "reset", "unstable_setIncludesBaseElement", "unstable_setHasActiveWidget"];
+var TOOLBAR_KEYS = TOOLBAR_STATE_KEYS;
+var TOOLBAR_ITEM_KEYS = TOOLBAR_KEYS;
+var TOOLBAR_SEPARATOR_KEYS = (/* unused pure expression or super */ null && (TOOLBAR_ITEM_KEYS));
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit/es/Toolbar/ToolbarItem.js
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+var useToolbarItem = createHook({
   name: "ToolbarItem",
-  compose: _Composite_CompositeItem_js__WEBPACK_IMPORTED_MODULE_4__[/* useCompositeItem */ "b"],
-  keys: _keys_ae468c11_js__WEBPACK_IMPORTED_MODULE_5__[/* a */ "b"]
-});
-var ToolbarItem = Object(reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_0__[/* createComponent */ "a"])({
+  compose: useCompositeItem,
+  keys: TOOLBAR_ITEM_KEYS
+});
+var ToolbarItem = createComponent({
   as: "button",
   memo: true,
   useHook: useToolbarItem
@@ -59887,497 +72568,2416 @@
 
 
 
-
-/***/ }),
-
-/***/ "zYbv":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var assertRecord = __webpack_require__("10Kj");
-
-var Type = __webpack_require__("V1cy");
-
-// https://ecma-international.org/ecma-262/6.0/#sec-frompropertydescriptor
-
-module.exports = function FromPropertyDescriptor(Desc) {
-	if (typeof Desc === 'undefined') {
-		return Desc;
-	}
-
-	assertRecord(Type, 'Property Descriptor', 'Desc', Desc);
-
-	var obj = {};
-	if ('[[Value]]' in Desc) {
-		obj.value = Desc['[[Value]]'];
-	}
-	if ('[[Writable]]' in Desc) {
-		obj.writable = Desc['[[Writable]]'];
-	}
-	if ('[[Get]]' in Desc) {
-		obj.get = Desc['[[Get]]'];
-	}
-	if ('[[Set]]' in Desc) {
-		obj.set = Desc['[[Set]]'];
-	}
-	if ('[[Enumerable]]' in Desc) {
-		obj.enumerable = Desc['[[Enumerable]]'];
-	}
-	if ('[[Configurable]]' in Desc) {
-		obj.configurable = Desc['[[Configurable]]'];
-	}
-	return obj;
-};
-
-
-/***/ }),
-
-/***/ "zfJ5":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _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; };
-
-var _object = __webpack_require__("Koq/");
-
-var _object2 = _interopRequireDefault(_object);
-
-var _react = __webpack_require__("cDcd");
-
-var _react2 = _interopRequireDefault(_react);
-
-var _propTypes = __webpack_require__("17x9");
-
-var _propTypes2 = _interopRequireDefault(_propTypes);
-
-var _airbnbPropTypes = __webpack_require__("Hsqg");
-
-var _reactWithStyles = __webpack_require__("TG4+");
-
-var _defaultPhrases = __webpack_require__("vV+G");
-
-var _getPhrasePropTypes = __webpack_require__("yc2e");
-
-var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);
-
-var _LeftArrow = __webpack_require__("0XP8");
-
-var _LeftArrow2 = _interopRequireDefault(_LeftArrow);
-
-var _RightArrow = __webpack_require__("gZI3");
-
-var _RightArrow2 = _interopRequireDefault(_RightArrow);
-
-var _ChevronUp = __webpack_require__("9gmn");
-
-var _ChevronUp2 = _interopRequireDefault(_ChevronUp);
-
-var _ChevronDown = __webpack_require__("DHWS");
-
-var _ChevronDown2 = _interopRequireDefault(_ChevronDown);
-
-var _ScrollableOrientationShape = __webpack_require__("aE6U");
-
-var _ScrollableOrientationShape2 = _interopRequireDefault(_ScrollableOrientationShape);
-
-var _constants = __webpack_require__("Fv1B");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
-
-var propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, {
-  navPrev: _propTypes2['default'].node,
-  navNext: _propTypes2['default'].node,
-  orientation: _ScrollableOrientationShape2['default'],
-
-  onPrevMonthClick: _propTypes2['default'].func,
-  onNextMonthClick: _propTypes2['default'].func,
-
-  // internationalization
-  phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.DayPickerNavigationPhrases)),
-
-  isRTL: _propTypes2['default'].bool
-}));
-
-var defaultProps = {
-  navPrev: null,
-  navNext: null,
-  orientation: _constants.HORIZONTAL_ORIENTATION,
-
-  onPrevMonthClick: function () {
-    function onPrevMonthClick() {}
-
-    return onPrevMonthClick;
-  }(),
-  onNextMonthClick: function () {
-    function onNextMonthClick() {}
-
-    return onNextMonthClick;
-  }(),
-
-
-  // internationalization
-  phrases: _defaultPhrases.DayPickerNavigationPhrases,
-  isRTL: false
-};
-
-function DayPickerNavigation(_ref) {
-  var navPrev = _ref.navPrev,
-      navNext = _ref.navNext,
-      onPrevMonthClick = _ref.onPrevMonthClick,
-      onNextMonthClick = _ref.onNextMonthClick,
-      orientation = _ref.orientation,
-      phrases = _ref.phrases,
-      isRTL = _ref.isRTL,
-      styles = _ref.styles;
-
-  var isHorizontal = orientation === _constants.HORIZONTAL_ORIENTATION;
-  var isVertical = orientation !== _constants.HORIZONTAL_ORIENTATION;
-  var isVerticalScrollable = orientation === _constants.VERTICAL_SCROLLABLE;
-
-  var navPrevIcon = navPrev;
-  var navNextIcon = navNext;
-  var isDefaultNavPrev = false;
-  var isDefaultNavNext = false;
-  if (!navPrevIcon) {
-    isDefaultNavPrev = true;
-    var Icon = isVertical ? _ChevronUp2['default'] : _LeftArrow2['default'];
-    if (isRTL && !isVertical) {
-      Icon = _RightArrow2['default'];
-    }
-    navPrevIcon = _react2['default'].createElement(Icon, (0, _reactWithStyles.css)(isHorizontal && styles.DayPickerNavigation_svg__horizontal, isVertical && styles.DayPickerNavigation_svg__vertical));
-  }
-
-  if (!navNextIcon) {
-    isDefaultNavNext = true;
-    var _Icon = isVertical ? _ChevronDown2['default'] : _RightArrow2['default'];
-    if (isRTL && !isVertical) {
-      _Icon = _LeftArrow2['default'];
-    }
-    navNextIcon = _react2['default'].createElement(_Icon, (0, _reactWithStyles.css)(isHorizontal && styles.DayPickerNavigation_svg__horizontal, isVertical && styles.DayPickerNavigation_svg__vertical));
-  }
-
-  var isDefaultNav = isVerticalScrollable ? isDefaultNavNext : isDefaultNavNext || isDefaultNavPrev;
-
-  return _react2['default'].createElement(
-    'div',
-    _reactWithStyles.css.apply(undefined, [styles.DayPickerNavigation, isHorizontal && styles.DayPickerNavigation__horizontal].concat(_toConsumableArray(isVertical && [styles.DayPickerNavigation__vertical, isDefaultNav && styles.DayPickerNavigation__verticalDefault]), _toConsumableArray(isVerticalScrollable && [styles.DayPickerNavigation__verticalScrollable, isDefaultNav && styles.DayPickerNavigation__verticalScrollableDefault]))),
-    !isVerticalScrollable && _react2['default'].createElement(
-      'div',
-      _extends({
-        role: 'button',
-        tabIndex: '0'
-      }, _reactWithStyles.css.apply(undefined, [styles.DayPickerNavigation_button, isDefaultNavPrev && styles.DayPickerNavigation_button__default].concat(_toConsumableArray(isHorizontal && [styles.DayPickerNavigation_button__horizontal].concat(_toConsumableArray(isDefaultNavPrev && [styles.DayPickerNavigation_button__horizontalDefault, !isRTL && styles.DayPickerNavigation_leftButton__horizontalDefault, isRTL && styles.DayPickerNavigation_rightButton__horizontalDefault]))), _toConsumableArray(isVertical && [styles.DayPickerNavigation_button__vertical].concat(_toConsumableArray(isDefaultNavPrev && [styles.DayPickerNavigation_button__verticalDefault, styles.DayPickerNavigation_prevButton__verticalDefault]))))), {
-        'aria-label': phrases.jumpToPrevMonth,
-        onClick: onPrevMonthClick,
-        onKeyUp: function () {
-          function onKeyUp(e) {
-            var key = e.key;
-
-            if (key === 'Enter' || key === ' ') onPrevMonthClick(e);
-          }
-
-          return onKeyUp;
-        }(),
-        onMouseUp: function () {
-          function onMouseUp(e) {
-            e.currentTarget.blur();
-          }
-
-          return onMouseUp;
-        }()
-      }),
-      navPrevIcon
-    ),
-    _react2['default'].createElement(
-      'div',
-      _extends({
-        role: 'button',
-        tabIndex: '0'
-      }, _reactWithStyles.css.apply(undefined, [styles.DayPickerNavigation_button, isDefaultNavNext && styles.DayPickerNavigation_button__default].concat(_toConsumableArray(isHorizontal && [styles.DayPickerNavigation_button__horizontal].concat(_toConsumableArray(isDefaultNavNext && [styles.DayPickerNavigation_button__horizontalDefault, isRTL && styles.DayPickerNavigation_leftButton__horizontalDefault, !isRTL && styles.DayPickerNavigation_rightButton__horizontalDefault]))), _toConsumableArray(isVertical && [styles.DayPickerNavigation_button__vertical, styles.DayPickerNavigation_nextButton__vertical].concat(_toConsumableArray(isDefaultNavNext && [styles.DayPickerNavigation_button__verticalDefault, styles.DayPickerNavigation_nextButton__verticalDefault, isVerticalScrollable && styles.DayPickerNavigation_nextButton__verticalScrollableDefault]))))), {
-        'aria-label': phrases.jumpToNextMonth,
-        onClick: onNextMonthClick,
-        onKeyUp: function () {
-          function onKeyUp(e) {
-            var key = e.key;
-
-            if (key === 'Enter' || key === ' ') onNextMonthClick(e);
-          }
-
-          return onKeyUp;
-        }(),
-        onMouseUp: function () {
-          function onMouseUp(e) {
-            e.currentTarget.blur();
-          }
-
-          return onMouseUp;
-        }()
-      }),
-      navNextIcon
-    )
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/toolbar-context/index.js
+/**
+ * WordPress dependencies
+ */
+
+const ToolbarContext = (0,external_wp_element_namespaceObject.createContext)();
+/* harmony default export */ var toolbar_context = (ToolbarContext);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/toolbar-item/index.js
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+function toolbar_item_ToolbarItem(_ref, ref) {
+  let {
+    children,
+    as: Component,
+    ...props
+  } = _ref;
+  const accessibleToolbarState = (0,external_wp_element_namespaceObject.useContext)(toolbar_context);
+
+  if (typeof children !== 'function' && !Component) {
+    typeof process !== "undefined" && process.env && "production" !== "production" ? 0 : void 0;
+    return null;
+  }
+
+  const allProps = { ...props,
+    ref,
+    'data-toolbar-item': true
+  };
+
+  if (!accessibleToolbarState) {
+    if (Component) {
+      return (0,external_wp_element_namespaceObject.createElement)(Component, allProps, children);
+    }
+
+    return children(allProps);
+  }
+
+  return (0,external_wp_element_namespaceObject.createElement)(ToolbarItem, extends_extends({}, accessibleToolbarState, allProps, {
+    as: Component
+  }), children);
+}
+
+/* harmony default export */ var toolbar_item = ((0,external_wp_element_namespaceObject.forwardRef)(toolbar_item_ToolbarItem));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/toolbar-button/toolbar-button-container.js
+
+
+const ToolbarButtonContainer = props => (0,external_wp_element_namespaceObject.createElement)("div", {
+  className: props.className
+}, props.children);
+
+/* harmony default export */ var toolbar_button_container = (ToolbarButtonContainer);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/toolbar-button/index.js
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+function ToolbarButton(_ref, ref) {
+  let {
+    containerClassName,
+    className,
+    extraProps,
+    children,
+    title,
+    isActive,
+    isDisabled,
+    ...props
+  } = _ref;
+  const accessibleToolbarState = (0,external_wp_element_namespaceObject.useContext)(toolbar_context);
+
+  if (!accessibleToolbarState) {
+    return (0,external_wp_element_namespaceObject.createElement)(toolbar_button_container, {
+      className: containerClassName
+    }, (0,external_wp_element_namespaceObject.createElement)(build_module_button, extends_extends({
+      ref: ref,
+      icon: props.icon,
+      label: title,
+      shortcut: props.shortcut,
+      "data-subscript": props.subscript,
+      onClick: event => {
+        event.stopPropagation();
+
+        if (props.onClick) {
+          props.onClick(event);
+        }
+      },
+      className: classnames_default()('components-toolbar__control', className),
+      isPressed: isActive,
+      disabled: isDisabled,
+      "data-toolbar-item": true
+    }, extraProps, props), children));
+  } // ToobarItem will pass all props to the render prop child, which will pass
+  // all props to Button. This means that ToolbarButton has the same API as
+  // Button.
+
+
+  return (0,external_wp_element_namespaceObject.createElement)(toolbar_item, extends_extends({
+    className: classnames_default()('components-toolbar-button', className)
+  }, extraProps, props, {
+    ref: ref
+  }), toolbarItemProps => (0,external_wp_element_namespaceObject.createElement)(build_module_button, extends_extends({
+    label: title,
+    isPressed: isActive,
+    disabled: isDisabled
+  }, toolbarItemProps), children));
+}
+
+/* harmony default export */ var toolbar_button = ((0,external_wp_element_namespaceObject.forwardRef)(ToolbarButton));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/toolbar-group/toolbar-group-container.js
+
+
+
+const ToolbarGroupContainer = _ref => {
+  let {
+    className,
+    children,
+    ...props
+  } = _ref;
+  return (0,external_wp_element_namespaceObject.createElement)("div", extends_extends({
+    className: className
+  }, props), children);
+};
+
+/* harmony default export */ var toolbar_group_container = (ToolbarGroupContainer);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/toolbar-group/toolbar-group-collapsed.js
+
+
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+function ToolbarGroupCollapsed(_ref) {
+  let {
+    controls = [],
+    toggleProps,
+    ...props
+  } = _ref;
+  // It'll contain state if `ToolbarGroup` is being used within
+  // `<Toolbar label="label" />`
+  const accessibleToolbarState = (0,external_wp_element_namespaceObject.useContext)(toolbar_context);
+
+  const renderDropdownMenu = internalToggleProps => (0,external_wp_element_namespaceObject.createElement)(dropdown_menu, extends_extends({
+    controls: controls,
+    toggleProps: { ...internalToggleProps,
+      'data-toolbar-item': true
+    }
+  }, props));
+
+  if (accessibleToolbarState) {
+    return (0,external_wp_element_namespaceObject.createElement)(toolbar_item, toggleProps, renderDropdownMenu);
+  }
+
+  return renderDropdownMenu(toggleProps);
+}
+
+/* harmony default export */ var toolbar_group_collapsed = (ToolbarGroupCollapsed);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/toolbar-group/index.js
+
+
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+/**
+ * Renders a collapsible group of controls
+ *
+ * The `controls` prop accepts an array of sets. A set is an array of controls.
+ * Controls have the following shape:
+ *
+ * ```
+ * {
+ *   icon: string,
+ *   title: string,
+ *   subscript: string,
+ *   onClick: Function,
+ *   isActive: boolean,
+ *   isDisabled: boolean
+ * }
+ * ```
+ *
+ * For convenience it is also possible to pass only an array of controls. It is
+ * then assumed this is the only set.
+ *
+ * Either `controls` or `children` is required, otherwise this components
+ * renders nothing.
+ *
+ * @param {Object}    props               Component props.
+ * @param {Array}     [props.controls]    The controls to render in this toolbar.
+ * @param {WPElement} [props.children]    Any other things to render inside the toolbar besides the controls.
+ * @param {string}    [props.className]   Class to set on the container div.
+ * @param {boolean}   [props.isCollapsed] Turns ToolbarGroup into a dropdown menu.
+ * @param {string}    [props.title]       ARIA label for dropdown menu if is collapsed.
+ */
+
+function ToolbarGroup(_ref) {
+  let {
+    controls = [],
+    children,
+    className,
+    isCollapsed,
+    title,
+    ...props
+  } = _ref;
+  // It'll contain state if `ToolbarGroup` is being used within
+  // `<Toolbar label="label" />`
+  const accessibleToolbarState = (0,external_wp_element_namespaceObject.useContext)(toolbar_context);
+
+  if ((!controls || !controls.length) && !children) {
+    return null;
+  }
+
+  const finalClassName = classnames_default()( // Unfortunately, there's legacy code referencing to `.components-toolbar`
+  // So we can't get rid of it
+  accessibleToolbarState ? 'components-toolbar-group' : 'components-toolbar', className); // Normalize controls to nested array of objects (sets of controls)
+
+  let controlSets = controls;
+
+  if (!Array.isArray(controlSets[0])) {
+    controlSets = [controlSets];
+  }
+
+  if (isCollapsed) {
+    return (0,external_wp_element_namespaceObject.createElement)(toolbar_group_collapsed, extends_extends({
+      label: title,
+      controls: controlSets,
+      className: finalClassName,
+      children: children
+    }, props));
+  }
+
+  return (0,external_wp_element_namespaceObject.createElement)(toolbar_group_container, extends_extends({
+    className: finalClassName
+  }, props), (0,external_lodash_namespaceObject.flatMap)(controlSets, (controlSet, indexOfSet) => controlSet.map((control, indexOfControl) => (0,external_wp_element_namespaceObject.createElement)(toolbar_button, extends_extends({
+    key: [indexOfSet, indexOfControl].join(),
+    containerClassName: indexOfSet > 0 && indexOfControl === 0 ? 'has-left-divider' : null
+  }, control)))), children);
+}
+
+/* harmony default export */ var toolbar_group = (ToolbarGroup);
+
+;// CONCATENATED MODULE: ./node_modules/reakit/es/Toolbar/ToolbarState.js
+
+
+
+
+
+
+
+
+
+
+
+
+
+function useToolbarState(initialState) {
+  if (initialState === void 0) {
+    initialState = {};
+  }
+
+  var _useSealedState = useSealedState(initialState),
+      _useSealedState$orien = _useSealedState.orientation,
+      orientation = _useSealedState$orien === void 0 ? "horizontal" : _useSealedState$orien,
+      sealed = _objectWithoutPropertiesLoose(_useSealedState, ["orientation"]);
+
+  return useCompositeState(_objectSpread2({
+    orientation: orientation
+  }, sealed));
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/reakit/es/Toolbar/Toolbar.js
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+var useToolbar = createHook({
+  name: "Toolbar",
+  compose: useComposite,
+  keys: TOOLBAR_KEYS,
+  useProps: function useProps(options, htmlProps) {
+    return _objectSpread2({
+      role: "toolbar",
+      "aria-orientation": options.orientation
+    }, htmlProps);
+  }
+});
+var Toolbar = createComponent({
+  as: "div",
+  useHook: useToolbar,
+  useCreateElement: function useCreateElement$1(type, props, children) {
+     false ? 0 : void 0;
+    return useCreateElement(type, props, children);
+  }
+});
+
+
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/toolbar/toolbar-container.js
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+function ToolbarContainer(_ref, ref) {
+  let {
+    label,
+    ...props
+  } = _ref;
+  // https://reakit.io/docs/basic-concepts/#state-hooks
+  // Passing baseId for server side rendering (which includes snapshots)
+  // If an id prop is passed to Toolbar, toolbar items will use it as a base for their ids
+  const toolbarState = useToolbarState({
+    loop: true,
+    baseId: props.id,
+    rtl: (0,external_wp_i18n_namespaceObject.isRTL)()
+  });
+  return (// This will provide state for `ToolbarButton`'s
+    (0,external_wp_element_namespaceObject.createElement)(toolbar_context.Provider, {
+      value: toolbarState
+    }, (0,external_wp_element_namespaceObject.createElement)(Toolbar, extends_extends({
+      ref: ref,
+      "aria-label": label
+    }, toolbarState, props)))
   );
 }
 
-DayPickerNavigation.propTypes = propTypes;
-DayPickerNavigation.defaultProps = defaultProps;
-
-exports['default'] = (0, _reactWithStyles.withStyles)(function (_ref2) {
-  var _ref2$reactDates = _ref2.reactDates,
-      color = _ref2$reactDates.color,
-      zIndex = _ref2$reactDates.zIndex;
-  return {
-    DayPickerNavigation: {
-      position: 'relative',
-      zIndex: zIndex + 2
-    },
-
-    DayPickerNavigation__horizontal: {
-      height: 0
-    },
-
-    DayPickerNavigation__vertical: {},
-    DayPickerNavigation__verticalScrollable: {},
-
-    DayPickerNavigation__verticalDefault: {
-      position: 'absolute',
-      width: '100%',
-      height: 52,
-      bottom: 0,
-      left: 0
-    },
-
-    DayPickerNavigation__verticalScrollableDefault: {
-      position: 'relative'
-    },
-
-    DayPickerNavigation_button: {
-      cursor: 'pointer',
-      userSelect: 'none',
-      border: 0,
-      padding: 0,
-      margin: 0
-    },
-
-    DayPickerNavigation_button__default: {
-      border: '1px solid ' + String(color.core.borderLight),
-      backgroundColor: color.background,
-      color: color.placeholderText,
-
-      ':focus': {
-        border: '1px solid ' + String(color.core.borderMedium)
+/* harmony default export */ var toolbar_container = ((0,external_wp_element_namespaceObject.forwardRef)(ToolbarContainer));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/toolbar/index.js
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+/**
+ * Renders a toolbar.
+ *
+ * To add controls, simply pass `ToolbarButton` components as children.
+ *
+ * @param {Object} props             Component props.
+ * @param {string} [props.className] Class to set on the container div.
+ * @param {string} [props.label]     ARIA label for toolbar container.
+ * @param {Object} ref               React Element ref.
+ */
+
+function toolbar_Toolbar(_ref, ref) {
+  let {
+    className,
+    label,
+    ...props
+  } = _ref;
+
+  if (!label) {
+    external_wp_deprecated_default()('Using Toolbar without label prop', {
+      since: '5.6',
+      alternative: 'ToolbarGroup component',
+      link: 'https://developer.wordpress.org/block-editor/components/toolbar/'
+    });
+    return (0,external_wp_element_namespaceObject.createElement)(toolbar_group, extends_extends({}, props, {
+      className: className
+    }));
+  } // `ToolbarGroup` already uses components-toolbar for compatibility reasons.
+
+
+  const finalClassName = classnames_default()('components-accessible-toolbar', className);
+  return (0,external_wp_element_namespaceObject.createElement)(toolbar_container, extends_extends({
+    className: finalClassName,
+    label: label,
+    ref: ref
+  }, props));
+}
+
+/* harmony default export */ var toolbar = ((0,external_wp_element_namespaceObject.forwardRef)(toolbar_Toolbar));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/toolbar-dropdown-menu/index.js
+
+
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+function ToolbarDropdownMenu(props, ref) {
+  const accessibleToolbarState = (0,external_wp_element_namespaceObject.useContext)(toolbar_context);
+
+  if (!accessibleToolbarState) {
+    return (0,external_wp_element_namespaceObject.createElement)(dropdown_menu, props);
+  } // ToobarItem will pass all props to the render prop child, which will pass
+  // all props to the toggle of DropdownMenu. This means that ToolbarDropdownMenu
+  // has the same API as DropdownMenu.
+
+
+  return (0,external_wp_element_namespaceObject.createElement)(toolbar_item, extends_extends({
+    ref: ref
+  }, props.toggleProps), toolbarItemProps => (0,external_wp_element_namespaceObject.createElement)(dropdown_menu, extends_extends({}, props, {
+    popoverProps: {
+      isAlternate: true,
+      ...props.popoverProps
+    },
+    toggleProps: toolbarItemProps
+  })));
+}
+
+/* harmony default export */ var toolbar_dropdown_menu = ((0,external_wp_element_namespaceObject.forwardRef)(ToolbarDropdownMenu));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/tools-panel/styles.js
+function tools_panel_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+const toolsPanelGrid = {
+  spacing: /*#__PURE__*/emotion_react_browser_esm_css("column-gap:", space(4), ";row-gap:", space(6), ";" + ( true ? "" : 0),  true ? "" : 0),
+  item: {
+    fullWidth:  true ? {
+      name: "18iuzk9",
+      styles: "grid-column:1/-1"
+    } : 0
+  }
+};
+const ToolsPanel = /*#__PURE__*/emotion_react_browser_esm_css(toolsPanelGrid.spacing, ";border-top:", config_values.borderWidth, " solid ", COLORS.gray[300], ";margin-top:-1px;padding:", space(4), ";" + ( true ? "" : 0),  true ? "" : 0);
+/**
+ * Items injected into a ToolsPanel via a virtual bubbling slot will require
+ * an inner dom element to be injected. The following rule allows for the
+ * CSS grid display to be re-established.
+ */
+
+const ToolsPanelWithInnerWrapper = columns => {
+  return /*#__PURE__*/emotion_react_browser_esm_css(">div:not( :first-of-type ){display:grid;grid-template-columns:", `repeat( ${columns}, 1fr )`, ";", toolsPanelGrid.spacing, " ", toolsPanelGrid.item.fullWidth, ";}" + ( true ? "" : 0),  true ? "" : 0);
+};
+const ToolsPanelHiddenInnerWrapper =  true ? {
+  name: "huufmu",
+  styles: ">div:not( :first-of-type ){display:none;}"
+} : 0;
+const ToolsPanelHeader = /*#__PURE__*/emotion_react_browser_esm_css(toolsPanelGrid.item.fullWidth, " gap:", space(2), ";.components-dropdown-menu{margin:", space(-1), " 0;line-height:0;}&&&& .components-dropdown-menu__toggle{padding:0;min-width:", space(6), ";}" + ( true ? "" : 0),  true ? "" : 0);
+const ToolsPanelHeading =  true ? {
+  name: "1pmxm02",
+  styles: "font-size:inherit;font-weight:500;line-height:normal;&&{margin:0;}"
+} : 0;
+const ToolsPanelItem = /*#__PURE__*/emotion_react_browser_esm_css(toolsPanelGrid.item.fullWidth, "&>div,&>fieldset{padding-bottom:0;margin-bottom:0;max-width:100%;}&& ", base_control_styles_Wrapper, "{margin-bottom:0;", StyledField, ":last-child{margin-bottom:0;}}", StyledHelp, "{margin-bottom:0;}&& ", LabelWrapper, "{label{line-height:1.4em;}}.components-custom-select-control__label,", StyledLabel, "{line-height:1.4em;}" + ( true ? "" : 0),  true ? "" : 0);
+const ToolsPanelItemPlaceholder =  true ? {
+  name: "eivff4",
+  styles: "display:none"
+} : 0;
+const styles_DropdownMenu =  true ? {
+  name: "16gsvie",
+  styles: "min-width:200px"
+} : 0;
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/tools-panel/context.js
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+const context_noop = () => undefined;
+
+const ToolsPanelContext = (0,external_wp_element_namespaceObject.createContext)({
+  menuItems: {
+    default: {},
+    optional: {}
+  },
+  hasMenuItems: false,
+  isResetting: false,
+  shouldRenderPlaceholderItems: false,
+  registerPanelItem: context_noop,
+  deregisterPanelItem: context_noop,
+  flagItemCustomization: context_noop,
+  areAllOptionalControlsHidden: true
+});
+const useToolsPanelContext = () => (0,external_wp_element_namespaceObject.useContext)(ToolsPanelContext);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/tools-panel/tools-panel-header/hook.js
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+function useToolsPanelHeader(props) {
+  const {
+    className,
+    ...otherProps
+  } = useContextSystem(props, 'ToolsPanelHeader');
+  const cx = useCx();
+  const classes = (0,external_wp_element_namespaceObject.useMemo)(() => {
+    return cx(ToolsPanelHeader, className);
+  }, [className, cx]);
+  const dropdownMenuClassName = (0,external_wp_element_namespaceObject.useMemo)(() => {
+    return cx(styles_DropdownMenu);
+  }, [cx]);
+  const headingClassName = (0,external_wp_element_namespaceObject.useMemo)(() => {
+    return cx(ToolsPanelHeading);
+  }, [cx]);
+  const {
+    menuItems,
+    hasMenuItems,
+    areAllOptionalControlsHidden
+  } = useToolsPanelContext();
+  return { ...otherProps,
+    areAllOptionalControlsHidden,
+    dropdownMenuClassName,
+    hasMenuItems,
+    headingClassName,
+    menuItems,
+    className: classes
+  };
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/tools-panel/tools-panel-header/component.js
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+
+
+
+const tools_panel_header_component_noop = () => {};
+
+const DefaultControlsGroup = _ref => {
+  let {
+    items,
+    onClose,
+    toggleItem
+  } = _ref;
+
+  if (!items.length) {
+    return null;
+  }
+
+  return (0,external_wp_element_namespaceObject.createElement)(menu_group, null, items.map(_ref2 => {
+    let [label, hasValue] = _ref2;
+    const icon = hasValue ? library_reset : library_check;
+    const itemLabel = hasValue ? (0,external_wp_i18n_namespaceObject.sprintf)( // translators: %s: The name of the control being reset e.g. "Padding".
+    (0,external_wp_i18n_namespaceObject.__)('Reset %s'), label) : undefined;
+    return (0,external_wp_element_namespaceObject.createElement)(menu_item, {
+      key: label,
+      icon: icon,
+      isSelected: true,
+      disabled: !hasValue,
+      label: itemLabel,
+      onClick: () => {
+        toggleItem(label);
+        onClose();
       },
-
-      ':hover': {
-        border: '1px solid ' + String(color.core.borderMedium)
+      role: "menuitemcheckbox"
+    }, label);
+  }));
+};
+
+const OptionalControlsGroup = _ref3 => {
+  let {
+    items,
+    onClose,
+    toggleItem
+  } = _ref3;
+
+  if (!items.length) {
+    return null;
+  }
+
+  return (0,external_wp_element_namespaceObject.createElement)(menu_group, null, items.map(_ref4 => {
+    let [label, isSelected] = _ref4;
+    const itemLabel = isSelected ? (0,external_wp_i18n_namespaceObject.sprintf)( // translators: %s: The name of the control being hidden and reset e.g. "Padding".
+    (0,external_wp_i18n_namespaceObject.__)('Hide and reset %s'), label) : (0,external_wp_i18n_namespaceObject.sprintf)( // translators: %s: The name of the control to display e.g. "Padding".
+    (0,external_wp_i18n_namespaceObject.__)('Show %s'), label);
+    return (0,external_wp_element_namespaceObject.createElement)(menu_item, {
+      key: label,
+      icon: isSelected && library_check,
+      isSelected: isSelected,
+      label: itemLabel,
+      onClick: () => {
+        toggleItem(label);
+        onClose();
       },
-
-      ':active': {
-        background: color.backgroundDark
-      }
-    },
-
-    DayPickerNavigation_button__horizontal: {},
-
-    DayPickerNavigation_button__horizontalDefault: {
-      position: 'absolute',
-      top: 18,
-      lineHeight: 0.78,
-      borderRadius: 3,
-      padding: '6px 9px'
-    },
-
-    DayPickerNavigation_leftButton__horizontalDefault: {
-      left: 22
-    },
-
-    DayPickerNavigation_rightButton__horizontalDefault: {
-      right: 22
-    },
-
-    DayPickerNavigation_button__vertical: {},
-
-    DayPickerNavigation_button__verticalDefault: {
-      padding: 5,
-      background: color.background,
-      boxShadow: '0 0 5px 2px rgba(0, 0, 0, 0.1)',
-      position: 'relative',
-      display: 'inline-block',
-      height: '100%',
-      width: '50%'
-    },
-
-    DayPickerNavigation_prevButton__verticalDefault: {},
-
-    DayPickerNavigation_nextButton__verticalDefault: {
-      borderLeft: 0
-    },
-
-    DayPickerNavigation_nextButton__verticalScrollableDefault: {
-      width: '100%'
-    },
-
-    DayPickerNavigation_svg__horizontal: {
-      height: 19,
-      width: 19,
-      fill: color.core.grayLight,
-      display: 'block'
-    },
-
-    DayPickerNavigation_svg__vertical: {
-      height: 42,
-      width: 42,
-      fill: color.text,
-      display: 'block'
-    }
-  };
-})(DayPickerNavigation);
-
-/***/ }),
-
-/***/ "zt9T":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var util = __webpack_require__("jB5C");
-
-function scrollIntoView(elem, container, config) {
-  config = config || {};
-  // document 归一化到 window
-  if (container.nodeType === 9) {
-    container = util.getWindow(container);
-  }
-
-  var allowHorizontalScroll = config.allowHorizontalScroll;
-  var onlyScrollIfNeeded = config.onlyScrollIfNeeded;
-  var alignWithTop = config.alignWithTop;
-  var alignWithLeft = config.alignWithLeft;
-  var offsetTop = config.offsetTop || 0;
-  var offsetLeft = config.offsetLeft || 0;
-  var offsetBottom = config.offsetBottom || 0;
-  var offsetRight = config.offsetRight || 0;
-
-  allowHorizontalScroll = allowHorizontalScroll === undefined ? true : allowHorizontalScroll;
-
-  var isWin = util.isWindow(container);
-  var elemOffset = util.offset(elem);
-  var eh = util.outerHeight(elem);
-  var ew = util.outerWidth(elem);
-  var containerOffset = undefined;
-  var ch = undefined;
-  var cw = undefined;
-  var containerScroll = undefined;
-  var diffTop = undefined;
-  var diffBottom = undefined;
-  var win = undefined;
-  var winScroll = undefined;
-  var ww = undefined;
-  var wh = undefined;
-
-  if (isWin) {
-    win = container;
-    wh = util.height(win);
-    ww = util.width(win);
-    winScroll = {
-      left: util.scrollLeft(win),
-      top: util.scrollTop(win)
-    };
-    // elem 相对 container 可视视窗的距离
-    diffTop = {
-      left: elemOffset.left - winScroll.left - offsetLeft,
-      top: elemOffset.top - winScroll.top - offsetTop
-    };
-    diffBottom = {
-      left: elemOffset.left + ew - (winScroll.left + ww) + offsetRight,
-      top: elemOffset.top + eh - (winScroll.top + wh) + offsetBottom
-    };
-    containerScroll = winScroll;
-  } else {
-    containerOffset = util.offset(container);
-    ch = container.clientHeight;
-    cw = container.clientWidth;
-    containerScroll = {
-      left: container.scrollLeft,
-      top: container.scrollTop
-    };
-    // elem 相对 container 可视视窗的距离
-    // 注意边框, offset 是边框到根节点
-    diffTop = {
-      left: elemOffset.left - (containerOffset.left + (parseFloat(util.css(container, 'borderLeftWidth')) || 0)) - offsetLeft,
-      top: elemOffset.top - (containerOffset.top + (parseFloat(util.css(container, 'borderTopWidth')) || 0)) - offsetTop
-    };
-    diffBottom = {
-      left: elemOffset.left + ew - (containerOffset.left + cw + (parseFloat(util.css(container, 'borderRightWidth')) || 0)) + offsetRight,
-      top: elemOffset.top + eh - (containerOffset.top + ch + (parseFloat(util.css(container, 'borderBottomWidth')) || 0)) + offsetBottom
-    };
-  }
-
-  if (diffTop.top < 0 || diffBottom.top > 0) {
-    // 强制向上
-    if (alignWithTop === true) {
-      util.scrollTop(container, containerScroll.top + diffTop.top);
-    } else if (alignWithTop === false) {
-      util.scrollTop(container, containerScroll.top + diffBottom.top);
-    } else {
-      // 自动调整
-      if (diffTop.top < 0) {
-        util.scrollTop(container, containerScroll.top + diffTop.top);
+      role: "menuitemcheckbox"
+    }, label);
+  }));
+};
+
+const component_ToolsPanelHeader = (props, forwardedRef) => {
+  const {
+    areAllOptionalControlsHidden,
+    dropdownMenuClassName,
+    hasMenuItems,
+    headingClassName,
+    label: labelText,
+    menuItems,
+    resetAll,
+    toggleItem,
+    ...headerProps
+  } = useToolsPanelHeader(props);
+
+  if (!labelText) {
+    return null;
+  }
+
+  const defaultItems = Object.entries((menuItems === null || menuItems === void 0 ? void 0 : menuItems.default) || {});
+  const optionalItems = Object.entries((menuItems === null || menuItems === void 0 ? void 0 : menuItems.optional) || {});
+  const dropDownMenuIcon = areAllOptionalControlsHidden ? library_plus : more_vertical;
+  const dropDownMenuLabelText = areAllOptionalControlsHidden ? (0,external_wp_i18n_namespaceObject._x)('View and add options', 'Button label to reveal tool panel options') : (0,external_wp_i18n_namespaceObject._x)('View options', 'Button label to reveal tool panel options');
+  return (0,external_wp_element_namespaceObject.createElement)(h_stack_component, extends_extends({}, headerProps, {
+    ref: forwardedRef
+  }), (0,external_wp_element_namespaceObject.createElement)(heading_component, {
+    level: 2,
+    className: headingClassName
+  }, labelText), hasMenuItems && (0,external_wp_element_namespaceObject.createElement)(dropdown_menu, {
+    icon: dropDownMenuIcon,
+    label: dropDownMenuLabelText,
+    menuProps: {
+      className: dropdownMenuClassName
+    },
+    toggleProps: {
+      isSmall: true
+    }
+  }, _ref5 => {
+    let {
+      onClose = tools_panel_header_component_noop
+    } = _ref5;
+    return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(DefaultControlsGroup, {
+      items: defaultItems,
+      onClose: onClose,
+      toggleItem: toggleItem
+    }), (0,external_wp_element_namespaceObject.createElement)(OptionalControlsGroup, {
+      items: optionalItems,
+      onClose: onClose,
+      toggleItem: toggleItem
+    }), (0,external_wp_element_namespaceObject.createElement)(menu_group, null, (0,external_wp_element_namespaceObject.createElement)(menu_item, {
+      variant: 'tertiary',
+      onClick: () => {
+        resetAll();
+        onClose();
+      }
+    }, (0,external_wp_i18n_namespaceObject.__)('Reset all'))));
+  }));
+};
+
+const ConnectedToolsPanelHeader = contextConnect(component_ToolsPanelHeader, 'ToolsPanelHeader');
+/* harmony default export */ var tools_panel_header_component = (ConnectedToolsPanelHeader);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/tools-panel/tools-panel/hook.js
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+const DEFAULT_COLUMNS = 2;
+
+const generateMenuItems = _ref => {
+  let {
+    panelItems,
+    shouldReset,
+    currentMenuItems
+  } = _ref;
+  const menuItems = {
+    default: {},
+    optional: {}
+  };
+  panelItems.forEach(_ref2 => {
+    var _currentMenuItems$gro;
+
+    let {
+      hasValue,
+      isShownByDefault,
+      label
+    } = _ref2;
+    const group = isShownByDefault ? 'default' : 'optional'; // If a menu item for this label already exists, do not overwrite its value.
+    // This can cause default controls that have been flagged as customized to
+    // lose their value.
+
+    const existingItemValue = currentMenuItems === null || currentMenuItems === void 0 ? void 0 : (_currentMenuItems$gro = currentMenuItems[group]) === null || _currentMenuItems$gro === void 0 ? void 0 : _currentMenuItems$gro[label];
+    const value = existingItemValue !== undefined ? existingItemValue : hasValue();
+    menuItems[group][label] = shouldReset ? false : value;
+  });
+  return menuItems;
+};
+
+const isMenuItemTypeEmpty = obj => obj && Object.keys(obj).length === 0;
+
+function useToolsPanel(props) {
+  const {
+    className,
+    resetAll,
+    panelId,
+    hasInnerWrapper,
+    shouldRenderPlaceholderItems,
+    __experimentalFirstVisibleItemClass,
+    __experimentalLastVisibleItemClass,
+    ...otherProps
+  } = useContextSystem(props, 'ToolsPanel');
+  const isResetting = (0,external_wp_element_namespaceObject.useRef)(false);
+  const wasResetting = isResetting.current; // `isResetting` is cleared via this hook to effectively batch together
+  // the resetAll task. Without this, the flag is cleared after the first
+  // control updates and forces a rerender with subsequent controls then
+  // believing they need to reset, unfortunately using stale data.
+
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    if (wasResetting) {
+      isResetting.current = false;
+    }
+  }, [wasResetting]); // Allow panel items to register themselves.
+
+  const [panelItems, setPanelItems] = (0,external_wp_element_namespaceObject.useState)([]);
+  const registerPanelItem = (0,external_wp_element_namespaceObject.useCallback)(item => {
+    setPanelItems(items => {
+      const newItems = [...items]; // If an item with this label has already been registered, remove it
+      // first. This can happen when an item is moved between the default
+      // and optional groups.
+
+      const existingIndex = newItems.findIndex(oldItem => oldItem.label === item.label);
+
+      if (existingIndex !== -1) {
+        newItems.splice(existingIndex, 1);
+      }
+
+      return [...newItems, item];
+    });
+  }, [setPanelItems]); // Panels need to deregister on unmount to avoid orphans in menu state.
+  // This is an issue when panel items are being injected via SlotFills.
+
+  const deregisterPanelItem = (0,external_wp_element_namespaceObject.useCallback)(label => {
+    // When switching selections between components injecting matching
+    // controls, e.g. both panels have a "padding" control, the
+    // deregistration of the first panel doesn't occur until after the
+    // registration of the next.
+    setPanelItems(items => {
+      const newItems = [...items];
+      const index = newItems.findIndex(item => item.label === label);
+
+      if (index !== -1) {
+        newItems.splice(index, 1);
+      }
+
+      return newItems;
+    });
+  }, [setPanelItems]); // Manage and share display state of menu items representing child controls.
+
+  const [menuItems, setMenuItems] = (0,external_wp_element_namespaceObject.useState)({
+    default: {},
+    optional: {}
+  }); // Setup menuItems state as panel items register themselves.
+
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    setMenuItems(prevState => {
+      const items = generateMenuItems({
+        panelItems,
+        shouldReset: false,
+        currentMenuItems: prevState
+      });
+      return items;
+    });
+  }, [generateMenuItems, panelItems, setMenuItems]); // Force a menu item to be checked.
+  // This is intended for use with default panel items. They are displayed
+  // separately to optional items and have different display states,
+  // we need to update that when their value is customized.
+
+  const flagItemCustomization = (0,external_wp_element_namespaceObject.useCallback)(function (label) {
+    let group = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default';
+    setMenuItems(items => {
+      const newState = { ...items,
+        [group]: { ...items[group],
+          [label]: true
+        }
+      };
+      return newState;
+    });
+  }, [setMenuItems]); // Whether all optional menu items are hidden or not must be tracked
+  // in order to later determine if the panel display is empty and handle
+  // conditional display of a plus icon to indicate the presence of further
+  // menu items.
+
+  const [areAllOptionalControlsHidden, setAreAllOptionalControlsHidden] = (0,external_wp_element_namespaceObject.useState)(false);
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    if (isMenuItemTypeEmpty(menuItems === null || menuItems === void 0 ? void 0 : menuItems.default) && !isMenuItemTypeEmpty(menuItems === null || menuItems === void 0 ? void 0 : menuItems.optional)) {
+      const allControlsHidden = !Object.entries(menuItems.optional).some(_ref3 => {
+        let [, isSelected] = _ref3;
+        return isSelected;
+      });
+      setAreAllOptionalControlsHidden(allControlsHidden);
+    }
+  }, [menuItems, setAreAllOptionalControlsHidden]);
+  const cx = useCx();
+  const classes = (0,external_wp_element_namespaceObject.useMemo)(() => {
+    const wrapperStyle = hasInnerWrapper && ToolsPanelWithInnerWrapper(DEFAULT_COLUMNS);
+    const emptyStyle = isMenuItemTypeEmpty(menuItems === null || menuItems === void 0 ? void 0 : menuItems.default) && areAllOptionalControlsHidden && ToolsPanelHiddenInnerWrapper;
+    return cx(ToolsPanel, wrapperStyle, emptyStyle, className);
+  }, [areAllOptionalControlsHidden, className, cx, hasInnerWrapper, menuItems]); // Toggle the checked state of a menu item which is then used to determine
+  // display of the item within the panel.
+
+  const toggleItem = (0,external_wp_element_namespaceObject.useCallback)(label => {
+    const currentItem = panelItems.find(item => item.label === label);
+
+    if (!currentItem) {
+      return;
+    }
+
+    const menuGroup = currentItem.isShownByDefault ? 'default' : 'optional';
+    const newMenuItems = { ...menuItems,
+      [menuGroup]: { ...menuItems[menuGroup],
+        [label]: !menuItems[menuGroup][label]
+      }
+    };
+    setMenuItems(newMenuItems);
+  }, [menuItems, panelItems, setMenuItems]); // Resets display of children and executes resetAll callback if available.
+
+  const resetAllItems = (0,external_wp_element_namespaceObject.useCallback)(() => {
+    if (typeof resetAll === 'function') {
+      isResetting.current = true; // Collect available reset filters from panel items.
+
+      const filters = [];
+      panelItems.forEach(item => {
+        if (item.resetAllFilter) {
+          filters.push(item.resetAllFilter);
+        }
+      });
+      resetAll(filters);
+    } // Turn off display of all non-default items.
+
+
+    const resetMenuItems = generateMenuItems({
+      panelItems,
+      shouldReset: true
+    });
+    setMenuItems(resetMenuItems);
+  }, [generateMenuItems, isResetting.current, panelItems, resetAll, setMenuItems]); // Assist ItemGroup styling when there are potentially hidden placeholder
+  // items by identifying first & last items that are toggled on for display.
+
+  const getFirstVisibleItemLabel = items => {
+    const optionalItems = menuItems.optional || {};
+    const firstItem = items.find(item => item.isShownByDefault || !!optionalItems[item.label]);
+    return firstItem === null || firstItem === void 0 ? void 0 : firstItem.label;
+  };
+
+  const firstDisplayedItem = getFirstVisibleItemLabel(panelItems);
+  const lastDisplayedItem = getFirstVisibleItemLabel([...panelItems].reverse());
+  const panelContext = (0,external_wp_element_namespaceObject.useMemo)(() => ({
+    areAllOptionalControlsHidden,
+    deregisterPanelItem,
+    firstDisplayedItem,
+    flagItemCustomization,
+    hasMenuItems: !!panelItems.length,
+    isResetting: isResetting.current,
+    lastDisplayedItem,
+    menuItems,
+    panelId,
+    registerPanelItem,
+    shouldRenderPlaceholderItems,
+    __experimentalFirstVisibleItemClass,
+    __experimentalLastVisibleItemClass
+  }), [areAllOptionalControlsHidden, deregisterPanelItem, firstDisplayedItem, flagItemCustomization, isResetting.current, lastDisplayedItem, menuItems, panelId, panelItems, registerPanelItem, shouldRenderPlaceholderItems, __experimentalFirstVisibleItemClass, __experimentalLastVisibleItemClass]);
+  return { ...otherProps,
+    panelContext,
+    resetAllItems,
+    toggleItem,
+    className: classes
+  };
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/tools-panel/tools-panel/component.js
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+const component_ToolsPanel = (props, forwardedRef) => {
+  const {
+    children,
+    label,
+    panelContext,
+    resetAllItems,
+    toggleItem,
+    ...toolsPanelProps
+  } = useToolsPanel(props);
+  return (0,external_wp_element_namespaceObject.createElement)(grid_component, extends_extends({}, toolsPanelProps, {
+    columns: 2,
+    ref: forwardedRef
+  }), (0,external_wp_element_namespaceObject.createElement)(ToolsPanelContext.Provider, {
+    value: panelContext
+  }, (0,external_wp_element_namespaceObject.createElement)(tools_panel_header_component, {
+    label: label,
+    resetAll: resetAllItems,
+    toggleItem: toggleItem
+  }), children));
+};
+
+const ConnectedToolsPanel = contextConnect(component_ToolsPanel, 'ToolsPanel');
+/* harmony default export */ var tools_panel_component = (ConnectedToolsPanel);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/tools-panel/tools-panel-item/hook.js
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+function useToolsPanelItem(props) {
+  var _menuItems$menuGroup, _menuItems$menuGroup2;
+
+  const {
+    className,
+    hasValue,
+    isShownByDefault,
+    label,
+    panelId,
+    resetAllFilter,
+    onDeselect,
+    onSelect,
+    ...otherProps
+  } = useContextSystem(props, 'ToolsPanelItem');
+  const {
+    panelId: currentPanelId,
+    menuItems,
+    registerPanelItem,
+    deregisterPanelItem,
+    flagItemCustomization,
+    isResetting,
+    shouldRenderPlaceholderItems: shouldRenderPlaceholder,
+    firstDisplayedItem,
+    lastDisplayedItem,
+    __experimentalFirstVisibleItemClass,
+    __experimentalLastVisibleItemClass
+  } = useToolsPanelContext();
+  const hasValueCallback = (0,external_wp_element_namespaceObject.useCallback)(hasValue, [panelId]);
+  const resetAllFilterCallback = (0,external_wp_element_namespaceObject.useCallback)(resetAllFilter, [panelId]);
+  const previousPanelId = (0,external_wp_compose_namespaceObject.usePrevious)(currentPanelId);
+  const hasMatchingPanel = currentPanelId === panelId || currentPanelId === null; // Registering the panel item allows the panel to include it in its
+  // automatically generated menu and determine its initial checked status.
+
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    if (hasMatchingPanel && previousPanelId !== null) {
+      registerPanelItem({
+        hasValue: hasValueCallback,
+        isShownByDefault,
+        label,
+        resetAllFilter: resetAllFilterCallback,
+        panelId
+      });
+    }
+
+    return () => {
+      if (previousPanelId === null && !!currentPanelId || currentPanelId === panelId) {
+        deregisterPanelItem(label);
+      }
+    };
+  }, [currentPanelId, hasMatchingPanel, isShownByDefault, label, hasValueCallback, panelId, previousPanelId, resetAllFilterCallback]);
+  const isValueSet = hasValue();
+  const wasValueSet = (0,external_wp_compose_namespaceObject.usePrevious)(isValueSet); // If this item represents a default control it will need to notify the
+  // panel when a custom value has been set.
+
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    if (isShownByDefault && isValueSet && !wasValueSet) {
+      flagItemCustomization(label);
+    }
+  }, [isValueSet, wasValueSet, isShownByDefault, label]); // Note: `label` is used as a key when building menu item state in
+  // `ToolsPanel`.
+
+  const menuGroup = isShownByDefault ? 'default' : 'optional';
+  const isMenuItemChecked = menuItems === null || menuItems === void 0 ? void 0 : (_menuItems$menuGroup = menuItems[menuGroup]) === null || _menuItems$menuGroup === void 0 ? void 0 : _menuItems$menuGroup[label];
+  const wasMenuItemChecked = (0,external_wp_compose_namespaceObject.usePrevious)(isMenuItemChecked); // Determine if the panel item's corresponding menu is being toggled and
+  // trigger appropriate callback if it is.
+
+  (0,external_wp_element_namespaceObject.useEffect)(() => {
+    if (isResetting || !hasMatchingPanel) {
+      return;
+    }
+
+    if (isMenuItemChecked && !isValueSet && !wasMenuItemChecked) {
+      onSelect === null || onSelect === void 0 ? void 0 : onSelect();
+    }
+
+    if (!isMenuItemChecked && wasMenuItemChecked) {
+      onDeselect === null || onDeselect === void 0 ? void 0 : onDeselect();
+    }
+  }, [hasMatchingPanel, isMenuItemChecked, isResetting, isValueSet, wasMenuItemChecked]); // The item is shown if it is a default control regardless of whether it
+  // has a value. Optional items are shown when they are checked or have
+  // a value.
+
+  const isShown = isShownByDefault ? (menuItems === null || menuItems === void 0 ? void 0 : (_menuItems$menuGroup2 = menuItems[menuGroup]) === null || _menuItems$menuGroup2 === void 0 ? void 0 : _menuItems$menuGroup2[label]) !== undefined : isMenuItemChecked;
+  const cx = useCx();
+  const classes = (0,external_wp_element_namespaceObject.useMemo)(() => {
+    const placeholderStyle = shouldRenderPlaceholder && !isShown && ToolsPanelItemPlaceholder;
+    const firstItemStyle = firstDisplayedItem === label && __experimentalFirstVisibleItemClass;
+    const lastItemStyle = lastDisplayedItem === label && __experimentalLastVisibleItemClass;
+    return cx(ToolsPanelItem, placeholderStyle, className, firstItemStyle, lastItemStyle);
+  }, [isShown, shouldRenderPlaceholder, className, cx, firstDisplayedItem, lastDisplayedItem, __experimentalFirstVisibleItemClass, __experimentalLastVisibleItemClass]);
+  return { ...otherProps,
+    isShown,
+    shouldRenderPlaceholder,
+    className: classes
+  };
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/tools-panel/tools-panel-item/component.js
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+// This wraps controls to be conditionally displayed within a tools panel. It
+// prevents props being applied to HTML elements that would make them invalid.
+const component_ToolsPanelItem = (props, forwardedRef) => {
+  const {
+    children,
+    isShown,
+    shouldRenderPlaceholder,
+    ...toolsPanelItemProps
+  } = useToolsPanelItem(props);
+
+  if (!isShown) {
+    return shouldRenderPlaceholder ? (0,external_wp_element_namespaceObject.createElement)(component, extends_extends({}, toolsPanelItemProps, {
+      ref: forwardedRef
+    })) : null;
+  }
+
+  return (0,external_wp_element_namespaceObject.createElement)(component, extends_extends({}, toolsPanelItemProps, {
+    ref: forwardedRef
+  }), children);
+};
+
+const ConnectedToolsPanelItem = contextConnect(component_ToolsPanelItem, 'ToolsPanelItem');
+/* harmony default export */ var tools_panel_item_component = (ConnectedToolsPanelItem);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/tree-grid/roving-tab-index-context.js
+/**
+ * WordPress dependencies
+ */
+
+const RovingTabIndexContext = (0,external_wp_element_namespaceObject.createContext)();
+const useRovingTabIndexContext = () => (0,external_wp_element_namespaceObject.useContext)(RovingTabIndexContext);
+const RovingTabIndexProvider = RovingTabIndexContext.Provider;
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/tree-grid/roving-tab-index.js
+
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+/**
+ * Provider for adding roving tab index behaviors to tree grid structures.
+ *
+ * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/components/src/tree-grid/README.md
+ *
+ * @param {Object}    props          Component props.
+ * @param {WPElement} props.children Children to be rendered
+ */
+
+function RovingTabIndex(_ref) {
+  let {
+    children
+  } = _ref;
+  const [lastFocusedElement, setLastFocusedElement] = (0,external_wp_element_namespaceObject.useState)(); // Use `useMemo` to avoid creation of a new object for the providerValue
+  // on every render. Only create a new object when the `lastFocusedElement`
+  // value changes.
+
+  const providerValue = (0,external_wp_element_namespaceObject.useMemo)(() => ({
+    lastFocusedElement,
+    setLastFocusedElement
+  }), [lastFocusedElement]);
+  return (0,external_wp_element_namespaceObject.createElement)(RovingTabIndexProvider, {
+    value: providerValue
+  }, children);
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/tree-grid/index.js
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+/**
+ * Return focusables in a row element, excluding those from other branches
+ * nested within the row.
+ *
+ * @param {Element} rowElement The DOM element representing the row.
+ *
+ * @return {?Array} The array of focusables in the row.
+ */
+
+function getRowFocusables(rowElement) {
+  const focusablesInRow = external_wp_dom_namespaceObject.focus.focusable.find(rowElement, {
+    sequential: true
+  });
+
+  if (!focusablesInRow || !focusablesInRow.length) {
+    return;
+  }
+
+  return focusablesInRow.filter(focusable => {
+    return focusable.closest('[role="row"]') === rowElement;
+  });
+}
+/**
+ * Renders both a table and tbody element, used to create a tree hierarchy.
+ *
+ * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/components/src/tree-grid/README.md
+ * @param {Object}    props               Component props.
+ * @param {WPElement} props.children      Children to be rendered.
+ * @param {Function}  props.onExpandRow   Callback to fire when row is expanded.
+ * @param {Function}  props.onCollapseRow Callback to fire when row is collapsed.
+ * @param {Function}  props.onFocusRow    Callback to fire when moving focus to a different row.
+ * @param {Object}    ref                 A ref to the underlying DOM table element.
+ */
+
+
+function TreeGrid(_ref, ref) {
+  let {
+    children,
+    onExpandRow = () => {},
+    onCollapseRow = () => {},
+    onFocusRow = () => {},
+    ...props
+  } = _ref;
+  const onKeyDown = (0,external_wp_element_namespaceObject.useCallback)(event => {
+    const {
+      keyCode,
+      metaKey,
+      ctrlKey,
+      altKey
+    } = event; // The shift key is intentionally absent from the following list,
+    // to enable shift + up/down to select items from the list.
+
+    const hasModifierKeyPressed = metaKey || ctrlKey || altKey;
+
+    if (hasModifierKeyPressed || !(0,external_lodash_namespaceObject.includes)([external_wp_keycodes_namespaceObject.UP, external_wp_keycodes_namespaceObject.DOWN, external_wp_keycodes_namespaceObject.LEFT, external_wp_keycodes_namespaceObject.RIGHT, external_wp_keycodes_namespaceObject.HOME, external_wp_keycodes_namespaceObject.END], keyCode)) {
+      return;
+    } // The event will be handled, stop propagation.
+
+
+    event.stopPropagation();
+    const {
+      activeElement
+    } = document;
+    const {
+      currentTarget: treeGridElement
+    } = event;
+
+    if (!treeGridElement.contains(activeElement)) {
+      return;
+    } // Calculate the columnIndex of the active element.
+
+
+    const activeRow = activeElement.closest('[role="row"]');
+    const focusablesInRow = getRowFocusables(activeRow);
+    const currentColumnIndex = focusablesInRow.indexOf(activeElement);
+    const canExpandCollapse = 0 === currentColumnIndex;
+    const cannotFocusNextColumn = canExpandCollapse && activeRow.getAttribute('aria-expanded') === 'false' && keyCode === external_wp_keycodes_namespaceObject.RIGHT;
+
+    if ((0,external_lodash_namespaceObject.includes)([external_wp_keycodes_namespaceObject.LEFT, external_wp_keycodes_namespaceObject.RIGHT], keyCode)) {
+      // Calculate to the next element.
+      let nextIndex;
+
+      if (keyCode === external_wp_keycodes_namespaceObject.LEFT) {
+        nextIndex = Math.max(0, currentColumnIndex - 1);
+      } else {
+        nextIndex = Math.min(currentColumnIndex + 1, focusablesInRow.length - 1);
+      } // Focus is at the left most column.
+
+
+      if (canExpandCollapse) {
+        if (keyCode === external_wp_keycodes_namespaceObject.LEFT) {
+          var _activeRow$getAttribu, _getRowFocusables, _getRowFocusables$;
+
+          // Left:
+          // If a row is focused, and it is expanded, collapses the current row.
+          if (activeRow.getAttribute('aria-expanded') === 'true') {
+            onCollapseRow(activeRow);
+            event.preventDefault();
+            return;
+          } // If a row is focused, and it is collapsed, moves to the parent row (if there is one).
+
+
+          const level = Math.max(parseInt((_activeRow$getAttribu = activeRow === null || activeRow === void 0 ? void 0 : activeRow.getAttribute('aria-level')) !== null && _activeRow$getAttribu !== void 0 ? _activeRow$getAttribu : 1, 10) - 1, 1);
+          const rows = Array.from(treeGridElement.querySelectorAll('[role="row"]'));
+          let parentRow = activeRow;
+          const currentRowIndex = rows.indexOf(activeRow);
+
+          for (let i = currentRowIndex; i >= 0; i--) {
+            if (parseInt(rows[i].getAttribute('aria-level'), 10) === level) {
+              parentRow = rows[i];
+              break;
+            }
+          }
+
+          (_getRowFocusables = getRowFocusables(parentRow)) === null || _getRowFocusables === void 0 ? void 0 : (_getRowFocusables$ = _getRowFocusables[0]) === null || _getRowFocusables$ === void 0 ? void 0 : _getRowFocusables$.focus();
+        }
+
+        if (keyCode === external_wp_keycodes_namespaceObject.RIGHT) {
+          // Right:
+          // If a row is focused, and it is collapsed, expands the current row.
+          if (activeRow.getAttribute('aria-expanded') === 'false') {
+            onExpandRow(activeRow);
+            event.preventDefault();
+            return;
+          } // If a row is focused, and it is expanded, focuses the rightmost cell in the row.
+
+
+          const focusableItems = getRowFocusables(activeRow);
+
+          if (focusableItems.length > 0) {
+            var _focusableItems;
+
+            (_focusableItems = focusableItems[focusableItems.length - 1]) === null || _focusableItems === void 0 ? void 0 : _focusableItems.focus();
+          }
+        } // Prevent key use for anything else. For example, Voiceover
+        // will start reading text on continued use of left/right arrow
+        // keys.
+
+
+        event.preventDefault();
+        return;
+      } // Focus the next element. If at most left column and row is collapsed, moving right is not allowed as this will expand. However, if row is collapsed, moving left is allowed.
+
+
+      if (cannotFocusNextColumn) {
+        return;
+      }
+
+      focusablesInRow[nextIndex].focus(); // Prevent key use for anything else. This ensures Voiceover
+      // doesn't try to handle key navigation.
+
+      event.preventDefault();
+    } else if ((0,external_lodash_namespaceObject.includes)([external_wp_keycodes_namespaceObject.UP, external_wp_keycodes_namespaceObject.DOWN], keyCode)) {
+      // Calculate the rowIndex of the next row.
+      const rows = Array.from(treeGridElement.querySelectorAll('[role="row"]'));
+      const currentRowIndex = rows.indexOf(activeRow);
+      let nextRowIndex;
+
+      if (keyCode === external_wp_keycodes_namespaceObject.UP) {
+        nextRowIndex = Math.max(0, currentRowIndex - 1);
+      } else {
+        nextRowIndex = Math.min(currentRowIndex + 1, rows.length - 1);
+      } // Focus is either at the top or bottom edge of the grid. Do nothing.
+
+
+      if (nextRowIndex === currentRowIndex) {
+        // Prevent key use for anything else. For example, Voiceover
+        // will start navigating horizontally when reaching the vertical
+        // bounds of a table.
+        event.preventDefault();
+        return;
+      } // Get the focusables in the next row.
+
+
+      const focusablesInNextRow = getRowFocusables(rows[nextRowIndex]); // If for some reason there are no focusables in the next row, do nothing.
+
+      if (!focusablesInNextRow || !focusablesInNextRow.length) {
+        // Prevent key use for anything else. For example, Voiceover
+        // will still focus text when using arrow keys, while this
+        // component should limit navigation to focusables.
+        event.preventDefault();
+        return;
+      } // Try to focus the element in the next row that's at a similar column to the activeElement.
+
+
+      const nextIndex = Math.min(currentColumnIndex, focusablesInNextRow.length - 1);
+      focusablesInNextRow[nextIndex].focus(); // Let consumers know the row that was originally focused,
+      // and the row that is now in focus.
+
+      onFocusRow(event, activeRow, rows[nextRowIndex]); // Prevent key use for anything else. This ensures Voiceover
+      // doesn't try to handle key navigation.
+
+      event.preventDefault();
+    } else if ((0,external_lodash_namespaceObject.includes)([external_wp_keycodes_namespaceObject.HOME, external_wp_keycodes_namespaceObject.END], keyCode)) {
+      // Calculate the rowIndex of the next row.
+      const rows = Array.from(treeGridElement.querySelectorAll('[role="row"]'));
+      const currentRowIndex = rows.indexOf(activeRow);
+      let nextRowIndex;
+
+      if (keyCode === external_wp_keycodes_namespaceObject.HOME) {
+        nextRowIndex = 0;
       } else {
-        util.scrollTop(container, containerScroll.top + diffBottom.top);
-      }
-    }
-  } else {
-    if (!onlyScrollIfNeeded) {
-      alignWithTop = alignWithTop === undefined ? true : !!alignWithTop;
-      if (alignWithTop) {
-        util.scrollTop(container, containerScroll.top + diffTop.top);
-      } else {
-        util.scrollTop(container, containerScroll.top + diffBottom.top);
-      }
-    }
-  }
-
-  if (allowHorizontalScroll) {
-    if (diffTop.left < 0 || diffBottom.left > 0) {
-      // 强制向上
-      if (alignWithLeft === true) {
-        util.scrollLeft(container, containerScroll.left + diffTop.left);
-      } else if (alignWithLeft === false) {
-        util.scrollLeft(container, containerScroll.left + diffBottom.left);
-      } else {
-        // 自动调整
-        if (diffTop.left < 0) {
-          util.scrollLeft(container, containerScroll.left + diffTop.left);
-        } else {
-          util.scrollLeft(container, containerScroll.left + diffBottom.left);
-        }
-      }
-    } else {
-      if (!onlyScrollIfNeeded) {
-        alignWithLeft = alignWithLeft === undefined ? true : !!alignWithLeft;
-        if (alignWithLeft) {
-          util.scrollLeft(container, containerScroll.left + diffTop.left);
-        } else {
-          util.scrollLeft(container, containerScroll.left + diffBottom.left);
-        }
-      }
-    }
-  }
-}
-
-module.exports = scrollIntoView;
-
-/***/ })
-
-/******/ });
\ No newline at end of file
+        nextRowIndex = rows.length - 1;
+      } // Focus is either at the top or bottom edge of the grid. Do nothing.
+
+
+      if (nextRowIndex === currentRowIndex) {
+        // Prevent key use for anything else. For example, Voiceover
+        // will start navigating horizontally when reaching the vertical
+        // bounds of a table.
+        event.preventDefault();
+        return;
+      } // Get the focusables in the next row.
+
+
+      const focusablesInNextRow = getRowFocusables(rows[nextRowIndex]); // If for some reason there are no focusables in the next row, do nothing.
+
+      if (!focusablesInNextRow || !focusablesInNextRow.length) {
+        // Prevent key use for anything else. For example, Voiceover
+        // will still focus text when using arrow keys, while this
+        // component should limit navigation to focusables.
+        event.preventDefault();
+        return;
+      } // Try to focus the element in the next row that's at a similar column to the activeElement.
+
+
+      const nextIndex = Math.min(currentColumnIndex, focusablesInNextRow.length - 1);
+      focusablesInNextRow[nextIndex].focus(); // Let consumers know the row that was originally focused,
+      // and the row that is now in focus.
+
+      onFocusRow(event, activeRow, rows[nextRowIndex]); // Prevent key use for anything else. This ensures Voiceover
+      // doesn't try to handle key navigation.
+
+      event.preventDefault();
+    }
+  }, [onExpandRow, onCollapseRow, onFocusRow]);
+  /* Disable reason: A treegrid is implemented using a table element. */
+
+  /* eslint-disable jsx-a11y/no-noninteractive-element-to-interactive-role */
+
+  return (0,external_wp_element_namespaceObject.createElement)(RovingTabIndex, null, (0,external_wp_element_namespaceObject.createElement)("table", extends_extends({}, props, {
+    role: "treegrid",
+    onKeyDown: onKeyDown,
+    ref: ref
+  }), (0,external_wp_element_namespaceObject.createElement)("tbody", null, children)));
+  /* eslint-enable jsx-a11y/no-noninteractive-element-to-interactive-role */
+}
+
+/* harmony default export */ var tree_grid = ((0,external_wp_element_namespaceObject.forwardRef)(TreeGrid));
+
+
+
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/tree-grid/row.js
+
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+function TreeGridRow(_ref, ref) {
+  let {
+    children,
+    level,
+    positionInSet,
+    setSize,
+    isExpanded,
+    ...props
+  } = _ref;
+  return (// Disable reason: Due to an error in the ARIA 1.1 specification, the
+    // aria-posinset and aria-setsize properties are not supported on row
+    // elements. This is being corrected in ARIA 1.2. Consequently, the
+    // linting rule fails when validating this markup.
+    //
+    // eslint-disable-next-line jsx-a11y/role-supports-aria-props
+    (0,external_wp_element_namespaceObject.createElement)("tr", extends_extends({}, props, {
+      ref: ref,
+      role: "row",
+      "aria-level": level,
+      "aria-posinset": positionInSet,
+      "aria-setsize": setSize,
+      "aria-expanded": isExpanded
+    }), children)
+  );
+}
+
+/* harmony default export */ var tree_grid_row = ((0,external_wp_element_namespaceObject.forwardRef)(TreeGridRow));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/tree-grid/roving-tab-index-item.js
+
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+/* harmony default export */ var roving_tab_index_item = ((0,external_wp_element_namespaceObject.forwardRef)(function RovingTabIndexItem(_ref, forwardedRef) {
+  let {
+    children,
+    as: Component,
+    ...props
+  } = _ref;
+  const localRef = (0,external_wp_element_namespaceObject.useRef)();
+  const ref = forwardedRef || localRef;
+  const {
+    lastFocusedElement,
+    setLastFocusedElement
+  } = useRovingTabIndexContext();
+  let tabIndex;
+
+  if (lastFocusedElement) {
+    tabIndex = lastFocusedElement === ref.current ? 0 : -1;
+  }
+
+  const onFocus = event => setLastFocusedElement(event.target);
+
+  const allProps = {
+    ref,
+    tabIndex,
+    onFocus,
+    ...props
+  };
+
+  if (typeof children === 'function') {
+    return children(allProps);
+  }
+
+  return (0,external_wp_element_namespaceObject.createElement)(Component, allProps, children);
+}));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/tree-grid/item.js
+
+
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+/* harmony default export */ var tree_grid_item = ((0,external_wp_element_namespaceObject.forwardRef)(function TreeGridItem(_ref, ref) {
+  let {
+    children,
+    ...props
+  } = _ref;
+  return (0,external_wp_element_namespaceObject.createElement)(roving_tab_index_item, extends_extends({
+    ref: ref
+  }, props), children);
+}));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/tree-grid/cell.js
+
+
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+/* harmony default export */ var cell = ((0,external_wp_element_namespaceObject.forwardRef)(function TreeGridCell(_ref, ref) {
+  let {
+    children,
+    withoutGridItem = false,
+    ...props
+  } = _ref;
+  return (0,external_wp_element_namespaceObject.createElement)("td", extends_extends({}, props, {
+    role: "gridcell"
+  }), withoutGridItem ? children : (0,external_wp_element_namespaceObject.createElement)(tree_grid_item, {
+    ref: ref
+  }, children));
+}));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/isolated-event-container/index.js
+
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+function stopPropagation(event) {
+  event.stopPropagation();
+}
+
+/* harmony default export */ var isolated_event_container = ((0,external_wp_element_namespaceObject.forwardRef)((_ref, ref) => {
+  let {
+    children,
+    ...props
+  } = _ref;
+  external_wp_deprecated_default()('wp.components.IsolatedEventContainer', {
+    since: '5.7'
+  }); // Disable reason: this stops certain events from propagating outside of the component.
+  // - onMouseDown is disabled as this can cause interactions with other DOM elements.
+
+  /* eslint-disable jsx-a11y/no-static-element-interactions */
+
+  return (0,external_wp_element_namespaceObject.createElement)("div", extends_extends({}, props, {
+    ref: ref,
+    onMouseDown: stopPropagation
+  }), children);
+  /* eslint-enable jsx-a11y/no-static-element-interactions */
+}));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/z-stack/styles.js
+
+
+function z_stack_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+const ZStackView = emotion_styled_base_browser_esm("div",  true ? {
+  target: "ebn2ljm1"
+} : 0)( true ? {
+  name: "5ob2ly",
+  styles: "display:flex;position:relative"
+} : 0);
+const ZStackChildView = emotion_styled_base_browser_esm("div",  true ? {
+  target: "ebn2ljm0"
+} : 0)(_ref => {
+  let {
+    isLayered,
+    offsetAmount
+  } = _ref;
+  return isLayered ? /*#__PURE__*/emotion_react_browser_esm_css(rtl({
+    marginLeft: offsetAmount
+  })(),  true ? "" : 0,  true ? "" : 0) : /*#__PURE__*/emotion_react_browser_esm_css(rtl({
+    right: offsetAmount * -1
+  })(),  true ? "" : 0,  true ? "" : 0);
+}, " ", _ref2 => {
+  let {
+    isLayered
+  } = _ref2;
+  return isLayered ? positionAbsolute : positionRelative;
+}, " ", _ref3 => {
+  let {
+    zIndex
+  } = _ref3;
+  return /*#__PURE__*/emotion_react_browser_esm_css({
+    zIndex
+  },  true ? "" : 0,  true ? "" : 0);
+}, ";" + ( true ? "" : 0));
+const positionAbsolute =  true ? {
+  name: "a4hmbt",
+  styles: "position:absolute"
+} : 0;
+const positionRelative =  true ? {
+  name: "bjn8wh",
+  styles: "position:relative"
+} : 0;
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/z-stack/component.js
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+function ZStack(props, forwardedRef) {
+  const {
+    children,
+    className,
+    isLayered = true,
+    isReversed = false,
+    offset = 0,
+    ...otherProps
+  } = useContextSystem(props, 'ZStack');
+  const validChildren = getValidChildren(children);
+  const childrenLastIndex = validChildren.length - 1;
+  const clonedChildren = validChildren.map((child, index) => {
+    const zIndex = isReversed ? childrenLastIndex - index : index;
+    const offsetAmount = offset * index;
+    const key = (0,external_wp_element_namespaceObject.isValidElement)(child) ? child.key : index;
+    return (0,external_wp_element_namespaceObject.createElement)(ZStackChildView, {
+      isLayered: isLayered,
+      offsetAmount: offsetAmount,
+      zIndex: zIndex,
+      key: key
+    }, child);
+  });
+  return (0,external_wp_element_namespaceObject.createElement)(ZStackView, extends_extends({}, otherProps, {
+    className: className,
+    ref: forwardedRef
+  }), clonedChildren);
+}
+
+/* harmony default export */ var z_stack_component = (contextConnect(ZStack, 'ZStack'));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/higher-order/navigate-regions/index.js
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+const defaultShortcuts = {
+  previous: [{
+    modifier: 'ctrlShift',
+    character: '`'
+  }, {
+    modifier: 'access',
+    character: 'p'
+  }],
+  next: [{
+    modifier: 'ctrl',
+    character: '`'
+  }, {
+    modifier: 'access',
+    character: 'n'
+  }]
+};
+function useNavigateRegions() {
+  let shortcuts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultShortcuts;
+  const ref = (0,external_wp_element_namespaceObject.useRef)();
+  const [isFocusingRegions, setIsFocusingRegions] = (0,external_wp_element_namespaceObject.useState)(false);
+
+  function focusRegion(offset) {
+    const regions = Array.from(ref.current.querySelectorAll('[role="region"]'));
+
+    if (!regions.length) {
+      return;
+    }
+
+    let nextRegion = regions[0];
+    const selectedIndex = regions.indexOf(ref.current.ownerDocument.activeElement);
+
+    if (selectedIndex !== -1) {
+      let nextIndex = selectedIndex + offset;
+      nextIndex = nextIndex === -1 ? regions.length - 1 : nextIndex;
+      nextIndex = nextIndex === regions.length ? 0 : nextIndex;
+      nextRegion = regions[nextIndex];
+    }
+
+    nextRegion.focus();
+    setIsFocusingRegions(true);
+  }
+
+  const clickRef = (0,external_wp_compose_namespaceObject.useRefEffect)(element => {
+    function onClick() {
+      setIsFocusingRegions(false);
+    }
+
+    element.addEventListener('click', onClick);
+    return () => {
+      element.removeEventListener('click', onClick);
+    };
+  }, [setIsFocusingRegions]);
+  return {
+    ref: (0,external_wp_compose_namespaceObject.useMergeRefs)([ref, clickRef]),
+    className: isFocusingRegions ? 'is-focusing-regions' : '',
+
+    onKeyDown(event) {
+      if (shortcuts.previous.some(_ref => {
+        let {
+          modifier,
+          character
+        } = _ref;
+        return external_wp_keycodes_namespaceObject.isKeyboardEvent[modifier](event, character);
+      })) {
+        focusRegion(-1);
+      } else if (shortcuts.next.some(_ref2 => {
+        let {
+          modifier,
+          character
+        } = _ref2;
+        return external_wp_keycodes_namespaceObject.isKeyboardEvent[modifier](event, character);
+      })) {
+        focusRegion(1);
+      }
+    }
+
+  };
+}
+/* harmony default export */ var navigate_regions = ((0,external_wp_compose_namespaceObject.createHigherOrderComponent)(Component => _ref3 => {
+  let {
+    shortcuts,
+    ...props
+  } = _ref3;
+  return (0,external_wp_element_namespaceObject.createElement)("div", useNavigateRegions(shortcuts), (0,external_wp_element_namespaceObject.createElement)(Component, props));
+}, 'navigateRegions'));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/higher-order/with-constrained-tabbing/index.js
+
+
+/**
+ * WordPress dependencies
+ */
+
+const withConstrainedTabbing = (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(WrappedComponent => function ComponentWithConstrainedTabbing(props) {
+  const ref = (0,external_wp_compose_namespaceObject.useConstrainedTabbing)();
+  return (0,external_wp_element_namespaceObject.createElement)("div", {
+    ref: ref,
+    tabIndex: "-1"
+  }, (0,external_wp_element_namespaceObject.createElement)(WrappedComponent, props));
+}, 'withConstrainedTabbing');
+/* harmony default export */ var with_constrained_tabbing = (withConstrainedTabbing);
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/higher-order/with-fallback-styles/index.js
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+/* harmony default export */ var with_fallback_styles = (mapNodeToProps => (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(WrappedComponent => {
+  return class extends external_wp_element_namespaceObject.Component {
+    constructor() {
+      super(...arguments);
+      this.nodeRef = this.props.node;
+      this.state = {
+        fallbackStyles: undefined,
+        grabStylesCompleted: false
+      };
+      this.bindRef = this.bindRef.bind(this);
+    }
+
+    bindRef(node) {
+      if (!node) {
+        return;
+      }
+
+      this.nodeRef = node;
+    }
+
+    componentDidMount() {
+      this.grabFallbackStyles();
+    }
+
+    componentDidUpdate() {
+      this.grabFallbackStyles();
+    }
+
+    grabFallbackStyles() {
+      const {
+        grabStylesCompleted,
+        fallbackStyles
+      } = this.state;
+
+      if (this.nodeRef && !grabStylesCompleted) {
+        const newFallbackStyles = mapNodeToProps(this.nodeRef, this.props);
+
+        if (!(0,external_lodash_namespaceObject.isEqual)(newFallbackStyles, fallbackStyles)) {
+          this.setState({
+            fallbackStyles: newFallbackStyles,
+            grabStylesCompleted: !!(0,external_lodash_namespaceObject.every)(newFallbackStyles)
+          });
+        }
+      }
+    }
+
+    render() {
+      const wrappedComponent = (0,external_wp_element_namespaceObject.createElement)(WrappedComponent, extends_extends({}, this.props, this.state.fallbackStyles));
+      return this.props.node ? wrappedComponent : (0,external_wp_element_namespaceObject.createElement)("div", {
+        ref: this.bindRef
+      }, " ", wrappedComponent, " ");
+    }
+
+  };
+}, 'withFallbackStyles'));
+
+;// CONCATENATED MODULE: external ["wp","hooks"]
+var external_wp_hooks_namespaceObject = window["wp"]["hooks"];
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/higher-order/with-filters/index.js
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+const ANIMATION_FRAME_PERIOD = 16;
+/**
+ * Creates a higher-order component which adds filtering capability to the
+ * wrapped component. Filters get applied when the original component is about
+ * to be mounted. When a filter is added or removed that matches the hook name,
+ * the wrapped component re-renders.
+ *
+ * @param {string} hookName Hook name exposed to be used by filters.
+ *
+ * @return {Function} Higher-order component factory.
+ */
+
+function withFilters(hookName) {
+  return (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(OriginalComponent => {
+    const namespace = 'core/with-filters/' + hookName;
+    /**
+     * The component definition with current filters applied. Each instance
+     * reuse this shared reference as an optimization to avoid excessive
+     * calls to `applyFilters` when many instances exist.
+     *
+     * @type {?Component}
+     */
+
+    let FilteredComponent;
+    /**
+     * Initializes the FilteredComponent variable once, if not already
+     * assigned. Subsequent calls are effectively a noop.
+     */
+
+    function ensureFilteredComponent() {
+      if (FilteredComponent === undefined) {
+        FilteredComponent = (0,external_wp_hooks_namespaceObject.applyFilters)(hookName, OriginalComponent);
+      }
+    }
+
+    class FilteredComponentRenderer extends external_wp_element_namespaceObject.Component {
+      constructor() {
+        super(...arguments);
+        ensureFilteredComponent();
+      }
+
+      componentDidMount() {
+        FilteredComponentRenderer.instances.push(this); // If there were previously no mounted instances for components
+        // filtered on this hook, add the hook handler.
+
+        if (FilteredComponentRenderer.instances.length === 1) {
+          (0,external_wp_hooks_namespaceObject.addAction)('hookRemoved', namespace, onHooksUpdated);
+          (0,external_wp_hooks_namespaceObject.addAction)('hookAdded', namespace, onHooksUpdated);
+        }
+      }
+
+      componentWillUnmount() {
+        FilteredComponentRenderer.instances = (0,external_lodash_namespaceObject.without)(FilteredComponentRenderer.instances, this); // If this was the last of the mounted components filtered on
+        // this hook, remove the hook handler.
+
+        if (FilteredComponentRenderer.instances.length === 0) {
+          (0,external_wp_hooks_namespaceObject.removeAction)('hookRemoved', namespace);
+          (0,external_wp_hooks_namespaceObject.removeAction)('hookAdded', namespace);
+        }
+      }
+
+      render() {
+        return (0,external_wp_element_namespaceObject.createElement)(FilteredComponent, this.props);
+      }
+
+    }
+
+    FilteredComponentRenderer.instances = [];
+    /**
+     * Updates the FilteredComponent definition, forcing a render for each
+     * mounted instance. This occurs a maximum of once per animation frame.
+     */
+
+    const throttledForceUpdate = (0,external_lodash_namespaceObject.debounce)(() => {
+      // Recreate the filtered component, only after delay so that it's
+      // computed once, even if many filters added.
+      FilteredComponent = (0,external_wp_hooks_namespaceObject.applyFilters)(hookName, OriginalComponent); // Force each instance to render.
+
+      FilteredComponentRenderer.instances.forEach(instance => {
+        instance.forceUpdate();
+      });
+    }, ANIMATION_FRAME_PERIOD);
+    /**
+     * When a filter is added or removed for the matching hook name, each
+     * mounted instance should re-render with the new filters having been
+     * applied to the original component.
+     *
+     * @param {string} updatedHookName Name of the hook that was updated.
+     */
+
+    function onHooksUpdated(updatedHookName) {
+      if (updatedHookName === hookName) {
+        throttledForceUpdate();
+      }
+    }
+
+    return FilteredComponentRenderer;
+  }, 'withFilters');
+}
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/higher-order/with-focus-return/index.js
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+/**
+ * Returns true if the given object is component-like. An object is component-
+ * like if it is an instance of wp.element.Component, or is a function.
+ *
+ * @param {*} object Object to test.
+ *
+ * @return {boolean} Whether object is component-like.
+ */
+
+function isComponentLike(object) {
+  return object instanceof external_wp_element_namespaceObject.Component || typeof object === 'function';
+}
+/**
+ * Higher Order Component used to be used to wrap disposable elements like
+ * sidebars, modals, dropdowns. When mounting the wrapped component, we track a
+ * reference to the current active element so we know where to restore focus
+ * when the component is unmounted.
+ *
+ * @param {(WPComponent|Object)} options The component to be enhanced with
+ *                                       focus return behavior, or an object
+ *                                       describing the component and the
+ *                                       focus return characteristics.
+ *
+ * @return {Function} Higher Order Component with the focus restauration behaviour.
+ */
+
+
+/* harmony default export */ var with_focus_return = ((0,external_wp_compose_namespaceObject.createHigherOrderComponent)(options => {
+  const HoC = function () {
+    let {
+      onFocusReturn
+    } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+    return WrappedComponent => {
+      const WithFocusReturn = props => {
+        const ref = (0,external_wp_compose_namespaceObject.useFocusReturn)(onFocusReturn);
+        return (0,external_wp_element_namespaceObject.createElement)("div", {
+          ref: ref
+        }, (0,external_wp_element_namespaceObject.createElement)(WrappedComponent, props));
+      };
+
+      return WithFocusReturn;
+    };
+  };
+
+  if (isComponentLike(options)) {
+    const WrappedComponent = options;
+    return HoC()(WrappedComponent);
+  }
+
+  return HoC(options);
+}, 'withFocusReturn'));
+const with_focus_return_Provider = _ref => {
+  let {
+    children
+  } = _ref;
+  external_wp_deprecated_default()('wp.components.FocusReturnProvider component', {
+    since: '5.7',
+    hint: 'This provider is not used anymore. You can just remove it from your codebase'
+  });
+  return children;
+};
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/higher-order/with-notices/index.js
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+/**
+ * Override the default edit UI to include notices if supported.
+ *
+ * @param {WPComponent} OriginalComponent Original component.
+ *
+ * @return {WPComponent} Wrapped component.
+ */
+
+/* harmony default export */ var with_notices = ((0,external_wp_compose_namespaceObject.createHigherOrderComponent)(OriginalComponent => {
+  function Component(props, ref) {
+    const [noticeList, setNoticeList] = (0,external_wp_element_namespaceObject.useState)([]);
+    const noticeOperations = (0,external_wp_element_namespaceObject.useMemo)(() => {
+      /**
+       * Function passed down as a prop that adds a new notice.
+       *
+       * @param {Object} notice Notice to add.
+       */
+      const createNotice = notice => {
+        const noticeToAdd = notice.id ? notice : { ...notice,
+          id: esm_browser_v4()
+        };
+        setNoticeList(current => [...current, noticeToAdd]);
+      };
+
+      return {
+        createNotice,
+
+        /**
+         * Function passed as a prop that adds a new error notice.
+         *
+         * @param {string} msg Error message of the notice.
+         */
+        createErrorNotice: msg => {
+          createNotice({
+            status: 'error',
+            content: msg
+          });
+        },
+
+        /**
+         * Removes a notice by id.
+         *
+         * @param {string} id Id of the notice to remove.
+         */
+        removeNotice: id => {
+          setNoticeList(current => current.filter(notice => notice.id !== id));
+        },
+
+        /**
+         * Removes all notices
+         */
+        removeAllNotices: () => {
+          setNoticeList([]);
+        }
+      };
+    }, []);
+    const propsOut = { ...props,
+      noticeList,
+      noticeOperations,
+      noticeUI: noticeList.length > 0 && (0,external_wp_element_namespaceObject.createElement)(list, {
+        className: "components-with-notices-ui",
+        notices: noticeList,
+        onRemove: noticeOperations.removeNotice
+      })
+    };
+    return isForwardRef ? (0,external_wp_element_namespaceObject.createElement)(OriginalComponent, extends_extends({}, propsOut, {
+      ref: ref
+    })) : (0,external_wp_element_namespaceObject.createElement)(OriginalComponent, propsOut);
+  }
+
+  let isForwardRef;
+  const {
+    render
+  } = OriginalComponent; // Returns a forwardRef if OriginalComponent appears to be a forwardRef.
+
+  if (typeof render === 'function') {
+    isForwardRef = true;
+    return (0,external_wp_element_namespaceObject.forwardRef)(Component);
+  }
+
+  return Component;
+}));
+
+;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/index.js
+// Primitives.
+ // Components.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ // Higher-Order Components.
+
+
+
+
+
+
+
+
+
+
+}();
+(window.wp = window.wp || {}).components = __webpack_exports__;
+/******/ })()
+;
\ No newline at end of file