wp/wp-includes/js/dist/components.js
changeset 16 a86126ab1dd4
parent 9 177826044cd9
child 18 be944660c56a
--- a/wp/wp-includes/js/dist/components.js	Tue Oct 22 16:11:46 2019 +0200
+++ b/wp/wp-includes/js/dist/components.js	Tue Dec 15 13:49:49 2020 +0100
@@ -82,7 +82,7 @@
 /******/
 /******/
 /******/ 	// Load entry module and return exports
-/******/ 	return __webpack_require__(__webpack_require__.s = 359);
+/******/ 	return __webpack_require__(__webpack_require__.s = 260);
 /******/ })
 /************************************************************************/
 /******/ ([
@@ -104,156 +104,9 @@
 (function() { module.exports = this["lodash"]; }());
 
 /***/ }),
-/* 3 */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _assertThisInitialized; });
-function _assertThisInitialized(self) {
-  if (self === void 0) {
-    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
-  }
-
-  return self;
-}
-
-/***/ }),
+/* 3 */,
 /* 4 */,
-/* 5 */,
-/* 6 */
-/***/ (function(module, exports) {
-
-(function() { module.exports = this["wp"]["compose"]; }());
-
-/***/ }),
-/* 7 */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _objectSpread; });
-/* harmony import */ var _defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15);
-
-function _objectSpread(target) {
-  for (var i = 1; i < arguments.length; i++) {
-    var source = arguments[i] != null ? arguments[i] : {};
-    var ownKeys = Object.keys(source);
-
-    if (typeof Object.getOwnPropertySymbols === 'function') {
-      ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
-        return Object.getOwnPropertyDescriptor(source, sym).enumerable;
-      }));
-    }
-
-    ownKeys.forEach(function (key) {
-      Object(_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(target, key, source[key]);
-    });
-  }
-
-  return target;
-}
-
-/***/ }),
-/* 8 */,
-/* 9 */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _createClass; });
-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;
-}
-
-/***/ }),
-/* 10 */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _classCallCheck; });
-function _classCallCheck(instance, Constructor) {
-  if (!(instance instanceof Constructor)) {
-    throw new TypeError("Cannot call a class as a function");
-  }
-}
-
-/***/ }),
-/* 11 */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _possibleConstructorReturn; });
-/* harmony import */ var _helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(32);
-/* harmony import */ var _assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3);
-
-
-function _possibleConstructorReturn(self, call) {
-  if (call && (Object(_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(call) === "object" || typeof call === "function")) {
-    return call;
-  }
-
-  return Object(_assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(self);
-}
-
-/***/ }),
-/* 12 */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _getPrototypeOf; });
-function _getPrototypeOf(o) {
-  _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
-    return o.__proto__ || Object.getPrototypeOf(o);
-  };
-  return _getPrototypeOf(o);
-}
-
-/***/ }),
-/* 13 */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-
-// 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/inherits.js
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _inherits; });
-
-function _inherits(subClass, superClass) {
-  if (typeof superClass !== "function" && superClass !== null) {
-    throw new TypeError("Super expression must either be null or a function");
-  }
-
-  subClass.prototype = Object.create(superClass && superClass.prototype, {
-    constructor: {
-      value: subClass,
-      writable: true,
-      configurable: true
-    }
-  });
-  if (superClass) _setPrototypeOf(subClass, superClass);
-}
-
-/***/ }),
-/* 14 */,
-/* 15 */
+/* 5 */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
@@ -274,7 +127,45 @@
 }
 
 /***/ }),
-/* 16 */
+/* 6 */
+/***/ (function(module, exports) {
+
+(function() { module.exports = this["wp"]["primitives"]; }());
+
+/***/ }),
+/* 7 */,
+/* 8 */
+/***/ (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);
+}
+
+/***/ }),
+/* 9 */
+/***/ (function(module, exports) {
+
+(function() { module.exports = this["wp"]["compose"]; }());
+
+/***/ }),
+/* 10 */,
+/* 11 */
 /***/ (function(module, exports, __webpack_require__) {
 
 var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
@@ -331,153 +222,40 @@
 
 
 /***/ }),
-/* 17 */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-
-// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js
-function _arrayWithoutHoles(arr) {
-  if (Array.isArray(arr)) {
-    for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {
-      arr2[i] = arr[i];
-    }
-
-    return arr2;
-  }
-}
-// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js
-var iterableToArray = __webpack_require__(34);
-
-// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js
-function _nonIterableSpread() {
-  throw new TypeError("Invalid attempt to spread non-iterable instance");
-}
-// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _toConsumableArray; });
-
-
-
-function _toConsumableArray(arr) {
-  return _arrayWithoutHoles(arr) || Object(iterableToArray["a" /* default */])(arr) || _nonIterableSpread();
-}
-
-/***/ }),
-/* 18 */
-/***/ (function(module, exports) {
-
-(function() { module.exports = this["wp"]["keycodes"]; }());
-
-/***/ }),
-/* 19 */
-/***/ (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);
-}
-
-/***/ }),
-/* 20 */
-/***/ (function(module, exports) {
-
-(function() { module.exports = this["wp"]["richText"]; }());
-
-/***/ }),
-/* 21 */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-
-// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js
-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;
-}
-// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _objectWithoutProperties; });
-
-function _objectWithoutProperties(source, excluded) {
-  if (source == null) return {};
-  var target = _objectWithoutPropertiesLoose(source, excluded);
-  var key, i;
-
-  if (Object.getOwnPropertySymbols) {
-    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
-
-    for (i = 0; i < sourceSymbolKeys.length; i++) {
-      key = sourceSymbolKeys[i];
-      if (excluded.indexOf(key) >= 0) continue;
-      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
-      target[key] = source[key];
-    }
-  }
-
-  return target;
-}
-
-/***/ }),
-/* 22 */,
-/* 23 */,
-/* 24 */
-/***/ (function(module, exports) {
-
-(function() { module.exports = this["wp"]["dom"]; }());
-
-/***/ }),
-/* 25 */
-/***/ (function(module, exports) {
-
-(function() { module.exports = this["wp"]["url"]; }());
-
-/***/ }),
-/* 26 */
-/***/ (function(module, exports) {
-
-(function() { module.exports = this["wp"]["hooks"]; }());
-
-/***/ }),
-/* 27 */
+/* 12 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _assertThisInitialized; });
+function _assertThisInitialized(self) {
+  if (self === void 0) {
+    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+  }
+
+  return self;
+}
+
+/***/ }),
+/* 13 */
 /***/ (function(module, exports) {
 
 (function() { module.exports = this["React"]; }());
 
 /***/ }),
-/* 28 */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
+/* 14 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+
+// EXPORTS
+__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ _slicedToArray; });
 
 // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js
-var arrayWithHoles = __webpack_require__(37);
+var arrayWithHoles = __webpack_require__(38);
 
 // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js
 function _iterableToArrayLimit(arr, i) {
+  if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return;
   var _arr = [];
   var _n = true;
   var _d = false;
@@ -502,27 +280,338 @@
 
   return _arr;
 }
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js
+var unsupportedIterableToArray = __webpack_require__(29);
+
 // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js
-var nonIterableRest = __webpack_require__(38);
+var nonIterableRest = __webpack_require__(39);
 
 // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _slicedToArray; });
+
 
 
 
 function _slicedToArray(arr, i) {
-  return Object(arrayWithHoles["a" /* default */])(arr) || _iterableToArrayLimit(arr, i) || Object(nonIterableRest["a" /* default */])();
-}
-
-/***/ }),
-/* 29 */
+  return Object(arrayWithHoles["a" /* default */])(arr) || _iterableToArrayLimit(arr, i) || Object(unsupportedIterableToArray["a" /* default */])(arr, i) || Object(nonIterableRest["a" /* default */])();
+}
+
+/***/ }),
+/* 15 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _objectWithoutProperties; });
+/* harmony import */ var _objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);
+
+function _objectWithoutProperties(source, excluded) {
+  if (source == null) return {};
+  var target = Object(_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(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;
+}
+
+/***/ }),
+/* 16 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _getPrototypeOf; });
+function _getPrototypeOf(o) {
+  _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
+    return o.__proto__ || Object.getPrototypeOf(o);
+  };
+  return _getPrototypeOf(o);
+}
+
+/***/ }),
+/* 17 */
+/***/ (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);
+}
+
+
+
+
+/***/ }),
+/* 18 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+
+// EXPORTS
+__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ _toConsumableArray; });
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js
+var arrayLikeToArray = __webpack_require__(26);
+
+// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js
+
+function _arrayWithoutHoles(arr) {
+  if (Array.isArray(arr)) return Object(arrayLikeToArray["a" /* default */])(arr);
+}
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js
+var iterableToArray = __webpack_require__(35);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js
+var unsupportedIterableToArray = __webpack_require__(29);
+
+// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js
+function _nonIterableSpread() {
+  throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
+}
+// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js
+
+
+
+
+function _toConsumableArray(arr) {
+  return _arrayWithoutHoles(arr) || Object(iterableToArray["a" /* default */])(arr) || Object(unsupportedIterableToArray["a" /* default */])(arr) || _nonIterableSpread();
+}
+
+/***/ }),
+/* 19 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _createClass; });
+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;
+}
+
+/***/ }),
+/* 20 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _classCallCheck; });
+function _classCallCheck(instance, Constructor) {
+  if (!(instance instanceof Constructor)) {
+    throw new TypeError("Cannot call a class as a function");
+  }
+}
+
+/***/ }),
+/* 21 */
 /***/ (function(module, exports) {
 
-(function() { module.exports = this["moment"]; }());
-
-/***/ }),
-/* 30 */,
-/* 31 */
+(function() { module.exports = this["wp"]["keycodes"]; }());
+
+/***/ }),
+/* 22 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+
+// EXPORTS
+__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ _inherits; });
+
+// 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/inherits.js
+
+function _inherits(subClass, superClass) {
+  if (typeof superClass !== "function" && superClass !== null) {
+    throw new TypeError("Super expression must either be null or a function");
+  }
+
+  subClass.prototype = Object.create(superClass && superClass.prototype, {
+    constructor: {
+      value: subClass,
+      writable: true,
+      configurable: true
+    }
+  });
+  if (superClass) _setPrototypeOf(subClass, superClass);
+}
+
+/***/ }),
+/* 23 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _possibleConstructorReturn; });
+/* harmony import */ var _helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(40);
+/* harmony import */ var _assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
+
+
+function _possibleConstructorReturn(self, call) {
+  if (call && (Object(_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(call) === "object" || typeof call === "function")) {
+    return call;
+  }
+
+  return Object(_assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(self);
+}
+
+/***/ }),
+/* 24 */
+/***/ (function(module, exports) {
+
+(function() { module.exports = this["regeneratorRuntime"]; }());
+
+/***/ }),
+/* 25 */
+/***/ (function(module, exports) {
+
+(function() { module.exports = this["wp"]["richText"]; }());
+
+/***/ }),
+/* 26 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _arrayLikeToArray; });
+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;
+}
+
+/***/ }),
+/* 27 */,
+/* 28 */
 /***/ (function(module, exports, __webpack_require__) {
 
 /**
@@ -532,55 +621,215 @@
  * LICENSE file in the root directory of this source tree.
  */
 
-if (false) { var throwOnDirectAccess, isValidElement, REACT_ELEMENT_TYPE; } else {
+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__(89)();
-}
-
-
-/***/ }),
+  module.exports = __webpack_require__(138)();
+}
+
+
+/***/ }),
+/* 29 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _unsupportedIterableToArray; });
+/* harmony import */ var _arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(26);
+
+function _unsupportedIterableToArray(o, minLen) {
+  if (!o) return;
+  if (typeof o === "string") return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(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 Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(o, minLen);
+}
+
+/***/ }),
+/* 30 */
+/***/ (function(module, exports) {
+
+(function() { module.exports = this["wp"]["dom"]; }());
+
+/***/ }),
+/* 31 */,
 /* 32 */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _typeof; });
-function _typeof2(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof2(obj); }
-
-function _typeof(obj) {
-  if (typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol") {
-    _typeof = function _typeof(obj) {
-      return _typeof2(obj);
-    };
-  } else {
-    _typeof = function _typeof(obj) {
-      return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : _typeof2(obj);
-    };
-  }
-
-  return _typeof(obj);
-}
-
-/***/ }),
-/* 33 */
 /***/ (function(module, exports) {
 
-(function() { module.exports = this["wp"]["apiFetch"]; }());
-
-/***/ }),
+(function() { module.exports = this["wp"]["hooks"]; }());
+
+/***/ }),
+/* 33 */,
 /* 34 */
 /***/ (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__(8);
+/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15);
+/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0);
+/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__);
+/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(11);
+/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_3__);
+/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(2);
+/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_4__);
+/* harmony import */ var _wordpress_deprecated__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(37);
+/* harmony import */ var _wordpress_deprecated__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_deprecated__WEBPACK_IMPORTED_MODULE_5__);
+/* harmony import */ var _tooltip__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(86);
+/* harmony import */ var _icon__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(88);
+
+
+
+
+function _createForOfIteratorHelper(o) { if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) { var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var it, normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
+
+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(n); 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; }
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+var disabledEventsOnDisabledButton = ['onMouseDown', 'onClick'];
+function Button(props, ref) {
+  var href = props.href,
+      target = props.target,
+      isPrimary = props.isPrimary,
+      isSmall = props.isSmall,
+      isTertiary = props.isTertiary,
+      isPressed = props.isPressed,
+      isBusy = props.isBusy,
+      isDefault = props.isDefault,
+      isSecondary = props.isSecondary,
+      isLink = props.isLink,
+      isDestructive = props.isDestructive,
+      className = props.className,
+      disabled = props.disabled,
+      icon = props.icon,
+      iconSize = props.iconSize,
+      showTooltip = props.showTooltip,
+      tooltipPosition = props.tooltipPosition,
+      shortcut = props.shortcut,
+      label = props.label,
+      children = props.children,
+      isFocusable = props.__experimentalIsFocusable,
+      additionalProps = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(props, ["href", "target", "isPrimary", "isSmall", "isTertiary", "isPressed", "isBusy", "isDefault", "isSecondary", "isLink", "isDestructive", "className", "disabled", "icon", "iconSize", "showTooltip", "tooltipPosition", "shortcut", "label", "children", "__experimentalIsFocusable"]);
+
+  if (isDefault) {
+    _wordpress_deprecated__WEBPACK_IMPORTED_MODULE_5___default()('Button isDefault prop', {
+      alternative: 'isSecondary'
+    });
+  }
+
+  var classes = classnames__WEBPACK_IMPORTED_MODULE_3___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
+  });
+  var trulyDisabled = disabled && !isFocusable;
+  var Tag = href !== undefined && !trulyDisabled ? 'a' : 'button';
+  var tagProps = Tag === 'a' ? {
+    href: href,
+    target: 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;
+
+    var _iterator = _createForOfIteratorHelper(disabledEventsOnDisabledButton),
+        _step;
+
+    try {
+      for (_iterator.s(); !(_step = _iterator.n()).done;) {
+        var disabledEvent = _step.value;
+
+        additionalProps[disabledEvent] = function (event) {
+          event.stopPropagation();
+          event.preventDefault();
+        };
+      }
+    } catch (err) {
+      _iterator.e(err);
+    } finally {
+      _iterator.f();
+    }
+  } // Should show the tooltip if...
+
+
+  var 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_4__["isArray"])(children) && !children.length) && // the tooltip is not explicitly disabled.
+  false !== showTooltip);
+  var element = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__["createElement"])(Tag, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({}, tagProps, additionalProps, {
+    className: classes,
+    "aria-label": additionalProps['aria-label'] || label,
+    ref: ref
+  }), icon && Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__["createElement"])(_icon__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"], {
+    icon: icon,
+    size: iconSize
+  }), children);
+
+  if (!shouldShowTooltip) {
+    return element;
+  }
+
+  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__["createElement"])(_tooltip__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"], {
+    text: label,
+    shortcut: shortcut,
+    position: tooltipPosition
+  }, element);
+}
+/* harmony default export */ __webpack_exports__["a"] = (Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__["forwardRef"])(Button));
+
+
+/***/ }),
+/* 35 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _iterableToArray; });
 function _iterableToArray(iter) {
-  if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter);
-}
-
-/***/ }),
-/* 35 */,
+  if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter);
+}
+
+/***/ }),
 /* 36 */,
 /* 37 */
+/***/ (function(module, exports) {
+
+(function() { module.exports = this["wp"]["deprecated"]; }());
+
+/***/ }),
+/* 38 */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
@@ -590,79 +839,2089 @@
 }
 
 /***/ }),
-/* 38 */
+/* 39 */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _nonIterableRest; });
 function _nonIterableRest() {
-  throw new TypeError("Invalid attempt to destructure non-iterable instance");
-}
-
-/***/ }),
-/* 39 */
-/***/ (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']);
-
-/***/ }),
-/* 40 */,
-/* 41 */,
-/* 42 */
+  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
+}
+
+/***/ }),
+/* 40 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _typeof; });
+function _typeof(obj) {
+  "@babel/helpers - typeof";
+
+  if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
+    _typeof = function _typeof(obj) {
+      return typeof obj;
+    };
+  } else {
+    _typeof = function _typeof(obj) {
+      return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
+    };
+  }
+
+  return _typeof(obj);
+}
+
+/***/ }),
+/* 41 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _objectWithoutPropertiesLoose; });
+function _objectWithoutPropertiesLoose(source, excluded) {
+  if (source == null) return {};
+  var target = {};
+  var sourceKeys = Object.keys(source);
+  var key, i;
+
+  for (i = 0; i < sourceKeys.length; i++) {
+    key = sourceKeys[i];
+    if (excluded.indexOf(key) >= 0) continue;
+    target[key] = source[key];
+  }
+
+  return target;
+}
+
+/***/ }),
+/* 42 */,
+/* 43 */
+/***/ (function(module, exports) {
+
+(function() { module.exports = this["moment"]; }());
+
+/***/ }),
+/* 44 */,
+/* 45 */,
+/* 46 */
+/***/ (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__(13);
+/* 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__(59);
+
+
+
+/**
+ * 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;
+}
+
+
+
+
+/***/ }),
+/* 47 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return getDocument; });
+/**
+ * Returns `element.ownerDocument || window.document`.
+ */
+function getDocument(element) {
+  return element ? element.ownerDocument || element : window.document;
+}
+
+
+
+
+/***/ }),
+/* 48 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+
+// EXPORTS
+__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ createHook; });
+
+// EXTERNAL MODULE: external {"this":"React"}
+var external_this_React_ = __webpack_require__(13);
+
+// EXTERNAL MODULE: ./node_modules/reakit-system/es/SystemContext.js
+var SystemContext = __webpack_require__(74);
+
+// 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_this_React_["useDebugValue"])(token);
+  var context = Object(external_this_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_this_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__(55);
+
+// 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_this_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__(56);
+
+// 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;
+}
+
+
+
+
+/***/ }),
+/* 49 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+
+// EXPORTS
+__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ createComponent; });
+
+// EXTERNAL MODULE: external {"this":"React"}
+var external_this_React_ = __webpack_require__(13);
+
+// EXTERNAL MODULE: ./node_modules/reakit-system/es/_rollupPluginBabelHelpers-0c84a174.js
+var _rollupPluginBabelHelpers_0c84a174 = __webpack_require__(55);
+
+// EXTERNAL MODULE: ./node_modules/reakit-system/es/useCreateElement.js
+var useCreateElement = __webpack_require__(78);
+
+// 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.
+ *
+ * @example
+ * import { splitProps } from "reakit-utils";
+ *
+ * splitProps({ a: "a", b: "b" }, ["a"]); // [{ a: "a" }, { b: "b" }]
+ */
+function splitProps(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];
+}
+
+
+
+// EXTERNAL MODULE: ./node_modules/reakit-utils/es/shallowEqual.js
+var shallowEqual = __webpack_require__(56);
+
+// CONCATENATED MODULE: ./node_modules/reakit-system/es/createComponent.js
+
+
+
+
+
+
+
+function forwardRef(component) {
+  return /*#__PURE__*/Object(external_this_React_["forwardRef"])(component);
+}
+
+function memo(component, propsAreEqual) {
+  return /*#__PURE__*/Object(external_this_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);
+  }
+
+  Comp.__keys = keys;
+  Comp.unstable_propsAreEqual = propsAreEqual || shallowEqual["a" /* shallowEqual */];
+  return Comp;
+}
+
+
+
+
+/***/ }),
+/* 50 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _asyncToGenerator; });
+function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
+  try {
+    var info = gen[key](arg);
+    var value = info.value;
+  } catch (error) {
+    reject(error);
+    return;
+  }
+
+  if (info.done) {
+    resolve(value);
+  } else {
+    Promise.resolve(value).then(_next, _throw);
+  }
+}
+
+function _asyncToGenerator(fn) {
+  return function () {
+    var self = this,
+        args = arguments;
+    return new Promise(function (resolve, reject) {
+      var gen = fn.apply(self, args);
+
+      function _next(value) {
+        asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
+      }
+
+      function _throw(err) {
+        asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
+      }
+
+      _next(undefined);
+    });
+  };
+}
+
+/***/ }),
+/* 51 */
+/***/ (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 flatten; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return groupItems; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return findEnabledItemById; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return getCurrentId; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return reverse; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return useCompositeState; });
+/* harmony import */ var _rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17);
+/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(13);
+/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
+/* harmony import */ var reakit_utils_useIsomorphicEffect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(59);
+/* harmony import */ var reakit_utils_useSealedState__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(62);
+/* harmony import */ var reakit_utils_applyState__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(61);
+/* harmony import */ var _Id_IdState_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(65);
+
+
+
+
+
+
+
+function reverse(array) {
+  return array.slice().reverse();
+}
+
+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 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 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;
+  });
+}
+
+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_js__WEBPACK_IMPORTED_MODULE_0__[/* b */ "c"])(items), _step; !(_step = _iterator()).done;) {
+    _loop();
+  }
+
+  return groups;
+}
+
+function getMaxLength(rows) {
+  var maxLength = 0;
+
+  for (var _iterator = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* b */ "c"])(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_js__WEBPACK_IMPORTED_MODULE_0__[/* b */ "c"])(groups), _step; !(_step = _iterator()).done;) {
+      var group = _step.value;
+
+      if (group[i]) {
+        verticalized.push(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, 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 flatten(grid) {
+  var flattened = [];
+
+  for (var _iterator = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* b */ "c"])(grid), _step; !(_step = _iterator()).done;) {
+    var row = _step.value;
+    flattened.push.apply(flattened, row);
+  }
+
+  return flattened;
+}
+
+/**
+ * Turns [[row1, row1], [row2]] into [[row1, row1], [row2, row2]]
+ */
+
+function fillGroups(groups) {
+  var maxLength = getMaxLength(groups);
+
+  for (var _iterator = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* b */ "c"])(groups), _step; !(_step = _iterator()).done;) {
+    var group = _step.value;
+
+    if (group.length < maxLength) {
+      for (var i = 0; i < maxLength; i += 1) {
+        if (!group[i]) {
+          group[i] = {
+            id: "__EMPTY_ITEM__",
+            disabled: true,
+            ref: {
+              current: null
+            },
+            groupId: group[i - 1].groupId
+          };
+        }
+      }
+    }
+  }
+
+  return groups;
+}
+
+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;
+}
+
+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 copy = items.slice();
+  var isOrderDifferent = false;
+  copy.sort(function (a, b) {
+    var elementA = a.ref.current;
+    var elementB = b.ref.current;
+
+    if (elementA && elementB && isElementPreceding(elementA, elementB)) {
+      isOrderDifferent = true;
+      return -1;
+    }
+
+    return 0;
+  });
+
+  if (isOrderDifferent) {
+    return copy;
+  }
+
+  return items;
+}
+
+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,
+      moves = state.unstable_moves,
+      initialVirtual = state.initialVirtual,
+      initialRTL = state.initialRTL,
+      initialOrientation = state.initialOrientation,
+      initialCurrentId = state.initialCurrentId,
+      initialLoop = state.initialLoop,
+      initialWrap = state.initialWrap,
+      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_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, state), {}, {
+            groups: [_group]
+          });
+        } // Finds the group index based on DOM position
+
+
+        var index = findDOMIndex(groups, _group);
+        return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, 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_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, 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_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({
+          groupId: _group2 === null || _group2 === void 0 ? void 0 : _group2.id
+        }, _item);
+
+        var _index = findDOMIndex(items, nextItem);
+
+        var nextState = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, 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_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, 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 = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, state), {}, {
+          pastIds: nextPastIds,
+          items: nextItems
+        }); // If the current item is the item that is being removed, focus pastId
+
+
+        if (currentId && currentId === _id2) {
+          var nextId = getCurrentId(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, _nextState), {}, {
+            currentId: nextPastIds[0]
+          }));
+          return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, _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_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, state), {}, {
+          pastIds: _nextPastIds
+        }); // move(null) will focus the composite element itself, not an item
+
+
+        if (_id3 === null) {
+          return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, _nextState2), {}, {
+            unstable_moves: moves + 1,
+            currentId: getCurrentId(_nextState2, _id3)
+          });
+        }
+
+        var _item2 = findEnabledItemById(items, _id3);
+
+        return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, _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, Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, 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, Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, 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, Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, 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 && initialCurrentId === null;
+
+        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, Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, 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, Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, action), {}, {
+            type: "move",
+            id: _nextId
+          }));
+        }
+
+        var _nextItem = findFirstEnabledItem(nextItemsInGroup, currentId);
+
+        if (!_nextItem && hasNullItem) {
+          return reducer(state, Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, action), {}, {
+            type: "move",
+            id: null
+          }));
+        }
+
+        return reducer(state, Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, 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 && initialCurrentId === null;
+
+        var _nextState3 = reducer(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, state), {}, {
+          items: reverse(items)
+        }), Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, action), {}, {
+          type: "next",
+          hasNullItem: _hasNullItem
+        }));
+
+        return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, _nextState3), {}, {
+          items: items
+        });
+      }
+
+    case "down":
+      {
+        // 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))));
+
+        var _canLoop = loop && loop !== "horizontal"; // Pressing down arrow key will only focus the composite element if loop
+        // is true or vertical.
+
+
+        var _hasNullItem2 = _canLoop && initialCurrentId === null;
+
+        var _nextState4 = reducer(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, state), {}, {
+          orientation: "vertical",
+          items: verticalItems
+        }), Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, action), {}, {
+          type: "next",
+          hasNullItem: _hasNullItem2
+        }));
+
+        return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, _nextState4), {}, {
+          orientation: orientation,
+          items: items
+        });
+      }
+
+    case "up":
+      {
+        var _verticalItems = verticalizeItems(reverse(flatten(fillGroups(groupItems(items))))); // 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 = initialCurrentId === null;
+
+        var _nextState5 = reducer(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, state), {}, {
+          orientation: "vertical",
+          items: _verticalItems
+        }), Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, action), {}, {
+          type: "next",
+          hasNullItem: _hasNullItem3
+        }));
+
+        return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, _nextState5), {}, {
+          orientation: orientation,
+          items: items
+        });
+      }
+
+    case "first":
+      {
+        var firstItem = findFirstEnabledItem(items);
+        return reducer(state, Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, action), {}, {
+          type: "move",
+          id: firstItem === null || firstItem === void 0 ? void 0 : firstItem.id
+        }));
+      }
+
+    case "last":
+      {
+        var _nextState6 = reducer(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, state), {}, {
+          items: reverse(items)
+        }), Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, action), {}, {
+          type: "first"
+        }));
+
+        return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, _nextState6), {}, {
+          items: items
+        });
+      }
+
+    case "sort":
+      {
+        return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, state), {}, {
+          items: sortBasedOnDOMPosition(items),
+          groups: sortBasedOnDOMPosition(groups)
+        });
+      }
+
+    case "setVirtual":
+      return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, state), {}, {
+        unstable_virtual: Object(reakit_utils_applyState__WEBPACK_IMPORTED_MODULE_4__[/* applyState */ "a"])(action.virtual, virtual)
+      });
+
+    case "setRTL":
+      return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, state), {}, {
+        rtl: Object(reakit_utils_applyState__WEBPACK_IMPORTED_MODULE_4__[/* applyState */ "a"])(action.rtl, rtl)
+      });
+
+    case "setOrientation":
+      return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, state), {}, {
+        orientation: Object(reakit_utils_applyState__WEBPACK_IMPORTED_MODULE_4__[/* applyState */ "a"])(action.orientation, orientation)
+      });
+
+    case "setCurrentId":
+      {
+        var nextCurrentId = getCurrentId(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, state), {}, {
+          currentId: Object(reakit_utils_applyState__WEBPACK_IMPORTED_MODULE_4__[/* applyState */ "a"])(action.currentId, currentId)
+        }));
+        return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, state), {}, {
+          currentId: nextCurrentId,
+          hasSetCurrentId: true
+        });
+      }
+
+    case "setLoop":
+      return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, state), {}, {
+        loop: Object(reakit_utils_applyState__WEBPACK_IMPORTED_MODULE_4__[/* applyState */ "a"])(action.loop, loop)
+      });
+
+    case "setWrap":
+      return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, state), {}, {
+        wrap: Object(reakit_utils_applyState__WEBPACK_IMPORTED_MODULE_4__[/* applyState */ "a"])(action.wrap, wrap)
+      });
+
+    case "reset":
+      return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, state), {}, {
+        unstable_virtual: initialVirtual,
+        rtl: initialRTL,
+        orientation: initialOrientation,
+        currentId: getCurrentId(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, state), {}, {
+          currentId: initialCurrentId
+        })),
+        loop: initialLoop,
+        wrap: initialWrap,
+        unstable_moves: 0,
+        pastIds: []
+      });
+
+    default:
+      throw new Error();
+  }
+}
+
+function useAction(fn) {
+  return Object(react__WEBPACK_IMPORTED_MODULE_1__["useCallback"])(fn, []);
+}
+
+function useIsUnmountedRef() {
+  var isUnmountedRef = Object(react__WEBPACK_IMPORTED_MODULE_1__["useRef"])(false);
+  Object(reakit_utils_useIsomorphicEffect__WEBPACK_IMPORTED_MODULE_2__[/* useIsomorphicEffect */ "a"])(function () {
+    return function () {
+      isUnmountedRef.current = true;
+    };
+  }, []);
+  return isUnmountedRef;
+}
+
+function useCompositeState(initialState) {
+  if (initialState === void 0) {
+    initialState = {};
+  }
+
+  var _useSealedState = Object(reakit_utils_useSealedState__WEBPACK_IMPORTED_MODULE_3__[/* useSealedState */ "a"])(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,
+      sealed = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* _ */ "a"])(_useSealedState, ["unstable_virtual", "rtl", "orientation", "currentId", "loop", "wrap"]);
+
+  var _React$useReducer = Object(react__WEBPACK_IMPORTED_MODULE_1__["useReducer"])(reducer, {
+    unstable_virtual: virtual,
+    rtl: rtl,
+    orientation: orientation,
+    items: [],
+    groups: [],
+    currentId: currentId,
+    loop: loop,
+    wrap: wrap,
+    unstable_moves: 0,
+    pastIds: [],
+    initialVirtual: virtual,
+    initialRTL: rtl,
+    initialOrientation: orientation,
+    initialCurrentId: currentId,
+    initialLoop: loop,
+    initialWrap: wrap
+  }),
+      _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,
+      hasSetCurrentId = _React$useReducer$.hasSetCurrentId,
+      state = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* _ */ "a"])(_React$useReducer$, ["pastIds", "initialVirtual", "initialRTL", "initialOrientation", "initialCurrentId", "initialLoop", "initialWrap", "hasSetCurrentId"]),
+      dispatch = _React$useReducer[1];
+
+  var _React$useState = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(false),
+      hasActiveWidget = _React$useState[0],
+      setHasActiveWidget = _React$useState[1];
+
+  var idState = Object(_Id_IdState_js__WEBPACK_IMPORTED_MODULE_5__[/* unstable_useIdState */ "a"])(sealed); // 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();
+  return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, 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"
+      });
+    }),
+    unstable_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
+      });
+    }),
+    reset: useAction(function () {
+      return dispatch({
+        type: "reset"
+      });
+    })
+  });
+}
+var keys = [].concat(_Id_IdState_js__WEBPACK_IMPORTED_MODULE_5__[/* unstable_useIdState */ "a"].__keys, ["unstable_virtual", "rtl", "orientation", "items", "groups", "currentId", "loop", "wrap", "unstable_moves", "unstable_hasActiveWidget", "registerItem", "unregisterItem", "registerGroup", "unregisterGroup", "move", "next", "previous", "up", "down", "first", "last", "unstable_sort", "unstable_setVirtual", "setRTL", "setOrientation", "setCurrentId", "setLoop", "setWrap", "reset", "unstable_setHasActiveWidget"]);
+useCompositeState.__keys = keys;
+
+
+
+
+/***/ }),
+/* 52 */,
+/* 53 */
+/***/ (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;
+}
+
+
+
+
+/***/ }),
+/* 54 */
+/***/ (function(module, exports) {
+
+(function() { module.exports = this["wp"]["a11y"]; }());
+
+/***/ }),
+/* 55 */
+/***/ (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);
+}
+
+
+
+
+/***/ }),
+/* 56 */
+/***/ (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;
+}
+
+
+
+
+/***/ }),
+/* 57 */
+/***/ (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__(47);
+
+
+/**
+ * Returns `element.ownerDocument.activeElement`.
+ */
+
+function getActiveElement(element) {
+  return Object(_getDocument_js__WEBPACK_IMPORTED_MODULE_0__[/* getDocument */ "a"])(element).activeElement;
+}
+
+
+
+
+/***/ }),
+/* 58 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+/* globals
+	Atomics,
+	SharedArrayBuffer,
+*/
+
+var undefined;
+
+var $TypeError = TypeError;
+
+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__(207)();
+
+var getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto
+
+var generator; // = function * () {};
+var generatorFunction = generator ? getProto(generator) : undefined;
+var asyncFn; // async function() {};
+var asyncFunction = asyncFn ? asyncFn.constructor : undefined;
+var asyncGen; // async function * () {};
+var asyncGenFunction = asyncGen ? getProto(asyncGen) : undefined;
+var asyncGenIterator = asyncGen ? asyncGen() : undefined;
+
+var TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);
+
+var INTRINSICS = {
+	'%Array%': Array,
+	'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,
+	'%ArrayBufferPrototype%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer.prototype,
+	'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,
+	'%ArrayPrototype%': Array.prototype,
+	'%ArrayProto_entries%': Array.prototype.entries,
+	'%ArrayProto_forEach%': Array.prototype.forEach,
+	'%ArrayProto_keys%': Array.prototype.keys,
+	'%ArrayProto_values%': Array.prototype.values,
+	'%AsyncFromSyncIteratorPrototype%': undefined,
+	'%AsyncFunction%': asyncFunction,
+	'%AsyncFunctionPrototype%': asyncFunction ? asyncFunction.prototype : undefined,
+	'%AsyncGenerator%': asyncGen ? getProto(asyncGenIterator) : undefined,
+	'%AsyncGeneratorFunction%': asyncGenFunction,
+	'%AsyncGeneratorPrototype%': asyncGenFunction ? asyncGenFunction.prototype : undefined,
+	'%AsyncIteratorPrototype%': asyncGenIterator && hasSymbols && Symbol.asyncIterator ? asyncGenIterator[Symbol.asyncIterator]() : undefined,
+	'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,
+	'%Boolean%': Boolean,
+	'%BooleanPrototype%': Boolean.prototype,
+	'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,
+	'%DataViewPrototype%': typeof DataView === 'undefined' ? undefined : DataView.prototype,
+	'%Date%': Date,
+	'%DatePrototype%': Date.prototype,
+	'%decodeURI%': decodeURI,
+	'%decodeURIComponent%': decodeURIComponent,
+	'%encodeURI%': encodeURI,
+	'%encodeURIComponent%': encodeURIComponent,
+	'%Error%': Error,
+	'%ErrorPrototype%': Error.prototype,
+	'%eval%': eval, // eslint-disable-line no-eval
+	'%EvalError%': EvalError,
+	'%EvalErrorPrototype%': EvalError.prototype,
+	'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,
+	'%Float32ArrayPrototype%': typeof Float32Array === 'undefined' ? undefined : Float32Array.prototype,
+	'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,
+	'%Float64ArrayPrototype%': typeof Float64Array === 'undefined' ? undefined : Float64Array.prototype,
+	'%Function%': Function,
+	'%FunctionPrototype%': Function.prototype,
+	'%Generator%': generator ? getProto(generator()) : undefined,
+	'%GeneratorFunction%': generatorFunction,
+	'%GeneratorPrototype%': generatorFunction ? generatorFunction.prototype : undefined,
+	'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,
+	'%Int8ArrayPrototype%': typeof Int8Array === 'undefined' ? undefined : Int8Array.prototype,
+	'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,
+	'%Int16ArrayPrototype%': typeof Int16Array === 'undefined' ? undefined : Int8Array.prototype,
+	'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,
+	'%Int32ArrayPrototype%': typeof Int32Array === 'undefined' ? undefined : Int32Array.prototype,
+	'%isFinite%': isFinite,
+	'%isNaN%': isNaN,
+	'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,
+	'%JSON%': typeof JSON === 'object' ? JSON : undefined,
+	'%JSONParse%': typeof JSON === 'object' ? JSON.parse : undefined,
+	'%Map%': typeof Map === 'undefined' ? undefined : Map,
+	'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),
+	'%MapPrototype%': typeof Map === 'undefined' ? undefined : Map.prototype,
+	'%Math%': Math,
+	'%Number%': Number,
+	'%NumberPrototype%': Number.prototype,
+	'%Object%': Object,
+	'%ObjectPrototype%': Object.prototype,
+	'%ObjProto_toString%': Object.prototype.toString,
+	'%ObjProto_valueOf%': Object.prototype.valueOf,
+	'%parseFloat%': parseFloat,
+	'%parseInt%': parseInt,
+	'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,
+	'%PromisePrototype%': typeof Promise === 'undefined' ? undefined : Promise.prototype,
+	'%PromiseProto_then%': typeof Promise === 'undefined' ? undefined : Promise.prototype.then,
+	'%Promise_all%': typeof Promise === 'undefined' ? undefined : Promise.all,
+	'%Promise_reject%': typeof Promise === 'undefined' ? undefined : Promise.reject,
+	'%Promise_resolve%': typeof Promise === 'undefined' ? undefined : Promise.resolve,
+	'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,
+	'%RangeError%': RangeError,
+	'%RangeErrorPrototype%': RangeError.prototype,
+	'%ReferenceError%': ReferenceError,
+	'%ReferenceErrorPrototype%': ReferenceError.prototype,
+	'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,
+	'%RegExp%': RegExp,
+	'%RegExpPrototype%': RegExp.prototype,
+	'%Set%': typeof Set === 'undefined' ? undefined : Set,
+	'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),
+	'%SetPrototype%': typeof Set === 'undefined' ? undefined : Set.prototype,
+	'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,
+	'%SharedArrayBufferPrototype%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer.prototype,
+	'%String%': String,
+	'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,
+	'%StringPrototype%': String.prototype,
+	'%Symbol%': hasSymbols ? Symbol : undefined,
+	'%SymbolPrototype%': hasSymbols ? Symbol.prototype : undefined,
+	'%SyntaxError%': SyntaxError,
+	'%SyntaxErrorPrototype%': SyntaxError.prototype,
+	'%ThrowTypeError%': ThrowTypeError,
+	'%TypedArray%': TypedArray,
+	'%TypedArrayPrototype%': TypedArray ? TypedArray.prototype : undefined,
+	'%TypeError%': $TypeError,
+	'%TypeErrorPrototype%': $TypeError.prototype,
+	'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,
+	'%Uint8ArrayPrototype%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array.prototype,
+	'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,
+	'%Uint8ClampedArrayPrototype%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray.prototype,
+	'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,
+	'%Uint16ArrayPrototype%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array.prototype,
+	'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,
+	'%Uint32ArrayPrototype%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array.prototype,
+	'%URIError%': URIError,
+	'%URIErrorPrototype%': URIError.prototype,
+	'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,
+	'%WeakMapPrototype%': typeof WeakMap === 'undefined' ? undefined : WeakMap.prototype,
+	'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet,
+	'%WeakSetPrototype%': typeof WeakSet === 'undefined' ? undefined : WeakSet.prototype
+};
+
+var bind = __webpack_require__(118);
+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) {
+	if (!(name in INTRINSICS)) {
+		throw new SyntaxError('intrinsic ' + name + ' does not exist!');
+	}
+
+	// istanbul ignore if // hopefully this is impossible to test :-)
+	if (typeof INTRINSICS[name] === 'undefined' && !allowMissing) {
+		throw new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');
+	}
+
+	return INTRINSICS[name];
+};
+
+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 value = getBaseIntrinsic('%' + (parts.length > 0 ? parts[0] : '') + '%', allowMissing);
+	for (var i = 1; i < parts.length; i += 1) {
+		if (value != null) {
+			if ($gOPD && (i + 1) >= parts.length) {
+				var desc = $gOPD(value, parts[i]);
+				if (!allowMissing && !(parts[i] in value)) {
+					throw new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');
+				}
+				value = desc ? (desc.get || desc.value) : value[parts[i]];
+			} else {
+				value = value[parts[i]];
+			}
+		}
+	}
+	return value;
+};
+
+
+/***/ }),
+/* 59 */
+/***/ (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__(13);
+/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
+
+
+/**
+ * `React.useLayoutEffect` that fallbacks to `React.useEffect` on server side
+ * rendering.
+ */
+
+var useIsomorphicEffect = typeof window === "undefined" ? react__WEBPACK_IMPORTED_MODULE_0__["useEffect"] : react__WEBPACK_IMPORTED_MODULE_0__["useLayoutEffect"];
+
+
+
+
+/***/ }),
+/* 60 */,
+/* 61 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return applyState; });
+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;
+}
+
+
+
+
+/***/ }),
+/* 62 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return useSealedState; });
+/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(13);
+/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
+
+
+/**
+ * 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(react__WEBPACK_IMPORTED_MODULE_0__["useState"])(initialState),
+      sealed = _React$useState[0];
+
+  return sealed;
+}
+
+
+
+
+/***/ }),
+/* 63 */
+/***/ (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__(13);
+/* 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]);
+}
+
+
+
+
+/***/ }),
+/* 64 */
 /***/ (function(module, exports) {
 
 (function() { module.exports = this["wp"]["isShallowEqual"]; }());
 
 /***/ }),
-/* 43 */
-/***/ (function(module, exports, __webpack_require__) {
-
-module.exports =  true ? __webpack_require__(290) : undefined;
-
-
-
-/***/ }),
-/* 44 */,
-/* 45 */
+/* 65 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return unstable_useIdState; });
+/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(13);
+/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
+/* harmony import */ var reakit_utils_useSealedState__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(62);
+/* harmony import */ var _IdProvider_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(68);
+
+
+
+
+function unstable_useIdState(initialState) {
+  if (initialState === void 0) {
+    initialState = {};
+  }
+
+  var _useSealedState = Object(reakit_utils_useSealedState__WEBPACK_IMPORTED_MODULE_1__[/* useSealedState */ "a"])(initialState),
+      initialBaseId = _useSealedState.baseId;
+
+  var generateId = Object(react__WEBPACK_IMPORTED_MODULE_0__["useContext"])(_IdProvider_js__WEBPACK_IMPORTED_MODULE_2__[/* unstable_IdContext */ "a"]);
+  var idCountRef = Object(react__WEBPACK_IMPORTED_MODULE_0__["useRef"])(0);
+
+  var _React$useState = Object(react__WEBPACK_IMPORTED_MODULE_0__["useState"])(function () {
+    return initialBaseId || generateId();
+  }),
+      baseId = _React$useState[0],
+      setBaseId = _React$useState[1];
+
+  return {
+    baseId: baseId,
+    unstable_setBaseId: setBaseId,
+    unstable_idCountRef: idCountRef
+  };
+}
+var keys = ["baseId", "unstable_setBaseId", "unstable_idCountRef"];
+unstable_useIdState.__keys = keys;
+
+
+
+
+/***/ }),
+/* 66 */
 /***/ (function(module, exports, __webpack_require__) {
 
 var __WEBPACK_AMD_DEFINE_RESULT__;// TinyColor v1.4.1
@@ -1862,17 +4121,1451 @@
 
 
 /***/ }),
-/* 46 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var defineProperties = __webpack_require__(73);
-
-var implementation = __webpack_require__(155);
-var getPolyfill = __webpack_require__(156);
-var shim = __webpack_require__(286);
+/* 67 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* unused harmony export Box */
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return useBox; });
+/* harmony import */ var _rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17);
+/* harmony import */ var reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(49);
+/* harmony import */ var reakit_system_createHook__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(48);
+/* harmony import */ var reakit_utils_shallowEqual__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(56);
+
+
+
+
+
+var useBox = Object(reakit_system_createHook__WEBPACK_IMPORTED_MODULE_2__[/* createHook */ "a"])({
+  name: "Box",
+  keys: ["unstable_system"],
+  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 Box = Object(reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_1__[/* createComponent */ "a"])({
+  as: "div",
+  useHook: useBox
+});
+
+
+
+
+/***/ }),
+/* 68 */
+/***/ (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__(13);
+/* 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 = 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);
+}
+
+
+
+
+/***/ }),
+/* 69 */
+/***/ (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__(57);
+
+
+
+/**
+ * Checks if `element` has focus.
+ *
+ * @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 (element.contains(activeElement)) return true;
+  var activeDescendant = activeElement.getAttribute("aria-activedescendant");
+  if (!activeDescendant) return false;
+  return activeDescendant === element.id || !!element.querySelector("#" + activeDescendant);
+}
+
+
+
+
+/***/ }),
+/* 70 */
+/***/ (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 or not.
+ *
+ * @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
+ *
+ * @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;
+}
+
+
+
+
+/***/ }),
+/* 71 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+
+// EXPORTS
+__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ ensureFocus; });
+__webpack_require__.d(__webpack_exports__, "b", function() { return /* binding */ getClosestFocusable; });
+
+// UNUSED EXPORTS: getAllFocusableIn, getAllTabbableIn, getFirstFocusableIn, getFirstTabbableIn, getLastTabbableIn, getNextTabbableIn, getPreviousTabbableIn, isFocusable, 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__(57);
+
+// 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) {
+  return element.offsetWidth > 0 || element.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 allFocusable = getAllFocusableIn(container);
+  return allFocusable.length ? allFocusable[0] : 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;
+}
+
+function defaultIsActive(element) {
+  return Object(getActiveElement["a" /* getActiveElement */])(element) === element;
+}
+
+/**
+ * Ensures `element` will receive focus if it's not already.
+ *
+ * @memberof tabbable
+ *
+ * @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,
+      _ref$isActive = _ref.isActive,
+      isActive = _ref$isActive === void 0 ? defaultIsActive : _ref$isActive,
+      preventScroll = _ref.preventScroll;
+
+  if (isActive(element)) return -1;
+  element.focus({
+    preventScroll: preventScroll
+  });
+  if (isActive(element)) return -1;
+  return requestAnimationFrame(function () {
+    element.focus({
+      preventScroll: preventScroll
+    });
+  });
+}
+
+
+
+
+/***/ }),
+/* 72 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+
+// EXPORTS
+__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ isPortalEvent; });
+
+// CONCATENATED MODULE: ./node_modules/reakit-utils/es/contains.js
+/**
+ * Similar to `Element.prototype.contains`.
+ */
+function contains(parent, child) {
+  return parent === child || parent.contains(child);
+}
+
+
+
+// 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);
+}
+
+
+
+
+/***/ }),
+/* 73 */
+/***/ (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__(17);
+/* harmony import */ var reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(49);
+/* harmony import */ var reakit_system_createHook__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(48);
+/* harmony import */ var _Box_Box_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(67);
+/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(13);
+/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);
+/* harmony import */ var reakit_utils_useForkRef__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(63);
+/* harmony import */ var reakit_utils_isButton__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(70);
+/* harmony import */ var reakit_warning__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(80);
+/* harmony import */ var reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(46);
+/* harmony import */ var reakit_utils_useIsomorphicEffect__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(59);
+/* harmony import */ var reakit_utils_hasFocusWithin__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(69);
+/* harmony import */ var reakit_utils_isPortalEvent__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(72);
+/* harmony import */ var reakit_utils_getActiveElement__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(57);
+/* harmony import */ var reakit_utils_tabbable__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(71);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+function isUA(string) {
+  if (typeof window === "undefined") return false;
+  return window.navigator.userAgent.indexOf(string) !== -1;
+}
+
+var isSafariOrFirefoxOnMac = isUA("Mac") && !isUA("Chrome") && (isUA("Safari") || isUA("Firefox"));
+
+function focusIfNeeded(element) {
+  if (!Object(reakit_utils_hasFocusWithin__WEBPACK_IMPORTED_MODULE_10__[/* hasFocusWithin */ "a"])(element)) {
+    element.focus();
+  }
+} // 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.
+// istanbul ignore next
+
+
+function useFocusOnMouseDown() {
+  if (!isSafariOrFirefoxOnMac) return undefined;
+
+  var _React$useState = Object(react__WEBPACK_IMPORTED_MODULE_4__["useState"])(null),
+      tabbable = _React$useState[0],
+      scheduleFocus = _React$useState[1];
+
+  Object(react__WEBPACK_IMPORTED_MODULE_4__["useEffect"])(function () {
+    if (!tabbable) return;
+    focusIfNeeded(tabbable);
+    scheduleFocus(null);
+  }, [tabbable]);
+  var onMouseDown = Object(react__WEBPACK_IMPORTED_MODULE_4__["useCallback"])(function (event) {
+    var element = event.currentTarget;
+    if (Object(reakit_utils_isPortalEvent__WEBPACK_IMPORTED_MODULE_11__[/* isPortalEvent */ "a"])(event)) return;
+    if (!Object(reakit_utils_isButton__WEBPACK_IMPORTED_MODULE_6__[/* isButton */ "a"])(element)) return;
+    var activeElement = Object(reakit_utils_getActiveElement__WEBPACK_IMPORTED_MODULE_12__[/* getActiveElement */ "a"])(element);
+    if (!activeElement) return;
+    var activeElementIsBody = activeElement.tagName === "BODY";
+    var focusableAncestor = Object(reakit_utils_tabbable__WEBPACK_IMPORTED_MODULE_13__[/* getClosestFocusable */ "b"])(element.parentElement);
+
+    if (activeElement === focusableAncestor || activeElementIsBody && !focusableAncestor) {
+      // When the active element is the focusable ancestor, it'll not emit
+      // focus/blur events. After all, it's already focused. So we can't
+      // listen to those events to focus this tabbable element.
+      // When the active element is body and there's no focusable ancestor,
+      // we also don't have any other event to listen to since body never
+      // emits focus/blur events on itself.
+      // In both of these cases, we have to schedule focus on this tabbable
+      // element.
+      scheduleFocus(element);
+    } else if (focusableAncestor) {
+      // Clicking (mouse down) on the tabbable element on Safari and Firefox
+      // on MacOS will fire focus on the focusable ancestor element if
+      // there's any and if it's not the current active element. So we wait
+      // for this event to happen before moving focus to this element.
+      // Instead of moving focus right away, we have to schedule it,
+      // otherwise it's gonna prevent drag events from happening.
+      var onFocus = function onFocus() {
+        return scheduleFocus(element);
+      };
+
+      focusableAncestor.addEventListener("focusin", onFocus, {
+        once: true
+      });
+    } else {
+      // Finally, if there's no focsuable ancestor and there's another
+      // element with focus, we wait for that element to get blurred before
+      // focusing this one.
+      var onBlur = function onBlur() {
+        return focusIfNeeded(element);
+      };
+
+      activeElement.addEventListener("blur", onBlur, {
+        once: true
+      });
+    }
+  }, []);
+  return onMouseDown;
+}
+
+function isNativeTabbable(element) {
+  return element.tagName === "BUTTON" || element.tagName === "INPUT" || element.tagName === "SELECT" || element.tagName === "TEXTAREA" || element.tagName === "A" || element.tagName === "AUDIO" || element.tagName === "VIDEO";
+}
+
+var useTabbable = Object(reakit_system_createHook__WEBPACK_IMPORTED_MODULE_2__[/* createHook */ "a"])({
+  name: "Tabbable",
+  compose: _Box_Box_js__WEBPACK_IMPORTED_MODULE_3__[/* useBox */ "a"],
+  keys: ["disabled", "focusable"],
+  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,
+        htmlOnClick = _ref2.onClick,
+        htmlOnMouseDown = _ref2.onMouseDown,
+        htmlStyle = _ref2.style,
+        htmlProps = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* _ */ "a"])(_ref2, ["ref", "tabIndex", "onClick", "onMouseDown", "style"]);
+
+    var ref = Object(react__WEBPACK_IMPORTED_MODULE_4__["useRef"])(null);
+    var onClickRef = Object(reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_8__[/* useLiveRef */ "a"])(htmlOnClick);
+    var onMouseDownRef = Object(reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_8__[/* useLiveRef */ "a"])(htmlOnMouseDown);
+    var trulyDisabled = options.disabled && !options.focusable;
+
+    var _React$useState2 = Object(react__WEBPACK_IMPORTED_MODULE_4__["useState"])(true),
+        nativeTabbable = _React$useState2[0],
+        setNativeTabbable = _React$useState2[1];
+
+    var tabIndex = nativeTabbable ? htmlTabIndex : htmlTabIndex || 0;
+    var style = options.disabled ? Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({
+      pointerEvents: "none"
+    }, htmlStyle) : htmlStyle;
+    var focusOnMouseDown = useFocusOnMouseDown();
+    Object(reakit_utils_useIsomorphicEffect__WEBPACK_IMPORTED_MODULE_9__[/* useIsomorphicEffect */ "a"])(function () {
+      var tabbable = ref.current;
+
+      if (!tabbable) {
+         false ? undefined : void 0;
+        return;
+      }
+
+      if (!isNativeTabbable(tabbable)) {
+        setNativeTabbable(false);
+      }
+    }, []);
+    var onClick = Object(react__WEBPACK_IMPORTED_MODULE_4__["useCallback"])(function (event) {
+      var _onClickRef$current;
+
+      if (options.disabled) {
+        event.stopPropagation();
+        event.preventDefault();
+        return;
+      }
+
+      (_onClickRef$current = onClickRef.current) === null || _onClickRef$current === void 0 ? void 0 : _onClickRef$current.call(onClickRef, event);
+    }, [options.disabled]);
+    var onMouseDown = Object(react__WEBPACK_IMPORTED_MODULE_4__["useCallback"])(function (event) {
+      var _onMouseDownRef$curre;
+
+      if (options.disabled) {
+        event.stopPropagation();
+        event.preventDefault();
+        return;
+      }
+
+      (_onMouseDownRef$curre = onMouseDownRef.current) === null || _onMouseDownRef$curre === void 0 ? void 0 : _onMouseDownRef$curre.call(onMouseDownRef, event);
+      if (event.defaultPrevented) return;
+      focusOnMouseDown === null || focusOnMouseDown === void 0 ? void 0 : focusOnMouseDown(event);
+    }, [options.disabled, focusOnMouseDown]);
+    return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({
+      ref: Object(reakit_utils_useForkRef__WEBPACK_IMPORTED_MODULE_5__[/* useForkRef */ "a"])(ref, htmlRef),
+      style: style,
+      tabIndex: !trulyDisabled ? tabIndex : undefined,
+      disabled: trulyDisabled && nativeTabbable ? true : undefined,
+      "aria-disabled": options.disabled ? true : undefined,
+      onClick: onClick,
+      onMouseDown: onMouseDown
+    }, htmlProps);
+  }
+});
+var Tabbable = Object(reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_1__[/* createComponent */ "a"])({
+  as: "div",
+  useHook: useTabbable
+});
+
+
+
+
+/***/ }),
+/* 74 */
+/***/ (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__(13);
+/* 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"])({});
+
+
+
+
+/***/ }),
+/* 75 */,
+/* 76 */,
+/* 77 */
+/***/ (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']);
+
+/***/ }),
+/* 78 */
+/***/ (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__(13);
+/* 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__(74);
+/* harmony import */ var _rollupPluginBabelHelpers_0c84a174_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(55);
+
+
+
+
+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);
+};
+
+
+
+
+/***/ }),
+/* 79 */,
+/* 80 */
+/***/ (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__(106);
+
+// EXTERNAL MODULE: external {"this":"React"}
+var external_this_React_ = __webpack_require__(13);
+
+// CONCATENATED MODULE: ./node_modules/reakit-utils/es/isObject.js
+/**
+ * Checks whether `arg` is an object or not.
+ *
+ * @returns {boolean}
+ */
+function isObject(arg) {
+  return typeof arg === "object" && arg != null;
+}
+
+
+
+// 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
+
+
+
+
+
+
+
+/***/ }),
+/* 81 */,
+/* 82 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return createOnKeyDown; });
+/**
+ * Returns an `onKeyDown` handler to be passed to a component.
+ *
+ * @param options
+ */
+function createOnKeyDown(_temp) {
+  var _ref = _temp === void 0 ? {} : _temp,
+      keyMap = _ref.keyMap,
+      onKey = _ref.onKey,
+      stopPropagation = _ref.stopPropagation,
+      onKeyDown = _ref.onKeyDown,
+      _ref$shouldKeyDown = _ref.shouldKeyDown,
+      shouldKeyDown = _ref$shouldKeyDown === void 0 ? function () {
+    return true;
+  } : _ref$shouldKeyDown,
+      _ref$preventDefault = _ref.preventDefault,
+      preventDefault = _ref$preventDefault === void 0 ? true : _ref$preventDefault;
+
+  return function (event) {
+    if (!keyMap) return;
+    var finalKeyMap = typeof keyMap === "function" ? keyMap(event) : keyMap;
+    var shouldPreventDefault = typeof preventDefault === "function" ? preventDefault(event) : preventDefault;
+    var shouldStopPropagation = typeof stopPropagation === "function" ? stopPropagation(event) : stopPropagation;
+
+    if (event.key in finalKeyMap) {
+      var action = finalKeyMap[event.key];
+
+      if (typeof action === "function" && shouldKeyDown(event)) {
+        if (shouldPreventDefault) event.preventDefault();
+        if (shouldStopPropagation) event.stopPropagation();
+        if (onKey) onKey(event);
+        action(event); // Prevent onKeyDown from being called twice for the same keys
+
+        return;
+      }
+    }
+
+    if (onKeyDown && "current" in onKeyDown) {
+      var _onKeyDown$current;
+
+      (_onKeyDown$current = onKeyDown.current) === null || _onKeyDown$current === void 0 ? void 0 : _onKeyDown$current.call(onKeyDown, event);
+    } else {
+      onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(event);
+    }
+  };
+}
+
+
+
+
+/***/ }),
+/* 83 */,
+/* 84 */
+/***/ (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__(17);
+/* harmony import */ var reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(49);
+/* harmony import */ var reakit_system_createHook__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(48);
+/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(13);
+/* 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__(70);
+/* harmony import */ var reakit_warning__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(80);
+/* harmony import */ var reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(46);
+/* harmony import */ var reakit_utils_isSelfTarget__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(53);
+/* harmony import */ var _Tabbable_Tabbable_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(73);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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: ["unstable_clickOnEnter", "unstable_clickOnSpace"],
+  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
+});
+
+
+
+
+/***/ }),
+/* 85 */
+/***/ (function(module, exports, __webpack_require__) {
+
+module.exports =  true ? __webpack_require__(356) : undefined;
+
+
+
+/***/ }),
+/* 86 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20);
+/* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(19);
+/* harmony import */ var _babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(23);
+/* harmony import */ var _babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(16);
+/* harmony import */ var _babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(22);
+/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(0);
+/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_5__);
+/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(2);
+/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_6__);
+/* harmony import */ var _popover__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(112);
+/* harmony import */ var _shortcut__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(166);
+
+
+
+
+
+
+
+function _createSuper(Derived) { return function () { var Super = Object(_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"])(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = Object(_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(this, result); }; }
+
+function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+/**
+ * Time over children to wait before showing tooltip
+ *
+ * @type {number}
+ */
+
+var TOOLTIP_DELAY = 700;
+
+var Tooltip = /*#__PURE__*/function (_Component) {
+  Object(_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"])(Tooltip, _Component);
+
+  var _super = _createSuper(Tooltip);
+
+  function Tooltip() {
+    var _this;
+
+    Object(_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(this, Tooltip);
+
+    _this = _super.apply(this, arguments);
+    _this.delayedSetIsOver = Object(lodash__WEBPACK_IMPORTED_MODULE_6__["debounce"])(function (isOver) {
+      return _this.setState({
+        isOver: isOver
+      });
+    }, TOOLTIP_DELAY);
+    /**
+     * Prebound `isInMouseDown` handler, created as a constant reference to
+     * assure ability to remove in component unmount.
+     *
+     * @type {Function}
+     */
+
+    _this.cancelIsMouseDown = _this.createSetIsMouseDown(false);
+    /**
+     * Whether a the mouse is currently pressed, used in determining whether
+     * to handle a focus event as displaying the tooltip immediately.
+     *
+     * @type {boolean}
+     */
+
+    _this.isInMouseDown = false;
+    _this.state = {
+      isOver: false
+    };
+    return _this;
+  }
+
+  Object(_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(Tooltip, [{
+    key: "componentWillUnmount",
+    value: function componentWillUnmount() {
+      this.delayedSetIsOver.cancel();
+      document.removeEventListener('mouseup', this.cancelIsMouseDown);
+    }
+  }, {
+    key: "emitToChild",
+    value: function emitToChild(eventName, event) {
+      var children = this.props.children;
+
+      if (_wordpress_element__WEBPACK_IMPORTED_MODULE_5__["Children"].count(children) !== 1) {
+        return;
+      }
+
+      var child = _wordpress_element__WEBPACK_IMPORTED_MODULE_5__["Children"].only(children);
+
+      if (typeof child.props[eventName] === 'function') {
+        child.props[eventName](event);
+      }
+    }
+  }, {
+    key: "createToggleIsOver",
+    value: function createToggleIsOver(eventName, isDelayed) {
+      var _this2 = this;
+
+      return function (event) {
+        // Preserve original child callback behavior
+        _this2.emitToChild(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 && _this2.isInMouseDown) {
+          return;
+        } // Needed in case unsetting is over while delayed set pending, i.e.
+        // quickly blur/mouseleave before delayedSetIsOver is called
+
+
+        _this2.delayedSetIsOver.cancel();
+
+        var isOver = Object(lodash__WEBPACK_IMPORTED_MODULE_6__["includes"])(['focus', 'mouseenter'], event.type);
+
+        if (isOver === _this2.state.isOver) {
+          return;
+        }
+
+        if (isDelayed) {
+          _this2.delayedSetIsOver(isOver);
+        } else {
+          _this2.setState({
+            isOver: isOver
+          });
+        }
+      };
+    }
+    /**
+     * Creates an event callback to handle assignment of the `isInMouseDown`
+     * instance property in response to a `mousedown` or `mouseup` event.
+     *
+     * @param {boolean} isMouseDown Whether handler is to be created for the
+     *                              `mousedown` event, as opposed to `mouseup`.
+     *
+     * @return {Function} Event callback handler.
+     */
+
+  }, {
+    key: "createSetIsMouseDown",
+    value: function createSetIsMouseDown(isMouseDown) {
+      var _this3 = this;
+
+      return function (event) {
+        // Preserve original child callback behavior
+        _this3.emitToChild(isMouseDown ? 'onMouseDown' : 'onMouseUp', 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[isMouseDown ? 'addEventListener' : 'removeEventListener']('mouseup', _this3.cancelIsMouseDown);
+        _this3.isInMouseDown = isMouseDown;
+      };
+    }
+  }, {
+    key: "render",
+    value: function render() {
+      var _this$props = this.props,
+          children = _this$props.children,
+          position = _this$props.position,
+          text = _this$props.text,
+          shortcut = _this$props.shortcut;
+
+      if (_wordpress_element__WEBPACK_IMPORTED_MODULE_5__["Children"].count(children) !== 1) {
+        if (false) {}
+
+        return children;
+      }
+
+      var child = _wordpress_element__WEBPACK_IMPORTED_MODULE_5__["Children"].only(children);
+      var isOver = this.state.isOver;
+      return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_5__["cloneElement"])(child, {
+        onMouseEnter: this.createToggleIsOver('onMouseEnter', true),
+        onMouseLeave: this.createToggleIsOver('onMouseLeave'),
+        onClick: this.createToggleIsOver('onClick'),
+        onFocus: this.createToggleIsOver('onFocus'),
+        onBlur: this.createToggleIsOver('onBlur'),
+        onMouseDown: this.createSetIsMouseDown(true),
+        children: Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_5__["concatChildren"])(child.props.children, isOver && Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_5__["createElement"])(_popover__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"], {
+          focusOnMount: false,
+          position: position,
+          className: "components-tooltip",
+          "aria-hidden": "true",
+          animate: false,
+          noArrow: true
+        }, text, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_5__["createElement"])(_shortcut__WEBPACK_IMPORTED_MODULE_8__[/* default */ "a"], {
+          className: "components-tooltip__shortcut",
+          shortcut: shortcut
+        })))
+      });
+    }
+  }]);
+
+  return Tooltip;
+}(_wordpress_element__WEBPACK_IMPORTED_MODULE_5__["Component"]);
+
+/* harmony default export */ __webpack_exports__["a"] = (Tooltip);
+
+
+/***/ }),
+/* 87 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
+/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
+/**
+ * WordPress dependencies
+ */
+
+var ToolbarContext = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createContext"])();
+/* harmony default export */ __webpack_exports__["a"] = (ToolbarContext);
+
+
+/***/ }),
+/* 88 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5);
+/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8);
+/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(15);
+/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0);
+/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_3__);
+/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(6);
+/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_4__);
+/* harmony import */ var _dashicon__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(148);
+
+
+
+
+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(Object(source), true).forEach(function (key) { Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(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; }
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+function Icon(_ref) {
+  var _ref$icon = _ref.icon,
+      icon = _ref$icon === void 0 ? null : _ref$icon,
+      size = _ref.size,
+      additionalProps = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(_ref, ["icon", "size"]);
+
+  // Dashicons should be 20x20 by default.
+  var dashiconSize = size || 20;
+
+  if ('string' === typeof icon) {
+    return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_3__["createElement"])(_dashicon__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])({
+      icon: icon,
+      size: dashiconSize
+    }, additionalProps));
+  }
+
+  if (icon && _dashicon__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"] === icon.type) {
+    return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_3__["cloneElement"])(icon, _objectSpread({
+      size: dashiconSize
+    }, additionalProps));
+  } // Icons should be 24x24 by default.
+
+
+  var iconSize = size || 24;
+
+  if ('function' === typeof icon) {
+    if (icon.prototype instanceof _wordpress_element__WEBPACK_IMPORTED_MODULE_3__["Component"]) {
+      return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_3__["createElement"])(icon, _objectSpread({
+        size: iconSize
+      }, additionalProps));
+    }
+
+    return icon(_objectSpread({
+      size: iconSize
+    }, additionalProps));
+  }
+
+  if (icon && (icon.type === 'svg' || icon.type === _wordpress_primitives__WEBPACK_IMPORTED_MODULE_4__["SVG"])) {
+    var appliedProps = _objectSpread({
+      width: iconSize,
+      height: iconSize
+    }, icon.props, {}, additionalProps);
+
+    return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_3__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_4__["SVG"], appliedProps);
+  }
+
+  if (Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_3__["isValidElement"])(icon)) {
+    return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_3__["cloneElement"])(icon, _objectSpread({
+      size: iconSize
+    }, additionalProps));
+  }
+
+  return icon;
+}
+
+/* harmony default export */ __webpack_exports__["a"] = (Icon);
+
+
+/***/ }),
+/* 89 */,
+/* 90 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var ES5Type = __webpack_require__(317);
+
+// https://ecma-international.org/ecma-262/6.0/#sec-ecmascript-data-types-and-values
+
+module.exports = function Type(x) {
+	if (typeof x === 'symbol') {
+		return 'Symbol';
+	}
+	return ES5Type(x);
+};
+
+
+/***/ }),
+/* 91 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var bind = __webpack_require__(118);
+
+module.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);
+
+
+/***/ }),
+/* 92 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var defineProperties = __webpack_require__(101);
+
+var implementation = __webpack_require__(226);
+var getPolyfill = __webpack_require__(227);
+var shim = __webpack_require__(353);
 
 var polyfill = getPolyfill();
 
@@ -1886,7 +5579,334 @@
 
 
 /***/ }),
-/* 47 */
+/* 93 */
+/***/ (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__(17);
+/* harmony import */ var reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(49);
+/* harmony import */ var reakit_system_createHook__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(48);
+/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(13);
+/* 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__(68);
+/* harmony import */ var _IdState_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(65);
+
+
+
+
+
+
+
+
+var unstable_useId = Object(reakit_system_createHook__WEBPACK_IMPORTED_MODULE_2__[/* createHook */ "a"])({
+  useState: _IdState_js__WEBPACK_IMPORTED_MODULE_5__[/* unstable_useIdState */ "a"],
+  keys: ["id"],
+  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 () {
+      // This comes from useIdState
+      if (options.unstable_idCountRef) {
+        options.unstable_idCountRef.current += 1;
+        return "-" + options.unstable_idCountRef.current;
+      } // If there's no useIdState, we check if `baseId` was passed (as a prop,
+      // not from useIdState).
+
+
+      if (options.baseId) {
+        return "-" + generateId("");
+      }
+
+      return "";
+    }),
+        suffix = _React$useState[0]; // `baseId` will be the prop passed directly as a prop or via useIdState.
+    // If there's neither, then it'll fallback to Context's generateId.
+    // This generateId can result in a sequential ID (if there's a Provider)
+    // or a random string (without Provider).
+
+
+    var baseId = Object(react__WEBPACK_IMPORTED_MODULE_3__["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), {}, {
+      id: id
+    });
+  },
+  useProps: function useProps(options, htmlProps) {
+    return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({
+      id: options.id
+    }, htmlProps);
+  }
+});
+var unstable_Id = Object(reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_1__[/* createComponent */ "a"])({
+  as: "div",
+  useHook: unstable_useId
+});
+
+
+
+
+/***/ }),
+/* 94 */
+/***/ (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__(122);
+
+
+
+/**
+ * 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));
+}
+
+
+
+
+/***/ }),
+/* 95 */
+/***/ (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.
+ */
+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;
+  }
+}
+
+
+
+
+/***/ }),
+/* 96 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return setTextFieldValue; });
+function setTextFieldValue(element, value) {
+  element.value = value;
+}
+
+
+
+
+/***/ }),
+/* 97 */,
+/* 98 */,
+/* 99 */,
+/* 100 */,
+/* 101 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var keys = __webpack_require__(181);
+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;
+
+
+/***/ }),
+/* 102 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+
+// EXPORTS
+__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ fireKeyboardEvent; });
+
+// EXTERNAL MODULE: ./node_modules/reakit-utils/es/getDocument.js
+var getDocument = __webpack_require__(47);
+
+// CONCATENATED MODULE: ./node_modules/reakit-utils/es/getDefaultView.js
+
+
+/**
+ * Returns `element.ownerDocument.defaultView || window`.
+ */
+
+function getDefaultView(element) {
+  return Object(getDocument["a" /* getDocument */])(element).defaultView || window;
+}
+
+
+
+// CONCATENATED MODULE: ./node_modules/reakit-utils/es/createKeyboardEvent.js
+
+
+
+/**
+ * Creates a `KeyboardEvent` in a way that also works on IE 11.
+ *
+ * @example
+ * import { createKeyboardEvent } from "reakit-utils";
+ *
+ * const el = document.getElementById("id");
+ * el.dispatchEvent(createKeyboardEvent(el, "keydown", { key: "ArrowDown" }));
+ */
+
+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, getDefaultView(element), eventInit.key, eventInit.location, eventInit.ctrlKey, eventInit.altKey, eventInit.shiftKey, eventInit.metaKey);
+  return event;
+}
+
+
+
+// CONCATENATED MODULE: ./node_modules/reakit-utils/es/fireKeyboardEvent.js
+
+
+
+
+/**
+ * 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));
+}
+
+
+
+
+/***/ }),
+/* 103 */,
+/* 104 */
+/***/ (function(module, exports) {
+
+(function() { module.exports = this["wp"]["warning"]; }());
+
+/***/ }),
+/* 105 */,
+/* 106 */
+/***/ (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; }
+}
+
+
+
+
+/***/ }),
+/* 107 */
 /***/ (function(module, exports, __webpack_require__) {
 
 "use strict";
@@ -2105,15 +6125,7 @@
 };
 
 /***/ }),
-/* 48 */
-/***/ (function(module, exports) {
-
-(function() { module.exports = this["wp"]["a11y"]; }());
-
-/***/ }),
-/* 49 */,
-/* 50 */,
-/* 51 */
+/* 108 */
 /***/ (function(module, exports, __webpack_require__) {
 
 "use strict";
@@ -2124,11 +6136,11 @@
 });
 exports['default'] = getPhrasePropTypes;
 
-var _object = __webpack_require__(46);
+var _object = __webpack_require__(92);
 
 var _object2 = _interopRequireDefault(_object);
 
-var _propTypes = __webpack_require__(31);
+var _propTypes = __webpack_require__(28);
 
 var _propTypes2 = _interopRequireDefault(_propTypes);
 
@@ -2143,17 +6155,11 @@
 }
 
 /***/ }),
-/* 52 */
-/***/ (function(module, exports) {
-
-(function() { module.exports = this["ReactDOM"]; }());
-
-/***/ }),
-/* 53 */,
-/* 54 */,
-/* 55 */,
-/* 56 */
-/***/ (function(module, exports, __webpack_require__) {
+/* 109 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
 
 Object.defineProperty(exports, "__esModule", {
   value: true
@@ -2166,29 +6172,29 @@
 
 exports.withStyles = withStyles;
 
-var _react = __webpack_require__(27);
+var _object = __webpack_require__(92);
+
+var _object2 = _interopRequireDefault(_object);
+
+var _react = __webpack_require__(13);
 
 var _react2 = _interopRequireDefault(_react);
 
-var _propTypes = __webpack_require__(31);
+var _propTypes = __webpack_require__(28);
 
 var _propTypes2 = _interopRequireDefault(_propTypes);
 
-var _hoistNonReactStatics = __webpack_require__(140);
+var _hoistNonReactStatics = __webpack_require__(370);
 
 var _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics);
 
-var _deepmerge = __webpack_require__(291);
-
-var _deepmerge2 = _interopRequireDefault(_deepmerge);
-
-var _constants = __webpack_require__(292);
-
-var _brcast = __webpack_require__(293);
+var _constants = __webpack_require__(373);
+
+var _brcast = __webpack_require__(374);
 
 var _brcast2 = _interopRequireDefault(_brcast);
 
-var _ThemedStyleSheet = __webpack_require__(153);
+var _ThemedStyleSheet = __webpack_require__(224);
 
 var _ThemedStyleSheet2 = _interopRequireDefault(_ThemedStyleSheet);
 
@@ -2200,7 +6206,7 @@
 
 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; }
+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;
@@ -2215,6 +6221,9 @@
   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) {
@@ -2287,7 +6296,7 @@
       styleDef = styleDefLTR;
     }
 
-    if (false) {}
+    if (false) { var measureName; }
 
     return styleDef;
   }
@@ -2383,13 +6392,13 @@
       WithStyles.displayName = 'withStyles(' + String(wrappedComponentName) + ')';
       WithStyles.contextTypes = contextTypes;
       if (WrappedComponent.propTypes) {
-        WithStyles.propTypes = (0, _deepmerge2['default'])({}, 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, _deepmerge2['default'])({}, WrappedComponent.defaultProps);
+        WithStyles.defaultProps = (0, _object2['default'])({}, WrappedComponent.defaultProps);
       }
 
       return (0, _hoistNonReactStatics2['default'])(WithStyles, WrappedComponent);
@@ -2400,9 +6409,5414 @@
 }
 
 /***/ }),
-/* 57 */,
-/* 58 */,
-/* 59 */
+/* 110 */,
+/* 111 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8);
+/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
+/* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(19);
+/* harmony import */ var _babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12);
+/* harmony import */ var _babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(23);
+/* harmony import */ var _babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(16);
+/* harmony import */ var _babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(22);
+/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(0);
+/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_7__);
+/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(2);
+/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_8__);
+/* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(9);
+/* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_wordpress_compose__WEBPACK_IMPORTED_MODULE_9__);
+
+
+
+
+
+
+
+
+
+function _createSuper(Derived) { return function () { var Super = Object(_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = Object(_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"])(this, result); }; }
+
+function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+/**
+ * Input types which are classified as button types, for use in considering
+ * whether element is a (focus-normalized) button.
+ *
+ * @type {string[]}
+ */
+
+var INPUT_BUTTON_TYPES = ['button', 'submit'];
+/**
+ * Returns true if the given element is a button element subject to focus
+ * normalization, or false otherwise.
+ *
+ * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus
+ *
+ * @param {Element} element Element to test.
+ *
+ * @return {boolean} Whether element is a button.
+ */
+
+function isFocusNormalizedButton(element) {
+  switch (element.nodeName) {
+    case 'A':
+    case 'BUTTON':
+      return true;
+
+    case 'INPUT':
+      return Object(lodash__WEBPACK_IMPORTED_MODULE_8__["includes"])(INPUT_BUTTON_TYPES, element.type);
+  }
+
+  return false;
+}
+
+/* harmony default export */ __webpack_exports__["a"] = (Object(_wordpress_compose__WEBPACK_IMPORTED_MODULE_9__["createHigherOrderComponent"])(function (WrappedComponent) {
+  return /*#__PURE__*/function (_Component) {
+    Object(_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"])(_class, _Component);
+
+    var _super = _createSuper(_class);
+
+    function _class() {
+      var _this;
+
+      Object(_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(this, _class);
+
+      _this = _super.apply(this, arguments);
+      _this.bindNode = _this.bindNode.bind(Object(_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"])(_this));
+      _this.cancelBlurCheck = _this.cancelBlurCheck.bind(Object(_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"])(_this));
+      _this.queueBlurCheck = _this.queueBlurCheck.bind(Object(_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"])(_this));
+      _this.normalizeButtonFocus = _this.normalizeButtonFocus.bind(Object(_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"])(_this));
+      return _this;
+    }
+
+    Object(_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(_class, [{
+      key: "componentWillUnmount",
+      value: function componentWillUnmount() {
+        this.cancelBlurCheck();
+      }
+    }, {
+      key: "bindNode",
+      value: function bindNode(node) {
+        if (node) {
+          this.node = node;
+        } else {
+          delete this.node;
+          this.cancelBlurCheck();
+        }
+      }
+    }, {
+      key: "queueBlurCheck",
+      value: function queueBlurCheck(event) {
+        var _this2 = this;
+
+        // React does not allow using an event reference asynchronously
+        // due to recycling behavior, except when explicitly persisted.
+        event.persist(); // Skip blur check if clicking button. See `normalizeButtonFocus`.
+
+        if (this.preventBlurCheck) {
+          return;
+        }
+
+        this.blurCheckTimeout = setTimeout(function () {
+          // If document is not focused then focus should remain
+          // inside the wrapped component and therefore we cancel
+          // this blur event thereby leaving focus in place.
+          // https://developer.mozilla.org/en-US/docs/Web/API/Document/hasFocus.
+          if (!document.hasFocus()) {
+            event.preventDefault();
+            return;
+          }
+
+          if ('function' === typeof _this2.node.handleFocusOutside) {
+            _this2.node.handleFocusOutside(event);
+          }
+        }, 0);
+      }
+    }, {
+      key: "cancelBlurCheck",
+      value: function cancelBlurCheck() {
+        clearTimeout(this.blurCheckTimeout);
+      }
+      /**
+       * Handles a mousedown or mouseup event to respectively assign and
+       * unassign a flag for preventing blur check on button elements. Some
+       * browsers, namely Firefox and Safari, do not emit a focus event on
+       * button elements when clicked, while others do. The logic here
+       * intends to normalize this as treating click on buttons as focus.
+       *
+       * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus
+       *
+       * @param {MouseEvent} event Event for mousedown or mouseup.
+       */
+
+    }, {
+      key: "normalizeButtonFocus",
+      value: function normalizeButtonFocus(event) {
+        var type = event.type,
+            target = event.target;
+        var isInteractionEnd = Object(lodash__WEBPACK_IMPORTED_MODULE_8__["includes"])(['mouseup', 'touchend'], type);
+
+        if (isInteractionEnd) {
+          this.preventBlurCheck = false;
+        } else if (isFocusNormalizedButton(target)) {
+          this.preventBlurCheck = true;
+        }
+      }
+    }, {
+      key: "render",
+      value: function render() {
+        // Disable reason: See `normalizeButtonFocus` for browser-specific
+        // focus event normalization.
+
+        /* eslint-disable jsx-a11y/no-static-element-interactions */
+        return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_7__["createElement"])("div", {
+          onFocus: this.cancelBlurCheck,
+          onMouseDown: this.normalizeButtonFocus,
+          onMouseUp: this.normalizeButtonFocus,
+          onTouchStart: this.normalizeButtonFocus,
+          onTouchEnd: this.normalizeButtonFocus,
+          onBlur: this.queueBlurCheck
+        }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_7__["createElement"])(WrappedComponent, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({
+          ref: this.bindNode
+        }, this.props)));
+        /* eslint-enable jsx-a11y/no-static-element-interactions */
+      }
+    }]);
+
+    return _class;
+  }(_wordpress_element__WEBPACK_IMPORTED_MODULE_7__["Component"]);
+}, 'withFocusOutside'));
+
+
+/***/ }),
+/* 112 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js
+var esm_extends = __webpack_require__(8);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 1 modules
+var slicedToArray = __webpack_require__(14);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js
+var objectWithoutProperties = __webpack_require__(15);
+
+// EXTERNAL MODULE: external {"this":["wp","element"]}
+var external_this_wp_element_ = __webpack_require__(0);
+
+// EXTERNAL MODULE: ./node_modules/classnames/index.js
+var classnames = __webpack_require__(11);
+var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);
+
+// EXTERNAL MODULE: external {"this":["wp","dom"]}
+var external_this_wp_dom_ = __webpack_require__(30);
+
+// EXTERNAL MODULE: external {"this":["wp","keycodes"]}
+var external_this_wp_keycodes_ = __webpack_require__(21);
+
+// EXTERNAL MODULE: external {"this":["wp","deprecated"]}
+var external_this_wp_deprecated_ = __webpack_require__(37);
+var external_this_wp_deprecated_default = /*#__PURE__*/__webpack_require__.n(external_this_wp_deprecated_);
+
+// EXTERNAL MODULE: external {"this":["wp","compose"]}
+var external_this_wp_compose_ = __webpack_require__(9);
+
+// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/close.js
+var library_close = __webpack_require__(154);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js
+var defineProperty = __webpack_require__(5);
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/popover/utils.js
+
+
+
+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(Object(source), true).forEach(function (key) { Object(defineProperty["a" /* default */])(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; }
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Module constants
+ */
+
+var 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} sticky          Whether or not to stick the popover to the
+ *                                  scroll container edge when part of the anchor
+ *                                  leaves view.
+ * @param {string}  chosenYAxis     yAxis to be used.
+ * @param {Element} boundaryElement Boundary element.
+ *
+ * @return {Object} Popover xAxis position and constraints.
+ */
+
+function computePopoverXAxisPosition(anchorRect, contentSize, xAxis, corner, sticky, chosenYAxis, boundaryElement) {
+  var width = contentSize.width;
+  var isRTL = document.documentElement.dir === 'rtl'; // Correct xAxis for RTL support
+
+  if (xAxis === 'left' && isRTL) {
+    xAxis = 'right';
+  } else if (xAxis === 'right' && isRTL) {
+    xAxis = 'left';
+  }
+
+  if (corner === 'left' && isRTL) {
+    corner = 'right';
+  } else if (corner === 'right' && isRTL) {
+    corner = 'left';
+  } // x axis alignment choices
+
+
+  var anchorMidPoint = Math.round(anchorRect.left + anchorRect.width / 2);
+  var centerAlignment = {
+    popoverLeft: anchorMidPoint,
+    contentWidth: (anchorMidPoint - width / 2 > 0 ? width / 2 : anchorMidPoint) + (anchorMidPoint + width / 2 > window.innerWidth ? window.innerWidth - anchorMidPoint : width / 2)
+  };
+  var leftAlignmentX = anchorRect.left;
+
+  if (corner === 'right') {
+    leftAlignmentX = anchorRect.right;
+  } else if (chosenYAxis !== 'middle') {
+    leftAlignmentX = anchorMidPoint;
+  }
+
+  var rightAlignmentX = anchorRect.right;
+
+  if (corner === 'left') {
+    rightAlignmentX = anchorRect.left;
+  } else if (chosenYAxis !== 'middle') {
+    rightAlignmentX = anchorMidPoint;
+  }
+
+  var leftAlignment = {
+    popoverLeft: leftAlignmentX,
+    contentWidth: leftAlignmentX - width > 0 ? width : leftAlignmentX
+  };
+  var rightAlignment = {
+    popoverLeft: rightAlignmentX,
+    contentWidth: rightAlignmentX + width > window.innerWidth ? window.innerWidth - rightAlignmentX : width
+  }; // Choosing the x axis
+
+  var chosenXAxis = xAxis;
+  var contentWidth = null;
+
+  if (!sticky) {
+    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';
+      var chosenWidth = chosenXAxis === 'left' ? leftAlignment.contentWidth : rightAlignment.contentWidth;
+      contentWidth = chosenWidth !== width ? chosenWidth : null;
+    }
+  }
+
+  var popoverLeft;
+
+  if (chosenXAxis === 'center') {
+    popoverLeft = centerAlignment.popoverLeft;
+  } else if (chosenXAxis === 'left') {
+    popoverLeft = leftAlignment.popoverLeft;
+  } else {
+    popoverLeft = rightAlignment.popoverLeft;
+  }
+
+  if (boundaryElement) {
+    var boundaryRect = boundaryElement.getBoundingClientRect();
+    popoverLeft = Math.min(popoverLeft, boundaryRect.right - width);
+  }
+
+  return {
+    xAxis: chosenXAxis,
+    popoverLeft: popoverLeft,
+    contentWidth: 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} sticky            Whether or not to stick the popover to the
+ *                                    scroll container edge when part of the
+ *                                    anchor leaves view.
+ * @param {Element} anchorRef         The anchor element.
+ * @param {Element} relativeOffsetTop If applicable, top offset of the relative
+ *                                    positioned parent container.
+ *
+ * @return {Object} Popover xAxis position and constraints.
+ */
+
+function computePopoverYAxisPosition(anchorRect, contentSize, yAxis, corner, sticky, anchorRef, relativeOffsetTop) {
+  var height = contentSize.height;
+
+  if (sticky) {
+    var scrollContainerEl = Object(external_this_wp_dom_["getScrollContainer"])(anchorRef) || document.body;
+    var scrollRect = scrollContainerEl.getBoundingClientRect();
+    var stickyPosition = scrollRect.top + height - relativeOffsetTop;
+
+    if (anchorRect.top <= stickyPosition) {
+      return {
+        yAxis: yAxis,
+        popoverTop: Math.min(anchorRect.bottom, stickyPosition)
+      };
+    }
+  } // y axis alignment choices
+
+
+  var anchorMidPoint = anchorRect.top + anchorRect.height / 2;
+
+  if (corner === 'bottom') {
+    anchorMidPoint = anchorRect.bottom;
+  } else if (corner === 'top') {
+    anchorMidPoint = anchorRect.top;
+  }
+
+  var middleAlignment = {
+    popoverTop: anchorMidPoint,
+    contentHeight: (anchorMidPoint - height / 2 > 0 ? height / 2 : anchorMidPoint) + (anchorMidPoint + height / 2 > window.innerHeight ? window.innerHeight - anchorMidPoint : height / 2)
+  };
+  var topAlignment = {
+    popoverTop: anchorRect.top,
+    contentHeight: anchorRect.top - HEIGHT_OFFSET - height > 0 ? height : anchorRect.top - HEIGHT_OFFSET
+  };
+  var bottomAlignment = {
+    popoverTop: anchorRect.bottom,
+    contentHeight: anchorRect.bottom + HEIGHT_OFFSET + height > window.innerHeight ? window.innerHeight - HEIGHT_OFFSET - anchorRect.bottom : height
+  }; // Choosing the y axis
+
+  var chosenYAxis = yAxis;
+  var contentHeight = null;
+
+  if (!sticky) {
+    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';
+      var chosenHeight = chosenYAxis === 'top' ? topAlignment.contentHeight : bottomAlignment.contentHeight;
+      contentHeight = chosenHeight !== height ? chosenHeight : null;
+    }
+  }
+
+  var popoverTop;
+
+  if (chosenYAxis === 'middle') {
+    popoverTop = middleAlignment.popoverTop;
+  } else if (chosenYAxis === 'top') {
+    popoverTop = topAlignment.popoverTop;
+  } else {
+    popoverTop = bottomAlignment.popoverTop;
+  }
+
+  return {
+    yAxis: chosenYAxis,
+    popoverTop: popoverTop,
+    contentHeight: 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} sticky            Whether or not to stick the popover to the
+ *                                    scroll container edge when part of the
+ *                                    anchor leaves view.
+ * @param {Element} anchorRef         The anchor element.
+ * @param {number}  relativeOffsetTop If applicable, top offset of the relative
+ *                                    positioned parent container.
+ * @param {Element} boundaryElement   Boundary element.
+ *
+ * @return {Object} Popover position and constraints.
+ */
+
+function computePopoverPosition(anchorRect, contentSize) {
+  var position = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'top';
+  var sticky = arguments.length > 3 ? arguments[3] : undefined;
+  var anchorRef = arguments.length > 4 ? arguments[4] : undefined;
+  var relativeOffsetTop = arguments.length > 5 ? arguments[5] : undefined;
+  var boundaryElement = arguments.length > 6 ? arguments[6] : undefined;
+
+  var _position$split = position.split(' '),
+      _position$split2 = Object(slicedToArray["a" /* default */])(_position$split, 3),
+      yAxis = _position$split2[0],
+      _position$split2$ = _position$split2[1],
+      xAxis = _position$split2$ === void 0 ? 'center' : _position$split2$,
+      corner = _position$split2[2];
+
+  var yAxisPosition = computePopoverYAxisPosition(anchorRect, contentSize, yAxis, corner, sticky, anchorRef, relativeOffsetTop);
+  var xAxisPosition = computePopoverXAxisPosition(anchorRect, contentSize, xAxis, corner, sticky, yAxisPosition.yAxis, boundaryElement);
+  return _objectSpread({}, xAxisPosition, {}, yAxisPosition);
+}
+
+// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/higher-order/with-focus-return/index.js
+var with_focus_return = __webpack_require__(130);
+
+// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/higher-order/with-constrained-tabbing/index.js
+var with_constrained_tabbing = __webpack_require__(129);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js
+var classCallCheck = __webpack_require__(20);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/createClass.js
+var createClass = __webpack_require__(19);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js
+var possibleConstructorReturn = __webpack_require__(23);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js
+var getPrototypeOf = __webpack_require__(16);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js + 1 modules
+var inherits = __webpack_require__(22);
+
+// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/higher-order/with-focus-outside/index.js
+var with_focus_outside = __webpack_require__(111);
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/popover/detect-outside.js
+
+
+
+
+
+
+function _createSuper(Derived) { return function () { var Super = Object(getPrototypeOf["a" /* default */])(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf["a" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn["a" /* default */])(this, result); }; }
+
+function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+var detect_outside_PopoverDetectOutside = /*#__PURE__*/function (_Component) {
+  Object(inherits["a" /* default */])(PopoverDetectOutside, _Component);
+
+  var _super = _createSuper(PopoverDetectOutside);
+
+  function PopoverDetectOutside() {
+    Object(classCallCheck["a" /* default */])(this, PopoverDetectOutside);
+
+    return _super.apply(this, arguments);
+  }
+
+  Object(createClass["a" /* default */])(PopoverDetectOutside, [{
+    key: "handleFocusOutside",
+    value: function handleFocusOutside(event) {
+      this.props.onFocusOutside(event);
+    }
+  }, {
+    key: "render",
+    value: function render() {
+      return this.props.children;
+    }
+  }]);
+
+  return PopoverDetectOutside;
+}(external_this_wp_element_["Component"]);
+
+/* harmony default export */ var detect_outside = (Object(with_focus_outside["a" /* default */])(detect_outside_PopoverDetectOutside));
+
+// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/button/index.js
+var build_module_button = __webpack_require__(34);
+
+// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/scroll-lock/index.js
+var scroll_lock = __webpack_require__(161);
+
+// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/isolated-event-container/index.js
+var isolated_event_container = __webpack_require__(131);
+
+// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/bubbles-virtually/use-slot.js
+var use_slot = __webpack_require__(159);
+
+// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/index.js + 6 modules
+var slot_fill = __webpack_require__(121);
+
+// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/animate/index.js
+var build_module_animate = __webpack_require__(160);
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/popover/index.js
+
+
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+
+
+
+
+var FocusManaged = Object(with_constrained_tabbing["a" /* default */])(Object(with_focus_return["a" /* default */])(function (_ref) {
+  var children = _ref.children;
+  return children;
+}));
+/**
+ * Name of slot in which popover should fill.
+ *
+ * @type {string}
+ */
+
+var SLOT_NAME = 'Popover';
+
+function computeAnchorRect(anchorRefFallback, anchorRect, getAnchorRect) {
+  var anchorRef = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
+  var shouldAnchorIncludePadding = arguments.length > 4 ? arguments[4] : undefined;
+
+  if (anchorRect) {
+    return anchorRect;
+  }
+
+  if (getAnchorRect) {
+    if (!anchorRefFallback.current) {
+      return;
+    }
+
+    return getAnchorRect(anchorRefFallback.current);
+  }
+
+  if (anchorRef !== false) {
+    if (!anchorRef || !window.Range || !window.Element || !window.DOMRect) {
+      return;
+    }
+
+    if (anchorRef instanceof window.Range) {
+      return Object(external_this_wp_dom_["getRectangleFromRange"])(anchorRef);
+    }
+
+    if (anchorRef instanceof window.Element) {
+      var _rect2 = anchorRef.getBoundingClientRect();
+
+      if (shouldAnchorIncludePadding) {
+        return _rect2;
+      }
+
+      return withoutPadding(_rect2, anchorRef);
+    }
+
+    var top = anchorRef.top,
+        bottom = anchorRef.bottom;
+    var topRect = top.getBoundingClientRect();
+    var bottomRect = bottom.getBoundingClientRect();
+
+    var _rect = new window.DOMRect(topRect.left, topRect.top, topRect.width, bottomRect.bottom - topRect.top);
+
+    if (shouldAnchorIncludePadding) {
+      return _rect;
+    }
+
+    return withoutPadding(_rect, anchorRef);
+  }
+
+  if (!anchorRefFallback.current) {
+    return;
+  }
+
+  var parentNode = anchorRefFallback.current.parentNode;
+  var rect = parentNode.getBoundingClientRect();
+
+  if (shouldAnchorIncludePadding) {
+    return rect;
+  }
+
+  return withoutPadding(rect, parentNode);
+}
+
+function withoutPadding(rect, element) {
+  var _window$getComputedSt = window.getComputedStyle(element),
+      paddingTop = _window$getComputedSt.paddingTop,
+      paddingBottom = _window$getComputedSt.paddingBottom,
+      paddingLeft = _window$getComputedSt.paddingLeft,
+      paddingRight = _window$getComputedSt.paddingRight;
+
+  var top = paddingTop ? parseInt(paddingTop, 10) : 0;
+  var bottom = paddingBottom ? parseInt(paddingBottom, 10) : 0;
+  var left = paddingLeft ? parseInt(paddingLeft, 10) : 0;
+  var 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
+  };
+}
+/**
+ * Hook used to focus the first tabbable element on mount.
+ *
+ * @param {boolean|string} focusOnMount Focus on mount mode.
+ * @param {Object}         contentRef   Reference to the popover content element.
+ */
+
+
+function useFocusContentOnMount(focusOnMount, contentRef) {
+  // Focus handling
+  Object(external_this_wp_element_["useEffect"])(function () {
+    /*
+     * Without the setTimeout, the dom node is not being focused. Related:
+     * https://stackoverflow.com/questions/35522220/react-ref-with-focus-doesnt-work-without-settimeout-my-example
+     *
+     * TODO: Treat the cause, not the symptom.
+     */
+    var focusTimeout = setTimeout(function () {
+      if (!focusOnMount || !contentRef.current) {
+        return;
+      }
+
+      if (focusOnMount === 'firstElement') {
+        // Find first tabbable node within content and shift focus, falling
+        // back to the popover panel itself.
+        var firstTabbable = external_this_wp_dom_["focus"].tabbable.find(contentRef.current)[0];
+
+        if (firstTabbable) {
+          firstTabbable.focus();
+        } else {
+          contentRef.current.focus();
+        }
+
+        return;
+      }
+
+      if (focusOnMount === 'container') {
+        // Focus the popover panel itself so items in the popover are easily
+        // accessed via keyboard navigation.
+        contentRef.current.focus();
+      }
+    }, 0);
+    return function () {
+      return clearTimeout(focusTimeout);
+    };
+  }, []);
+}
+/**
+ * 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) {
+  var 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);
+  }
+}
+
+var popover_Popover = function Popover(_ref2) {
+  var headerTitle = _ref2.headerTitle,
+      onClose = _ref2.onClose,
+      onKeyDown = _ref2.onKeyDown,
+      children = _ref2.children,
+      className = _ref2.className,
+      _ref2$noArrow = _ref2.noArrow,
+      noArrow = _ref2$noArrow === void 0 ? true : _ref2$noArrow,
+      isAlternate = _ref2.isAlternate,
+      _ref2$position = _ref2.position,
+      position = _ref2$position === void 0 ? 'bottom right' : _ref2$position,
+      range = _ref2.range,
+      _ref2$focusOnMount = _ref2.focusOnMount,
+      focusOnMount = _ref2$focusOnMount === void 0 ? 'firstElement' : _ref2$focusOnMount,
+      anchorRef = _ref2.anchorRef,
+      shouldAnchorIncludePadding = _ref2.shouldAnchorIncludePadding,
+      anchorRect = _ref2.anchorRect,
+      getAnchorRect = _ref2.getAnchorRect,
+      expandOnMobile = _ref2.expandOnMobile,
+      _ref2$animate = _ref2.animate,
+      animate = _ref2$animate === void 0 ? true : _ref2$animate,
+      onClickOutside = _ref2.onClickOutside,
+      onFocusOutside = _ref2.onFocusOutside,
+      __unstableSticky = _ref2.__unstableSticky,
+      _ref2$__unstableSlotN = _ref2.__unstableSlotName,
+      __unstableSlotName = _ref2$__unstableSlotN === void 0 ? SLOT_NAME : _ref2$__unstableSlotN,
+      __unstableObserveElement = _ref2.__unstableObserveElement,
+      __unstableBoundaryParent = _ref2.__unstableBoundaryParent,
+      contentProps = Object(objectWithoutProperties["a" /* default */])(_ref2, ["headerTitle", "onClose", "onKeyDown", "children", "className", "noArrow", "isAlternate", "position", "range", "focusOnMount", "anchorRef", "shouldAnchorIncludePadding", "anchorRect", "getAnchorRect", "expandOnMobile", "animate", "onClickOutside", "onFocusOutside", "__unstableSticky", "__unstableSlotName", "__unstableObserveElement", "__unstableBoundaryParent"]);
+
+  var anchorRefFallback = Object(external_this_wp_element_["useRef"])(null);
+  var contentRef = Object(external_this_wp_element_["useRef"])(null);
+  var containerRef = Object(external_this_wp_element_["useRef"])();
+  var isMobileViewport = Object(external_this_wp_compose_["useViewportMatch"])('medium', '<');
+
+  var _useState = Object(external_this_wp_element_["useState"])(),
+      _useState2 = Object(slicedToArray["a" /* default */])(_useState, 2),
+      animateOrigin = _useState2[0],
+      setAnimateOrigin = _useState2[1];
+
+  var slot = Object(use_slot["a" /* default */])(__unstableSlotName);
+  var isExpanded = expandOnMobile && isMobileViewport;
+
+  var _useResizeObserver = Object(external_this_wp_compose_["useResizeObserver"])(),
+      _useResizeObserver2 = Object(slicedToArray["a" /* default */])(_useResizeObserver, 2),
+      containerResizeListener = _useResizeObserver2[0],
+      contentSize = _useResizeObserver2[1];
+
+  noArrow = isExpanded || noArrow;
+  Object(external_this_wp_element_["useLayoutEffect"])(function () {
+    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;
+    }
+
+    var refresh = function refresh() {
+      if (!containerRef.current || !contentRef.current) {
+        return;
+      }
+
+      var anchor = computeAnchorRect(anchorRefFallback, anchorRect, getAnchorRect, anchorRef, shouldAnchorIncludePadding);
+
+      if (!anchor) {
+        return;
+      }
+
+      var _containerRef$current = containerRef.current,
+          offsetParent = _containerRef$current.offsetParent,
+          ownerDocument = _containerRef$current.ownerDocument;
+      var 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) {
+        var offsetParentRect = offsetParent.getBoundingClientRect();
+        relativeOffsetTop = offsetParentRect.top;
+        anchor = new window.DOMRect(anchor.left - offsetParentRect.left, anchor.top - offsetParentRect.top, anchor.width, anchor.height);
+      }
+
+      var boundaryElement;
+
+      if (__unstableBoundaryParent) {
+        var _containerRef$current2;
+
+        boundaryElement = (_containerRef$current2 = containerRef.current.closest('.popover-slot')) === null || _containerRef$current2 === void 0 ? void 0 : _containerRef$current2.parentNode;
+      }
+
+      var usedContentSize = !contentSize.height ? contentRef.current.getBoundingClientRect() : contentSize;
+
+      var _computePopoverPositi = computePopoverPosition(anchor, usedContentSize, position, __unstableSticky, containerRef.current, relativeOffsetTop, boundaryElement),
+          popoverTop = _computePopoverPositi.popoverTop,
+          popoverLeft = _computePopoverPositi.popoverLeft,
+          xAxis = _computePopoverPositi.xAxis,
+          yAxis = _computePopoverPositi.yAxis,
+          contentHeight = _computePopoverPositi.contentHeight,
+          contentWidth = _computePopoverPositi.contentWidth;
+
+      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
+
+      var yAxisMapping = {
+        top: 'bottom',
+        bottom: 'top'
+      };
+      var xAxisMapping = {
+        left: 'right',
+        right: 'left'
+      };
+      var animateYAxis = yAxisMapping[yAxis] || 'middle';
+      var animateXAxis = xAxisMapping[xAxis] || 'center';
+      setAnimateOrigin(animateXAxis + ' ' + animateYAxis);
+    };
+
+    refresh();
+    /*
+     * 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
+     */
+
+    var intervalHandle = window.setInterval(refresh, 500);
+    var rafId;
+
+    var refreshOnAnimationFrame = function refreshOnAnimationFrame() {
+      window.cancelAnimationFrame(rafId);
+      rafId = window.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.
+
+
+    window.addEventListener('click', refreshOnAnimationFrame);
+    window.addEventListener('resize', refresh);
+    window.addEventListener('scroll', refresh, true);
+    var observer;
+
+    if (__unstableObserveElement) {
+      observer = new window.MutationObserver(refresh);
+      observer.observe(__unstableObserveElement, {
+        attributes: true
+      });
+    }
+
+    return function () {
+      window.clearInterval(intervalHandle);
+      window.removeEventListener('resize', refresh);
+      window.removeEventListener('scroll', refresh, true);
+      window.removeEventListener('click', refreshOnAnimationFrame);
+      window.cancelAnimationFrame(rafId);
+
+      if (observer) {
+        observer.disconnect();
+      }
+    };
+  }, [isExpanded, anchorRect, getAnchorRect, anchorRef, shouldAnchorIncludePadding, position, contentSize, __unstableSticky, __unstableObserveElement, __unstableBoundaryParent]);
+  useFocusContentOnMount(focusOnMount, contentRef); // Event handlers
+
+  var maybeClose = function maybeClose(event) {
+    // Close on escape
+    if (event.keyCode === external_this_wp_keycodes_["ESCAPE"] && onClose) {
+      event.stopPropagation();
+      onClose();
+    } // Preserve original content prop behavior
+
+
+    if (onKeyDown) {
+      onKeyDown(event);
+    }
+  };
+  /**
+   * 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.
+
+
+    var 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: function get() {
+        return event.relatedTarget;
+      }
+    });
+    external_this_wp_deprecated_default()('Popover onClickOutside prop', {
+      alternative: 'onFocusOutside'
+    });
+    onClickOutside(clickEvent);
+  } // Disable reason: We care to capture the _bubbled_ events from inputs
+  // within popover as inferring close intent.
+
+
+  var content = Object(external_this_wp_element_["createElement"])(detect_outside, {
+    onFocusOutside: handleOnFocusOutside
+  }, Object(external_this_wp_element_["createElement"])(build_module_animate["a" /* default */], {
+    type: animate && animateOrigin ? 'appear' : null,
+    options: {
+      origin: animateOrigin
+    }
+  }, function (_ref3) {
+    var animateClassName = _ref3.className;
+    return Object(external_this_wp_element_["createElement"])(isolated_event_container["a" /* default */], Object(esm_extends["a" /* default */])({
+      className: classnames_default()('components-popover', className, animateClassName, {
+        'is-expanded': isExpanded,
+        'is-without-arrow': noArrow,
+        'is-alternate': isAlternate
+      })
+    }, contentProps, {
+      onKeyDown: maybeClose,
+      ref: containerRef
+    }), isExpanded && Object(external_this_wp_element_["createElement"])(scroll_lock["a" /* default */], null), isExpanded && Object(external_this_wp_element_["createElement"])("div", {
+      className: "components-popover__header"
+    }, Object(external_this_wp_element_["createElement"])("span", {
+      className: "components-popover__header-title"
+    }, headerTitle), Object(external_this_wp_element_["createElement"])(build_module_button["a" /* default */], {
+      className: "components-popover__close",
+      icon: library_close["a" /* default */],
+      onClick: onClose
+    })), Object(external_this_wp_element_["createElement"])("div", {
+      ref: contentRef,
+      className: "components-popover__content",
+      tabIndex: "-1"
+    }, Object(external_this_wp_element_["createElement"])("div", {
+      style: {
+        position: 'relative'
+      }
+    }, containerResizeListener, children)));
+  })); // Apply focus to element as long as focusOnMount is truthy; false is
+  // the only "disabled" value.
+
+  if (focusOnMount) {
+    content = Object(external_this_wp_element_["createElement"])(FocusManaged, null, content);
+  }
+
+  if (slot.ref) {
+    content = Object(external_this_wp_element_["createElement"])(slot_fill["a" /* Fill */], {
+      name: __unstableSlotName
+    }, content);
+  }
+
+  if (anchorRef || anchorRect) {
+    return content;
+  }
+
+  return Object(external_this_wp_element_["createElement"])("span", {
+    ref: anchorRefFallback
+  }, content);
+};
+
+var PopoverContainer = popover_Popover;
+
+PopoverContainer.Slot = function (_ref4) {
+  var _ref4$name = _ref4.name,
+      name = _ref4$name === void 0 ? SLOT_NAME : _ref4$name;
+  return Object(external_this_wp_element_["createElement"])(slot_fill["b" /* Slot */], {
+    bubblesVirtually: true,
+    name: name,
+    className: "popover-slot"
+  });
+};
+
+/* harmony default export */ var popover = __webpack_exports__["a"] = (PopoverContainer);
+
+
+/***/ }),
+/* 113 */
+/***/ (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__(170));
+var _objectWithoutPropertiesLoose = _interopDefault(__webpack_require__(171));
+var React = __webpack_require__(13);
+var React__default = _interopDefault(React);
+var _inheritsLoose = _interopDefault(__webpack_require__(145));
+var _assertThisInitialized = _interopDefault(__webpack_require__(172));
+
+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;
+
+
+/***/ }),
+/* 114 */,
+/* 115 */,
+/* 116 */
+/***/ (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
+}
+
+
+/***/ }),
+/* 117 */
+/***/ (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; };
+
+
+/***/ }),
+/* 118 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var implementation = __webpack_require__(312);
+
+module.exports = Function.prototype.bind || implementation;
+
+
+/***/ }),
+/* 119 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Composite; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return useComposite; });
+/* harmony import */ var _rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17);
+/* harmony import */ var reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(49);
+/* harmony import */ var reakit_system_createHook__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(48);
+/* harmony import */ var _Box_Box_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(67);
+/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(13);
+/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);
+/* harmony import */ var reakit_utils_useForkRef__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(63);
+/* harmony import */ var reakit_warning__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(80);
+/* harmony import */ var reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(46);
+/* harmony import */ var reakit_utils_isSelfTarget__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(53);
+/* harmony import */ var reakit_utils_getActiveElement__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(57);
+/* harmony import */ var _Tabbable_Tabbable_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(73);
+/* harmony import */ var reakit_system_useCreateElement__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(78);
+/* harmony import */ var reakit_utils_createOnKeyDown__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(82);
+/* harmony import */ var reakit_utils_getDocument__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(47);
+/* harmony import */ var reakit_utils_fireEvent__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(94);
+/* harmony import */ var reakit_utils_fireKeyboardEvent__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(102);
+/* harmony import */ var _CompositeState_3a25dcee_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(51);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+var isIE11 = typeof window !== "undefined" && "msCrypto" in window;
+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(reakit_utils_getActiveElement__WEBPACK_IMPORTED_MODULE_9__[/* getActiveElement */ "a"])(event.target);
+    return activeElement;
+  }
+
+  return event.relatedTarget;
+}
+
+var validCompositeRoles = ["combobox", "grid", "tablist", "listbox", "menu", "menubar", "toolbar", "radiogroup", "tree", "treegrid"];
+var isIE11$1 = typeof window !== "undefined" && "msCrypto" in window;
+
+function canProxyKeyboardEvent(event) {
+  if (!Object(reakit_utils_isSelfTarget__WEBPACK_IMPORTED_MODULE_8__[/* isSelfTarget */ "a"])(event)) return false;
+  if (event.metaKey) return false;
+  if (event.key === "Tab") return false;
+  return true;
+}
+
+function useKeyboardEventProxy(virtual, currentItem, htmlEventHandler) {
+  var eventHandlerRef = Object(reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_7__[/* useLiveRef */ "a"])(htmlEventHandler);
+  return Object(react__WEBPACK_IMPORTED_MODULE_4__["useCallback"])(function (event) {
+    var _eventHandlerRef$curr;
+
+    if (virtual && canProxyKeyboardEvent(event)) {
+      var currentElement = currentItem === null || currentItem === void 0 ? void 0 : currentItem.ref.current;
+
+      if (currentElement) {
+        Object(reakit_utils_fireKeyboardEvent__WEBPACK_IMPORTED_MODULE_15__[/* fireKeyboardEvent */ "a"])(currentElement, event.type, event); // 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();
+          event.preventDefault();
+          return;
+        }
+      }
+    }
+
+    (_eventHandlerRef$curr = eventHandlerRef.current) === null || _eventHandlerRef$curr === void 0 ? void 0 : _eventHandlerRef$curr.call(eventHandlerRef, event);
+  }, [virtual, currentItem]);
+} // istanbul ignore next
+
+
+function useActiveElementRef(elementRef) {
+  var activeElementRef = Object(react__WEBPACK_IMPORTED_MODULE_4__["useRef"])(null);
+  Object(react__WEBPACK_IMPORTED_MODULE_4__["useEffect"])(function () {
+    var document = Object(reakit_utils_getDocument__WEBPACK_IMPORTED_MODULE_13__[/* getDocument */ "a"])(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(_CompositeState_3a25dcee_js__WEBPACK_IMPORTED_MODULE_16__["a"])(Object(_CompositeState_3a25dcee_js__WEBPACK_IMPORTED_MODULE_16__["b"])(Object(_CompositeState_3a25dcee_js__WEBPACK_IMPORTED_MODULE_16__[/* r */ "f"])(Object(_CompositeState_3a25dcee_js__WEBPACK_IMPORTED_MODULE_16__["c"])(items))));
+}
+
+function isItem(items, element) {
+  return items === null || items === void 0 ? void 0 : items.some(function (item) {
+    return !!element && item.ref.current === element;
+  });
+}
+
+var useComposite = Object(reakit_system_createHook__WEBPACK_IMPORTED_MODULE_2__[/* createHook */ "a"])({
+  name: "Composite",
+  compose: [_Tabbable_Tabbable_js__WEBPACK_IMPORTED_MODULE_10__[/* useTabbable */ "a"]],
+  useState: _CompositeState_3a25dcee_js__WEBPACK_IMPORTED_MODULE_16__[/* u */ "g"],
+  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), {}, {
+      currentId: Object(_CompositeState_3a25dcee_js__WEBPACK_IMPORTED_MODULE_16__[/* g */ "e"])(options)
+    });
+  },
+  useProps: function useProps(options, _ref) {
+    var htmlRef = _ref.ref,
+        htmlOnFocus = _ref.onFocus,
+        htmlOnBlur = _ref.onBlur,
+        htmlOnKeyDown = _ref.onKeyDown,
+        htmlOnKeyUp = _ref.onKeyUp,
+        htmlProps = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* _ */ "a"])(_ref, ["ref", "onFocus", "onBlur", "onKeyDown", "onKeyUp"]);
+
+    var ref = Object(react__WEBPACK_IMPORTED_MODULE_4__["useRef"])(null);
+    var currentItem = Object(_CompositeState_3a25dcee_js__WEBPACK_IMPORTED_MODULE_16__[/* f */ "d"])(options.items, options.currentId);
+    var previousItem = Object(react__WEBPACK_IMPORTED_MODULE_4__["useRef"])(undefined);
+    var onFocusRef = Object(reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_7__[/* useLiveRef */ "a"])(htmlOnFocus);
+    var onBlurRef = Object(reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_7__[/* useLiveRef */ "a"])(htmlOnBlur); // IE 11 doesn't support event.relatedTarget, so we use the active element
+    // ref instead.
+
+    var activeElementRef = isIE11$1 ? useActiveElementRef(ref) : undefined;
+    Object(react__WEBPACK_IMPORTED_MODULE_4__["useEffect"])(function () {
+      var element = ref.current;
+
+      if (!element) {
+         false ? undefined : void 0;
+        return;
+      }
+
+      if (options.unstable_moves && !currentItem) {
+        // If composite.move(null) has been called, the composite container
+        // will receive focus.
+        element.focus();
+      }
+    }, [options.unstable_moves, currentItem]);
+    var onKeyDown = useKeyboardEventProxy(options.unstable_virtual, currentItem, htmlOnKeyDown);
+    var onKeyUp = useKeyboardEventProxy(options.unstable_virtual, currentItem, htmlOnKeyUp);
+    var onFocus = Object(react__WEBPACK_IMPORTED_MODULE_4__["useCallback"])(function (event) {
+      var _onFocusRef$current2;
+
+      if (options.unstable_virtual) {
+        // 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(reakit_utils_isSelfTarget__WEBPACK_IMPORTED_MODULE_8__[/* isSelfTarget */ "a"])(event) && !previousActiveElementWasItem) {
+          var _onFocusRef$current, _currentItem$ref$curr;
+
+          // 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.
+          (_onFocusRef$current = onFocusRef.current) === null || _onFocusRef$current === void 0 ? void 0 : _onFocusRef$current.call(onFocusRef, event);
+          currentItem === null || currentItem === void 0 ? void 0 : (_currentItem$ref$curr = currentItem.ref.current) === null || _currentItem$ref$curr === void 0 ? void 0 : _currentItem$ref$curr.focus();
+          return;
+        }
+
+        if (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={...} /> (htmlOnFocus). Unless users add DOM
+          // event handlers to the composite element directly, this will be
+          // like this event has never existed.
+          event.stopPropagation();
+          return;
+        }
+      } else if (Object(reakit_utils_isSelfTarget__WEBPACK_IMPORTED_MODULE_8__[/* isSelfTarget */ "a"])(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);
+      }
+
+      (_onFocusRef$current2 = onFocusRef.current) === null || _onFocusRef$current2 === void 0 ? void 0 : _onFocusRef$current2.call(onFocusRef, event);
+    }, [options.unstable_virtual, options.items, currentItem, options.setCurrentId]);
+    var onBlur = Object(react__WEBPACK_IMPORTED_MODULE_4__["useCallback"])(function (event) {
+      var _onBlurRef$current;
+
+      // 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).
+      if (options.unstable_virtual) {
+        var targetIsItem = isItem(options.items, event.target);
+        var nextActiveElement = getNextActiveElementOnBlur(event);
+        var nextActiveElementIsItem = isItem(options.items, nextActiveElement);
+
+        if (Object(reakit_utils_isSelfTarget__WEBPACK_IMPORTED_MODULE_8__[/* isSelfTarget */ "a"])(event) && nextActiveElementIsItem) {
+          var _previousItem$current;
+
+          // This is an intermediate blur event: blurring the composite
+          // container to focus an item (nextActiveElement). We ignore this
+          // event.
+          if ((_previousItem$current = previousItem.current) === null || _previousItem$current === void 0 ? void 0 : _previousItem$current.ref.current) {
+            // If there's a previous active item we fire a blur event on it
+            // so it will work just like if it had DOM focus before (like when
+            // using roving tabindex).
+            Object(reakit_utils_fireEvent__WEBPACK_IMPORTED_MODULE_14__[/* fireEvent */ "a"])(previousItem.current.ref.current, "blur", event);
+          }
+
+          previousItem.current = currentItem;
+          event.stopPropagation();
+          return;
+        }
+
+        if (!targetIsItem) {
+          // If target is another thing (probably something outside of the
+          // composite container), we don't ignore the event, but we should
+          // reset the previousItem reference.
+          if (currentItem === null || currentItem === void 0 ? void 0 : currentItem.ref.current) {
+            Object(reakit_utils_fireEvent__WEBPACK_IMPORTED_MODULE_14__[/* fireEvent */ "a"])(currentItem.ref.current, "blur", event);
+          }
+
+          previousItem.current = undefined;
+        } else {
+          previousItem.current = currentItem;
+        }
+      }
+
+      (_onBlurRef$current = onBlurRef.current) === null || _onBlurRef$current === void 0 ? void 0 : _onBlurRef$current.call(onBlurRef, event);
+    }, [options.unstable_virtual, options.items, currentItem]);
+    var onMove = Object(react__WEBPACK_IMPORTED_MODULE_4__["useMemo"])(function () {
+      return Object(reakit_utils_createOnKeyDown__WEBPACK_IMPORTED_MODULE_12__[/* createOnKeyDown */ "a"])({
+        onKeyDown: onKeyDown,
+        stopPropagation: true,
+        shouldKeyDown: function shouldKeyDown(event) {
+          return Object(reakit_utils_isSelfTarget__WEBPACK_IMPORTED_MODULE_8__[/* isSelfTarget */ "a"])(event) && options.currentId === null;
+        },
+        keyMap: function keyMap() {
+          var _options$groups;
+
+          var isVertical = options.orientation !== "horizontal";
+          var isHorizontal = options.orientation !== "vertical";
+          var isGrid = !!((_options$groups = options.groups) === null || _options$groups === void 0 ? void 0 : _options$groups.length);
+
+          var up = function up() {
+            if (isGrid) {
+              var item = findFirstEnabledItemInTheLastRow(options.items);
+
+              if (item === null || item === void 0 ? 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 first = options.first && function () {
+            return options.first();
+          };
+
+          var last = options.last && function () {
+            return options.last();
+          };
+
+          return {
+            ArrowUp: (isGrid || isVertical) && up,
+            ArrowRight: (isGrid || isHorizontal) && first,
+            ArrowDown: (isGrid || isVertical) && first,
+            ArrowLeft: (isGrid || isHorizontal) && last,
+            Home: first,
+            End: last,
+            PageUp: first,
+            PageDown: last
+          };
+        }
+      });
+    }, [onKeyDown, options.currentId, options.orientation, options.groups, options.items, options.move, options.last, options.first]);
+    return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({
+      ref: Object(reakit_utils_useForkRef__WEBPACK_IMPORTED_MODULE_5__[/* useForkRef */ "a"])(ref, htmlRef),
+      id: options.baseId,
+      onFocus: onFocus,
+      onBlur: onBlur,
+      onKeyDown: onMove,
+      onKeyUp: onKeyUp,
+      "aria-activedescendant": options.unstable_virtual ? (currentItem === null || currentItem === void 0 ? void 0 : currentItem.id) || undefined : undefined
+    }, htmlProps);
+  },
+  useComposeProps: function useComposeProps(options, htmlProps) {
+    htmlProps = Object(_Box_Box_js__WEBPACK_IMPORTED_MODULE_3__[/* useBox */ "a"])(options, htmlProps, true);
+    var tabbableHTMLProps = Object(_Tabbable_Tabbable_js__WEBPACK_IMPORTED_MODULE_10__[/* useTabbable */ "a"])(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 tabbableHTMLProps;
+    }
+
+    return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({}, htmlProps), {}, {
+      ref: tabbableHTMLProps.ref
+    });
+  }
+});
+var Composite = Object(reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_1__[/* createComponent */ "a"])({
+  as: "div",
+  useHook: useComposite,
+  useCreateElement: function useCreateElement$1(type, props, children) {
+     false ? undefined : void 0;
+     false ? undefined : void 0;
+    return Object(reakit_system_useCreateElement__WEBPACK_IMPORTED_MODULE_11__[/* useCreateElement */ "a"])(type, props, children);
+  }
+});
+
+
+
+
+/***/ }),
+/* 120 */
+/***/ (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__(17);
+/* harmony import */ var reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(49);
+/* harmony import */ var reakit_system_createHook__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(48);
+/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(13);
+/* 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__(63);
+/* harmony import */ var reakit_warning__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(80);
+/* harmony import */ var reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(46);
+/* harmony import */ var reakit_utils_isSelfTarget__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(53);
+/* harmony import */ var reakit_utils_hasFocusWithin__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(69);
+/* harmony import */ var reakit_utils_isPortalEvent__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(72);
+/* harmony import */ var reakit_utils_tabbable__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(71);
+/* harmony import */ var _Clickable_Clickable_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(84);
+/* harmony import */ var reakit_utils_createOnKeyDown__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(82);
+/* harmony import */ var reakit_utils_getDocument__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(47);
+/* harmony import */ var _CompositeState_3a25dcee_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(51);
+/* harmony import */ var _Id_Id_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(93);
+/* harmony import */ var reakit_utils_isTextField__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(95);
+/* harmony import */ var _setTextFieldValue_78ab5d56_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(96);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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_11__[/* useClickable */ "a"], _Id_Id_js__WEBPACK_IMPORTED_MODULE_15__[/* unstable_useId */ "a"]],
+  useState: _CompositeState_3a25dcee_js__WEBPACK_IMPORTED_MODULE_14__[/* u */ "g"],
+  propsAreEqual: function propsAreEqual(prev, next) {
+    if (!next.id || prev.id !== next.id) {
+      return _Clickable_Clickable_js__WEBPACK_IMPORTED_MODULE_11__[/* 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_11__[/* 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(_CompositeState_3a25dcee_js__WEBPACK_IMPORTED_MODULE_14__[/* g */ "e"])(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,
+        htmlOnFocus = _ref.onFocus,
+        htmlOnBlur = _ref.onBlur,
+        htmlOnKeyDown = _ref.onKeyDown,
+        htmlOnClick = _ref.onClick,
+        htmlProps = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* _ */ "a"])(_ref, ["ref", "tabIndex", "onFocus", "onBlur", "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 onFocusRef = Object(reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_6__[/* useLiveRef */ "a"])(htmlOnFocus);
+    var onBlurRef = Object(reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_6__[/* useLiveRef */ "a"])(htmlOnBlur);
+    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 ? 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) {
+        element.focus();
+      }
+    }, [options.unstable_moves]);
+    var onFocus = Object(react__WEBPACK_IMPORTED_MODULE_3__["useCallback"])(function (event) {
+      var _onFocusRef$current, _options$setCurrentId;
+
+      (_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 (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_13__[/* getDocument */ "a"])(target).getElementById(options.baseId);
+
+        if (composite) {
+          hasFocusedComposite.current = true;
+          Object(reakit_utils_tabbable__WEBPACK_IMPORTED_MODULE_10__[/* ensureFocus */ "a"])(composite);
+        }
+      }
+    }, [id, options.items, options.setCurrentId, options.unstable_virtual, options.baseId]);
+    var onBlur = Object(react__WEBPACK_IMPORTED_MODULE_3__["useCallback"])(function (event) {
+      var _onBlurRef$current;
+
+      if (options.unstable_virtual) {
+        if (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();
+          return;
+        }
+      }
+
+      (_onBlurRef$current = onBlurRef.current) === null || _onBlurRef$current === void 0 ? void 0 : _onBlurRef$current.call(onBlurRef, event);
+    }, [options.unstable_virtual]);
+    var onCharacterKeyDown = 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 (!Object(reakit_utils_isSelfTarget__WEBPACK_IMPORTED_MODULE_7__[/* isSelfTarget */ "a"])(event)) return;
+
+      if (event.key.length === 1 && event.key !== " ") {
+        var widget = getWidget(event.currentTarget);
+
+        if (widget && Object(reakit_utils_isTextField__WEBPACK_IMPORTED_MODULE_16__[/* isTextField */ "a"])(widget)) {
+          widget.focus();
+          var key = event.key; // Using RAF here because otherwise the key will be added twice
+          // to the input when using roving tabindex
+
+          window.requestAnimationFrame(function () {
+            Object(_setTextFieldValue_78ab5d56_js__WEBPACK_IMPORTED_MODULE_17__[/* s */ "a"])(widget, key);
+          });
+        }
+      }
+    }, []);
+    var onKeyDown = Object(react__WEBPACK_IMPORTED_MODULE_3__["useMemo"])(function () {
+      return Object(reakit_utils_createOnKeyDown__WEBPACK_IMPORTED_MODULE_12__[/* createOnKeyDown */ "a"])({
+        onKeyDown: onCharacterKeyDown,
+        stopPropagation: true,
+        // We don't want to listen to focusable elements inside the composite
+        // item, such as a CompositeItemWidget.
+        shouldKeyDown: reakit_utils_isSelfTarget__WEBPACK_IMPORTED_MODULE_7__[/* isSelfTarget */ "a"],
+        keyMap: function keyMap() {
+          // `options.orientation` can also be undefined, which means that
+          // both `isVertical` and `isHorizontal` will be `true`.
+          var isVertical = options.orientation !== "horizontal";
+          var isHorizontal = options.orientation !== "vertical";
+          var isGrid = !!(item === null || item === void 0 ? void 0 : item.groupId);
+
+          var Delete = function Delete(event) {
+            var widget = getWidget(event.currentTarget);
+
+            if (widget && Object(reakit_utils_isTextField__WEBPACK_IMPORTED_MODULE_16__[/* isTextField */ "a"])(widget)) {
+              Object(_setTextFieldValue_78ab5d56_js__WEBPACK_IMPORTED_MODULE_17__[/* s */ "a"])(widget, "");
+            }
+          };
+
+          var up = options.up && function () {
+            return options.up();
+          };
+
+          var next = options.next && function () {
+            return options.next();
+          };
+
+          var down = options.down && function () {
+            return options.down();
+          };
+
+          var previous = options.previous && function () {
+            return options.previous();
+          };
+
+          return {
+            Delete: Delete,
+            Backspace: Delete,
+            ArrowUp: (isGrid || isVertical) && up,
+            ArrowRight: (isGrid || isHorizontal) && next,
+            ArrowDown: (isGrid || isVertical) && down,
+            ArrowLeft: (isGrid || isHorizontal) && previous,
+            Home: function Home(event) {
+              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(event) {
+              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);
+              }
+            }
+          };
+        }
+      });
+    }, [onCharacterKeyDown, 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,
+      onFocus: onFocus,
+      onBlur: onBlur,
+      onKeyDown: onKeyDown,
+      onClick: onClick
+    }, htmlProps);
+  }
+});
+var CompositeItem = Object(reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_1__[/* createComponent */ "a"])({
+  as: "button",
+  memo: true,
+  useHook: useCompositeItem
+});
+
+
+
+
+/***/ }),
+/* 121 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+
+// EXPORTS
+__webpack_require__.d(__webpack_exports__, "b", function() { return /* binding */ slot_fill_Slot; });
+__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ slot_fill_Fill; });
+__webpack_require__.d(__webpack_exports__, "c", function() { return /* binding */ createSlotFill; });
+
+// UNUSED EXPORTS: useSlot, Provider
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js
+var esm_extends = __webpack_require__(8);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js
+var objectWithoutProperties = __webpack_require__(15);
+
+// EXTERNAL MODULE: external {"this":["wp","element"]}
+var external_this_wp_element_ = __webpack_require__(0);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js
+var classCallCheck = __webpack_require__(20);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/createClass.js
+var createClass = __webpack_require__(19);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js
+var assertThisInitialized = __webpack_require__(12);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js
+var getPrototypeOf = __webpack_require__(16);
+
+// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/superPropBase.js
+
+function _superPropBase(object, property) {
+  while (!Object.prototype.hasOwnProperty.call(object, property)) {
+    object = Object(getPrototypeOf["a" /* default */])(object);
+    if (object === null) break;
+  }
+
+  return object;
+}
+// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/get.js
+
+function get_get(target, property, receiver) {
+  if (typeof Reflect !== "undefined" && Reflect.get) {
+    get_get = Reflect.get;
+  } else {
+    get_get = function _get(target, property, receiver) {
+      var base = _superPropBase(target, property);
+      if (!base) return;
+      var desc = Object.getOwnPropertyDescriptor(base, property);
+
+      if (desc.get) {
+        return desc.get.call(receiver);
+      }
+
+      return desc.value;
+    };
+  }
+
+  return get_get(target, property, receiver || target);
+}
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js
+var possibleConstructorReturn = __webpack_require__(23);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js + 1 modules
+var inherits = __webpack_require__(22);
+
+// EXTERNAL MODULE: external {"this":"lodash"}
+var external_this_lodash_ = __webpack_require__(2);
+
+// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/context.js + 1 modules
+var context = __webpack_require__(124);
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/slot.js
+
+
+
+
+
+
+
+
+
+
+function _createSuper(Derived) { return function () { var Super = Object(getPrototypeOf["a" /* default */])(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf["a" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn["a" /* default */])(this, result); }; }
+
+function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+var slot_SlotComponent = /*#__PURE__*/function (_Component) {
+  Object(inherits["a" /* default */])(SlotComponent, _Component);
+
+  var _super = _createSuper(SlotComponent);
+
+  function SlotComponent() {
+    var _this;
+
+    Object(classCallCheck["a" /* default */])(this, SlotComponent);
+
+    _this = _super.apply(this, arguments);
+    _this.isUnmounted = false;
+    _this.bindNode = _this.bindNode.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    return _this;
+  }
+
+  Object(createClass["a" /* default */])(SlotComponent, [{
+    key: "componentDidMount",
+    value: function componentDidMount() {
+      var registerSlot = this.props.registerSlot;
+      registerSlot(this.props.name, this);
+    }
+  }, {
+    key: "componentWillUnmount",
+    value: function componentWillUnmount() {
+      var unregisterSlot = this.props.unregisterSlot;
+      this.isUnmounted = true;
+      unregisterSlot(this.props.name, this);
+    }
+  }, {
+    key: "componentDidUpdate",
+    value: function componentDidUpdate(prevProps) {
+      var _this$props = this.props,
+          name = _this$props.name,
+          unregisterSlot = _this$props.unregisterSlot,
+          registerSlot = _this$props.registerSlot;
+
+      if (prevProps.name !== name) {
+        unregisterSlot(prevProps.name);
+        registerSlot(name, this);
+      }
+    }
+  }, {
+    key: "bindNode",
+    value: function bindNode(node) {
+      this.node = node;
+    }
+  }, {
+    key: "forceUpdate",
+    value: function forceUpdate() {
+      if (this.isUnmounted) {
+        return;
+      }
+
+      get_get(Object(getPrototypeOf["a" /* default */])(SlotComponent.prototype), "forceUpdate", this).call(this);
+    }
+  }, {
+    key: "render",
+    value: function render() {
+      var _this$props2 = this.props,
+          children = _this$props2.children,
+          name = _this$props2.name,
+          _this$props2$fillProp = _this$props2.fillProps,
+          fillProps = _this$props2$fillProp === void 0 ? {} : _this$props2$fillProp,
+          getFills = _this$props2.getFills;
+      var fills = Object(external_this_lodash_["map"])(getFills(name, this), function (fill) {
+        var fillKey = fill.occurrence;
+        var fillChildren = Object(external_this_lodash_["isFunction"])(fill.children) ? fill.children(fillProps) : fill.children;
+        return external_this_wp_element_["Children"].map(fillChildren, function (child, childIndex) {
+          if (!child || Object(external_this_lodash_["isString"])(child)) {
+            return child;
+          }
+
+          var childKey = "".concat(fillKey, "---").concat(child.key || childIndex);
+          return Object(external_this_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_this_lodash_["negate"])(external_this_wp_element_["isEmptyElement"]));
+      return Object(external_this_wp_element_["createElement"])(external_this_wp_element_["Fragment"], null, Object(external_this_lodash_["isFunction"])(children) ? children(fills) : fills);
+    }
+  }]);
+
+  return SlotComponent;
+}(external_this_wp_element_["Component"]);
+
+var slot_Slot = function Slot(props) {
+  return Object(external_this_wp_element_["createElement"])(context["a" /* Consumer */], null, function (_ref) {
+    var registerSlot = _ref.registerSlot,
+        unregisterSlot = _ref.unregisterSlot,
+        getFills = _ref.getFills;
+    return Object(external_this_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_Slot);
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/fill.js
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+var occurrences = 0;
+
+function fill_FillComponent(_ref) {
+  var name = _ref.name,
+      children = _ref.children,
+      registerFill = _ref.registerFill,
+      unregisterFill = _ref.unregisterFill;
+  var slot = Object(context["c" /* useSlot */])(name);
+  var ref = Object(external_this_wp_element_["useRef"])({
+    name: name,
+    children: children
+  });
+
+  if (!ref.current.occurrence) {
+    ref.current.occurrence = ++occurrences;
+  }
+
+  Object(external_this_wp_element_["useLayoutEffect"])(function () {
+    registerFill(name, ref.current);
+    return function () {
+      return unregisterFill(name, ref.current);
+    };
+  }, []);
+  Object(external_this_wp_element_["useLayoutEffect"])(function () {
+    ref.current.children = children;
+
+    if (slot) {
+      slot.forceUpdate();
+    }
+  }, [children]);
+  Object(external_this_wp_element_["useLayoutEffect"])(function () {
+    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_this_lodash_["isFunction"])(children)) {
+    children = children(slot.props.fillProps);
+  }
+
+  return Object(external_this_wp_element_["createPortal"])(children, slot.node);
+}
+
+var fill_Fill = function Fill(props) {
+  return Object(external_this_wp_element_["createElement"])(context["a" /* Consumer */], null, function (_ref2) {
+    var registerFill = _ref2.registerFill,
+        unregisterFill = _ref2.unregisterFill;
+    return Object(external_this_wp_element_["createElement"])(fill_FillComponent, Object(esm_extends["a" /* default */])({}, props, {
+      registerFill: registerFill,
+      unregisterFill: unregisterFill
+    }));
+  });
+};
+
+/* harmony default export */ var slot_fill_fill = (fill_Fill);
+
+// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/bubbles-virtually/slot-fill-context.js
+var slot_fill_context = __webpack_require__(133);
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/bubbles-virtually/slot.js
+
+
+
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+function bubbles_virtually_slot_Slot(_ref) {
+  var name = _ref.name,
+      _ref$fillProps = _ref.fillProps,
+      fillProps = _ref$fillProps === void 0 ? {} : _ref$fillProps,
+      _ref$as = _ref.as,
+      Component = _ref$as === void 0 ? 'div' : _ref$as,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["name", "fillProps", "as"]);
+
+  var registry = Object(external_this_wp_element_["useContext"])(slot_fill_context["a" /* default */]);
+  var ref = Object(external_this_wp_element_["useRef"])();
+  Object(external_this_wp_element_["useLayoutEffect"])(function () {
+    registry.registerSlot(name, ref, fillProps);
+    return function () {
+      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_this_wp_element_["useLayoutEffect"])(function () {
+    registry.updateSlot(name, fillProps);
+  });
+  return Object(external_this_wp_element_["createElement"])(Component, Object(esm_extends["a" /* default */])({
+    ref: ref
+  }, props));
+}
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 1 modules
+var slicedToArray = __webpack_require__(14);
+
+// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/bubbles-virtually/use-slot.js
+var use_slot = __webpack_require__(159);
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/bubbles-virtually/fill.js
+
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+function useForceUpdate() {
+  var _useState = Object(external_this_wp_element_["useState"])({}),
+      _useState2 = Object(slicedToArray["a" /* default */])(_useState, 2),
+      setState = _useState2[1];
+
+  return function () {
+    return setState({});
+  };
+}
+
+function bubbles_virtually_fill_Fill(_ref) {
+  var name = _ref.name,
+      children = _ref.children;
+  var slot = Object(use_slot["a" /* default */])(name);
+  var ref = Object(external_this_wp_element_["useRef"])({
+    rerender: useForceUpdate()
+  });
+  Object(external_this_wp_element_["useEffect"])(function () {
+    // 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 function () {
+      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_this_wp_element_["createPortal"])(children, slot.ref.current);
+}
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/index.js
+
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+function slot_fill_Slot(_ref) {
+  var bubblesVirtually = _ref.bubblesVirtually,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["bubblesVirtually"]);
+
+  if (bubblesVirtually) {
+    return Object(external_this_wp_element_["createElement"])(bubbles_virtually_slot_Slot, props);
+  }
+
+  return Object(external_this_wp_element_["createElement"])(slot_fill_slot, props);
+}
+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_this_wp_element_["createElement"])(external_this_wp_element_["Fragment"], null, Object(external_this_wp_element_["createElement"])(slot_fill_fill, props), Object(external_this_wp_element_["createElement"])(bubbles_virtually_fill_Fill, props));
+}
+function createSlotFill(name) {
+  var FillComponent = function FillComponent(props) {
+    return Object(external_this_wp_element_["createElement"])(slot_fill_Fill, Object(esm_extends["a" /* default */])({
+      name: name
+    }, props));
+  };
+
+  FillComponent.displayName = name + 'Fill';
+
+  var SlotComponent = function SlotComponent(props) {
+    return Object(external_this_wp_element_["createElement"])(slot_fill_Slot, Object(esm_extends["a" /* default */])({
+      name: name
+    }, props));
+  };
+
+  SlotComponent.displayName = name + 'Slot';
+  return {
+    Fill: FillComponent,
+    Slot: SlotComponent
+  };
+}
+
+
+
+/***/ }),
+/* 122 */
+/***/ (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__(47);
+
+
+/**
+ * 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) {
+  var _eventInit, _eventInit2;
+
+  if (eventInit === void 0) {
+    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 = eventInit) === null || _eventInit === void 0 ? void 0 : _eventInit.bubbles, (_eventInit2 = eventInit) === null || _eventInit2 === void 0 ? void 0 : _eventInit2.cancelable);
+  return event;
+}
+
+
+
+
+/***/ }),
+/* 123 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+module.exports = __webpack_require__(178);
+
+/***/ }),
+/* 124 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+
+// EXPORTS
+__webpack_require__.d(__webpack_exports__, "c", function() { return /* binding */ context_useSlot; });
+__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ Consumer; });
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 1 modules
+var slicedToArray = __webpack_require__(14);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js + 2 modules
+var toConsumableArray = __webpack_require__(18);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js
+var classCallCheck = __webpack_require__(20);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/createClass.js
+var createClass = __webpack_require__(19);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js
+var assertThisInitialized = __webpack_require__(12);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js
+var possibleConstructorReturn = __webpack_require__(23);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js
+var getPrototypeOf = __webpack_require__(16);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js + 1 modules
+var inherits = __webpack_require__(22);
+
+// EXTERNAL MODULE: external {"this":["wp","element"]}
+var external_this_wp_element_ = __webpack_require__(0);
+
+// EXTERNAL MODULE: external {"this":"lodash"}
+var external_this_lodash_ = __webpack_require__(2);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/typeof.js
+var esm_typeof = __webpack_require__(40);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js
+var objectWithoutProperties = __webpack_require__(15);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js
+var defineProperty = __webpack_require__(5);
+
+// EXTERNAL MODULE: external {"this":["wp","isShallowEqual"]}
+var external_this_wp_isShallowEqual_ = __webpack_require__(64);
+var external_this_wp_isShallowEqual_default = /*#__PURE__*/__webpack_require__.n(external_this_wp_isShallowEqual_);
+
+// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/bubbles-virtually/slot-fill-context.js
+var slot_fill_context = __webpack_require__(133);
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/bubbles-virtually/slot-fill-provider.js
+
+
+
+
+
+
+
+function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return Object(esm_typeof["a" /* default */])(key) === "symbol" ? key : String(key); }
+
+function _toPrimitive(input, hint) { if (Object(esm_typeof["a" /* default */])(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (Object(esm_typeof["a" /* default */])(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
+
+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(Object(source), true).forEach(function (key) { Object(defineProperty["a" /* default */])(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; }
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+function useSlotRegistry() {
+  var _useState = Object(external_this_wp_element_["useState"])({}),
+      _useState2 = Object(slicedToArray["a" /* default */])(_useState, 2),
+      slots = _useState2[0],
+      setSlots = _useState2[1];
+
+  var _useState3 = Object(external_this_wp_element_["useState"])({}),
+      _useState4 = Object(slicedToArray["a" /* default */])(_useState3, 2),
+      fills = _useState4[0],
+      setFills = _useState4[1];
+
+  var registerSlot = Object(external_this_wp_element_["useCallback"])(function (name, ref, fillProps) {
+    setSlots(function (prevSlots) {
+      var slot = prevSlots[name] || {};
+      return _objectSpread({}, prevSlots, Object(defineProperty["a" /* default */])({}, name, _objectSpread({}, slot, {
+        ref: ref || slot.ref,
+        fillProps: fillProps || slot.fillProps || {}
+      })));
+    });
+  }, []);
+  var unregisterSlot = Object(external_this_wp_element_["useCallback"])(function (name, ref) {
+    setSlots(function (prevSlots) {
+      var slot = prevSlots[name],
+          nextSlots = Object(objectWithoutProperties["a" /* default */])(prevSlots, [name].map(_toPropertyKey)); // 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;
+    });
+  }, []);
+  var updateSlot = Object(external_this_wp_element_["useCallback"])(function (name, fillProps) {
+    var slot = slots[name];
+
+    if (!slot) {
+      return;
+    }
+
+    if (!external_this_wp_isShallowEqual_default()(slot.fillProps, fillProps)) {
+      slot.fillProps = fillProps;
+      var slotFills = fills[name];
+
+      if (slotFills) {
+        // Force update fills
+        slotFills.map(function (fill) {
+          return fill.current.rerender();
+        });
+      }
+    }
+  }, [slots, fills]);
+  var registerFill = Object(external_this_wp_element_["useCallback"])(function (name, ref) {
+    setFills(function (prevFills) {
+      return _objectSpread({}, prevFills, Object(defineProperty["a" /* default */])({}, name, [].concat(Object(toConsumableArray["a" /* default */])(prevFills[name] || []), [ref])));
+    });
+  }, []);
+  var unregisterFill = Object(external_this_wp_element_["useCallback"])(function (name, ref) {
+    setFills(function (prevFills) {
+      if (prevFills[name]) {
+        return _objectSpread({}, prevFills, Object(defineProperty["a" /* default */])({}, name, prevFills[name].filter(function (fillRef) {
+          return fillRef !== ref;
+        })));
+      }
+
+      return prevFills;
+    });
+  }, []); // Memoizing the return value so it can be directly passed to Provider value
+
+  var registry = Object(external_this_wp_element_["useMemo"])(function () {
+    return {
+      slots: slots,
+      fills: fills,
+      registerSlot: registerSlot,
+      updateSlot: updateSlot,
+      unregisterSlot: unregisterSlot,
+      registerFill: registerFill,
+      unregisterFill: unregisterFill
+    };
+  }, [slots, fills, registerSlot, updateSlot, unregisterSlot, registerFill, unregisterFill]);
+  return registry;
+}
+
+function slot_fill_provider_SlotFillProvider(_ref) {
+  var children = _ref.children;
+  var registry = useSlotRegistry();
+  return Object(external_this_wp_element_["createElement"])(slot_fill_context["a" /* default */].Provider, {
+    value: registry
+  }, children);
+}
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/context.js
+
+
+
+
+
+
+
+
+
+
+function _createSuper(Derived) { return function () { var Super = Object(getPrototypeOf["a" /* default */])(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf["a" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn["a" /* default */])(this, result); }; }
+
+function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+var SlotFillContext = Object(external_this_wp_element_["createContext"])({
+  registerSlot: function registerSlot() {},
+  unregisterSlot: function unregisterSlot() {},
+  registerFill: function registerFill() {},
+  unregisterFill: function unregisterFill() {},
+  getSlot: function getSlot() {},
+  getFills: function getFills() {},
+  subscribe: function subscribe() {}
+});
+var Provider = SlotFillContext.Provider,
+    Consumer = SlotFillContext.Consumer;
+
+var context_SlotFillProvider = /*#__PURE__*/function (_Component) {
+  Object(inherits["a" /* default */])(SlotFillProvider, _Component);
+
+  var _super = _createSuper(SlotFillProvider);
+
+  function SlotFillProvider() {
+    var _this;
+
+    Object(classCallCheck["a" /* default */])(this, SlotFillProvider);
+
+    _this = _super.apply(this, arguments);
+    _this.registerSlot = _this.registerSlot.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.registerFill = _this.registerFill.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.unregisterSlot = _this.unregisterSlot.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.unregisterFill = _this.unregisterFill.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.getSlot = _this.getSlot.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.getFills = _this.getFills.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.hasFills = _this.hasFills.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.subscribe = _this.subscribe.bind(Object(assertThisInitialized["a" /* default */])(_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
+    };
+    return _this;
+  }
+
+  Object(createClass["a" /* default */])(SlotFillProvider, [{
+    key: "registerSlot",
+    value: function registerSlot(name, slot) {
+      var 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();
+      }
+    }
+  }, {
+    key: "registerFill",
+    value: function registerFill(name, instance) {
+      this.fills[name] = [].concat(Object(toConsumableArray["a" /* default */])(this.fills[name] || []), [instance]);
+      this.forceUpdateSlot(name);
+    }
+  }, {
+    key: "unregisterSlot",
+    value: function 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();
+    }
+  }, {
+    key: "unregisterFill",
+    value: function unregisterFill(name, instance) {
+      this.fills[name] = Object(external_this_lodash_["without"])(this.fills[name], instance);
+      this.resetFillOccurrence(name);
+      this.forceUpdateSlot(name);
+    }
+  }, {
+    key: "getSlot",
+    value: function getSlot(name) {
+      return this.slots[name];
+    }
+  }, {
+    key: "getFills",
+    value: function 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 Object(external_this_lodash_["sortBy"])(this.fills[name], 'occurrence');
+    }
+  }, {
+    key: "hasFills",
+    value: function hasFills(name) {
+      return this.fills[name] && !!this.fills[name].length;
+    }
+  }, {
+    key: "resetFillOccurrence",
+    value: function resetFillOccurrence(name) {
+      Object(external_this_lodash_["forEach"])(this.fills[name], function (instance) {
+        instance.occurrence = undefined;
+      });
+    }
+  }, {
+    key: "forceUpdateSlot",
+    value: function forceUpdateSlot(name) {
+      var slot = this.getSlot(name);
+
+      if (slot) {
+        slot.forceUpdate();
+      }
+    }
+  }, {
+    key: "triggerListeners",
+    value: function triggerListeners() {
+      this.listeners.forEach(function (listener) {
+        return listener();
+      });
+    }
+  }, {
+    key: "subscribe",
+    value: function subscribe(listener) {
+      var _this2 = this;
+
+      this.listeners.push(listener);
+      return function () {
+        _this2.listeners = Object(external_this_lodash_["without"])(_this2.listeners, listener);
+      };
+    }
+  }, {
+    key: "render",
+    value: function render() {
+      return Object(external_this_wp_element_["createElement"])(Provider, {
+        value: this.contextValue
+      }, Object(external_this_wp_element_["createElement"])(slot_fill_provider_SlotFillProvider, null, this.props.children));
+    }
+  }]);
+
+  return SlotFillProvider;
+}(external_this_wp_element_["Component"]);
+/**
+ * React hook returning the active slot given a name.
+ *
+ * @param {string} name Slot name.
+ * @return {Object} Slot object.
+ */
+
+
+var context_useSlot = function useSlot(name) {
+  var _useContext = Object(external_this_wp_element_["useContext"])(SlotFillContext),
+      getSlot = _useContext.getSlot,
+      subscribe = _useContext.subscribe;
+
+  var _useState = Object(external_this_wp_element_["useState"])(getSlot(name)),
+      _useState2 = Object(slicedToArray["a" /* default */])(_useState, 2),
+      slot = _useState2[0],
+      setSlot = _useState2[1];
+
+  Object(external_this_wp_element_["useEffect"])(function () {
+    setSlot(getSlot(name));
+    var unsubscribe = subscribe(function () {
+      setSlot(getSlot(name));
+    });
+    return unsubscribe;
+  }, [name]);
+  return slot;
+};
+/* harmony default export */ var context = __webpack_exports__["b"] = (context_SlotFillProvider);
+
+
+
+/***/ }),
+/* 125 */,
+/* 126 */,
+/* 127 */
 /***/ (function(module, exports) {
 
 var g;
@@ -2428,484 +11842,492 @@
 
 
 /***/ }),
-/* 60 */,
-/* 61 */,
-/* 62 */,
-/* 63 */,
-/* 64 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var moment = __webpack_require__(29);
-var momentValidationWrapper = __webpack_require__(288);
-var core = __webpack_require__(289);
-
-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'
-  ),
-
-};
-
-
-/***/ }),
-/* 65 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var rng = __webpack_require__(87);
-var bytesToUuid = __webpack_require__(88);
-
-function v4(options, buf, offset) {
-  var i = buf && offset || 0;
-
-  if (typeof(options) == 'string') {
-    buf = options === 'binary' ? new Array(16) : null;
-    options = null;
-  }
-  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) {
-    for (var ii = 0; ii < 16; ++ii) {
-      buf[i + ii] = rnds[ii];
-    }
-  }
-
-  return buf || bytesToUuid(rnds);
-}
-
-module.exports = v4;
-
-
-/***/ }),
-/* 66 */,
-/* 67 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-module.exports = __webpack_require__(115);
-
-/***/ }),
-/* 68 */,
-/* 69 */,
-/* 70 */,
-/* 71 */,
-/* 72 */,
-/* 73 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var keys = __webpack_require__(141);
-var foreach = __webpack_require__(267);
-var hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';
-
-var toStr = Object.prototype.toString;
-
-var isFunction = function (fn) {
-	return typeof fn === 'function' && toStr.call(fn) === '[object Function]';
-};
-
-var arePropertyDescriptorsSupported = function () {
-	var obj = {};
-	try {
-		Object.defineProperty(obj, 'x', { enumerable: false, value: obj });
-        /* eslint-disable no-unused-vars, no-restricted-syntax */
-        for (var _ in obj) { return false; }
-        /* eslint-enable no-unused-vars, no-restricted-syntax */
-		return obj.x === obj;
-	} catch (e) { /* this is IE 8. */
-		return false;
-	}
-};
-var supportsDescriptors = Object.defineProperty && arePropertyDescriptorsSupported();
-
-var defineProperty = function (object, name, value, predicate) {
-	if (name in object && (!isFunction(predicate) || !predicate())) {
-		return;
-	}
-	if (supportsDescriptors) {
-		Object.defineProperty(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 = props.concat(Object.getOwnPropertySymbols(map));
-	}
-	foreach(props, function (name) {
-		defineProperty(object, name, map[name], predicates[name]);
-	});
-};
-
-defineProperties.supportsDescriptors = !!supportsDescriptors;
-
-module.exports = defineProperties;
-
-
-/***/ }),
-/* 74 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var implementation = __webpack_require__(268);
-
-module.exports = Function.prototype.bind || implementation;
-
-
-/***/ }),
-/* 75 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _propTypes = __webpack_require__(31);
-
-var _propTypes2 = _interopRequireDefault(_propTypes);
-
-var _constants = __webpack_require__(39);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-exports['default'] = _propTypes2['default'].oneOf(_constants.WEEKDAYS);
-
-/***/ }),
-/* 76 */,
-/* 77 */,
-/* 78 */
-/***/ (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 shallowEqual = __webpack_require__(287);
-
-/**
- * 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;
-
-
-/***/ }),
-/* 79 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports['default'] = isSameDay;
-
-var _moment = __webpack_require__(29);
-
-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();
-}
-
-/***/ }),
-/* 80 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports['default'] = toMomentObject;
-
-var _moment = __webpack_require__(29);
-
-var _moment2 = _interopRequireDefault(_moment);
-
-var _constants = __webpack_require__(39);
-
-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;
-}
-
-/***/ }),
-/* 81 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _propTypes = __webpack_require__(31);
-
-var _propTypes2 = _interopRequireDefault(_propTypes);
-
-var _constants = __webpack_require__(39);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-exports['default'] = _propTypes2['default'].oneOf([_constants.HORIZONTAL_ORIENTATION, _constants.VERTICAL_ORIENTATION, _constants.VERTICAL_SCROLLABLE]);
-
-/***/ }),
-/* 82 */
-/***/ (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'];
-
-/***/ }),
-/* 83 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _propTypes = __webpack_require__(31);
-
-var _propTypes2 = _interopRequireDefault(_propTypes);
-
-var _constants = __webpack_require__(39);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-exports['default'] = _propTypes2['default'].oneOf([_constants.OPEN_DOWN, _constants.OPEN_UP]);
-
-/***/ }),
-/* 84 */,
-/* 85 */,
-/* 86 */,
-/* 87 */
-/***/ (function(module, exports) {
-
-// Unique ID creation requires a high quality random # generator.  In the
-// browser this is a little complicated due to unknown quality of Math.random()
-// and inconsistent support for the `crypto` API.  We do the best we can via
-// feature-detection
-
-// getRandomValues needs to be invoked in a context where "this" is a Crypto
-// implementation. Also, find the complete implementation of crypto on IE11.
-var getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||
-                      (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));
-
-if (getRandomValues) {
-  // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto
-  var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef
-
-  module.exports = function whatwgRNG() {
-    getRandomValues(rnds8);
-    return rnds8;
-  };
-} else {
-  // Math.random()-based (RNG)
-  //
-  // If all else fails, use Math.random().  It's fast, but is of unspecified
-  // quality.
-  var rnds = new Array(16);
-
-  module.exports = function mathRNG() {
-    for (var i = 0, r; i < 16; i++) {
-      if ((i & 0x03) === 0) r = Math.random() * 0x100000000;
-      rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;
-    }
-
-    return rnds;
-  };
-}
-
-
-/***/ }),
-/* 88 */
-/***/ (function(module, exports) {
-
-/**
- * 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[i] = (i + 0x100).toString(16).substr(1);
-}
-
-function bytesToUuid(buf, offset) {
-  var i = offset || 0;
-  var bth = byteToHex;
-  // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4
-  return ([bth[buf[i++]], bth[buf[i++]], 
-	bth[buf[i++]], bth[buf[i++]], '-',
-	bth[buf[i++]], bth[buf[i++]], '-',
-	bth[buf[i++]], bth[buf[i++]], '-',
-	bth[buf[i++]], bth[buf[i++]], '-',
-	bth[buf[i++]], bth[buf[i++]],
-	bth[buf[i++]], bth[buf[i++]],
-	bth[buf[i++]], bth[buf[i++]]]).join('');
-}
-
-module.exports = bytesToUuid;
-
-
-/***/ }),
-/* 89 */
-/***/ (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__(90);
-
-function 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,
-    instanceOf: getShim,
-    node: shim,
-    objectOf: getShim,
-    oneOf: getShim,
-    oneOfType: getShim,
-    shape: getShim,
-    exact: getShim
-  };
-
-  ReactPropTypes.checkPropTypes = emptyFunction;
-  ReactPropTypes.PropTypes = ReactPropTypes;
-
-  return ReactPropTypes;
-};
-
-
-/***/ }),
-/* 90 */
+/* 128 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+// https://www.ecma-international.org/ecma-262/6.0/#sec-ispropertykey
+
+module.exports = function IsPropertyKey(argument) {
+	return typeof argument === 'string' || typeof argument === 'symbol';
+};
+
+
+/***/ }),
+/* 129 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20);
+/* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(19);
+/* harmony import */ var _babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12);
+/* harmony import */ var _babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(23);
+/* harmony import */ var _babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(16);
+/* harmony import */ var _babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(22);
+/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(0);
+/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_6__);
+/* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(9);
+/* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_wordpress_compose__WEBPACK_IMPORTED_MODULE_7__);
+/* harmony import */ var _wordpress_keycodes__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(21);
+/* harmony import */ var _wordpress_keycodes__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_wordpress_keycodes__WEBPACK_IMPORTED_MODULE_8__);
+/* harmony import */ var _wordpress_dom__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(30);
+/* harmony import */ var _wordpress_dom__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_wordpress_dom__WEBPACK_IMPORTED_MODULE_9__);
+
+
+
+
+
+
+
+
+function _createSuper(Derived) { return function () { var Super = Object(_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"])(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = Object(_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"])(this, result); }; }
+
+function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+var withConstrainedTabbing = Object(_wordpress_compose__WEBPACK_IMPORTED_MODULE_7__["createHigherOrderComponent"])(function (WrappedComponent) {
+  return /*#__PURE__*/function (_Component) {
+    Object(_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(_class, _Component);
+
+    var _super = _createSuper(_class);
+
+    function _class() {
+      var _this;
+
+      Object(_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(this, _class);
+
+      _this = _super.apply(this, arguments);
+      _this.focusContainRef = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_6__["createRef"])();
+      _this.handleTabBehaviour = _this.handleTabBehaviour.bind(Object(_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(_this));
+      return _this;
+    }
+
+    Object(_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(_class, [{
+      key: "handleTabBehaviour",
+      value: function handleTabBehaviour(event) {
+        if (event.keyCode !== _wordpress_keycodes__WEBPACK_IMPORTED_MODULE_8__["TAB"]) {
+          return;
+        }
+
+        var tabbables = _wordpress_dom__WEBPACK_IMPORTED_MODULE_9__["focus"].tabbable.find(this.focusContainRef.current);
+
+        if (!tabbables.length) {
+          return;
+        }
+
+        var firstTabbable = tabbables[0];
+        var lastTabbable = tabbables[tabbables.length - 1];
+
+        if (event.shiftKey && event.target === firstTabbable) {
+          event.preventDefault();
+          lastTabbable.focus();
+        } else if (!event.shiftKey && event.target === lastTabbable) {
+          event.preventDefault();
+          firstTabbable.focus();
+          /*
+           * When pressing Tab and none of the tabbables has focus, the keydown
+           * event happens on the wrapper div: move focus on the first tabbable.
+           */
+        } else if (!tabbables.includes(event.target)) {
+          event.preventDefault();
+          firstTabbable.focus();
+        }
+      }
+    }, {
+      key: "render",
+      value: function render() {
+        // Disable reason: this component is non-interactive, but must capture
+        // events from the wrapped component to determine when the Tab key is used.
+
+        /* eslint-disable jsx-a11y/no-static-element-interactions */
+        return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_6__["createElement"])("div", {
+          onKeyDown: this.handleTabBehaviour,
+          ref: this.focusContainRef,
+          tabIndex: "-1"
+        }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_6__["createElement"])(WrappedComponent, this.props));
+        /* eslint-enable jsx-a11y/no-static-element-interactions */
+      }
+    }]);
+
+    return _class;
+  }(_wordpress_element__WEBPACK_IMPORTED_MODULE_6__["Component"]);
+}, 'withConstrainedTabbing');
+/* harmony default export */ __webpack_exports__["a"] = (withConstrainedTabbing);
+
+
+/***/ }),
+/* 130 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(18);
+/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
+/* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(19);
+/* harmony import */ var _babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(23);
+/* harmony import */ var _babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(16);
+/* harmony import */ var _babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(22);
+/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(0);
+/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_6__);
+/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(2);
+/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_7__);
+/* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(9);
+/* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_wordpress_compose__WEBPACK_IMPORTED_MODULE_8__);
+/* harmony import */ var _context__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(193);
+
+
+
+
+
+
+
+
+function _createSuper(Derived) { return function () { var Super = Object(_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"])(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = Object(_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"])(this, result); }; }
+
+function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+/**
+ * Internal 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 _wordpress_element__WEBPACK_IMPORTED_MODULE_6__["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 {WPComponent} Component with the focus restauration behaviour.
+ */
+
+
+function withFocusReturn(options) {
+  // Normalize as overloaded form `withFocusReturn( options )( Component )`
+  // or as `withFocusReturn( Component )`.
+  if (isComponentLike(options)) {
+    var WrappedComponent = options;
+    return withFocusReturn({})(WrappedComponent);
+  }
+
+  var _options$onFocusRetur = options.onFocusReturn,
+      onFocusReturn = _options$onFocusRetur === void 0 ? lodash__WEBPACK_IMPORTED_MODULE_7__["stubTrue"] : _options$onFocusRetur;
+  return function (WrappedComponent) {
+    var FocusReturn = /*#__PURE__*/function (_Component) {
+      Object(_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(FocusReturn, _Component);
+
+      var _super = _createSuper(FocusReturn);
+
+      function FocusReturn() {
+        var _this;
+
+        Object(_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(this, FocusReturn);
+
+        _this = _super.apply(this, arguments);
+        _this.ownFocusedElements = new Set();
+        _this.activeElementOnMount = document.activeElement;
+
+        _this.setIsFocusedFalse = function () {
+          return _this.isFocused = false;
+        };
+
+        _this.setIsFocusedTrue = function (event) {
+          _this.ownFocusedElements.add(event.target);
+
+          _this.isFocused = true;
+        };
+
+        return _this;
+      }
+
+      Object(_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(FocusReturn, [{
+        key: "componentWillUnmount",
+        value: function componentWillUnmount() {
+          var activeElementOnMount = this.activeElementOnMount,
+              isFocused = this.isFocused,
+              ownFocusedElements = this.ownFocusedElements;
+
+          if (!isFocused) {
+            return;
+          } // Defer to the component's own explicit focus return behavior,
+          // if specified. The function should return `false` to prevent
+          // the default behavior otherwise occurring here. This allows
+          // for support that the `onFocusReturn` decides to allow the
+          // default behavior to occur under some conditions.
+
+
+          if (onFocusReturn() === false) {
+            return;
+          }
+
+          var stack = [].concat(Object(_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(lodash__WEBPACK_IMPORTED_MODULE_7__["without"].apply(void 0, [this.props.focus.focusHistory].concat(Object(_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(ownFocusedElements)))), [activeElementOnMount]);
+          var candidate;
+
+          while (candidate = stack.pop()) {
+            if (document.body.contains(candidate)) {
+              candidate.focus();
+              return;
+            }
+          }
+        }
+      }, {
+        key: "render",
+        value: function render() {
+          return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_6__["createElement"])("div", {
+            onFocus: this.setIsFocusedTrue,
+            onBlur: this.setIsFocusedFalse
+          }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_6__["createElement"])(WrappedComponent, this.props.childProps));
+        }
+      }]);
+
+      return FocusReturn;
+    }(_wordpress_element__WEBPACK_IMPORTED_MODULE_6__["Component"]);
+
+    return function (props) {
+      return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_6__["createElement"])(_context__WEBPACK_IMPORTED_MODULE_9__[/* Consumer */ "a"], null, function (context) {
+        return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_6__["createElement"])(FocusReturn, {
+          childProps: props,
+          focus: context
+        });
+      });
+    };
+  };
+}
+
+/* harmony default export */ __webpack_exports__["a"] = (Object(_wordpress_compose__WEBPACK_IMPORTED_MODULE_8__["createHigherOrderComponent"])(withFocusReturn, 'withFocusReturn'));
+
+
+
+/***/ }),
+/* 131 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8);
+/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15);
+/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0);
+/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__);
+
+
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+function stopPropagation(event) {
+  event.stopPropagation();
+}
+
+/* harmony default export */ __webpack_exports__["a"] = (Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__["forwardRef"])(function (_ref, ref) {
+  var children = _ref.children,
+      props = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(_ref, ["children"]);
+
+  // 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(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__["createElement"])("div", Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({}, props, {
+    ref: ref,
+    onMouseDown: stopPropagation
+  }), children);
+  /* eslint-enable jsx-a11y/no-static-element-interactions */
+}));
+
+
+/***/ }),
+/* 132 */
+/***/ (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__(8);
+/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5);
+/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(15);
+/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0);
+/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_3__);
+/* harmony import */ var reakit_Toolbar__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(469);
+/* harmony import */ var _wordpress_warning__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(104);
+/* harmony import */ var _wordpress_warning__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_warning__WEBPACK_IMPORTED_MODULE_5__);
+/* harmony import */ var _toolbar_context__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(87);
+
+
+
+
+
+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(Object(source), true).forEach(function (key) { Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(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; }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+function ToolbarItem(_ref, ref) {
+  var children = _ref.children,
+      Component = _ref.as,
+      props = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(_ref, ["children", "as"]);
+
+  var accessibleToolbarState = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_3__["useContext"])(_toolbar_context__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"]);
+
+  if (typeof children !== 'function' && !Component) {
+    typeof process !== "undefined" && process.env && "production" !== "production" ? _wordpress_warning__WEBPACK_IMPORTED_MODULE_5___default()('`ToolbarItem` is a generic headless component. You must pass either a `children` prop as a function or an `as` prop as a component.') : void 0;
+    return null;
+  }
+
+  var allProps = _objectSpread({}, props, {
+    ref: ref,
+    'data-experimental-toolbar-item': true
+  });
+
+  if (!accessibleToolbarState) {
+    if (Component) {
+      return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_3__["createElement"])(Component, allProps, children);
+    }
+
+    return children(allProps);
+  }
+
+  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_3__["createElement"])(reakit_Toolbar__WEBPACK_IMPORTED_MODULE_4__[/* 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_3__["forwardRef"])(ToolbarItem));
+
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(117)))
+
+/***/ }),
+/* 133 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(process) {/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
+/* 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__(104);
+/* harmony import */ var _wordpress_warning__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_warning__WEBPACK_IMPORTED_MODULE_1__);
+/**
+ * WordPress dependencies
+ */
+
+
+var SlotFillContext = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createContext"])({
+  slots: {},
+  fills: {},
+  registerSlot: function 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: function updateSlot() {},
+  unregisterSlot: function unregisterSlot() {},
+  registerFill: function registerFill() {},
+  unregisterFill: function unregisterFill() {}
+});
+/* harmony default export */ __webpack_exports__["a"] = (SlotFillContext);
+
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(117)))
+
+/***/ }),
+/* 134 */,
+/* 135 */,
+/* 136 */,
+/* 137 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5);
+/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15);
+/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0);
+/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__);
+
+
+
+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(Object(source), true).forEach(function (key) { Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(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; }
+
+/**
+ * WordPress dependencies
+ */
+ // Disable reason: JSDoc linter doesn't seem to parse the union (`&`) correctly.
+
+/* eslint-disable jsdoc/valid-types */
+
+/** @typedef {{icon: JSX.Element, size?: number} & import('react').ComponentPropsWithoutRef<'SVG'>} IconProps */
+
+/* eslint-enable jsdoc/valid-types */
+
+/**
+ * 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(_ref) {
+  var icon = _ref.icon,
+      _ref$size = _ref.size,
+      size = _ref$size === void 0 ? 24 : _ref$size,
+      props = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(_ref, ["icon", "size"]);
+
+  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__["cloneElement"])(icon, _objectSpread({
+    width: size,
+    height: size
+  }, props));
+}
+
+/* harmony default export */ __webpack_exports__["a"] = (Icon);
+
+
+/***/ }),
+/* 138 */
 /***/ (function(module, exports, __webpack_require__) {
 
 "use strict";
@@ -2918,17930 +12340,7 @@
 
 
 
-var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
-
-module.exports = ReactPropTypesSecret;
-
-
-/***/ }),
-/* 91 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var bind = __webpack_require__(74);
-
-module.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);
-
-
-/***/ }),
-/* 92 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _propTypes = __webpack_require__(31);
-
-var _propTypes2 = _interopRequireDefault(_propTypes);
-
-var _constants = __webpack_require__(39);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-exports['default'] = _propTypes2['default'].oneOf([_constants.ICON_BEFORE_POSITION, _constants.ICON_AFTER_POSITION]);
-
-/***/ }),
-/* 93 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _propTypes = __webpack_require__(31);
-
-var _propTypes2 = _interopRequireDefault(_propTypes);
-
-var _constants = __webpack_require__(39);
-
-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]);
-
-/***/ }),
-/* 94 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports['default'] = isInclusivelyAfterDay;
-
-var _moment = __webpack_require__(29);
-
-var _moment2 = _interopRequireDefault(_moment);
-
-var _isBeforeDay = __webpack_require__(95);
-
-var _isBeforeDay2 = _interopRequireDefault(_isBeforeDay);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-function isInclusivelyAfterDay(a, b) {
-  if (!_moment2['default'].isMoment(a) || !_moment2['default'].isMoment(b)) return false;
-  return !(0, _isBeforeDay2['default'])(a, b);
-}
-
-/***/ }),
-/* 95 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports['default'] = isBeforeDay;
-
-var _moment = __webpack_require__(29);
-
-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;
-}
-
-/***/ }),
-/* 96 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _react = __webpack_require__(27);
-
-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;
-
-/***/ }),
-/* 97 */,
-/* 98 */,
-/* 99 */,
-/* 100 */,
-/* 101 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _propTypes = __webpack_require__(31);
-
-var _propTypes2 = _interopRequireDefault(_propTypes);
-
-var _airbnbPropTypes = __webpack_require__(43);
-
-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)');
-
-/***/ }),
-/* 102 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports['default'] = toISODateString;
-
-var _moment = __webpack_require__(29);
-
-var _moment2 = _interopRequireDefault(_moment);
-
-var _toMomentObject = __webpack_require__(80);
-
-var _toMomentObject2 = _interopRequireDefault(_toMomentObject);
-
-var _constants = __webpack_require__(39);
-
-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);
-}
-
-/***/ }),
-/* 103 */
-/***/ (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);
-}
-
-
-
-
-/***/ }),
-/* 104 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports['default'] = toISOMonthString;
-
-var _moment = __webpack_require__(29);
-
-var _moment2 = _interopRequireDefault(_moment);
-
-var _toMomentObject = __webpack_require__(80);
-
-var _toMomentObject2 = _interopRequireDefault(_toMomentObject);
-
-var _constants = __webpack_require__(39);
-
-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);
-}
-
-/***/ }),
-/* 105 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _propTypes = __webpack_require__(31);
-
-var _propTypes2 = _interopRequireDefault(_propTypes);
-
-var _constants = __webpack_require__(39);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-exports['default'] = _propTypes2['default'].oneOfType([_propTypes2['default'].bool, _propTypes2['default'].oneOf([_constants.START_DATE, _constants.END_DATE])]);
-
-/***/ }),
-/* 106 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports['default'] = isAfterDay;
-
-var _moment = __webpack_require__(29);
-
-var _moment2 = _interopRequireDefault(_moment);
-
-var _isBeforeDay = __webpack_require__(95);
-
-var _isBeforeDay2 = _interopRequireDefault(_isBeforeDay);
-
-var _isSameDay = __webpack_require__(79);
-
-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);
-}
-
-/***/ }),
-/* 107 */,
-/* 108 */
-/***/ (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 _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; }; }();
-
-function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
-
-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 hoistNonReactStatic = __webpack_require__(140);
-var React = __webpack_require__(27);
-var ReactDOM = __webpack_require__(52);
-
-module.exports = function enhanceWithClickOutside(WrappedComponent) {
-  var componentName = WrappedComponent.displayName || WrappedComponent.name;
-
-  var EnhancedComponent = function (_React$Component) {
-    _inherits(EnhancedComponent, _React$Component);
-
-    function EnhancedComponent(props) {
-      _classCallCheck(this, EnhancedComponent);
-
-      var _this = _possibleConstructorReturn(this, (EnhancedComponent.__proto__ || Object.getPrototypeOf(EnhancedComponent)).call(this, props));
-
-      _this.handleClickOutside = _this.handleClickOutside.bind(_this);
-      return _this;
-    }
-
-    _createClass(EnhancedComponent, [{
-      key: 'componentDidMount',
-      value: function componentDidMount() {
-        document.addEventListener('click', this.handleClickOutside, true);
-      }
-    }, {
-      key: 'componentWillUnmount',
-      value: function componentWillUnmount() {
-        document.removeEventListener('click', this.handleClickOutside, true);
-      }
-    }, {
-      key: 'handleClickOutside',
-      value: function handleClickOutside(e) {
-        var domNode = this.__domNode;
-        if ((!domNode || !domNode.contains(e.target)) && this.__wrappedInstance && typeof this.__wrappedInstance.handleClickOutside === 'function') {
-          this.__wrappedInstance.handleClickOutside(e);
-        }
-      }
-    }, {
-      key: 'render',
-      value: function render() {
-        var _this2 = this;
-
-        var _props = this.props,
-            wrappedRef = _props.wrappedRef,
-            rest = _objectWithoutProperties(_props, ['wrappedRef']);
-
-        return React.createElement(WrappedComponent, _extends({}, rest, {
-          ref: function ref(c) {
-            _this2.__wrappedInstance = c;
-            _this2.__domNode = ReactDOM.findDOMNode(c);
-            wrappedRef && wrappedRef(c);
-          }
-        }));
-      }
-    }]);
-
-    return EnhancedComponent;
-  }(React.Component);
-
-  EnhancedComponent.displayName = 'clickOutside(' + componentName + ')';
-
-  return hoistNonReactStatic(EnhancedComponent, WrappedComponent);
-};
-
-/***/ }),
-/* 109 */,
-/* 110 */,
-/* 111 */,
-/* 112 */,
-/* 113 */,
-/* 114 */,
-/* 115 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var util = __webpack_require__(116);
-
-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;
-
-/***/ }),
-/* 116 */
-/***/ (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);
-
-/***/ }),
-/* 117 */,
-/* 118 */,
-/* 119 */,
-/* 120 */,
-/* 121 */,
-/* 122 */,
-/* 123 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var fnToStr = Function.prototype.toString;
-
-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 = 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;
-};
-
-
-/***/ }),
-/* 124 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var bind = __webpack_require__(74);
-var has = bind.call(Function.call, Object.prototype.hasOwnProperty);
-
-var $assign = Object.assign;
-
-module.exports = function assign(target, source) {
-	if ($assign) {
-		return $assign(target, source);
-	}
-
-	for (var key in source) {
-		if (has(source, key)) {
-			target[key] = source[key];
-		}
-	}
-	return target;
-};
-
-
-/***/ }),
-/* 125 */
-/***/ (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__(46);
-
-var _object2 = _interopRequireDefault(_object);
-
-var _react = __webpack_require__(27);
-
-var _react2 = _interopRequireDefault(_react);
-
-var _propTypes = __webpack_require__(31);
-
-var _propTypes2 = _interopRequireDefault(_propTypes);
-
-var _reactAddonsShallowCompare = __webpack_require__(78);
-
-var _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare);
-
-var _reactMomentProptypes = __webpack_require__(64);
-
-var _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes);
-
-var _airbnbPropTypes = __webpack_require__(43);
-
-var _reactWithStyles = __webpack_require__(56);
-
-var _moment = __webpack_require__(29);
-
-var _moment2 = _interopRequireDefault(_moment);
-
-var _defaultPhrases = __webpack_require__(47);
-
-var _getPhrasePropTypes = __webpack_require__(51);
-
-var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);
-
-var _getCalendarDaySettings = __webpack_require__(157);
-
-var _getCalendarDaySettings2 = _interopRequireDefault(_getCalendarDaySettings);
-
-var _ModifiersShape = __webpack_require__(101);
-
-var _ModifiersShape2 = _interopRequireDefault(_ModifiersShape);
-
-var _constants = __webpack_require__(39);
-
-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);
-
-/***/ }),
-/* 126 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// eslint-disable-next-line import/no-unresolved
-module.exports = __webpack_require__(303);
-
-
-/***/ }),
-/* 127 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports['default'] = getInputHeight;
-/* eslint-disable camelcase */
-
-function getPadding(vertical, top, bottom) {
-  var isTopDefined = typeof top === 'number';
-  var isBottomDefined = typeof bottom === 'number';
-  var isVerticalDefined = typeof vertical === 'number';
-
-  if (isTopDefined && isBottomDefined) {
-    return top + bottom;
-  }
-
-  if (isTopDefined && isVerticalDefined) {
-    return top + vertical;
-  }
-
-  if (isTopDefined) {
-    return top;
-  }
-
-  if (isBottomDefined && isVerticalDefined) {
-    return bottom + vertical;
-  }
-
-  if (isBottomDefined) {
-    return bottom;
-  }
-
-  if (isVerticalDefined) {
-    return 2 * vertical;
-  }
-
-  return 0;
-}
-
-function getInputHeight(_ref, small) {
-  var _ref$font$input = _ref.font.input,
-      lineHeight = _ref$font$input.lineHeight,
-      lineHeight_small = _ref$font$input.lineHeight_small,
-      _ref$spacing = _ref.spacing,
-      inputPadding = _ref$spacing.inputPadding,
-      displayTextPaddingVertical = _ref$spacing.displayTextPaddingVertical,
-      displayTextPaddingTop = _ref$spacing.displayTextPaddingTop,
-      displayTextPaddingBottom = _ref$spacing.displayTextPaddingBottom,
-      displayTextPaddingVertical_small = _ref$spacing.displayTextPaddingVertical_small,
-      displayTextPaddingTop_small = _ref$spacing.displayTextPaddingTop_small,
-      displayTextPaddingBottom_small = _ref$spacing.displayTextPaddingBottom_small;
-
-  var calcLineHeight = small ? lineHeight_small : lineHeight;
-
-  var padding = small ? getPadding(displayTextPaddingVertical_small, displayTextPaddingTop_small, displayTextPaddingBottom_small) : getPadding(displayTextPaddingVertical, displayTextPaddingTop, displayTextPaddingBottom);
-
-  return parseInt(calcLineHeight, 10) + 2 * inputPadding + padding;
-}
-
-/***/ }),
-/* 128 */
-/***/ (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;
-
-
-/***/ }),
-/* 129 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports['default'] = toLocalizedDateString;
-
-var _moment = __webpack_require__(29);
-
-var _moment2 = _interopRequireDefault(_moment);
-
-var _toMomentObject = __webpack_require__(80);
-
-var _toMomentObject2 = _interopRequireDefault(_toMomentObject);
-
-var _constants = __webpack_require__(39);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-function toLocalizedDateString(date, currentFormat) {
-  var dateObj = _moment2['default'].isMoment(date) ? date : (0, _toMomentObject2['default'])(date, currentFormat);
-  if (!dateObj) return null;
-
-  return dateObj.format(_constants.DISPLAY_FORMAT);
-}
-
-/***/ }),
-/* 130 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports['default'] = isDayVisible;
-
-var _isBeforeDay = __webpack_require__(95);
-
-var _isBeforeDay2 = _interopRequireDefault(_isBeforeDay);
-
-var _isAfterDay = __webpack_require__(106);
-
-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);
-}
-
-/***/ }),
-/* 131 */
-/***/ (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__(46);
-
-var _object2 = _interopRequireDefault(_object);
-
-var _react = __webpack_require__(27);
-
-var _react2 = _interopRequireDefault(_react);
-
-var _propTypes = __webpack_require__(31);
-
-var _propTypes2 = _interopRequireDefault(_propTypes);
-
-var _reactAddonsShallowCompare = __webpack_require__(78);
-
-var _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare);
-
-var _airbnbPropTypes = __webpack_require__(43);
-
-var _reactWithStyles = __webpack_require__(56);
-
-var _moment = __webpack_require__(29);
-
-var _moment2 = _interopRequireDefault(_moment);
-
-var _throttle = __webpack_require__(182);
-
-var _throttle2 = _interopRequireDefault(_throttle);
-
-var _isTouchDevice = __webpack_require__(82);
-
-var _isTouchDevice2 = _interopRequireDefault(_isTouchDevice);
-
-var _reactOutsideClickHandler = __webpack_require__(126);
-
-var _reactOutsideClickHandler2 = _interopRequireDefault(_reactOutsideClickHandler);
-
-var _defaultPhrases = __webpack_require__(47);
-
-var _getPhrasePropTypes = __webpack_require__(51);
-
-var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);
-
-var _CalendarMonthGrid = __webpack_require__(160);
-
-var _CalendarMonthGrid2 = _interopRequireDefault(_CalendarMonthGrid);
-
-var _DayPickerNavigation = __webpack_require__(326);
-
-var _DayPickerNavigation2 = _interopRequireDefault(_DayPickerNavigation);
-
-var _DayPickerKeyboardShortcuts = __webpack_require__(329);
-
-var _DayPickerKeyboardShortcuts2 = _interopRequireDefault(_DayPickerKeyboardShortcuts);
-
-var _getNumberOfCalendarMonthWeeks = __webpack_require__(331);
-
-var _getNumberOfCalendarMonthWeeks2 = _interopRequireDefault(_getNumberOfCalendarMonthWeeks);
-
-var _getCalendarMonthWidth = __webpack_require__(161);
-
-var _getCalendarMonthWidth2 = _interopRequireDefault(_getCalendarMonthWidth);
-
-var _calculateDimension = __webpack_require__(159);
-
-var _calculateDimension2 = _interopRequireDefault(_calculateDimension);
-
-var _getActiveElement = __webpack_require__(332);
-
-var _getActiveElement2 = _interopRequireDefault(_getActiveElement);
-
-var _isDayVisible = __webpack_require__(130);
-
-var _isDayVisible2 = _interopRequireDefault(_isDayVisible);
-
-var _ModifiersShape = __webpack_require__(101);
-
-var _ModifiersShape2 = _interopRequireDefault(_ModifiersShape);
-
-var _ScrollableOrientationShape = __webpack_require__(81);
-
-var _ScrollableOrientationShape2 = _interopRequireDefault(_ScrollableOrientationShape);
-
-var _DayOfWeekShape = __webpack_require__(75);
-
-var _DayOfWeekShape2 = _interopRequireDefault(_DayOfWeekShape);
-
-var _CalendarInfoPositionShape = __webpack_require__(93);
-
-var _CalendarInfoPositionShape2 = _interopRequireDefault(_CalendarInfoPositionShape);
-
-var _constants = __webpack_require__(39);
-
-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);
-
-/***/ }),
-/* 132 */,
-/* 133 */,
-/* 134 */,
-/* 135 */,
-/* 136 */,
-/* 137 */,
-/* 138 */,
-/* 139 */,
-/* 140 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-/**
- * Copyright 2015, Yahoo! Inc.
- * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
- */
-var REACT_STATICS = {
-    childContextTypes: true,
-    contextTypes: true,
-    defaultProps: true,
-    displayName: true,
-    getDefaultProps: 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 defineProperty = Object.defineProperty;
-var getOwnPropertyNames = Object.getOwnPropertyNames;
-var getOwnPropertySymbols = Object.getOwnPropertySymbols;
-var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
-var getPrototypeOf = Object.getPrototypeOf;
-var objectPrototype = getPrototypeOf && getPrototypeOf(Object);
-
-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));
-        }
-
-        for (var i = 0; i < keys.length; ++i) {
-            var key = keys[i];
-            if (!REACT_STATICS[key] && !KNOWN_STATICS[key] && (!blacklist || !blacklist[key])) {
-                var descriptor = getOwnPropertyDescriptor(sourceComponent, key);
-                try { // Avoid failures from read-only properties
-                    defineProperty(targetComponent, key, descriptor);
-                } catch (e) {}
-            }
-        }
-
-        return targetComponent;
-    }
-
-    return targetComponent;
-}
-
-module.exports = hoistNonReactStatics;
-
-
-/***/ }),
-/* 141 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-// modified from https://github.com/es-shims/es5-shim
-var has = Object.prototype.hasOwnProperty;
-var toStr = Object.prototype.toString;
-var slice = Array.prototype.slice;
-var isArgs = __webpack_require__(266);
-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 = {
-	$console: true,
-	$external: true,
-	$frame: true,
-	$frameElement: true,
-	$frames: true,
-	$innerHeight: true,
-	$innerWidth: 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;
-	}
-};
-
-var 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;
-};
-
-keysShim.shim = function shimObjectKeys() {
-	if (Object.keys) {
-		var keysWorksWithArguments = (function () {
-			// Safari 5.0 bug
-			return (Object.keys(arguments) || '').length === 2;
-		}(1, 2));
-		if (!keysWorksWithArguments) {
-			var originalKeys = Object.keys;
-			Object.keys = function keys(object) {
-				if (isArgs(object)) {
-					return originalKeys(slice.call(object));
-				} else {
-					return originalKeys(object);
-				}
-			};
-		}
-	} else {
-		Object.keys = keysShim;
-	}
-	return Object.keys || keysShim;
-};
-
-module.exports = keysShim;
-
-
-/***/ }),
-/* 142 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var ES = __webpack_require__(269);
-
-var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || (Math.pow(2, 53) - 1);
-
-// eslint-disable-next-line max-params, max-statements
-var FlattenIntoArray = function FlattenIntoArray(target, source, sourceLen, start, depth) {
-	var targetIndex = start;
-	var sourceIndex = 0;
-
-	/*
-	var mapperFunction;
-	if (arguments.length > 5) {
-		mapperFunction = arguments[5];
-	}
-	*/
-
-	while (sourceIndex < sourceLen) {
-		var P = ES.ToString(sourceIndex);
-		var exists = ES.HasProperty(source, P);
-		if (exists) {
-			var element = ES.Get(source, P);
-			/*
-			if (typeof mapperFunction !== 'undefined') {
-				if (arguments.length <= 6) {
-					throw new TypeError('Assertion failed: thisArg is required when mapperFunction is provided');
-				}
-				element = ES.Call(mapperFunction, arguments[6], [element, sourceIndex, source]);
-			}
-			*/
-			var shouldFlatten = false;
-			if (depth > 0) {
-				shouldFlatten = ES.IsArray(element);
-			}
-			if (shouldFlatten) {
-				var elementLen = ES.ToLength(ES.Get(element, 'length'));
-				targetIndex = FlattenIntoArray(target, element, elementLen, targetIndex, depth - 1);
-			} else {
-				if (targetIndex >= MAX_SAFE_INTEGER) {
-					throw new TypeError('index too large');
-				}
-				ES.CreateDataPropertyOrThrow(target, ES.ToString(targetIndex), element);
-				targetIndex += 1;
-			}
-		}
-		sourceIndex += 1;
-	}
-
-	return targetIndex;
-};
-
-module.exports = function flat() {
-	var O = ES.ToObject(this);
-	var sourceLen = ES.ToLength(ES.Get(O, 'length'));
-
-	var depthNum = 1;
-	if (arguments.length > 0 && typeof arguments[0] !== 'undefined') {
-		depthNum = ES.ToInteger(arguments[0]);
-	}
-
-	var A = ES.ArraySpeciesCreate(O, 0);
-	FlattenIntoArray(A, O, sourceLen, 0, depthNum);
-	return A;
-};
-
-
-/***/ }),
-/* 143 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var ES2015 = __webpack_require__(270);
-var assign = __webpack_require__(124);
-
-var ES2016 = assign(assign({}, ES2015), {
-	// https://github.com/tc39/ecma262/pull/60
-	SameValueNonNumber: function SameValueNonNumber(x, y) {
-		if (typeof x === 'number' || typeof x !== typeof y) {
-			throw new TypeError('SameValueNonNumber requires two non-number values of the same type.');
-		}
-		return this.SameValue(x, y);
-	}
-});
-
-module.exports = ES2016;
-
-
-/***/ }),
-/* 144 */
-/***/ (function(module, exports) {
-
-module.exports = function isPrimitive(value) {
-	return value === null || (typeof value !== 'function' && typeof value !== 'object');
-};
-
-
-/***/ }),
-/* 145 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var toStr = Object.prototype.toString;
-var hasSymbols = __webpack_require__(274)();
-
-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;
-	};
-}
-
-
-/***/ }),
-/* 146 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-/* eslint complexity: [2, 17], 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;
-};
-
-
-/***/ }),
-/* 147 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-/* globals
-	Set,
-	Map,
-	WeakSet,
-	WeakMap,
-
-	Promise,
-
-	Symbol,
-	Proxy,
-
-	Atomics,
-	SharedArrayBuffer,
-
-	ArrayBuffer,
-	DataView,
-	Uint8Array,
-	Float32Array,
-	Float64Array,
-	Int8Array,
-	Int16Array,
-	Int32Array,
-	Uint8ClampedArray,
-	Uint16Array,
-	Uint32Array,
-*/
-
-var undefined; // eslint-disable-line no-shadow-restricted-names
-
-var ThrowTypeError = Object.getOwnPropertyDescriptor
-	? (function () { return Object.getOwnPropertyDescriptor(arguments, 'callee').get; }())
-	: function () { throw new TypeError(); };
-
-var hasSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol';
-
-var getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto
-
-var generator; // = function * () {};
-var generatorFunction = generator ? getProto(generator) : undefined;
-var asyncFn; // async function() {};
-var asyncFunction = asyncFn ? asyncFn.constructor : undefined;
-var asyncGen; // async function * () {};
-var asyncGenFunction = asyncGen ? getProto(asyncGen) : undefined;
-var asyncGenIterator = asyncGen ? asyncGen() : undefined;
-
-var TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);
-
-var INTRINSICS = {
-	'$ %Array%': Array,
-	'$ %ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,
-	'$ %ArrayBufferPrototype%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer.prototype,
-	'$ %ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,
-	'$ %ArrayPrototype%': Array.prototype,
-	'$ %ArrayProto_entries%': Array.prototype.entries,
-	'$ %ArrayProto_forEach%': Array.prototype.forEach,
-	'$ %ArrayProto_keys%': Array.prototype.keys,
-	'$ %ArrayProto_values%': Array.prototype.values,
-	'$ %AsyncFromSyncIteratorPrototype%': undefined,
-	'$ %AsyncFunction%': asyncFunction,
-	'$ %AsyncFunctionPrototype%': asyncFunction ? asyncFunction.prototype : undefined,
-	'$ %AsyncGenerator%': asyncGen ? getProto(asyncGenIterator) : undefined,
-	'$ %AsyncGeneratorFunction%': asyncGenFunction,
-	'$ %AsyncGeneratorPrototype%': asyncGenFunction ? asyncGenFunction.prototype : undefined,
-	'$ %AsyncIteratorPrototype%': asyncGenIterator && hasSymbols && Symbol.asyncIterator ? asyncGenIterator[Symbol.asyncIterator]() : undefined,
-	'$ %Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,
-	'$ %Boolean%': Boolean,
-	'$ %BooleanPrototype%': Boolean.prototype,
-	'$ %DataView%': typeof DataView === 'undefined' ? undefined : DataView,
-	'$ %DataViewPrototype%': typeof DataView === 'undefined' ? undefined : DataView.prototype,
-	'$ %Date%': Date,
-	'$ %DatePrototype%': Date.prototype,
-	'$ %decodeURI%': decodeURI,
-	'$ %decodeURIComponent%': decodeURIComponent,
-	'$ %encodeURI%': encodeURI,
-	'$ %encodeURIComponent%': encodeURIComponent,
-	'$ %Error%': Error,
-	'$ %ErrorPrototype%': Error.prototype,
-	'$ %eval%': eval, // eslint-disable-line no-eval
-	'$ %EvalError%': EvalError,
-	'$ %EvalErrorPrototype%': EvalError.prototype,
-	'$ %Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,
-	'$ %Float32ArrayPrototype%': typeof Float32Array === 'undefined' ? undefined : Float32Array.prototype,
-	'$ %Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,
-	'$ %Float64ArrayPrototype%': typeof Float64Array === 'undefined' ? undefined : Float64Array.prototype,
-	'$ %Function%': Function,
-	'$ %FunctionPrototype%': Function.prototype,
-	'$ %Generator%': generator ? getProto(generator()) : undefined,
-	'$ %GeneratorFunction%': generatorFunction,
-	'$ %GeneratorPrototype%': generatorFunction ? generatorFunction.prototype : undefined,
-	'$ %Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,
-	'$ %Int8ArrayPrototype%': typeof Int8Array === 'undefined' ? undefined : Int8Array.prototype,
-	'$ %Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,
-	'$ %Int16ArrayPrototype%': typeof Int16Array === 'undefined' ? undefined : Int8Array.prototype,
-	'$ %Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,
-	'$ %Int32ArrayPrototype%': typeof Int32Array === 'undefined' ? undefined : Int32Array.prototype,
-	'$ %isFinite%': isFinite,
-	'$ %isNaN%': isNaN,
-	'$ %IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,
-	'$ %JSON%': JSON,
-	'$ %JSONParse%': JSON.parse,
-	'$ %Map%': typeof Map === 'undefined' ? undefined : Map,
-	'$ %MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),
-	'$ %MapPrototype%': typeof Map === 'undefined' ? undefined : Map.prototype,
-	'$ %Math%': Math,
-	'$ %Number%': Number,
-	'$ %NumberPrototype%': Number.prototype,
-	'$ %Object%': Object,
-	'$ %ObjectPrototype%': Object.prototype,
-	'$ %ObjProto_toString%': Object.prototype.toString,
-	'$ %ObjProto_valueOf%': Object.prototype.valueOf,
-	'$ %parseFloat%': parseFloat,
-	'$ %parseInt%': parseInt,
-	'$ %Promise%': typeof Promise === 'undefined' ? undefined : Promise,
-	'$ %PromisePrototype%': typeof Promise === 'undefined' ? undefined : Promise.prototype,
-	'$ %PromiseProto_then%': typeof Promise === 'undefined' ? undefined : Promise.prototype.then,
-	'$ %Promise_all%': typeof Promise === 'undefined' ? undefined : Promise.all,
-	'$ %Promise_reject%': typeof Promise === 'undefined' ? undefined : Promise.reject,
-	'$ %Promise_resolve%': typeof Promise === 'undefined' ? undefined : Promise.resolve,
-	'$ %Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,
-	'$ %RangeError%': RangeError,
-	'$ %RangeErrorPrototype%': RangeError.prototype,
-	'$ %ReferenceError%': ReferenceError,
-	'$ %ReferenceErrorPrototype%': ReferenceError.prototype,
-	'$ %Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,
-	'$ %RegExp%': RegExp,
-	'$ %RegExpPrototype%': RegExp.prototype,
-	'$ %Set%': typeof Set === 'undefined' ? undefined : Set,
-	'$ %SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),
-	'$ %SetPrototype%': typeof Set === 'undefined' ? undefined : Set.prototype,
-	'$ %SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,
-	'$ %SharedArrayBufferPrototype%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer.prototype,
-	'$ %String%': String,
-	'$ %StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,
-	'$ %StringPrototype%': String.prototype,
-	'$ %Symbol%': hasSymbols ? Symbol : undefined,
-	'$ %SymbolPrototype%': hasSymbols ? Symbol.prototype : undefined,
-	'$ %SyntaxError%': SyntaxError,
-	'$ %SyntaxErrorPrototype%': SyntaxError.prototype,
-	'$ %ThrowTypeError%': ThrowTypeError,
-	'$ %TypedArray%': TypedArray,
-	'$ %TypedArrayPrototype%': TypedArray ? TypedArray.prototype : undefined,
-	'$ %TypeError%': TypeError,
-	'$ %TypeErrorPrototype%': TypeError.prototype,
-	'$ %Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,
-	'$ %Uint8ArrayPrototype%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array.prototype,
-	'$ %Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,
-	'$ %Uint8ClampedArrayPrototype%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray.prototype,
-	'$ %Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,
-	'$ %Uint16ArrayPrototype%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array.prototype,
-	'$ %Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,
-	'$ %Uint32ArrayPrototype%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array.prototype,
-	'$ %URIError%': URIError,
-	'$ %URIErrorPrototype%': URIError.prototype,
-	'$ %WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,
-	'$ %WeakMapPrototype%': typeof WeakMap === 'undefined' ? undefined : WeakMap.prototype,
-	'$ %WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet,
-	'$ %WeakSetPrototype%': typeof WeakSet === 'undefined' ? undefined : WeakSet.prototype
-};
-
-module.exports = function GetIntrinsic(name, allowMissing) {
-	if (arguments.length > 1 && typeof allowMissing !== 'boolean') {
-		throw new TypeError('"allowMissing" argument must be a boolean');
-	}
-
-	var key = '$ ' + name;
-	if (!(key in INTRINSICS)) {
-		throw new SyntaxError('intrinsic ' + name + ' does not exist!');
-	}
-
-	// istanbul ignore if // hopefully this is impossible to test :-)
-	if (typeof INTRINSICS[key] === 'undefined' && !allowMissing) {
-		throw new TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');
-	}
-	return INTRINSICS[key];
-};
-
-
-/***/ }),
-/* 148 */
-/***/ (function(module, exports) {
-
-module.exports = Number.isNaN || function isNaN(a) {
-	return a !== a;
-};
-
-
-/***/ }),
-/* 149 */
-/***/ (function(module, exports) {
-
-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; };
-
-
-/***/ }),
-/* 150 */
-/***/ (function(module, exports) {
-
-module.exports = function sign(number) {
-	return number >= 0 ? 1 : -1;
-};
-
-
-/***/ }),
-/* 151 */
-/***/ (function(module, exports) {
-
-module.exports = function mod(number, modulo) {
-	var remain = number % modulo;
-	return Math.floor(remain >= 0 ? remain : remain + modulo);
-};
-
-
-/***/ }),
-/* 152 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var implementation = __webpack_require__(142);
-
-module.exports = function getPolyfill() {
-	return Array.prototype.flat || implementation;
-};
-
-
-/***/ }),
-/* 153 */
-/***/ (function(module, exports, __webpack_require__) {
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var styleInterface = void 0;
-var styleTheme = void 0;
-
-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
-};
-
-/***/ }),
-/* 154 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var core = {
-  white: '#fff',
-  gray: '#484848',
-  grayLight: '#82888a',
-  grayLighter: '#cacccd',
-  grayLightest: '#f2f2f2',
-
-  borderMedium: '#c4c4c4',
-  border: '#dbdbdb',
-  borderLight: '#e4e7e7',
-  borderLighter: '#eceeee',
-  borderBright: '#f4f5f5',
-
-  primary: '#00a699',
-  primaryShade_1: '#33dacd',
-  primaryShade_2: '#66e2da',
-  primaryShade_3: '#80e8e0',
-  primaryShade_4: '#b2f1ec',
-  primary_dark: '#008489',
-
-  secondary: '#007a87',
-
-  yellow: '#ffe8bc',
-  yellow_dark: '#ffce71'
-};
-
-exports['default'] = {
-  reactDates: {
-    zIndex: 0,
-    border: {
-      input: {
-        border: 0,
-        borderTop: 0,
-        borderRight: 0,
-        borderBottom: '2px solid transparent',
-        borderLeft: 0,
-        outlineFocused: 0,
-        borderFocused: 0,
-        borderTopFocused: 0,
-        borderLeftFocused: 0,
-        borderBottomFocused: '2px solid ' + String(core.primary_dark),
-        borderRightFocused: 0,
-        borderRadius: 0
-      },
-      pickerInput: {
-        borderWidth: 1,
-        borderStyle: 'solid',
-        borderRadius: 2
-      }
-    },
-
-    color: {
-      core: core,
-
-      disabled: core.grayLightest,
-
-      background: core.white,
-      backgroundDark: '#f2f2f2',
-      backgroundFocused: core.white,
-      border: 'rgb(219, 219, 219)',
-      text: core.gray,
-      textDisabled: core.border,
-      textFocused: '#007a87',
-      placeholderText: '#757575',
-
-      outside: {
-        backgroundColor: core.white,
-        backgroundColor_active: core.white,
-        backgroundColor_hover: core.white,
-        color: core.gray,
-        color_active: core.gray,
-        color_hover: core.gray
-      },
-
-      highlighted: {
-        backgroundColor: core.yellow,
-        backgroundColor_active: core.yellow_dark,
-        backgroundColor_hover: core.yellow_dark,
-        color: core.gray,
-        color_active: core.gray,
-        color_hover: core.gray
-      },
-
-      minimumNights: {
-        backgroundColor: core.white,
-        backgroundColor_active: core.white,
-        backgroundColor_hover: core.white,
-        borderColor: core.borderLighter,
-        color: core.grayLighter,
-        color_active: core.grayLighter,
-        color_hover: core.grayLighter
-      },
-
-      hoveredSpan: {
-        backgroundColor: core.primaryShade_4,
-        backgroundColor_active: core.primaryShade_3,
-        backgroundColor_hover: core.primaryShade_4,
-        borderColor: core.primaryShade_3,
-        borderColor_active: core.primaryShade_3,
-        borderColor_hover: core.primaryShade_3,
-        color: core.secondary,
-        color_active: core.secondary,
-        color_hover: core.secondary
-      },
-
-      selectedSpan: {
-        backgroundColor: core.primaryShade_2,
-        backgroundColor_active: core.primaryShade_1,
-        backgroundColor_hover: core.primaryShade_1,
-        borderColor: core.primaryShade_1,
-        borderColor_active: core.primary,
-        borderColor_hover: core.primary,
-        color: core.white,
-        color_active: core.white,
-        color_hover: core.white
-      },
-
-      selected: {
-        backgroundColor: core.primary,
-        backgroundColor_active: core.primary,
-        backgroundColor_hover: core.primary,
-        borderColor: core.primary,
-        borderColor_active: core.primary,
-        borderColor_hover: core.primary,
-        color: core.white,
-        color_active: core.white,
-        color_hover: core.white
-      },
-
-      blocked_calendar: {
-        backgroundColor: core.grayLighter,
-        backgroundColor_active: core.grayLighter,
-        backgroundColor_hover: core.grayLighter,
-        borderColor: core.grayLighter,
-        borderColor_active: core.grayLighter,
-        borderColor_hover: core.grayLighter,
-        color: core.grayLight,
-        color_active: core.grayLight,
-        color_hover: core.grayLight
-      },
-
-      blocked_out_of_range: {
-        backgroundColor: core.white,
-        backgroundColor_active: core.white,
-        backgroundColor_hover: core.white,
-        borderColor: core.borderLight,
-        borderColor_active: core.borderLight,
-        borderColor_hover: core.borderLight,
-        color: core.grayLighter,
-        color_active: core.grayLighter,
-        color_hover: core.grayLighter
-      }
-    },
-
-    spacing: {
-      dayPickerHorizontalPadding: 9,
-      captionPaddingTop: 22,
-      captionPaddingBottom: 37,
-      inputPadding: 0,
-      displayTextPaddingVertical: undefined,
-      displayTextPaddingTop: 11,
-      displayTextPaddingBottom: 9,
-      displayTextPaddingHorizontal: undefined,
-      displayTextPaddingLeft: 11,
-      displayTextPaddingRight: 11,
-      displayTextPaddingVertical_small: undefined,
-      displayTextPaddingTop_small: 7,
-      displayTextPaddingBottom_small: 5,
-      displayTextPaddingHorizontal_small: undefined,
-      displayTextPaddingLeft_small: 7,
-      displayTextPaddingRight_small: 7
-    },
-
-    sizing: {
-      inputWidth: 130,
-      inputWidth_small: 97,
-      arrowWidth: 24
-    },
-
-    noScrollBarOnVerticalScrollable: false,
-
-    font: {
-      size: 14,
-      captionSize: 18,
-      input: {
-        size: 19,
-        lineHeight: '24px',
-        size_small: 15,
-        lineHeight_small: '18px',
-        letterSpacing_small: '0.2px',
-        styleDisabled: 'italic'
-      }
-    }
-  }
-};
-
-/***/ }),
-/* 155 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-// modified from https://github.com/es-shims/es6-shim
-var keys = __webpack_require__(141);
-var bind = __webpack_require__(74);
-var canBeObject = function (obj) {
-	return typeof obj !== 'undefined' && obj !== null;
-};
-var hasSymbols = __webpack_require__(146)();
-var toObject = Object;
-var push = bind.call(Function.call, Array.prototype.push);
-var propIsEnumerable = bind.call(Function.call, Object.prototype.propertyIsEnumerable);
-var originalGetSymbols = hasSymbols ? Object.getOwnPropertySymbols : null;
-
-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;
-};
-
-
-/***/ }),
-/* 156 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var implementation = __webpack_require__(155);
-
-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;
-};
-
-
-/***/ }),
-/* 157 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports['default'] = getCalendarDaySettings;
-
-var _getPhrase = __webpack_require__(294);
-
-var _getPhrase2 = _interopRequireDefault(_getPhrase);
-
-var _constants = __webpack_require__(39);
-
-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
-  };
-}
-
-/***/ }),
-/* 158 */
-/***/ (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 _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__(46);
-
-var _object2 = _interopRequireDefault(_object);
-
-var _react = __webpack_require__(27);
-
-var _react2 = _interopRequireDefault(_react);
-
-var _propTypes = __webpack_require__(31);
-
-var _propTypes2 = _interopRequireDefault(_propTypes);
-
-var _reactAddonsShallowCompare = __webpack_require__(78);
-
-var _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare);
-
-var _reactMomentProptypes = __webpack_require__(64);
-
-var _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes);
-
-var _airbnbPropTypes = __webpack_require__(43);
-
-var _reactWithStyles = __webpack_require__(56);
-
-var _moment = __webpack_require__(29);
-
-var _moment2 = _interopRequireDefault(_moment);
-
-var _defaultPhrases = __webpack_require__(47);
-
-var _getPhrasePropTypes = __webpack_require__(51);
-
-var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);
-
-var _CalendarWeek = __webpack_require__(295);
-
-var _CalendarWeek2 = _interopRequireDefault(_CalendarWeek);
-
-var _CalendarDay = __webpack_require__(125);
-
-var _CalendarDay2 = _interopRequireDefault(_CalendarDay);
-
-var _calculateDimension = __webpack_require__(159);
-
-var _calculateDimension2 = _interopRequireDefault(_calculateDimension);
-
-var _getCalendarMonthWeeks = __webpack_require__(297);
-
-var _getCalendarMonthWeeks2 = _interopRequireDefault(_getCalendarMonthWeeks);
-
-var _isSameDay = __webpack_require__(79);
-
-var _isSameDay2 = _interopRequireDefault(_isSameDay);
-
-var _toISODateString = __webpack_require__(102);
-
-var _toISODateString2 = _interopRequireDefault(_toISODateString);
-
-var _ModifiersShape = __webpack_require__(101);
-
-var _ModifiersShape2 = _interopRequireDefault(_ModifiersShape);
-
-var _ScrollableOrientationShape = __webpack_require__(81);
-
-var _ScrollableOrientationShape2 = _interopRequireDefault(_ScrollableOrientationShape);
-
-var _DayOfWeekShape = __webpack_require__(75);
-
-var _DayOfWeekShape2 = _interopRequireDefault(_DayOfWeekShape);
-
-var _constants = __webpack_require__(39);
-
-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);
-
-/***/ }),
-/* 159 */
-/***/ (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;
-}
-
-/***/ }),
-/* 160 */
-/***/ (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 _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__(46);
-
-var _object2 = _interopRequireDefault(_object);
-
-var _react = __webpack_require__(27);
-
-var _react2 = _interopRequireDefault(_react);
-
-var _propTypes = __webpack_require__(31);
-
-var _propTypes2 = _interopRequireDefault(_propTypes);
-
-var _reactAddonsShallowCompare = __webpack_require__(78);
-
-var _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare);
-
-var _reactMomentProptypes = __webpack_require__(64);
-
-var _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes);
-
-var _airbnbPropTypes = __webpack_require__(43);
-
-var _reactWithStyles = __webpack_require__(56);
-
-var _moment = __webpack_require__(29);
-
-var _moment2 = _interopRequireDefault(_moment);
-
-var _consolidatedEvents = __webpack_require__(103);
-
-var _defaultPhrases = __webpack_require__(47);
-
-var _getPhrasePropTypes = __webpack_require__(51);
-
-var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);
-
-var _CalendarMonth = __webpack_require__(158);
-
-var _CalendarMonth2 = _interopRequireDefault(_CalendarMonth);
-
-var _isTransitionEndSupported = __webpack_require__(298);
-
-var _isTransitionEndSupported2 = _interopRequireDefault(_isTransitionEndSupported);
-
-var _getTransformStyles = __webpack_require__(299);
-
-var _getTransformStyles2 = _interopRequireDefault(_getTransformStyles);
-
-var _getCalendarMonthWidth = __webpack_require__(161);
-
-var _getCalendarMonthWidth2 = _interopRequireDefault(_getCalendarMonthWidth);
-
-var _toISOMonthString = __webpack_require__(104);
-
-var _toISOMonthString2 = _interopRequireDefault(_toISOMonthString);
-
-var _isPrevMonth = __webpack_require__(300);
-
-var _isPrevMonth2 = _interopRequireDefault(_isPrevMonth);
-
-var _isNextMonth = __webpack_require__(301);
-
-var _isNextMonth2 = _interopRequireDefault(_isNextMonth);
-
-var _ModifiersShape = __webpack_require__(101);
-
-var _ModifiersShape2 = _interopRequireDefault(_ModifiersShape);
-
-var _ScrollableOrientationShape = __webpack_require__(81);
-
-var _ScrollableOrientationShape2 = _interopRequireDefault(_ScrollableOrientationShape);
-
-var _DayOfWeekShape = __webpack_require__(75);
-
-var _DayOfWeekShape2 = _interopRequireDefault(_DayOfWeekShape);
-
-var _constants = __webpack_require__(39);
-
-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, {
-  enableOutsideDays: _propTypes2['default'].bool,
-  firstVisibleMonthIndex: _propTypes2['default'].number,
-  horizontalMonthPadding: _airbnbPropTypes.nonNegativeInteger,
-  initialMonth: _reactMomentProptypes2['default'].momentObj,
-  isAnimating: _propTypes2['default'].bool,
-  numberOfMonths: _propTypes2['default'].number,
-  modifiers: _propTypes2['default'].objectOf(_propTypes2['default'].objectOf(_ModifiersShape2['default'])),
-  orientation: _ScrollableOrientationShape2['default'],
-  onDayClick: _propTypes2['default'].func,
-  onDayMouseEnter: _propTypes2['default'].func,
-  onDayMouseLeave: _propTypes2['default'].func,
-  onMonthTransitionEnd: _propTypes2['default'].func,
-  onMonthChange: _propTypes2['default'].func,
-  onYearChange: _propTypes2['default'].func,
-  renderMonthText: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),
-  renderCalendarDay: _propTypes2['default'].func,
-  renderDayContents: _propTypes2['default'].func,
-  translationValue: _propTypes2['default'].number,
-  renderMonthElement: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),
-  daySize: _airbnbPropTypes.nonNegativeInteger,
-  focusedDate: _reactMomentProptypes2['default'].momentObj, // indicates focusable day
-  isFocused: _propTypes2['default'].bool, // indicates whether or not to move focus to focusable day
-  firstDayOfWeek: _DayOfWeekShape2['default'],
-  setMonthTitleHeight: _propTypes2['default'].func,
-  isRTL: _propTypes2['default'].bool,
-  transitionDuration: _airbnbPropTypes.nonNegativeInteger,
-  verticalBorderSpacing: _airbnbPropTypes.nonNegativeInteger,
-
-  // i18n
-  monthFormat: _propTypes2['default'].string,
-  phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.CalendarDayPhrases)),
-  dayAriaLabelFormat: _propTypes2['default'].string
-}));
-
-var defaultProps = {
-  enableOutsideDays: false,
-  firstVisibleMonthIndex: 0,
-  horizontalMonthPadding: 13,
-  initialMonth: (0, _moment2['default'])(),
-  isAnimating: false,
-  numberOfMonths: 1,
-  modifiers: {},
-  orientation: _constants.HORIZONTAL_ORIENTATION,
-  onDayClick: function () {
-    function onDayClick() {}
-
-    return onDayClick;
-  }(),
-  onDayMouseEnter: function () {
-    function onDayMouseEnter() {}
-
-    return onDayMouseEnter;
-  }(),
-  onDayMouseLeave: function () {
-    function onDayMouseLeave() {}
-
-    return onDayMouseLeave;
-  }(),
-  onMonthChange: function () {
-    function onMonthChange() {}
-
-    return onMonthChange;
-  }(),
-  onYearChange: function () {
-    function onYearChange() {}
-
-    return onYearChange;
-  }(),
-  onMonthTransitionEnd: function () {
-    function onMonthTransitionEnd() {}
-
-    return onMonthTransitionEnd;
-  }(),
-
-  renderMonthText: null,
-  renderCalendarDay: undefined,
-  renderDayContents: null,
-  translationValue: null,
-  renderMonthElement: null,
-  daySize: _constants.DAY_SIZE,
-  focusedDate: null,
-  isFocused: false,
-  firstDayOfWeek: null,
-  setMonthTitleHeight: null,
-  isRTL: false,
-  transitionDuration: 200,
-  verticalBorderSpacing: undefined,
-
-  // i18n
-  monthFormat: 'MMMM YYYY', // english locale
-  phrases: _defaultPhrases.CalendarDayPhrases,
-  dayAriaLabelFormat: undefined
-};
-
-function getMonths(initialMonth, numberOfMonths, withoutTransitionMonths) {
-  var month = initialMonth.clone();
-  if (!withoutTransitionMonths) month = month.subtract(1, 'month');
-
-  var months = [];
-  for (var i = 0; i < (withoutTransitionMonths ? numberOfMonths : numberOfMonths + 2); i += 1) {
-    months.push(month);
-    month = month.clone().add(1, 'month');
-  }
-
-  return months;
-}
-
-var CalendarMonthGrid = function (_React$Component) {
-  _inherits(CalendarMonthGrid, _React$Component);
-
-  function CalendarMonthGrid(props) {
-    _classCallCheck(this, CalendarMonthGrid);
-
-    var _this = _possibleConstructorReturn(this, (CalendarMonthGrid.__proto__ || Object.getPrototypeOf(CalendarMonthGrid)).call(this, props));
-
-    var withoutTransitionMonths = props.orientation === _constants.VERTICAL_SCROLLABLE;
-    _this.state = {
-      months: getMonths(props.initialMonth, props.numberOfMonths, withoutTransitionMonths)
-    };
-
-    _this.isTransitionEndSupported = (0, _isTransitionEndSupported2['default'])();
-    _this.onTransitionEnd = _this.onTransitionEnd.bind(_this);
-    _this.setContainerRef = _this.setContainerRef.bind(_this);
-
-    _this.locale = _moment2['default'].locale();
-    _this.onMonthSelect = _this.onMonthSelect.bind(_this);
-    _this.onYearSelect = _this.onYearSelect.bind(_this);
-    return _this;
-  }
-
-  _createClass(CalendarMonthGrid, [{
-    key: 'componentDidMount',
-    value: function () {
-      function componentDidMount() {
-        this.removeEventListener = (0, _consolidatedEvents.addEventListener)(this.container, 'transitionend', this.onTransitionEnd);
-      }
-
-      return componentDidMount;
-    }()
-  }, {
-    key: 'componentWillReceiveProps',
-    value: function () {
-      function componentWillReceiveProps(nextProps) {
-        var _this2 = this;
-
-        var initialMonth = nextProps.initialMonth,
-            numberOfMonths = nextProps.numberOfMonths,
-            orientation = nextProps.orientation;
-        var months = this.state.months;
-        var _props = this.props,
-            prevInitialMonth = _props.initialMonth,
-            prevNumberOfMonths = _props.numberOfMonths;
-
-        var hasMonthChanged = !prevInitialMonth.isSame(initialMonth, 'month');
-        var hasNumberOfMonthsChanged = prevNumberOfMonths !== numberOfMonths;
-        var newMonths = months;
-
-        if (hasMonthChanged && !hasNumberOfMonthsChanged) {
-          if ((0, _isNextMonth2['default'])(prevInitialMonth, initialMonth)) {
-            newMonths = months.slice(1);
-            newMonths.push(months[months.length - 1].clone().add(1, 'month'));
-          } else if ((0, _isPrevMonth2['default'])(prevInitialMonth, initialMonth)) {
-            newMonths = months.slice(0, months.length - 1);
-            newMonths.unshift(months[0].clone().subtract(1, 'month'));
-          } else {
-            var withoutTransitionMonths = orientation === _constants.VERTICAL_SCROLLABLE;
-            newMonths = getMonths(initialMonth, numberOfMonths, withoutTransitionMonths);
-          }
-        }
-
-        if (hasNumberOfMonthsChanged) {
-          var _withoutTransitionMonths = orientation === _constants.VERTICAL_SCROLLABLE;
-          newMonths = getMonths(initialMonth, numberOfMonths, _withoutTransitionMonths);
-        }
-
-        var momentLocale = _moment2['default'].locale();
-        if (this.locale !== momentLocale) {
-          this.locale = momentLocale;
-          newMonths = newMonths.map(function (m) {
-            return m.locale(_this2.locale);
-          });
-        }
-
-        this.setState({
-          months: newMonths
-        });
-      }
-
-      return componentWillReceiveProps;
-    }()
-  }, {
-    key: 'shouldComponentUpdate',
-    value: function () {
-      function shouldComponentUpdate(nextProps, nextState) {
-        return (0, _reactAddonsShallowCompare2['default'])(this, nextProps, nextState);
-      }
-
-      return shouldComponentUpdate;
-    }()
-  }, {
-    key: 'componentDidUpdate',
-    value: function () {
-      function componentDidUpdate() {
-        var _props2 = this.props,
-            isAnimating = _props2.isAnimating,
-            transitionDuration = _props2.transitionDuration,
-            onMonthTransitionEnd = _props2.onMonthTransitionEnd;
-
-        // For IE9, immediately call onMonthTransitionEnd instead of
-        // waiting for the animation to complete. Similarly, if transitionDuration
-        // is set to 0, also immediately invoke the onMonthTransitionEnd callback
-
-        if ((!this.isTransitionEndSupported || !transitionDuration) && isAnimating) {
-          onMonthTransitionEnd();
-        }
-      }
-
-      return componentDidUpdate;
-    }()
-  }, {
-    key: 'componentWillUnmount',
-    value: function () {
-      function componentWillUnmount() {
-        if (this.removeEventListener) this.removeEventListener();
-      }
-
-      return componentWillUnmount;
-    }()
-  }, {
-    key: 'onTransitionEnd',
-    value: function () {
-      function onTransitionEnd() {
-        var onMonthTransitionEnd = this.props.onMonthTransitionEnd;
-
-        onMonthTransitionEnd();
-      }
-
-      return onTransitionEnd;
-    }()
-  }, {
-    key: 'onMonthSelect',
-    value: function () {
-      function onMonthSelect(currentMonth, newMonthVal) {
-        var newMonth = currentMonth.clone();
-        var _props3 = this.props,
-            onMonthChange = _props3.onMonthChange,
-            orientation = _props3.orientation;
-        var months = this.state.months;
-
-        var withoutTransitionMonths = orientation === _constants.VERTICAL_SCROLLABLE;
-        var initialMonthSubtraction = months.indexOf(currentMonth);
-        if (!withoutTransitionMonths) {
-          initialMonthSubtraction -= 1;
-        }
-        newMonth.set('month', newMonthVal).subtract(initialMonthSubtraction, 'months');
-        onMonthChange(newMonth);
-      }
-
-      return onMonthSelect;
-    }()
-  }, {
-    key: 'onYearSelect',
-    value: function () {
-      function onYearSelect(currentMonth, newYearVal) {
-        var newMonth = currentMonth.clone();
-        var _props4 = this.props,
-            onYearChange = _props4.onYearChange,
-            orientation = _props4.orientation;
-        var months = this.state.months;
-
-        var withoutTransitionMonths = orientation === _constants.VERTICAL_SCROLLABLE;
-        var initialMonthSubtraction = months.indexOf(currentMonth);
-        if (!withoutTransitionMonths) {
-          initialMonthSubtraction -= 1;
-        }
-        newMonth.set('year', newYearVal).subtract(initialMonthSubtraction, 'months');
-        onYearChange(newMonth);
-      }
-
-      return onYearSelect;
-    }()
-  }, {
-    key: 'setContainerRef',
-    value: function () {
-      function setContainerRef(ref) {
-        this.container = ref;
-      }
-
-      return setContainerRef;
-    }()
-  }, {
-    key: 'render',
-    value: function () {
-      function render() {
-        var _this3 = this;
-
-        var _props5 = this.props,
-            enableOutsideDays = _props5.enableOutsideDays,
-            firstVisibleMonthIndex = _props5.firstVisibleMonthIndex,
-            horizontalMonthPadding = _props5.horizontalMonthPadding,
-            isAnimating = _props5.isAnimating,
-            modifiers = _props5.modifiers,
-            numberOfMonths = _props5.numberOfMonths,
-            monthFormat = _props5.monthFormat,
-            orientation = _props5.orientation,
-            translationValue = _props5.translationValue,
-            daySize = _props5.daySize,
-            onDayMouseEnter = _props5.onDayMouseEnter,
-            onDayMouseLeave = _props5.onDayMouseLeave,
-            onDayClick = _props5.onDayClick,
-            renderMonthText = _props5.renderMonthText,
-            renderCalendarDay = _props5.renderCalendarDay,
-            renderDayContents = _props5.renderDayContents,
-            renderMonthElement = _props5.renderMonthElement,
-            onMonthTransitionEnd = _props5.onMonthTransitionEnd,
-            firstDayOfWeek = _props5.firstDayOfWeek,
-            focusedDate = _props5.focusedDate,
-            isFocused = _props5.isFocused,
-            isRTL = _props5.isRTL,
-            styles = _props5.styles,
-            phrases = _props5.phrases,
-            dayAriaLabelFormat = _props5.dayAriaLabelFormat,
-            transitionDuration = _props5.transitionDuration,
-            verticalBorderSpacing = _props5.verticalBorderSpacing,
-            setMonthTitleHeight = _props5.setMonthTitleHeight;
-        var months = this.state.months;
-
-        var isVertical = orientation === _constants.VERTICAL_ORIENTATION;
-        var isVerticalScrollable = orientation === _constants.VERTICAL_SCROLLABLE;
-        var isHorizontal = orientation === _constants.HORIZONTAL_ORIENTATION;
-
-        var calendarMonthWidth = (0, _getCalendarMonthWidth2['default'])(daySize, horizontalMonthPadding);
-
-        var width = isVertical || isVerticalScrollable ? calendarMonthWidth : (numberOfMonths + 2) * calendarMonthWidth;
-
-        var transformType = isVertical || isVerticalScrollable ? 'translateY' : 'translateX';
-        var transformValue = transformType + '(' + String(translationValue) + 'px)';
-
-        return _react2['default'].createElement(
-          'div',
-          _extends({}, (0, _reactWithStyles.css)(styles.CalendarMonthGrid, isHorizontal && styles.CalendarMonthGrid__horizontal, isVertical && styles.CalendarMonthGrid__vertical, isVerticalScrollable && styles.CalendarMonthGrid__vertical_scrollable, isAnimating && styles.CalendarMonthGrid__animating, isAnimating && transitionDuration && {
-            transition: 'transform ' + String(transitionDuration) + 'ms ease-in-out'
-          }, (0, _object2['default'])({}, (0, _getTransformStyles2['default'])(transformValue), {
-            width: width
-          })), {
-            ref: this.setContainerRef,
-            onTransitionEnd: onMonthTransitionEnd
-          }),
-          months.map(function (month, i) {
-            var isVisible = i >= firstVisibleMonthIndex && i < firstVisibleMonthIndex + numberOfMonths;
-            var hideForAnimation = i === 0 && !isVisible;
-            var showForAnimation = i === 0 && isAnimating && isVisible;
-            var monthString = (0, _toISOMonthString2['default'])(month);
-            return _react2['default'].createElement(
-              'div',
-              _extends({
-                key: monthString
-              }, (0, _reactWithStyles.css)(isHorizontal && styles.CalendarMonthGrid_month__horizontal, hideForAnimation && styles.CalendarMonthGrid_month__hideForAnimation, showForAnimation && !isVertical && !isRTL && {
-                position: 'absolute',
-                left: -calendarMonthWidth
-              }, showForAnimation && !isVertical && isRTL && {
-                position: 'absolute',
-                right: 0
-              }, showForAnimation && isVertical && {
-                position: 'absolute',
-                top: -translationValue
-              }, !isVisible && !isAnimating && styles.CalendarMonthGrid_month__hidden)),
-              _react2['default'].createElement(_CalendarMonth2['default'], {
-                month: month,
-                isVisible: isVisible,
-                enableOutsideDays: enableOutsideDays,
-                modifiers: modifiers[monthString],
-                monthFormat: monthFormat,
-                orientation: orientation,
-                onDayMouseEnter: onDayMouseEnter,
-                onDayMouseLeave: onDayMouseLeave,
-                onDayClick: onDayClick,
-                onMonthSelect: _this3.onMonthSelect,
-                onYearSelect: _this3.onYearSelect,
-                renderMonthText: renderMonthText,
-                renderCalendarDay: renderCalendarDay,
-                renderDayContents: renderDayContents,
-                renderMonthElement: renderMonthElement,
-                firstDayOfWeek: firstDayOfWeek,
-                daySize: daySize,
-                focusedDate: isVisible ? focusedDate : null,
-                isFocused: isFocused,
-                phrases: phrases,
-                setMonthTitleHeight: setMonthTitleHeight,
-                dayAriaLabelFormat: dayAriaLabelFormat,
-                verticalBorderSpacing: verticalBorderSpacing,
-                horizontalMonthPadding: horizontalMonthPadding
-              })
-            );
-          })
-        );
-      }
-
-      return render;
-    }()
-  }]);
-
-  return CalendarMonthGrid;
-}(_react2['default'].Component);
-
-CalendarMonthGrid.propTypes = propTypes;
-CalendarMonthGrid.defaultProps = defaultProps;
-
-exports['default'] = (0, _reactWithStyles.withStyles)(function (_ref) {
-  var _ref$reactDates = _ref.reactDates,
-      color = _ref$reactDates.color,
-      noScrollBarOnVerticalScrollable = _ref$reactDates.noScrollBarOnVerticalScrollable,
-      spacing = _ref$reactDates.spacing,
-      zIndex = _ref$reactDates.zIndex;
-  return {
-    CalendarMonthGrid: {
-      background: color.background,
-      textAlign: 'left',
-      zIndex: zIndex
-    },
-
-    CalendarMonthGrid__animating: {
-      zIndex: zIndex + 1
-    },
-
-    CalendarMonthGrid__horizontal: {
-      position: 'absolute',
-      left: spacing.dayPickerHorizontalPadding
-    },
-
-    CalendarMonthGrid__vertical: {
-      margin: '0 auto'
-    },
-
-    CalendarMonthGrid__vertical_scrollable: (0, _object2['default'])({
-      margin: '0 auto',
-      overflowY: 'scroll'
-    }, noScrollBarOnVerticalScrollable && {
-      '-webkitOverflowScrolling': 'touch',
-      '::-webkit-scrollbar': {
-        '-webkit-appearance': 'none',
-        display: 'none'
-      }
-    }),
-
-    CalendarMonthGrid_month__horizontal: {
-      display: 'inline-block',
-      verticalAlign: 'top',
-      minHeight: '100%'
-    },
-
-    CalendarMonthGrid_month__hideForAnimation: {
-      position: 'absolute',
-      zIndex: zIndex - 1,
-      opacity: 0,
-      pointerEvents: 'none'
-    },
-
-    CalendarMonthGrid_month__hidden: {
-      visibility: 'hidden'
-    }
-  };
-})(CalendarMonthGrid);
-
-/***/ }),
-/* 161 */
-/***/ (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;
-}
-
-/***/ }),
-/* 162 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports['default'] = isSameMonth;
-
-var _moment = __webpack_require__(29);
-
-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();
-}
-
-/***/ }),
-/* 163 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var keys = __webpack_require__(308);
-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;
-
-
-/***/ }),
-/* 164 */
-/***/ (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;
-};
-
-
-/***/ }),
-/* 165 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var ES = __webpack_require__(166);
-var has = __webpack_require__(91);
-var bind = __webpack_require__(74);
-var isEnumerable = bind.call(Function.call, Object.prototype.propertyIsEnumerable);
-
-module.exports = function values(O) {
-	var obj = ES.RequireObjectCoercible(O);
-	var vals = [];
-	for (var key in obj) {
-		if (has(obj, key) && isEnumerable(obj, key)) {
-			vals.push(obj[key]);
-		}
-	}
-	return vals;
-};
-
-
-/***/ }),
-/* 166 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-module.exports = __webpack_require__(143);
-
-
-/***/ }),
-/* 167 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var implementation = __webpack_require__(165);
-
-module.exports = function getPolyfill() {
-	return typeof Object.values === 'function' ? Object.values : implementation;
-};
-
-
-/***/ }),
-/* 168 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var keys = __webpack_require__(312);
-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;
-
-
-/***/ }),
-/* 169 */
-/***/ (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;
-};
-
-
-/***/ }),
-/* 170 */
-/***/ (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;
-};
-
-
-/***/ }),
-/* 171 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var implementation = __webpack_require__(170);
-
-module.exports = function getPolyfill() {
-	if (typeof document !== 'undefined') {
-		if (document.contains) {
-			return document.contains;
-		}
-		if (document.body && document.body.contains) {
-			return document.body.contains;
-		}
-	}
-	return implementation;
-};
-
-
-/***/ }),
-/* 172 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _propTypes = __webpack_require__(31);
-
-var _propTypes2 = _interopRequireDefault(_propTypes);
-
-var _reactMomentProptypes = __webpack_require__(64);
-
-var _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes);
-
-var _airbnbPropTypes = __webpack_require__(43);
-
-var _defaultPhrases = __webpack_require__(47);
-
-var _getPhrasePropTypes = __webpack_require__(51);
-
-var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);
-
-var _FocusedInputShape = __webpack_require__(173);
-
-var _FocusedInputShape2 = _interopRequireDefault(_FocusedInputShape);
-
-var _IconPositionShape = __webpack_require__(92);
-
-var _IconPositionShape2 = _interopRequireDefault(_IconPositionShape);
-
-var _OrientationShape = __webpack_require__(174);
-
-var _OrientationShape2 = _interopRequireDefault(_OrientationShape);
-
-var _DisabledShape = __webpack_require__(105);
-
-var _DisabledShape2 = _interopRequireDefault(_DisabledShape);
-
-var _AnchorDirectionShape = __webpack_require__(175);
-
-var _AnchorDirectionShape2 = _interopRequireDefault(_AnchorDirectionShape);
-
-var _OpenDirectionShape = __webpack_require__(83);
-
-var _OpenDirectionShape2 = _interopRequireDefault(_OpenDirectionShape);
-
-var _DayOfWeekShape = __webpack_require__(75);
-
-var _DayOfWeekShape2 = _interopRequireDefault(_DayOfWeekShape);
-
-var _CalendarInfoPositionShape = __webpack_require__(93);
-
-var _CalendarInfoPositionShape2 = _interopRequireDefault(_CalendarInfoPositionShape);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-exports['default'] = {
-  // required props for a functional interactive DateRangePicker
-  startDate: _reactMomentProptypes2['default'].momentObj,
-  endDate: _reactMomentProptypes2['default'].momentObj,
-  onDatesChange: _propTypes2['default'].func.isRequired,
-
-  focusedInput: _FocusedInputShape2['default'],
-  onFocusChange: _propTypes2['default'].func.isRequired,
-
-  onClose: _propTypes2['default'].func,
-
-  // input related props
-  startDateId: _propTypes2['default'].string.isRequired,
-  startDatePlaceholderText: _propTypes2['default'].string,
-  endDateId: _propTypes2['default'].string.isRequired,
-  endDatePlaceholderText: _propTypes2['default'].string,
-  disabled: _DisabledShape2['default'],
-  required: _propTypes2['default'].bool,
-  readOnly: _propTypes2['default'].bool,
-  screenReaderInputMessage: _propTypes2['default'].string,
-  showClearDates: _propTypes2['default'].bool,
-  showDefaultInputIcon: _propTypes2['default'].bool,
-  inputIconPosition: _IconPositionShape2['default'],
-  customInputIcon: _propTypes2['default'].node,
-  customArrowIcon: _propTypes2['default'].node,
-  customCloseIcon: _propTypes2['default'].node,
-  noBorder: _propTypes2['default'].bool,
-  block: _propTypes2['default'].bool,
-  small: _propTypes2['default'].bool,
-  regular: _propTypes2['default'].bool,
-  keepFocusOnInput: _propTypes2['default'].bool,
-
-  // calendar presentation and interaction related props
-  renderMonthText: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),
-  renderMonthElement: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),
-  orientation: _OrientationShape2['default'],
-  anchorDirection: _AnchorDirectionShape2['default'],
-  openDirection: _OpenDirectionShape2['default'],
-  horizontalMargin: _propTypes2['default'].number,
-  withPortal: _propTypes2['default'].bool,
-  withFullScreenPortal: _propTypes2['default'].bool,
-  appendToBody: _propTypes2['default'].bool,
-  disableScroll: _propTypes2['default'].bool,
-  daySize: _airbnbPropTypes.nonNegativeInteger,
-  isRTL: _propTypes2['default'].bool,
-  firstDayOfWeek: _DayOfWeekShape2['default'],
-  initialVisibleMonth: _propTypes2['default'].func,
-  numberOfMonths: _propTypes2['default'].number,
-  keepOpenOnDateSelect: _propTypes2['default'].bool,
-  reopenPickerOnClearDates: _propTypes2['default'].bool,
-  renderCalendarInfo: _propTypes2['default'].func,
-  calendarInfoPosition: _CalendarInfoPositionShape2['default'],
-  hideKeyboardShortcutsPanel: _propTypes2['default'].bool,
-  verticalHeight: _airbnbPropTypes.nonNegativeInteger,
-  transitionDuration: _airbnbPropTypes.nonNegativeInteger,
-  verticalSpacing: _airbnbPropTypes.nonNegativeInteger,
-
-  // navigation related props
-  navPrev: _propTypes2['default'].node,
-  navNext: _propTypes2['default'].node,
-  onPrevMonthClick: _propTypes2['default'].func,
-  onNextMonthClick: _propTypes2['default'].func,
-
-  // day presentation and interaction related props
-  renderCalendarDay: _propTypes2['default'].func,
-  renderDayContents: _propTypes2['default'].func,
-  minimumNights: _propTypes2['default'].number,
-  enableOutsideDays: _propTypes2['default'].bool,
-  isDayBlocked: _propTypes2['default'].func,
-  isOutsideRange: _propTypes2['default'].func,
-  isDayHighlighted: _propTypes2['default'].func,
-
-  // internationalization props
-  displayFormat: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].func]),
-  monthFormat: _propTypes2['default'].string,
-  weekDayFormat: _propTypes2['default'].string,
-  phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.DateRangePickerPhrases)),
-  dayAriaLabelFormat: _propTypes2['default'].string
-};
-
-/***/ }),
-/* 173 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _propTypes = __webpack_require__(31);
-
-var _propTypes2 = _interopRequireDefault(_propTypes);
-
-var _constants = __webpack_require__(39);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-exports['default'] = _propTypes2['default'].oneOf([_constants.START_DATE, _constants.END_DATE]);
-
-/***/ }),
-/* 174 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _propTypes = __webpack_require__(31);
-
-var _propTypes2 = _interopRequireDefault(_propTypes);
-
-var _constants = __webpack_require__(39);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-exports['default'] = _propTypes2['default'].oneOf([_constants.HORIZONTAL_ORIENTATION, _constants.VERTICAL_ORIENTATION]);
-
-/***/ }),
-/* 175 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _propTypes = __webpack_require__(31);
-
-var _propTypes2 = _interopRequireDefault(_propTypes);
-
-var _constants = __webpack_require__(39);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-exports['default'] = _propTypes2['default'].oneOf([_constants.ANCHOR_LEFT, _constants.ANCHOR_RIGHT]);
-
-/***/ }),
-/* 176 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports['default'] = getResponsiveContainerStyles;
-
-var _constants = __webpack_require__(39);
-
-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 getResponsiveContainerStyles(anchorDirection, currentOffset, containerEdge, margin) {
-  var windowWidth = typeof window !== 'undefined' ? window.innerWidth : 0;
-  var calculatedOffset = anchorDirection === _constants.ANCHOR_LEFT ? windowWidth - containerEdge : containerEdge;
-  var calculatedMargin = margin || 0;
-
-  return _defineProperty({}, anchorDirection, Math.min(currentOffset + calculatedOffset - calculatedMargin, 0));
-}
-
-/***/ }),
-/* 177 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports['default'] = getDetachedContainerStyles;
-
-var _constants = __webpack_require__(39);
-
-/**
- * Calculate and return a CSS transform style to position a detached element
- * next to a reference element. The open and anchor direction indicate wether
- * it should be positioned above/below and/or to the left/right of the
- * reference element.
- *
- * Assuming r(0,0), r(1,1), d(0,0), d(1,1) for the bottom-left and top-right
- * corners of the reference and detached elements, respectively:
- *  - openDirection = DOWN, anchorDirection = LEFT => d(0,1) == r(0,1)
- *  - openDirection = UP, anchorDirection = LEFT => d(0,0) == r(0,0)
- *  - openDirection = DOWN, anchorDirection = RIGHT => d(1,1) == r(1,1)
- *  - openDirection = UP, anchorDirection = RIGHT => d(1,0) == r(1,0)
- *
- * By using a CSS transform, we allow to further position it using
- * top/bottom CSS properties for the anchor gutter.
- *
- * @param {string} openDirection The vertical positioning of the popup
- * @param {string} anchorDirection The horizontal position of the popup
- * @param {HTMLElement} referenceEl The reference element
- */
-function getDetachedContainerStyles(openDirection, anchorDirection, referenceEl) {
-  var referenceRect = referenceEl.getBoundingClientRect();
-  var offsetX = referenceRect.left;
-  var offsetY = referenceRect.top;
-
-  if (openDirection === _constants.OPEN_UP) {
-    offsetY = -(window.innerHeight - referenceRect.bottom);
-  }
-
-  if (anchorDirection === _constants.ANCHOR_RIGHT) {
-    offsetX = -(window.innerWidth - referenceRect.right);
-  }
-
-  return {
-    transform: 'translate3d(' + String(Math.round(offsetX)) + 'px, ' + String(Math.round(offsetY)) + 'px, 0)'
-  };
-}
-
-/***/ }),
-/* 178 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.getScrollParent = getScrollParent;
-exports.getScrollAncestorsOverflowY = getScrollAncestorsOverflowY;
-exports['default'] = disableScroll;
-var getScrollingRoot = function getScrollingRoot() {
-  return document.scrollingElement || document.documentElement;
-};
-
-/**
- * Recursively finds the scroll parent of a node. The scroll parrent of a node
- * is the closest node that is scrollable. A node is scrollable if:
- *  - it is allowed to scroll via CSS ('overflow-y' not visible or hidden);
- *  - and its children/content are "bigger" than the node's box height.
- *
- * The root of the document always scrolls by default.
- *
- * @param {HTMLElement} node Any DOM element.
- * @return {HTMLElement} The scroll parent element.
- */
-function getScrollParent(node) {
-  var parent = node.parentElement;
-
-  if (parent == null) return getScrollingRoot();
-
-  var _window$getComputedSt = window.getComputedStyle(parent),
-      overflowY = _window$getComputedSt.overflowY;
-
-  var canScroll = overflowY !== 'visible' && overflowY !== 'hidden';
-
-  if (canScroll && parent.scrollHeight > parent.clientHeight) {
-    return parent;
-  }
-
-  return getScrollParent(parent);
-}
-
-/**
- * Recursively traverses the tree upwards from the given node, capturing all
- * ancestor nodes that scroll along with their current 'overflow-y' CSS
- * property.
- *
- * @param {HTMLElement} node Any DOM element.
- * @param {Map<HTMLElement,string>} [acc] Accumulator map.
- * @return {Map<HTMLElement,string>} Map of ancestors with their 'overflow-y' value.
- */
-function getScrollAncestorsOverflowY(node) {
-  var acc = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Map();
-
-  var scrollingRoot = getScrollingRoot();
-  var scrollParent = getScrollParent(node);
-  acc.set(scrollParent, scrollParent.style.overflowY);
-
-  if (scrollParent === scrollingRoot) return acc;
-  return getScrollAncestorsOverflowY(scrollParent, acc);
-}
-
-/**
- * Disabling the scroll on a node involves finding all the scrollable ancestors
- * and set their 'overflow-y' CSS property to 'hidden'. When all ancestors have
- * 'overflow-y: hidden' (up to the document element) there is no scroll
- * container, thus all the scroll outside of the node is disabled. In order to
- * enable scroll again, we store the previous value of the 'overflow-y' for
- * every ancestor in a closure and reset it back.
- *
- * @param {HTMLElement} node Any DOM element.
- */
-function disableScroll(node) {
-  var scrollAncestorsOverflowY = getScrollAncestorsOverflowY(node);
-  var toggle = function toggle(on) {
-    return scrollAncestorsOverflowY.forEach(function (overflowY, ancestor) {
-      ancestor.style.setProperty('overflow-y', on ? 'hidden' : overflowY);
-    });
-  };
-
-  toggle(true);
-  return function () {
-    return toggle(false);
-  };
-}
-
-/***/ }),
-/* 179 */
-/***/ (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__(27);
-
-var _react2 = _interopRequireDefault(_react);
-
-var _propTypes = __webpack_require__(31);
-
-var _propTypes2 = _interopRequireDefault(_propTypes);
-
-var _moment = __webpack_require__(29);
-
-var _moment2 = _interopRequireDefault(_moment);
-
-var _reactMomentProptypes = __webpack_require__(64);
-
-var _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes);
-
-var _airbnbPropTypes = __webpack_require__(43);
-
-var _OpenDirectionShape = __webpack_require__(83);
-
-var _OpenDirectionShape2 = _interopRequireDefault(_OpenDirectionShape);
-
-var _defaultPhrases = __webpack_require__(47);
-
-var _getPhrasePropTypes = __webpack_require__(51);
-
-var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);
-
-var _DateRangePickerInput = __webpack_require__(180);
-
-var _DateRangePickerInput2 = _interopRequireDefault(_DateRangePickerInput);
-
-var _IconPositionShape = __webpack_require__(92);
-
-var _IconPositionShape2 = _interopRequireDefault(_IconPositionShape);
-
-var _DisabledShape = __webpack_require__(105);
-
-var _DisabledShape2 = _interopRequireDefault(_DisabledShape);
-
-var _toMomentObject = __webpack_require__(80);
-
-var _toMomentObject2 = _interopRequireDefault(_toMomentObject);
-
-var _toLocalizedDateString = __webpack_require__(129);
-
-var _toLocalizedDateString2 = _interopRequireDefault(_toLocalizedDateString);
-
-var _isInclusivelyAfterDay = __webpack_require__(94);
-
-var _isInclusivelyAfterDay2 = _interopRequireDefault(_isInclusivelyAfterDay);
-
-var _isBeforeDay = __webpack_require__(95);
-
-var _isBeforeDay2 = _interopRequireDefault(_isBeforeDay);
-
-var _constants = __webpack_require__(39);
-
-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)({
-  startDate: _reactMomentProptypes2['default'].momentObj,
-  startDateId: _propTypes2['default'].string,
-  startDatePlaceholderText: _propTypes2['default'].string,
-  isStartDateFocused: _propTypes2['default'].bool,
-
-  endDate: _reactMomentProptypes2['default'].momentObj,
-  endDateId: _propTypes2['default'].string,
-  endDatePlaceholderText: _propTypes2['default'].string,
-  isEndDateFocused: _propTypes2['default'].bool,
-
-  screenReaderMessage: _propTypes2['default'].string,
-  showClearDates: _propTypes2['default'].bool,
-  showCaret: _propTypes2['default'].bool,
-  showDefaultInputIcon: _propTypes2['default'].bool,
-  inputIconPosition: _IconPositionShape2['default'],
-  disabled: _DisabledShape2['default'],
-  required: _propTypes2['default'].bool,
-  readOnly: _propTypes2['default'].bool,
-  openDirection: _OpenDirectionShape2['default'],
-  noBorder: _propTypes2['default'].bool,
-  block: _propTypes2['default'].bool,
-  small: _propTypes2['default'].bool,
-  regular: _propTypes2['default'].bool,
-  verticalSpacing: _airbnbPropTypes.nonNegativeInteger,
-
-  keepOpenOnDateSelect: _propTypes2['default'].bool,
-  reopenPickerOnClearDates: _propTypes2['default'].bool,
-  withFullScreenPortal: _propTypes2['default'].bool,
-  minimumNights: _airbnbPropTypes.nonNegativeInteger,
-  isOutsideRange: _propTypes2['default'].func,
-  displayFormat: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].func]),
-
-  onFocusChange: _propTypes2['default'].func,
-  onClose: _propTypes2['default'].func,
-  onDatesChange: _propTypes2['default'].func,
-  onKeyDownArrowDown: _propTypes2['default'].func,
-  onKeyDownQuestionMark: _propTypes2['default'].func,
-
-  customInputIcon: _propTypes2['default'].node,
-  customArrowIcon: _propTypes2['default'].node,
-  customCloseIcon: _propTypes2['default'].node,
-
-  // accessibility
-  isFocused: _propTypes2['default'].bool,
-
-  // i18n
-  phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.DateRangePickerInputPhrases)),
-
-  isRTL: _propTypes2['default'].bool
-});
-
-var defaultProps = {
-  startDate: null,
-  startDateId: _constants.START_DATE,
-  startDatePlaceholderText: 'Start Date',
-  isStartDateFocused: false,
-
-  endDate: null,
-  endDateId: _constants.END_DATE,
-  endDatePlaceholderText: 'End Date',
-  isEndDateFocused: false,
-
-  screenReaderMessage: '',
-  showClearDates: false,
-  showCaret: false,
-  showDefaultInputIcon: false,
-  inputIconPosition: _constants.ICON_BEFORE_POSITION,
-  disabled: false,
-  required: false,
-  readOnly: false,
-  openDirection: _constants.OPEN_DOWN,
-  noBorder: false,
-  block: false,
-  small: false,
-  regular: false,
-  verticalSpacing: undefined,
-
-  keepOpenOnDateSelect: false,
-  reopenPickerOnClearDates: false,
-  withFullScreenPortal: false,
-  minimumNights: 1,
-  isOutsideRange: function () {
-    function isOutsideRange(day) {
-      return !(0, _isInclusivelyAfterDay2['default'])(day, (0, _moment2['default'])());
-    }
-
-    return isOutsideRange;
-  }(),
-  displayFormat: function () {
-    function displayFormat() {
-      return _moment2['default'].localeData().longDateFormat('L');
-    }
-
-    return displayFormat;
-  }(),
-
-  onFocusChange: function () {
-    function onFocusChange() {}
-
-    return onFocusChange;
-  }(),
-  onClose: function () {
-    function onClose() {}
-
-    return onClose;
-  }(),
-  onDatesChange: function () {
-    function onDatesChange() {}
-
-    return onDatesChange;
-  }(),
-  onKeyDownArrowDown: function () {
-    function onKeyDownArrowDown() {}
-
-    return onKeyDownArrowDown;
-  }(),
-  onKeyDownQuestionMark: function () {
-    function onKeyDownQuestionMark() {}
-
-    return onKeyDownQuestionMark;
-  }(),
-
-
-  customInputIcon: null,
-  customArrowIcon: null,
-  customCloseIcon: null,
-
-  // accessibility
-  isFocused: false,
-
-  // i18n
-  phrases: _defaultPhrases.DateRangePickerInputPhrases,
-
-  isRTL: false
-};
-
-var DateRangePickerInputController = function (_React$Component) {
-  _inherits(DateRangePickerInputController, _React$Component);
-
-  function DateRangePickerInputController(props) {
-    _classCallCheck(this, DateRangePickerInputController);
-
-    var _this = _possibleConstructorReturn(this, (DateRangePickerInputController.__proto__ || Object.getPrototypeOf(DateRangePickerInputController)).call(this, props));
-
-    _this.onClearFocus = _this.onClearFocus.bind(_this);
-    _this.onStartDateChange = _this.onStartDateChange.bind(_this);
-    _this.onStartDateFocus = _this.onStartDateFocus.bind(_this);
-    _this.onEndDateChange = _this.onEndDateChange.bind(_this);
-    _this.onEndDateFocus = _this.onEndDateFocus.bind(_this);
-    _this.clearDates = _this.clearDates.bind(_this);
-    return _this;
-  }
-
-  _createClass(DateRangePickerInputController, [{
-    key: 'onClearFocus',
-    value: function () {
-      function onClearFocus() {
-        var _props = this.props,
-            onFocusChange = _props.onFocusChange,
-            onClose = _props.onClose,
-            startDate = _props.startDate,
-            endDate = _props.endDate;
-
-
-        onFocusChange(null);
-        onClose({ startDate: startDate, endDate: endDate });
-      }
-
-      return onClearFocus;
-    }()
-  }, {
-    key: 'onEndDateChange',
-    value: function () {
-      function onEndDateChange(endDateString) {
-        var _props2 = this.props,
-            startDate = _props2.startDate,
-            isOutsideRange = _props2.isOutsideRange,
-            minimumNights = _props2.minimumNights,
-            keepOpenOnDateSelect = _props2.keepOpenOnDateSelect,
-            onDatesChange = _props2.onDatesChange;
-
-
-        var endDate = (0, _toMomentObject2['default'])(endDateString, this.getDisplayFormat());
-
-        var isEndDateValid = endDate && !isOutsideRange(endDate) && !(startDate && (0, _isBeforeDay2['default'])(endDate, startDate.clone().add(minimumNights, 'days')));
-        if (isEndDateValid) {
-          onDatesChange({ startDate: startDate, endDate: endDate });
-          if (!keepOpenOnDateSelect) this.onClearFocus();
-        } else {
-          onDatesChange({
-            startDate: startDate,
-            endDate: null
-          });
-        }
-      }
-
-      return onEndDateChange;
-    }()
-  }, {
-    key: 'onEndDateFocus',
-    value: function () {
-      function onEndDateFocus() {
-        var _props3 = this.props,
-            startDate = _props3.startDate,
-            onFocusChange = _props3.onFocusChange,
-            withFullScreenPortal = _props3.withFullScreenPortal,
-            disabled = _props3.disabled;
-
-
-        if (!startDate && withFullScreenPortal && (!disabled || disabled === _constants.END_DATE)) {
-          // When the datepicker is full screen, we never want to focus the end date first
-          // because there's no indication that that is the case once the datepicker is open and it
-          // might confuse the user
-          onFocusChange(_constants.START_DATE);
-        } else if (!disabled || disabled === _constants.START_DATE) {
-          onFocusChange(_constants.END_DATE);
-        }
-      }
-
-      return onEndDateFocus;
-    }()
-  }, {
-    key: 'onStartDateChange',
-    value: function () {
-      function onStartDateChange(startDateString) {
-        var endDate = this.props.endDate;
-        var _props4 = this.props,
-            isOutsideRange = _props4.isOutsideRange,
-            minimumNights = _props4.minimumNights,
-            onDatesChange = _props4.onDatesChange,
-            onFocusChange = _props4.onFocusChange,
-            disabled = _props4.disabled;
-
-
-        var startDate = (0, _toMomentObject2['default'])(startDateString, this.getDisplayFormat());
-        var isEndDateBeforeStartDate = startDate && (0, _isBeforeDay2['default'])(endDate, startDate.clone().add(minimumNights, 'days'));
-        var isStartDateValid = startDate && !isOutsideRange(startDate) && !(disabled === _constants.END_DATE && isEndDateBeforeStartDate);
-
-        if (isStartDateValid) {
-          if (isEndDateBeforeStartDate) {
-            endDate = null;
-          }
-
-          onDatesChange({ startDate: startDate, endDate: endDate });
-          onFocusChange(_constants.END_DATE);
-        } else {
-          onDatesChange({
-            startDate: null,
-            endDate: endDate
-          });
-        }
-      }
-
-      return onStartDateChange;
-    }()
-  }, {
-    key: 'onStartDateFocus',
-    value: function () {
-      function onStartDateFocus() {
-        var _props5 = this.props,
-            disabled = _props5.disabled,
-            onFocusChange = _props5.onFocusChange;
-
-        if (!disabled || disabled === _constants.END_DATE) {
-          onFocusChange(_constants.START_DATE);
-        }
-      }
-
-      return onStartDateFocus;
-    }()
-  }, {
-    key: 'getDisplayFormat',
-    value: function () {
-      function getDisplayFormat() {
-        var displayFormat = this.props.displayFormat;
-
-        return typeof displayFormat === 'string' ? displayFormat : displayFormat();
-      }
-
-      return getDisplayFormat;
-    }()
-  }, {
-    key: 'getDateString',
-    value: function () {
-      function getDateString(date) {
-        var displayFormat = this.getDisplayFormat();
-        if (date && displayFormat) {
-          return date && date.format(displayFormat);
-        }
-        return (0, _toLocalizedDateString2['default'])(date);
-      }
-
-      return getDateString;
-    }()
-  }, {
-    key: 'clearDates',
-    value: function () {
-      function clearDates() {
-        var _props6 = this.props,
-            onDatesChange = _props6.onDatesChange,
-            reopenPickerOnClearDates = _props6.reopenPickerOnClearDates,
-            onFocusChange = _props6.onFocusChange;
-
-        onDatesChange({ startDate: null, endDate: null });
-        if (reopenPickerOnClearDates) {
-          onFocusChange(_constants.START_DATE);
-        }
-      }
-
-      return clearDates;
-    }()
-  }, {
-    key: 'render',
-    value: function () {
-      function render() {
-        var _props7 = this.props,
-            startDate = _props7.startDate,
-            startDateId = _props7.startDateId,
-            startDatePlaceholderText = _props7.startDatePlaceholderText,
-            isStartDateFocused = _props7.isStartDateFocused,
-            endDate = _props7.endDate,
-            endDateId = _props7.endDateId,
-            endDatePlaceholderText = _props7.endDatePlaceholderText,
-            isEndDateFocused = _props7.isEndDateFocused,
-            screenReaderMessage = _props7.screenReaderMessage,
-            showClearDates = _props7.showClearDates,
-            showCaret = _props7.showCaret,
-            showDefaultInputIcon = _props7.showDefaultInputIcon,
-            inputIconPosition = _props7.inputIconPosition,
-            customInputIcon = _props7.customInputIcon,
-            customArrowIcon = _props7.customArrowIcon,
-            customCloseIcon = _props7.customCloseIcon,
-            disabled = _props7.disabled,
-            required = _props7.required,
-            readOnly = _props7.readOnly,
-            openDirection = _props7.openDirection,
-            isFocused = _props7.isFocused,
-            phrases = _props7.phrases,
-            onKeyDownArrowDown = _props7.onKeyDownArrowDown,
-            onKeyDownQuestionMark = _props7.onKeyDownQuestionMark,
-            isRTL = _props7.isRTL,
-            noBorder = _props7.noBorder,
-            block = _props7.block,
-            small = _props7.small,
-            regular = _props7.regular,
-            verticalSpacing = _props7.verticalSpacing;
-
-
-        var startDateString = this.getDateString(startDate);
-        var endDateString = this.getDateString(endDate);
-
-        return _react2['default'].createElement(_DateRangePickerInput2['default'], {
-          startDate: startDateString,
-          startDateId: startDateId,
-          startDatePlaceholderText: startDatePlaceholderText,
-          isStartDateFocused: isStartDateFocused,
-          endDate: endDateString,
-          endDateId: endDateId,
-          endDatePlaceholderText: endDatePlaceholderText,
-          isEndDateFocused: isEndDateFocused,
-          isFocused: isFocused,
-          disabled: disabled,
-          required: required,
-          readOnly: readOnly,
-          openDirection: openDirection,
-          showCaret: showCaret,
-          showDefaultInputIcon: showDefaultInputIcon,
-          inputIconPosition: inputIconPosition,
-          customInputIcon: customInputIcon,
-          customArrowIcon: customArrowIcon,
-          customCloseIcon: customCloseIcon,
-          phrases: phrases,
-          onStartDateChange: this.onStartDateChange,
-          onStartDateFocus: this.onStartDateFocus,
-          onStartDateShiftTab: this.onClearFocus,
-          onEndDateChange: this.onEndDateChange,
-          onEndDateFocus: this.onEndDateFocus,
-          onEndDateTab: this.onClearFocus,
-          showClearDates: showClearDates,
-          onClearDates: this.clearDates,
-          screenReaderMessage: screenReaderMessage,
-          onKeyDownArrowDown: onKeyDownArrowDown,
-          onKeyDownQuestionMark: onKeyDownQuestionMark,
-          isRTL: isRTL,
-          noBorder: noBorder,
-          block: block,
-          small: small,
-          regular: regular,
-          verticalSpacing: verticalSpacing
-        });
-      }
-
-      return render;
-    }()
-  }]);
-
-  return DateRangePickerInputController;
-}(_react2['default'].Component);
-
-exports['default'] = DateRangePickerInputController;
-
-
-DateRangePickerInputController.propTypes = propTypes;
-DateRangePickerInputController.defaultProps = defaultProps;
-
-/***/ }),
-/* 180 */
-/***/ (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__(46);
-
-var _object2 = _interopRequireDefault(_object);
-
-var _react = __webpack_require__(27);
-
-var _react2 = _interopRequireDefault(_react);
-
-var _propTypes = __webpack_require__(31);
-
-var _propTypes2 = _interopRequireDefault(_propTypes);
-
-var _airbnbPropTypes = __webpack_require__(43);
-
-var _reactWithStyles = __webpack_require__(56);
-
-var _defaultPhrases = __webpack_require__(47);
-
-var _getPhrasePropTypes = __webpack_require__(51);
-
-var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);
-
-var _OpenDirectionShape = __webpack_require__(83);
-
-var _OpenDirectionShape2 = _interopRequireDefault(_OpenDirectionShape);
-
-var _DateInput = __webpack_require__(181);
-
-var _DateInput2 = _interopRequireDefault(_DateInput);
-
-var _IconPositionShape = __webpack_require__(92);
-
-var _IconPositionShape2 = _interopRequireDefault(_IconPositionShape);
-
-var _DisabledShape = __webpack_require__(105);
-
-var _DisabledShape2 = _interopRequireDefault(_DisabledShape);
-
-var _RightArrow = __webpack_require__(185);
-
-var _RightArrow2 = _interopRequireDefault(_RightArrow);
-
-var _LeftArrow = __webpack_require__(186);
-
-var _LeftArrow2 = _interopRequireDefault(_LeftArrow);
-
-var _CloseButton = __webpack_require__(96);
-
-var _CloseButton2 = _interopRequireDefault(_CloseButton);
-
-var _CalendarIcon = __webpack_require__(187);
-
-var _CalendarIcon2 = _interopRequireDefault(_CalendarIcon);
-
-var _constants = __webpack_require__(39);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-var propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, {
-  startDateId: _propTypes2['default'].string,
-  startDatePlaceholderText: _propTypes2['default'].string,
-  screenReaderMessage: _propTypes2['default'].string,
-
-  endDateId: _propTypes2['default'].string,
-  endDatePlaceholderText: _propTypes2['default'].string,
-
-  onStartDateFocus: _propTypes2['default'].func,
-  onEndDateFocus: _propTypes2['default'].func,
-  onStartDateChange: _propTypes2['default'].func,
-  onEndDateChange: _propTypes2['default'].func,
-  onStartDateShiftTab: _propTypes2['default'].func,
-  onEndDateTab: _propTypes2['default'].func,
-  onClearDates: _propTypes2['default'].func,
-  onKeyDownArrowDown: _propTypes2['default'].func,
-  onKeyDownQuestionMark: _propTypes2['default'].func,
-
-  startDate: _propTypes2['default'].string,
-  endDate: _propTypes2['default'].string,
-
-  isStartDateFocused: _propTypes2['default'].bool,
-  isEndDateFocused: _propTypes2['default'].bool,
-  showClearDates: _propTypes2['default'].bool,
-  disabled: _DisabledShape2['default'],
-  required: _propTypes2['default'].bool,
-  readOnly: _propTypes2['default'].bool,
-  openDirection: _OpenDirectionShape2['default'],
-  showCaret: _propTypes2['default'].bool,
-  showDefaultInputIcon: _propTypes2['default'].bool,
-  inputIconPosition: _IconPositionShape2['default'],
-  customInputIcon: _propTypes2['default'].node,
-  customArrowIcon: _propTypes2['default'].node,
-  customCloseIcon: _propTypes2['default'].node,
-  noBorder: _propTypes2['default'].bool,
-  block: _propTypes2['default'].bool,
-  small: _propTypes2['default'].bool,
-  regular: _propTypes2['default'].bool,
-  verticalSpacing: _airbnbPropTypes.nonNegativeInteger,
-
-  // accessibility
-  isFocused: _propTypes2['default'].bool, // describes actual DOM focus
-
-  // i18n
-  phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.DateRangePickerInputPhrases)),
-
-  isRTL: _propTypes2['default'].bool
-}));
-
-var defaultProps = {
-  startDateId: _constants.START_DATE,
-  endDateId: _constants.END_DATE,
-  startDatePlaceholderText: 'Start Date',
-  endDatePlaceholderText: 'End Date',
-  screenReaderMessage: '',
-  onStartDateFocus: function () {
-    function onStartDateFocus() {}
-
-    return onStartDateFocus;
-  }(),
-  onEndDateFocus: function () {
-    function onEndDateFocus() {}
-
-    return onEndDateFocus;
-  }(),
-  onStartDateChange: function () {
-    function onStartDateChange() {}
-
-    return onStartDateChange;
-  }(),
-  onEndDateChange: function () {
-    function onEndDateChange() {}
-
-    return onEndDateChange;
-  }(),
-  onStartDateShiftTab: function () {
-    function onStartDateShiftTab() {}
-
-    return onStartDateShiftTab;
-  }(),
-  onEndDateTab: function () {
-    function onEndDateTab() {}
-
-    return onEndDateTab;
-  }(),
-  onClearDates: function () {
-    function onClearDates() {}
-
-    return onClearDates;
-  }(),
-  onKeyDownArrowDown: function () {
-    function onKeyDownArrowDown() {}
-
-    return onKeyDownArrowDown;
-  }(),
-  onKeyDownQuestionMark: function () {
-    function onKeyDownQuestionMark() {}
-
-    return onKeyDownQuestionMark;
-  }(),
-
-
-  startDate: '',
-  endDate: '',
-
-  isStartDateFocused: false,
-  isEndDateFocused: false,
-  showClearDates: false,
-  disabled: false,
-  required: false,
-  readOnly: false,
-  openDirection: _constants.OPEN_DOWN,
-  showCaret: false,
-  showDefaultInputIcon: false,
-  inputIconPosition: _constants.ICON_BEFORE_POSITION,
-  customInputIcon: null,
-  customArrowIcon: null,
-  customCloseIcon: null,
-  noBorder: false,
-  block: false,
-  small: false,
-  regular: false,
-  verticalSpacing: undefined,
-
-  // accessibility
-  isFocused: false,
-
-  // i18n
-  phrases: _defaultPhrases.DateRangePickerInputPhrases,
-
-  isRTL: false
-};
-
-function DateRangePickerInput(_ref) {
-  var startDate = _ref.startDate,
-      startDateId = _ref.startDateId,
-      startDatePlaceholderText = _ref.startDatePlaceholderText,
-      screenReaderMessage = _ref.screenReaderMessage,
-      isStartDateFocused = _ref.isStartDateFocused,
-      onStartDateChange = _ref.onStartDateChange,
-      onStartDateFocus = _ref.onStartDateFocus,
-      onStartDateShiftTab = _ref.onStartDateShiftTab,
-      endDate = _ref.endDate,
-      endDateId = _ref.endDateId,
-      endDatePlaceholderText = _ref.endDatePlaceholderText,
-      isEndDateFocused = _ref.isEndDateFocused,
-      onEndDateChange = _ref.onEndDateChange,
-      onEndDateFocus = _ref.onEndDateFocus,
-      onEndDateTab = _ref.onEndDateTab,
-      onKeyDownArrowDown = _ref.onKeyDownArrowDown,
-      onKeyDownQuestionMark = _ref.onKeyDownQuestionMark,
-      onClearDates = _ref.onClearDates,
-      showClearDates = _ref.showClearDates,
-      disabled = _ref.disabled,
-      required = _ref.required,
-      readOnly = _ref.readOnly,
-      showCaret = _ref.showCaret,
-      openDirection = _ref.openDirection,
-      showDefaultInputIcon = _ref.showDefaultInputIcon,
-      inputIconPosition = _ref.inputIconPosition,
-      customInputIcon = _ref.customInputIcon,
-      customArrowIcon = _ref.customArrowIcon,
-      customCloseIcon = _ref.customCloseIcon,
-      isFocused = _ref.isFocused,
-      phrases = _ref.phrases,
-      isRTL = _ref.isRTL,
-      noBorder = _ref.noBorder,
-      block = _ref.block,
-      verticalSpacing = _ref.verticalSpacing,
-      small = _ref.small,
-      regular = _ref.regular,
-      styles = _ref.styles;
-
-  var calendarIcon = customInputIcon || _react2['default'].createElement(_CalendarIcon2['default'], (0, _reactWithStyles.css)(styles.DateRangePickerInput_calendarIcon_svg));
-
-  var arrowIcon = customArrowIcon || _react2['default'].createElement(_RightArrow2['default'], (0, _reactWithStyles.css)(styles.DateRangePickerInput_arrow_svg));
-  if (isRTL) arrowIcon = _react2['default'].createElement(_LeftArrow2['default'], (0, _reactWithStyles.css)(styles.DateRangePickerInput_arrow_svg));
-  if (small) arrowIcon = '-';
-
-  var closeIcon = customCloseIcon || _react2['default'].createElement(_CloseButton2['default'], (0, _reactWithStyles.css)(styles.DateRangePickerInput_clearDates_svg, small && styles.DateRangePickerInput_clearDates_svg__small));
-  var screenReaderText = screenReaderMessage || phrases.keyboardNavigationInstructions;
-  var inputIcon = (showDefaultInputIcon || customInputIcon !== null) && _react2['default'].createElement(
-    'button',
-    _extends({}, (0, _reactWithStyles.css)(styles.DateRangePickerInput_calendarIcon), {
-      type: 'button',
-      disabled: disabled,
-      'aria-label': phrases.focusStartDate,
-      onClick: onKeyDownArrowDown
-    }),
-    calendarIcon
-  );
-  var startDateDisabled = disabled === _constants.START_DATE || disabled === true;
-  var endDateDisabled = disabled === _constants.END_DATE || disabled === true;
-
-  return _react2['default'].createElement(
-    'div',
-    (0, _reactWithStyles.css)(styles.DateRangePickerInput, disabled && styles.DateRangePickerInput__disabled, isRTL && styles.DateRangePickerInput__rtl, !noBorder && styles.DateRangePickerInput__withBorder, block && styles.DateRangePickerInput__block, showClearDates && styles.DateRangePickerInput__showClearDates),
-    inputIconPosition === _constants.ICON_BEFORE_POSITION && inputIcon,
-    _react2['default'].createElement(_DateInput2['default'], {
-      id: startDateId,
-      placeholder: startDatePlaceholderText,
-      displayValue: startDate,
-      screenReaderMessage: screenReaderText,
-      focused: isStartDateFocused,
-      isFocused: isFocused,
-      disabled: startDateDisabled,
-      required: required,
-      readOnly: readOnly,
-      showCaret: showCaret,
-      openDirection: openDirection,
-      onChange: onStartDateChange,
-      onFocus: onStartDateFocus,
-      onKeyDownShiftTab: onStartDateShiftTab,
-      onKeyDownArrowDown: onKeyDownArrowDown,
-      onKeyDownQuestionMark: onKeyDownQuestionMark,
-      verticalSpacing: verticalSpacing,
-      small: small,
-      regular: regular
-    }),
-    _react2['default'].createElement(
-      'div',
-      _extends({}, (0, _reactWithStyles.css)(styles.DateRangePickerInput_arrow), {
-        'aria-hidden': 'true',
-        role: 'presentation'
-      }),
-      arrowIcon
-    ),
-    _react2['default'].createElement(_DateInput2['default'], {
-      id: endDateId,
-      placeholder: endDatePlaceholderText,
-      displayValue: endDate,
-      screenReaderMessage: screenReaderText,
-      focused: isEndDateFocused,
-      isFocused: isFocused,
-      disabled: endDateDisabled,
-      required: required,
-      readOnly: readOnly,
-      showCaret: showCaret,
-      openDirection: openDirection,
-      onChange: onEndDateChange,
-      onFocus: onEndDateFocus,
-      onKeyDownTab: onEndDateTab,
-      onKeyDownArrowDown: onKeyDownArrowDown,
-      onKeyDownQuestionMark: onKeyDownQuestionMark,
-      verticalSpacing: verticalSpacing,
-      small: small,
-      regular: regular
-    }),
-    showClearDates && _react2['default'].createElement(
-      'button',
-      _extends({
-        type: 'button',
-        'aria-label': phrases.clearDates
-      }, (0, _reactWithStyles.css)(styles.DateRangePickerInput_clearDates, small && styles.DateRangePickerInput_clearDates__small, !customCloseIcon && styles.DateRangePickerInput_clearDates_default, !(startDate || endDate) && styles.DateRangePickerInput_clearDates__hide), {
-        onClick: onClearDates,
-        disabled: disabled
-      }),
-      closeIcon
-    ),
-    inputIconPosition === _constants.ICON_AFTER_POSITION && inputIcon
-  );
-}
-
-DateRangePickerInput.propTypes = propTypes;
-DateRangePickerInput.defaultProps = defaultProps;
-
-exports['default'] = (0, _reactWithStyles.withStyles)(function (_ref2) {
-  var _ref2$reactDates = _ref2.reactDates,
-      border = _ref2$reactDates.border,
-      color = _ref2$reactDates.color,
-      sizing = _ref2$reactDates.sizing;
-  return {
-    DateRangePickerInput: {
-      backgroundColor: color.background,
-      display: 'inline-block'
-    },
-
-    DateRangePickerInput__disabled: {
-      background: color.disabled
-    },
-
-    DateRangePickerInput__withBorder: {
-      borderColor: color.border,
-      borderWidth: border.pickerInput.borderWidth,
-      borderStyle: border.pickerInput.borderStyle,
-      borderRadius: border.pickerInput.borderRadius
-    },
-
-    DateRangePickerInput__rtl: {
-      direction: 'rtl'
-    },
-
-    DateRangePickerInput__block: {
-      display: 'block'
-    },
-
-    DateRangePickerInput__showClearDates: {
-      paddingRight: 30
-    },
-
-    DateRangePickerInput_arrow: {
-      display: 'inline-block',
-      verticalAlign: 'middle',
-      color: color.text
-    },
-
-    DateRangePickerInput_arrow_svg: {
-      verticalAlign: 'middle',
-      fill: color.text,
-      height: sizing.arrowWidth,
-      width: sizing.arrowWidth
-    },
-
-    DateRangePickerInput_clearDates: {
-      background: 'none',
-      border: 0,
-      color: 'inherit',
-      font: 'inherit',
-      lineHeight: 'normal',
-      overflow: 'visible',
-
-      cursor: 'pointer',
-      padding: 10,
-      margin: '0 10px 0 5px',
-      position: 'absolute',
-      right: 0,
-      top: '50%',
-      transform: 'translateY(-50%)'
-    },
-
-    DateRangePickerInput_clearDates__small: {
-      padding: 6
-    },
-
-    DateRangePickerInput_clearDates_default: {
-      ':focus': {
-        background: color.core.border,
-        borderRadius: '50%'
-      },
-
-      ':hover': {
-        background: color.core.border,
-        borderRadius: '50%'
-      }
-    },
-
-    DateRangePickerInput_clearDates__hide: {
-      visibility: 'hidden'
-    },
-
-    DateRangePickerInput_clearDates_svg: {
-      fill: color.core.grayLight,
-      height: 12,
-      width: 15,
-      verticalAlign: 'middle'
-    },
-
-    DateRangePickerInput_clearDates_svg__small: {
-      height: 9
-    },
-
-    DateRangePickerInput_calendarIcon: {
-      background: 'none',
-      border: 0,
-      color: 'inherit',
-      font: 'inherit',
-      lineHeight: 'normal',
-      overflow: 'visible',
-
-      cursor: 'pointer',
-      display: 'inline-block',
-      verticalAlign: 'middle',
-      padding: 10,
-      margin: '0 5px 0 10px'
-    },
-
-    DateRangePickerInput_calendarIcon_svg: {
-      fill: color.core.grayLight,
-      height: 15,
-      width: 14,
-      verticalAlign: 'middle'
-    }
-  };
-})(DateRangePickerInput);
-
-/***/ }),
-/* 181 */
-/***/ (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 _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__(46);
-
-var _object2 = _interopRequireDefault(_object);
-
-var _react = __webpack_require__(27);
-
-var _react2 = _interopRequireDefault(_react);
-
-var _propTypes = __webpack_require__(31);
-
-var _propTypes2 = _interopRequireDefault(_propTypes);
-
-var _airbnbPropTypes = __webpack_require__(43);
-
-var _reactWithStyles = __webpack_require__(56);
-
-var _throttle = __webpack_require__(182);
-
-var _throttle2 = _interopRequireDefault(_throttle);
-
-var _isTouchDevice = __webpack_require__(82);
-
-var _isTouchDevice2 = _interopRequireDefault(_isTouchDevice);
-
-var _getInputHeight = __webpack_require__(127);
-
-var _getInputHeight2 = _interopRequireDefault(_getInputHeight);
-
-var _OpenDirectionShape = __webpack_require__(83);
-
-var _OpenDirectionShape2 = _interopRequireDefault(_OpenDirectionShape);
-
-var _constants = __webpack_require__(39);
-
-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 FANG_PATH_TOP = 'M0,' + String(_constants.FANG_HEIGHT_PX) + ' ' + String(_constants.FANG_WIDTH_PX) + ',' + String(_constants.FANG_HEIGHT_PX) + ' ' + _constants.FANG_WIDTH_PX / 2 + ',0z';
-var FANG_STROKE_TOP = 'M0,' + String(_constants.FANG_HEIGHT_PX) + ' ' + _constants.FANG_WIDTH_PX / 2 + ',0 ' + String(_constants.FANG_WIDTH_PX) + ',' + String(_constants.FANG_HEIGHT_PX);
-var FANG_PATH_BOTTOM = 'M0,0 ' + String(_constants.FANG_WIDTH_PX) + ',0 ' + _constants.FANG_WIDTH_PX / 2 + ',' + String(_constants.FANG_HEIGHT_PX) + 'z';
-var FANG_STROKE_BOTTOM = 'M0,0 ' + _constants.FANG_WIDTH_PX / 2 + ',' + String(_constants.FANG_HEIGHT_PX) + ' ' + String(_constants.FANG_WIDTH_PX) + ',0';
-
-var propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, {
-  id: _propTypes2['default'].string.isRequired,
-  placeholder: _propTypes2['default'].string, // also used as label
-  displayValue: _propTypes2['default'].string,
-  screenReaderMessage: _propTypes2['default'].string,
-  focused: _propTypes2['default'].bool,
-  disabled: _propTypes2['default'].bool,
-  required: _propTypes2['default'].bool,
-  readOnly: _propTypes2['default'].bool,
-  openDirection: _OpenDirectionShape2['default'],
-  showCaret: _propTypes2['default'].bool,
-  verticalSpacing: _airbnbPropTypes.nonNegativeInteger,
-  small: _propTypes2['default'].bool,
-  block: _propTypes2['default'].bool,
-  regular: _propTypes2['default'].bool,
-
-  onChange: _propTypes2['default'].func,
-  onFocus: _propTypes2['default'].func,
-  onKeyDownShiftTab: _propTypes2['default'].func,
-  onKeyDownTab: _propTypes2['default'].func,
-
-  onKeyDownArrowDown: _propTypes2['default'].func,
-  onKeyDownQuestionMark: _propTypes2['default'].func,
-
-  // accessibility
-  isFocused: _propTypes2['default'].bool // describes actual DOM focus
-}));
-
-var defaultProps = {
-  placeholder: 'Select Date',
-  displayValue: '',
-  screenReaderMessage: '',
-  focused: false,
-  disabled: false,
-  required: false,
-  readOnly: null,
-  openDirection: _constants.OPEN_DOWN,
-  showCaret: false,
-  verticalSpacing: _constants.DEFAULT_VERTICAL_SPACING,
-  small: false,
-  block: false,
-  regular: false,
-
-  onChange: function () {
-    function onChange() {}
-
-    return onChange;
-  }(),
-  onFocus: function () {
-    function onFocus() {}
-
-    return onFocus;
-  }(),
-  onKeyDownShiftTab: function () {
-    function onKeyDownShiftTab() {}
-
-    return onKeyDownShiftTab;
-  }(),
-  onKeyDownTab: function () {
-    function onKeyDownTab() {}
-
-    return onKeyDownTab;
-  }(),
-  onKeyDownArrowDown: function () {
-    function onKeyDownArrowDown() {}
-
-    return onKeyDownArrowDown;
-  }(),
-  onKeyDownQuestionMark: function () {
-    function onKeyDownQuestionMark() {}
-
-    return onKeyDownQuestionMark;
-  }(),
-
-
-  // accessibility
-  isFocused: false
-};
-
-var DateInput = function (_React$Component) {
-  _inherits(DateInput, _React$Component);
-
-  function DateInput(props) {
-    _classCallCheck(this, DateInput);
-
-    var _this = _possibleConstructorReturn(this, (DateInput.__proto__ || Object.getPrototypeOf(DateInput)).call(this, props));
-
-    _this.state = {
-      dateString: '',
-      isTouchDevice: false
-    };
-
-    _this.onChange = _this.onChange.bind(_this);
-    _this.onKeyDown = _this.onKeyDown.bind(_this);
-    _this.setInputRef = _this.setInputRef.bind(_this);
-    _this.throttledKeyDown = (0, _throttle2['default'])(_this.onFinalKeyDown, 300, { trailing: false });
-    return _this;
-  }
-
-  _createClass(DateInput, [{
-    key: 'componentDidMount',
-    value: function () {
-      function componentDidMount() {
-        this.setState({ isTouchDevice: (0, _isTouchDevice2['default'])() });
-      }
-
-      return componentDidMount;
-    }()
-  }, {
-    key: 'componentWillReceiveProps',
-    value: function () {
-      function componentWillReceiveProps(nextProps) {
-        var dateString = this.state.dateString;
-
-        if (dateString && nextProps.displayValue) {
-          this.setState({
-            dateString: ''
-          });
-        }
-      }
-
-      return componentWillReceiveProps;
-    }()
-  }, {
-    key: 'componentDidUpdate',
-    value: function () {
-      function componentDidUpdate(prevProps) {
-        var _props = this.props,
-            focused = _props.focused,
-            isFocused = _props.isFocused;
-
-        if (prevProps.focused === focused && prevProps.isFocused === isFocused) return;
-
-        if (focused && isFocused) {
-          this.inputRef.focus();
-        }
-      }
-
-      return componentDidUpdate;
-    }()
-  }, {
-    key: 'onChange',
-    value: function () {
-      function onChange(e) {
-        var _props2 = this.props,
-            onChange = _props2.onChange,
-            onKeyDownQuestionMark = _props2.onKeyDownQuestionMark;
-
-        var dateString = e.target.value;
-
-        // In Safari, onKeyDown does not consistently fire ahead of onChange. As a result, we need to
-        // special case the `?` key so that it always triggers the appropriate callback, instead of
-        // modifying the input value
-        if (dateString[dateString.length - 1] === '?') {
-          onKeyDownQuestionMark(e);
-        } else {
-          this.setState({ dateString: dateString }, function () {
-            return onChange(dateString);
-          });
-        }
-      }
-
-      return onChange;
-    }()
-  }, {
-    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) {
-        var _props3 = this.props,
-            onKeyDownShiftTab = _props3.onKeyDownShiftTab,
-            onKeyDownTab = _props3.onKeyDownTab,
-            onKeyDownArrowDown = _props3.onKeyDownArrowDown,
-            onKeyDownQuestionMark = _props3.onKeyDownQuestionMark;
-        var key = e.key;
-
-
-        if (key === 'Tab') {
-          if (e.shiftKey) {
-            onKeyDownShiftTab(e);
-          } else {
-            onKeyDownTab(e);
-          }
-        } else if (key === 'ArrowDown') {
-          onKeyDownArrowDown(e);
-        } else if (key === '?') {
-          e.preventDefault();
-          onKeyDownQuestionMark(e);
-        }
-      }
-
-      return onFinalKeyDown;
-    }()
-  }, {
-    key: 'setInputRef',
-    value: function () {
-      function setInputRef(ref) {
-        this.inputRef = ref;
-      }
-
-      return setInputRef;
-    }()
-  }, {
-    key: 'render',
-    value: function () {
-      function render() {
-        var _state = this.state,
-            dateString = _state.dateString,
-            isTouch = _state.isTouchDevice;
-        var _props4 = this.props,
-            id = _props4.id,
-            placeholder = _props4.placeholder,
-            displayValue = _props4.displayValue,
-            screenReaderMessage = _props4.screenReaderMessage,
-            focused = _props4.focused,
-            showCaret = _props4.showCaret,
-            onFocus = _props4.onFocus,
-            disabled = _props4.disabled,
-            required = _props4.required,
-            readOnly = _props4.readOnly,
-            openDirection = _props4.openDirection,
-            verticalSpacing = _props4.verticalSpacing,
-            small = _props4.small,
-            regular = _props4.regular,
-            block = _props4.block,
-            styles = _props4.styles,
-            reactDates = _props4.theme.reactDates;
-
-
-        var value = dateString || displayValue || '';
-        var screenReaderMessageId = 'DateInput__screen-reader-message-' + String(id);
-
-        var withFang = showCaret && focused;
-
-        var inputHeight = (0, _getInputHeight2['default'])(reactDates, small);
-
-        return _react2['default'].createElement(
-          'div',
-          (0, _reactWithStyles.css)(styles.DateInput, small && styles.DateInput__small, block && styles.DateInput__block, withFang && styles.DateInput__withFang, disabled && styles.DateInput__disabled, withFang && openDirection === _constants.OPEN_DOWN && styles.DateInput__openDown, withFang && openDirection === _constants.OPEN_UP && styles.DateInput__openUp),
-          _react2['default'].createElement('input', _extends({}, (0, _reactWithStyles.css)(styles.DateInput_input, small && styles.DateInput_input__small, regular && styles.DateInput_input__regular, readOnly && styles.DateInput_input__readOnly, focused && styles.DateInput_input__focused, disabled && styles.DateInput_input__disabled), {
-            'aria-label': placeholder,
-            type: 'text',
-            id: id,
-            name: id,
-            ref: this.setInputRef,
-            value: value,
-            onChange: this.onChange,
-            onKeyDown: this.onKeyDown,
-            onFocus: onFocus,
-            placeholder: placeholder,
-            autoComplete: 'off',
-            disabled: disabled,
-            readOnly: typeof readOnly === 'boolean' ? readOnly : isTouch,
-            required: required,
-            'aria-describedby': screenReaderMessage && screenReaderMessageId
-          })),
-          withFang && _react2['default'].createElement(
-            'svg',
-            _extends({
-              role: 'presentation',
-              focusable: 'false'
-            }, (0, _reactWithStyles.css)(styles.DateInput_fang, openDirection === _constants.OPEN_DOWN && {
-              top: inputHeight + verticalSpacing - _constants.FANG_HEIGHT_PX - 1
-            }, openDirection === _constants.OPEN_UP && {
-              bottom: inputHeight + verticalSpacing - _constants.FANG_HEIGHT_PX - 1
-            })),
-            _react2['default'].createElement('path', _extends({}, (0, _reactWithStyles.css)(styles.DateInput_fangShape), {
-              d: openDirection === _constants.OPEN_DOWN ? FANG_PATH_TOP : FANG_PATH_BOTTOM
-            })),
-            _react2['default'].createElement('path', _extends({}, (0, _reactWithStyles.css)(styles.DateInput_fangStroke), {
-              d: openDirection === _constants.OPEN_DOWN ? FANG_STROKE_TOP : FANG_STROKE_BOTTOM
-            }))
-          ),
-          screenReaderMessage && _react2['default'].createElement(
-            'p',
-            _extends({}, (0, _reactWithStyles.css)(styles.DateInput_screenReaderMessage), { id: screenReaderMessageId }),
-            screenReaderMessage
-          )
-        );
-      }
-
-      return render;
-    }()
-  }]);
-
-  return DateInput;
-}(_react2['default'].Component);
-
-DateInput.propTypes = propTypes;
-DateInput.defaultProps = defaultProps;
-
-exports['default'] = (0, _reactWithStyles.withStyles)(function (_ref) {
-  var _ref$reactDates = _ref.reactDates,
-      border = _ref$reactDates.border,
-      color = _ref$reactDates.color,
-      sizing = _ref$reactDates.sizing,
-      spacing = _ref$reactDates.spacing,
-      font = _ref$reactDates.font,
-      zIndex = _ref$reactDates.zIndex;
-  return {
-    DateInput: {
-      margin: 0,
-      padding: spacing.inputPadding,
-      background: color.background,
-      position: 'relative',
-      display: 'inline-block',
-      width: sizing.inputWidth,
-      verticalAlign: 'middle'
-    },
-
-    DateInput__small: {
-      width: sizing.inputWidth_small
-    },
-
-    DateInput__block: {
-      width: '100%'
-    },
-
-    DateInput__disabled: {
-      background: color.disabled,
-      color: color.textDisabled
-    },
-
-    DateInput_input: {
-      fontWeight: 200,
-      fontSize: font.input.size,
-      lineHeight: font.input.lineHeight,
-      color: color.text,
-      backgroundColor: color.background,
-      width: '100%',
-      padding: String(spacing.displayTextPaddingVertical) + 'px ' + String(spacing.displayTextPaddingHorizontal) + 'px',
-      paddingTop: spacing.displayTextPaddingTop,
-      paddingBottom: spacing.displayTextPaddingBottom,
-      paddingLeft: spacing.displayTextPaddingLeft,
-      paddingRight: spacing.displayTextPaddingRight,
-      border: border.input.border,
-      borderTop: border.input.borderTop,
-      borderRight: border.input.borderRight,
-      borderBottom: border.input.borderBottom,
-      borderLeft: border.input.borderLeft,
-      borderRadius: border.input.borderRadius
-    },
-
-    DateInput_input__small: {
-      fontSize: font.input.size_small,
-      lineHeight: font.input.lineHeight_small,
-      letterSpacing: font.input.letterSpacing_small,
-      padding: String(spacing.displayTextPaddingVertical_small) + 'px ' + String(spacing.displayTextPaddingHorizontal_small) + 'px',
-      paddingTop: spacing.displayTextPaddingTop_small,
-      paddingBottom: spacing.displayTextPaddingBottom_small,
-      paddingLeft: spacing.displayTextPaddingLeft_small,
-      paddingRight: spacing.displayTextPaddingRight_small
-    },
-
-    DateInput_input__regular: {
-      fontWeight: 'auto'
-    },
-
-    DateInput_input__readOnly: {
-      userSelect: 'none'
-    },
-
-    DateInput_input__focused: {
-      outline: border.input.outlineFocused,
-      background: color.backgroundFocused,
-      border: border.input.borderFocused,
-      borderTop: border.input.borderTopFocused,
-      borderRight: border.input.borderRightFocused,
-      borderBottom: border.input.borderBottomFocused,
-      borderLeft: border.input.borderLeftFocused
-    },
-
-    DateInput_input__disabled: {
-      background: color.disabled,
-      fontStyle: font.input.styleDisabled
-    },
-
-    DateInput_screenReaderMessage: {
-      border: 0,
-      clip: 'rect(0, 0, 0, 0)',
-      height: 1,
-      margin: -1,
-      overflow: 'hidden',
-      padding: 0,
-      position: 'absolute',
-      width: 1
-    },
-
-    DateInput_fang: {
-      position: 'absolute',
-      width: _constants.FANG_WIDTH_PX,
-      height: _constants.FANG_HEIGHT_PX,
-      left: 22,
-      zIndex: zIndex + 2
-    },
-
-    DateInput_fangShape: {
-      fill: color.background
-    },
-
-    DateInput_fangStroke: {
-      stroke: color.core.border,
-      fill: 'transparent'
-    }
-  };
-})(DateInput);
-
-/***/ }),
-/* 182 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var debounce = __webpack_require__(315),
-    isObject = __webpack_require__(128);
-
-/** 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;
-
-
-/***/ }),
-/* 183 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var freeGlobal = __webpack_require__(317);
-
-/** 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;
-
-
-/***/ }),
-/* 184 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var root = __webpack_require__(183);
-
-/** Built-in value references. */
-var Symbol = root.Symbol;
-
-module.exports = Symbol;
-
-
-/***/ }),
-/* 185 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _react = __webpack_require__(27);
-
-var _react2 = _interopRequireDefault(_react);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-var RightArrow = function () {
-  function RightArrow(props) {
-    return _react2['default'].createElement(
-      'svg',
-      props,
-      _react2['default'].createElement('path', {
-        d: 'M694.4 242.4l249.1 249.1c11 11 11 21 0 32L694.4 772.7c-5 5-10 7-16 7s-11-2-16-7c-11-11-11-21 0-32l210.1-210.1H67.1c-13 0-23-10-23-23s10-23 23-23h805.4L662.4 274.5c-21-21.1 11-53.1 32-32.1z'
-      })
-    );
-  }
-
-  return RightArrow;
-}();
-
-RightArrow.defaultProps = {
-  viewBox: '0 0 1000 1000'
-};
-exports['default'] = RightArrow;
-
-/***/ }),
-/* 186 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _react = __webpack_require__(27);
-
-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;
-
-/***/ }),
-/* 187 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _react = __webpack_require__(27);
-
-var _react2 = _interopRequireDefault(_react);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-var CalendarIcon = function () {
-  function CalendarIcon(props) {
-    return _react2['default'].createElement(
-      'svg',
-      props,
-      _react2['default'].createElement('path', {
-        d: 'M107.2 1392.9h241.1v-241.1H107.2v241.1zm294.7 0h267.9v-241.1H401.9v241.1zm-294.7-294.7h241.1V830.4H107.2v267.8zm294.7 0h267.9V830.4H401.9v267.8zM107.2 776.8h241.1V535.7H107.2v241.1zm616.2 616.1h267.9v-241.1H723.4v241.1zM401.9 776.8h267.9V535.7H401.9v241.1zm642.9 616.1H1286v-241.1h-241.1v241.1zm-321.4-294.7h267.9V830.4H723.4v267.8zM428.7 375V133.9c0-7.3-2.7-13.5-8-18.8-5.3-5.3-11.6-8-18.8-8h-53.6c-7.3 0-13.5 2.7-18.8 8-5.3 5.3-8 11.6-8 18.8V375c0 7.3 2.7 13.5 8 18.8 5.3 5.3 11.6 8 18.8 8h53.6c7.3 0 13.5-2.7 18.8-8 5.3-5.3 8-11.5 8-18.8zm616.1 723.2H1286V830.4h-241.1v267.8zM723.4 776.8h267.9V535.7H723.4v241.1zm321.4 0H1286V535.7h-241.1v241.1zm26.8-401.8V133.9c0-7.3-2.7-13.5-8-18.8-5.3-5.3-11.6-8-18.8-8h-53.6c-7.3 0-13.5 2.7-18.8 8-5.3 5.3-8 11.6-8 18.8V375c0 7.3 2.7 13.5 8 18.8 5.3 5.3 11.6 8 18.8 8h53.6c7.3 0 13.5-2.7 18.8-8 5.4-5.3 8-11.5 8-18.8zm321.5-53.6v1071.4c0 29-10.6 54.1-31.8 75.3-21.2 21.2-46.3 31.8-75.3 31.8H107.2c-29 0-54.1-10.6-75.3-31.8C10.6 1447 0 1421.9 0 1392.9V321.4c0-29 10.6-54.1 31.8-75.3s46.3-31.8 75.3-31.8h107.2v-80.4c0-36.8 13.1-68.4 39.3-94.6S311.4 0 348.3 0h53.6c36.8 0 68.4 13.1 94.6 39.3 26.2 26.2 39.3 57.8 39.3 94.6v80.4h321.5v-80.4c0-36.8 13.1-68.4 39.3-94.6C922.9 13.1 954.4 0 991.3 0h53.6c36.8 0 68.4 13.1 94.6 39.3s39.3 57.8 39.3 94.6v80.4H1286c29 0 54.1 10.6 75.3 31.8 21.2 21.2 31.8 46.3 31.8 75.3z'
-      })
-    );
-  }
-
-  return CalendarIcon;
-}();
-
-CalendarIcon.defaultProps = {
-  viewBox: '0 0 1393.1 1500'
-};
-exports['default'] = CalendarIcon;
-
-/***/ }),
-/* 188 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
-
-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__(46);
-
-var _object2 = _interopRequireDefault(_object);
-
-var _react = __webpack_require__(27);
-
-var _react2 = _interopRequireDefault(_react);
-
-var _propTypes = __webpack_require__(31);
-
-var _propTypes2 = _interopRequireDefault(_propTypes);
-
-var _reactMomentProptypes = __webpack_require__(64);
-
-var _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes);
-
-var _airbnbPropTypes = __webpack_require__(43);
-
-var _moment = __webpack_require__(29);
-
-var _moment2 = _interopRequireDefault(_moment);
-
-var _object3 = __webpack_require__(189);
-
-var _object4 = _interopRequireDefault(_object3);
-
-var _isTouchDevice = __webpack_require__(82);
-
-var _isTouchDevice2 = _interopRequireDefault(_isTouchDevice);
-
-var _defaultPhrases = __webpack_require__(47);
-
-var _getPhrasePropTypes = __webpack_require__(51);
-
-var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);
-
-var _isInclusivelyAfterDay = __webpack_require__(94);
-
-var _isInclusivelyAfterDay2 = _interopRequireDefault(_isInclusivelyAfterDay);
-
-var _isNextDay = __webpack_require__(192);
-
-var _isNextDay2 = _interopRequireDefault(_isNextDay);
-
-var _isSameDay = __webpack_require__(79);
-
-var _isSameDay2 = _interopRequireDefault(_isSameDay);
-
-var _isAfterDay = __webpack_require__(106);
-
-var _isAfterDay2 = _interopRequireDefault(_isAfterDay);
-
-var _isBeforeDay = __webpack_require__(95);
-
-var _isBeforeDay2 = _interopRequireDefault(_isBeforeDay);
-
-var _getVisibleDays = __webpack_require__(193);
-
-var _getVisibleDays2 = _interopRequireDefault(_getVisibleDays);
-
-var _isDayVisible = __webpack_require__(130);
-
-var _isDayVisible2 = _interopRequireDefault(_isDayVisible);
-
-var _getSelectedDateOffset = __webpack_require__(325);
-
-var _getSelectedDateOffset2 = _interopRequireDefault(_getSelectedDateOffset);
-
-var _toISODateString = __webpack_require__(102);
-
-var _toISODateString2 = _interopRequireDefault(_toISODateString);
-
-var _toISOMonthString = __webpack_require__(104);
-
-var _toISOMonthString2 = _interopRequireDefault(_toISOMonthString);
-
-var _DisabledShape = __webpack_require__(105);
-
-var _DisabledShape2 = _interopRequireDefault(_DisabledShape);
-
-var _FocusedInputShape = __webpack_require__(173);
-
-var _FocusedInputShape2 = _interopRequireDefault(_FocusedInputShape);
-
-var _ScrollableOrientationShape = __webpack_require__(81);
-
-var _ScrollableOrientationShape2 = _interopRequireDefault(_ScrollableOrientationShape);
-
-var _DayOfWeekShape = __webpack_require__(75);
-
-var _DayOfWeekShape2 = _interopRequireDefault(_DayOfWeekShape);
-
-var _CalendarInfoPositionShape = __webpack_require__(93);
-
-var _CalendarInfoPositionShape2 = _interopRequireDefault(_CalendarInfoPositionShape);
-
-var _constants = __webpack_require__(39);
-
-var _DayPicker = __webpack_require__(131);
-
-var _DayPicker2 = _interopRequireDefault(_DayPicker);
-
-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 _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)({
-  startDate: _reactMomentProptypes2['default'].momentObj,
-  endDate: _reactMomentProptypes2['default'].momentObj,
-  onDatesChange: _propTypes2['default'].func,
-  startDateOffset: _propTypes2['default'].func,
-  endDateOffset: _propTypes2['default'].func,
-
-  focusedInput: _FocusedInputShape2['default'],
-  onFocusChange: _propTypes2['default'].func,
-  onClose: _propTypes2['default'].func,
-
-  keepOpenOnDateSelect: _propTypes2['default'].bool,
-  minimumNights: _propTypes2['default'].number,
-  disabled: _DisabledShape2['default'],
-  isOutsideRange: _propTypes2['default'].func,
-  isDayBlocked: _propTypes2['default'].func,
-  isDayHighlighted: _propTypes2['default'].func,
-
-  // DayPicker props
-  renderMonthText: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),
-  renderMonthElement: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),
-  enableOutsideDays: _propTypes2['default'].bool,
-  numberOfMonths: _propTypes2['default'].number,
-  orientation: _ScrollableOrientationShape2['default'],
-  withPortal: _propTypes2['default'].bool,
-  initialVisibleMonth: _propTypes2['default'].func,
-  hideKeyboardShortcutsPanel: _propTypes2['default'].bool,
-  daySize: _airbnbPropTypes.nonNegativeInteger,
-  noBorder: _propTypes2['default'].bool,
-  verticalBorderSpacing: _airbnbPropTypes.nonNegativeInteger,
-  horizontalMonthPadding: _airbnbPropTypes.nonNegativeInteger,
-
-  navPrev: _propTypes2['default'].node,
-  navNext: _propTypes2['default'].node,
-  noNavButtons: _propTypes2['default'].bool,
-
-  onPrevMonthClick: _propTypes2['default'].func,
-  onNextMonthClick: _propTypes2['default'].func,
-  onOutsideClick: _propTypes2['default'].func,
-  renderCalendarDay: _propTypes2['default'].func,
-  renderDayContents: _propTypes2['default'].func,
-  renderCalendarInfo: _propTypes2['default'].func,
-  calendarInfoPosition: _CalendarInfoPositionShape2['default'],
-  firstDayOfWeek: _DayOfWeekShape2['default'],
-  verticalHeight: _airbnbPropTypes.nonNegativeInteger,
-  transitionDuration: _airbnbPropTypes.nonNegativeInteger,
-
-  // accessibility
-  onBlur: _propTypes2['default'].func,
-  isFocused: _propTypes2['default'].bool,
-  showKeyboardShortcuts: _propTypes2['default'].bool,
-
-  // i18n
-  monthFormat: _propTypes2['default'].string,
-  weekDayFormat: _propTypes2['default'].string,
-  phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.DayPickerPhrases)),
-  dayAriaLabelFormat: _propTypes2['default'].string,
-
-  isRTL: _propTypes2['default'].bool
-});
-
-var defaultProps = {
-  startDate: undefined, // TODO: use null
-  endDate: undefined, // TODO: use null
-  onDatesChange: function () {
-    function onDatesChange() {}
-
-    return onDatesChange;
-  }(),
-
-  startDateOffset: undefined,
-  endDateOffset: undefined,
-
-  focusedInput: null,
-  onFocusChange: function () {
-    function onFocusChange() {}
-
-    return onFocusChange;
-  }(),
-  onClose: function () {
-    function onClose() {}
-
-    return onClose;
-  }(),
-
-
-  keepOpenOnDateSelect: false,
-  minimumNights: 1,
-  disabled: false,
-  isOutsideRange: function () {
-    function isOutsideRange() {}
-
-    return isOutsideRange;
-  }(),
-  isDayBlocked: function () {
-    function isDayBlocked() {}
-
-    return isDayBlocked;
-  }(),
-  isDayHighlighted: function () {
-    function isDayHighlighted() {}
-
-    return isDayHighlighted;
-  }(),
-
-
-  // DayPicker props
-  renderMonthText: null,
-  enableOutsideDays: false,
-  numberOfMonths: 1,
-  orientation: _constants.HORIZONTAL_ORIENTATION,
-  withPortal: false,
-  hideKeyboardShortcutsPanel: false,
-  initialVisibleMonth: null,
-  daySize: _constants.DAY_SIZE,
-
-  navPrev: null,
-  navNext: null,
-  noNavButtons: false,
-
-  onPrevMonthClick: function () {
-    function onPrevMonthClick() {}
-
-    return onPrevMonthClick;
-  }(),
-  onNextMonthClick: function () {
-    function onNextMonthClick() {}
-
-    return onNextMonthClick;
-  }(),
-  onOutsideClick: function () {
-    function onOutsideClick() {}
-
-    return onOutsideClick;
-  }(),
-
-
-  renderCalendarDay: undefined,
-  renderDayContents: null,
-  renderCalendarInfo: null,
-  renderMonthElement: null,
-  calendarInfoPosition: _constants.INFO_POSITION_BOTTOM,
-  firstDayOfWeek: null,
-  verticalHeight: null,
-  noBorder: false,
-  transitionDuration: undefined,
-  verticalBorderSpacing: undefined,
-  horizontalMonthPadding: 13,
-
-  // accessibility
-  onBlur: function () {
-    function onBlur() {}
-
-    return onBlur;
-  }(),
-
-  isFocused: false,
-  showKeyboardShortcuts: false,
-
-  // i18n
-  monthFormat: 'MMMM YYYY',
-  weekDayFormat: 'dd',
-  phrases: _defaultPhrases.DayPickerPhrases,
-  dayAriaLabelFormat: undefined,
-
-  isRTL: false
-};
-
-var getChooseAvailableDatePhrase = function getChooseAvailableDatePhrase(phrases, focusedInput) {
-  if (focusedInput === _constants.START_DATE) {
-    return phrases.chooseAvailableStartDate;
-  }
-  if (focusedInput === _constants.END_DATE) {
-    return phrases.chooseAvailableEndDate;
-  }
-  return phrases.chooseAvailableDate;
-};
-
-var DayPickerRangeController = function (_React$Component) {
-  _inherits(DayPickerRangeController, _React$Component);
-
-  function DayPickerRangeController(props) {
-    _classCallCheck(this, DayPickerRangeController);
-
-    var _this = _possibleConstructorReturn(this, (DayPickerRangeController.__proto__ || Object.getPrototypeOf(DayPickerRangeController)).call(this, props));
-
-    _this.isTouchDevice = (0, _isTouchDevice2['default'])();
-    _this.today = (0, _moment2['default'])();
-    _this.modifiers = {
-      today: function () {
-        function today(day) {
-          return _this.isToday(day);
-        }
-
-        return today;
-      }(),
-      blocked: function () {
-        function blocked(day) {
-          return _this.isBlocked(day);
-        }
-
-        return blocked;
-      }(),
-      'blocked-calendar': function () {
-        function blockedCalendar(day) {
-          return props.isDayBlocked(day);
-        }
-
-        return blockedCalendar;
-      }(),
-      'blocked-out-of-range': function () {
-        function blockedOutOfRange(day) {
-          return props.isOutsideRange(day);
-        }
-
-        return blockedOutOfRange;
-      }(),
-      'highlighted-calendar': function () {
-        function highlightedCalendar(day) {
-          return props.isDayHighlighted(day);
-        }
-
-        return highlightedCalendar;
-      }(),
-      valid: function () {
-        function valid(day) {
-          return !_this.isBlocked(day);
-        }
-
-        return valid;
-      }(),
-      'selected-start': function () {
-        function selectedStart(day) {
-          return _this.isStartDate(day);
-        }
-
-        return selectedStart;
-      }(),
-      'selected-end': function () {
-        function selectedEnd(day) {
-          return _this.isEndDate(day);
-        }
-
-        return selectedEnd;
-      }(),
-      'blocked-minimum-nights': function () {
-        function blockedMinimumNights(day) {
-          return _this.doesNotMeetMinimumNights(day);
-        }
-
-        return blockedMinimumNights;
-      }(),
-      'selected-span': function () {
-        function selectedSpan(day) {
-          return _this.isInSelectedSpan(day);
-        }
-
-        return selectedSpan;
-      }(),
-      'last-in-range': function () {
-        function lastInRange(day) {
-          return _this.isLastInRange(day);
-        }
-
-        return lastInRange;
-      }(),
-      hovered: function () {
-        function hovered(day) {
-          return _this.isHovered(day);
-        }
-
-        return hovered;
-      }(),
-      'hovered-span': function () {
-        function hoveredSpan(day) {
-          return _this.isInHoveredSpan(day);
-        }
-
-        return hoveredSpan;
-      }(),
-      'hovered-offset': function () {
-        function hoveredOffset(day) {
-          return _this.isInHoveredSpan(day);
-        }
-
-        return hoveredOffset;
-      }(),
-      'after-hovered-start': function () {
-        function afterHoveredStart(day) {
-          return _this.isDayAfterHoveredStartDate(day);
-        }
-
-        return afterHoveredStart;
-      }(),
-      'first-day-of-week': function () {
-        function firstDayOfWeek(day) {
-          return _this.isFirstDayOfWeek(day);
-        }
-
-        return firstDayOfWeek;
-      }(),
-      'last-day-of-week': function () {
-        function lastDayOfWeek(day) {
-          return _this.isLastDayOfWeek(day);
-        }
-
-        return lastDayOfWeek;
-      }()
-    };
-
-    var _this$getStateForNewM = _this.getStateForNewMonth(props),
-        currentMonth = _this$getStateForNewM.currentMonth,
-        visibleDays = _this$getStateForNewM.visibleDays;
-
-    // initialize phrases
-    // set the appropriate CalendarDay phrase based on focusedInput
-
-
-    var chooseAvailableDate = getChooseAvailableDatePhrase(props.phrases, props.focusedInput);
-
-    _this.state = {
-      hoverDate: null,
-      currentMonth: currentMonth,
-      phrases: (0, _object2['default'])({}, props.phrases, {
-        chooseAvailableDate: chooseAvailableDate
-      }),
-      visibleDays: visibleDays
-    };
-
-    _this.onDayClick = _this.onDayClick.bind(_this);
-    _this.onDayMouseEnter = _this.onDayMouseEnter.bind(_this);
-    _this.onDayMouseLeave = _this.onDayMouseLeave.bind(_this);
-    _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.onMultiplyScrollableMonths = _this.onMultiplyScrollableMonths.bind(_this);
-    _this.getFirstFocusableDay = _this.getFirstFocusableDay.bind(_this);
-    return _this;
-  }
-
-  _createClass(DayPickerRangeController, [{
-    key: 'componentWillReceiveProps',
-    value: function () {
-      function componentWillReceiveProps(nextProps) {
-        var _this2 = this;
-
-        var startDate = nextProps.startDate,
-            endDate = nextProps.endDate,
-            focusedInput = nextProps.focusedInput,
-            minimumNights = nextProps.minimumNights,
-            isOutsideRange = nextProps.isOutsideRange,
-            isDayBlocked = nextProps.isDayBlocked,
-            isDayHighlighted = nextProps.isDayHighlighted,
-            phrases = nextProps.phrases,
-            initialVisibleMonth = nextProps.initialVisibleMonth,
-            numberOfMonths = nextProps.numberOfMonths,
-            enableOutsideDays = nextProps.enableOutsideDays;
-        var _props = this.props,
-            prevStartDate = _props.startDate,
-            prevEndDate = _props.endDate,
-            prevFocusedInput = _props.focusedInput,
-            prevMinimumNights = _props.minimumNights,
-            prevIsOutsideRange = _props.isOutsideRange,
-            prevIsDayBlocked = _props.isDayBlocked,
-            prevIsDayHighlighted = _props.isDayHighlighted,
-            prevPhrases = _props.phrases,
-            prevInitialVisibleMonth = _props.initialVisibleMonth,
-            prevNumberOfMonths = _props.numberOfMonths,
-            prevEnableOutsideDays = _props.enableOutsideDays;
-        var visibleDays = this.state.visibleDays;
-
-
-        var recomputeOutsideRange = false;
-        var recomputeDayBlocked = false;
-        var recomputeDayHighlighted = false;
-
-        if (isOutsideRange !== prevIsOutsideRange) {
-          this.modifiers['blocked-out-of-range'] = function (day) {
-            return isOutsideRange(day);
-          };
-          recomputeOutsideRange = true;
-        }
-
-        if (isDayBlocked !== prevIsDayBlocked) {
-          this.modifiers['blocked-calendar'] = function (day) {
-            return isDayBlocked(day);
-          };
-          recomputeDayBlocked = true;
-        }
-
-        if (isDayHighlighted !== prevIsDayHighlighted) {
-          this.modifiers['highlighted-calendar'] = function (day) {
-            return isDayHighlighted(day);
-          };
-          recomputeDayHighlighted = true;
-        }
-
-        var recomputePropModifiers = recomputeOutsideRange || recomputeDayBlocked || recomputeDayHighlighted;
-
-        var didStartDateChange = startDate !== prevStartDate;
-        var didEndDateChange = endDate !== prevEndDate;
-        var didFocusChange = focusedInput !== prevFocusedInput;
-
-        if (numberOfMonths !== prevNumberOfMonths || enableOutsideDays !== prevEnableOutsideDays || initialVisibleMonth !== prevInitialVisibleMonth && !prevFocusedInput && didFocusChange) {
-          var newMonthState = this.getStateForNewMonth(nextProps);
-          var currentMonth = newMonthState.currentMonth;
-          visibleDays = newMonthState.visibleDays;
-
-          this.setState({
-            currentMonth: currentMonth,
-            visibleDays: visibleDays
-          });
-        }
-
-        var modifiers = {};
-
-        if (didStartDateChange) {
-          modifiers = this.deleteModifier(modifiers, prevStartDate, 'selected-start');
-          modifiers = this.addModifier(modifiers, startDate, 'selected-start');
-
-          if (prevStartDate) {
-            var startSpan = prevStartDate.clone().add(1, 'day');
-            var endSpan = prevStartDate.clone().add(prevMinimumNights + 1, 'days');
-            modifiers = this.deleteModifierFromRange(modifiers, startSpan, endSpan, 'after-hovered-start');
-          }
-        }
-
-        if (didEndDateChange) {
-          modifiers = this.deleteModifier(modifiers, prevEndDate, 'selected-end');
-          modifiers = this.addModifier(modifiers, endDate, 'selected-end');
-        }
-
-        if (didStartDateChange || didEndDateChange) {
-          if (prevStartDate && prevEndDate) {
-            modifiers = this.deleteModifierFromRange(modifiers, prevStartDate, prevEndDate.clone().add(1, 'day'), 'selected-span');
-          }
-
-          if (startDate && endDate) {
-            modifiers = this.deleteModifierFromRange(modifiers, startDate, endDate.clone().add(1, 'day'), 'hovered-span');
-
-            modifiers = this.addModifierToRange(modifiers, startDate.clone().add(1, 'day'), endDate, 'selected-span');
-          }
-        }
-
-        if (!this.isTouchDevice && didStartDateChange && startDate && !endDate) {
-          var _startSpan = startDate.clone().add(1, 'day');
-          var _endSpan = startDate.clone().add(minimumNights + 1, 'days');
-          modifiers = this.addModifierToRange(modifiers, _startSpan, _endSpan, 'after-hovered-start');
-        }
-
-        if (prevMinimumNights > 0) {
-          if (didFocusChange || didStartDateChange || minimumNights !== prevMinimumNights) {
-            var _startSpan2 = prevStartDate || this.today;
-            modifiers = this.deleteModifierFromRange(modifiers, _startSpan2, _startSpan2.clone().add(prevMinimumNights, 'days'), 'blocked-minimum-nights');
-
-            modifiers = this.deleteModifierFromRange(modifiers, _startSpan2, _startSpan2.clone().add(prevMinimumNights, 'days'), 'blocked');
-          }
-        }
-
-        if (didFocusChange || recomputePropModifiers) {
-          (0, _object4['default'])(visibleDays).forEach(function (days) {
-            Object.keys(days).forEach(function (day) {
-              var momentObj = (0, _moment2['default'])(day);
-              var isBlocked = false;
-
-              if (didFocusChange || recomputeOutsideRange) {
-                if (isOutsideRange(momentObj)) {
-                  modifiers = _this2.addModifier(modifiers, momentObj, 'blocked-out-of-range');
-                  isBlocked = true;
-                } else {
-                  modifiers = _this2.deleteModifier(modifiers, momentObj, 'blocked-out-of-range');
-                }
-              }
-
-              if (didFocusChange || recomputeDayBlocked) {
-                if (isDayBlocked(momentObj)) {
-                  modifiers = _this2.addModifier(modifiers, momentObj, 'blocked-calendar');
-                  isBlocked = true;
-                } else {
-                  modifiers = _this2.deleteModifier(modifiers, momentObj, 'blocked-calendar');
-                }
-              }
-
-              if (isBlocked) {
-                modifiers = _this2.addModifier(modifiers, momentObj, 'blocked');
-              } else {
-                modifiers = _this2.deleteModifier(modifiers, momentObj, 'blocked');
-              }
-
-              if (didFocusChange || recomputeDayHighlighted) {
-                if (isDayHighlighted(momentObj)) {
-                  modifiers = _this2.addModifier(modifiers, momentObj, 'highlighted-calendar');
-                } else {
-                  modifiers = _this2.deleteModifier(modifiers, momentObj, 'highlighted-calendar');
-                }
-              }
-            });
-          });
-        }
-
-        if (minimumNights > 0 && startDate && focusedInput === _constants.END_DATE) {
-          modifiers = this.addModifierToRange(modifiers, startDate, startDate.clone().add(minimumNights, 'days'), 'blocked-minimum-nights');
-
-          modifiers = this.addModifierToRange(modifiers, startDate, startDate.clone().add(minimumNights, 'days'), 'blocked');
-        }
-
-        var today = (0, _moment2['default'])();
-        if (!(0, _isSameDay2['default'])(this.today, today)) {
-          modifiers = this.deleteModifier(modifiers, this.today, 'today');
-          modifiers = this.addModifier(modifiers, today, 'today');
-          this.today = today;
-        }
-
-        if (Object.keys(modifiers).length > 0) {
-          this.setState({
-            visibleDays: (0, _object2['default'])({}, visibleDays, modifiers)
-          });
-        }
-
-        if (didFocusChange || phrases !== prevPhrases) {
-          // set the appropriate CalendarDay phrase based on focusedInput
-          var chooseAvailableDate = getChooseAvailableDatePhrase(phrases, focusedInput);
-
-          this.setState({
-            phrases: (0, _object2['default'])({}, phrases, {
-              chooseAvailableDate: chooseAvailableDate
-            })
-          });
-        }
-      }
-
-      return componentWillReceiveProps;
-    }()
-  }, {
-    key: 'onDayClick',
-    value: function () {
-      function onDayClick(day, e) {
-        var _props2 = this.props,
-            keepOpenOnDateSelect = _props2.keepOpenOnDateSelect,
-            minimumNights = _props2.minimumNights,
-            onBlur = _props2.onBlur,
-            focusedInput = _props2.focusedInput,
-            onFocusChange = _props2.onFocusChange,
-            onClose = _props2.onClose,
-            onDatesChange = _props2.onDatesChange,
-            startDateOffset = _props2.startDateOffset,
-            endDateOffset = _props2.endDateOffset,
-            disabled = _props2.disabled;
-
-
-        if (e) e.preventDefault();
-        if (this.isBlocked(day)) return;
-
-        var _props3 = this.props,
-            startDate = _props3.startDate,
-            endDate = _props3.endDate;
-
-
-        if (startDateOffset || endDateOffset) {
-          startDate = (0, _getSelectedDateOffset2['default'])(startDateOffset, day);
-          endDate = (0, _getSelectedDateOffset2['default'])(endDateOffset, day);
-
-          if (!keepOpenOnDateSelect) {
-            onFocusChange(null);
-            onClose({ startDate: startDate, endDate: endDate });
-          }
-        } else if (focusedInput === _constants.START_DATE) {
-          var lastAllowedStartDate = endDate && endDate.clone().subtract(minimumNights, 'days');
-          var isStartDateAfterEndDate = (0, _isBeforeDay2['default'])(lastAllowedStartDate, day) || (0, _isAfterDay2['default'])(startDate, endDate);
-          var isEndDateDisabled = disabled === _constants.END_DATE;
-
-          if (!isEndDateDisabled || !isStartDateAfterEndDate) {
-            startDate = day;
-            if (isStartDateAfterEndDate) {
-              endDate = null;
-            }
-          }
-
-          if (isEndDateDisabled && !isStartDateAfterEndDate) {
-            onFocusChange(null);
-            onClose({ startDate: startDate, endDate: endDate });
-          } else if (!isEndDateDisabled) {
-            onFocusChange(_constants.END_DATE);
-          }
-        } else if (focusedInput === _constants.END_DATE) {
-          var firstAllowedEndDate = startDate && startDate.clone().add(minimumNights, 'days');
-
-          if (!startDate) {
-            endDate = day;
-            onFocusChange(_constants.START_DATE);
-          } else if ((0, _isInclusivelyAfterDay2['default'])(day, firstAllowedEndDate)) {
-            endDate = day;
-            if (!keepOpenOnDateSelect) {
-              onFocusChange(null);
-              onClose({ startDate: startDate, endDate: endDate });
-            }
-          } else if (disabled !== _constants.START_DATE) {
-            startDate = day;
-            endDate = null;
-          }
-        }
-
-        onDatesChange({ startDate: startDate, endDate: endDate });
-        onBlur();
-      }
-
-      return onDayClick;
-    }()
-  }, {
-    key: 'onDayMouseEnter',
-    value: function () {
-      function onDayMouseEnter(day) {
-        /* eslint react/destructuring-assignment: 1 */
-        if (this.isTouchDevice) return;
-        var _props4 = this.props,
-            startDate = _props4.startDate,
-            endDate = _props4.endDate,
-            focusedInput = _props4.focusedInput,
-            minimumNights = _props4.minimumNights,
-            startDateOffset = _props4.startDateOffset,
-            endDateOffset = _props4.endDateOffset;
-        var _state = this.state,
-            hoverDate = _state.hoverDate,
-            visibleDays = _state.visibleDays;
-
-        var dateOffset = null;
-
-        if (focusedInput) {
-          var hasOffset = startDateOffset || endDateOffset;
-          var modifiers = {};
-
-          if (hasOffset) {
-            var start = (0, _getSelectedDateOffset2['default'])(startDateOffset, day);
-            var end = (0, _getSelectedDateOffset2['default'])(endDateOffset, day, function (rangeDay) {
-              return rangeDay.add(1, 'day');
-            });
-
-            dateOffset = {
-              start: start,
-              end: end
-            };
-
-            // eslint-disable-next-line react/destructuring-assignment
-            if (this.state.dateOffset && this.state.dateOffset.start && this.state.dateOffset.end) {
-              modifiers = this.deleteModifierFromRange(modifiers, this.state.dateOffset.start, this.state.dateOffset.end, 'hovered-offset');
-            }
-            modifiers = this.addModifierToRange(modifiers, start, end, 'hovered-offset');
-          }
-
-          if (!hasOffset) {
-            modifiers = this.deleteModifier(modifiers, hoverDate, 'hovered');
-            modifiers = this.addModifier(modifiers, day, 'hovered');
-
-            if (startDate && !endDate && focusedInput === _constants.END_DATE) {
-              if ((0, _isAfterDay2['default'])(hoverDate, startDate)) {
-                var endSpan = hoverDate.clone().add(1, 'day');
-                modifiers = this.deleteModifierFromRange(modifiers, startDate, endSpan, 'hovered-span');
-              }
-
-              if (!this.isBlocked(day) && (0, _isAfterDay2['default'])(day, startDate)) {
-                var _endSpan2 = day.clone().add(1, 'day');
-                modifiers = this.addModifierToRange(modifiers, startDate, _endSpan2, 'hovered-span');
-              }
-            }
-
-            if (!startDate && endDate && focusedInput === _constants.START_DATE) {
-              if ((0, _isBeforeDay2['default'])(hoverDate, endDate)) {
-                modifiers = this.deleteModifierFromRange(modifiers, hoverDate, endDate, 'hovered-span');
-              }
-
-              if (!this.isBlocked(day) && (0, _isBeforeDay2['default'])(day, endDate)) {
-                modifiers = this.addModifierToRange(modifiers, day, endDate, 'hovered-span');
-              }
-            }
-
-            if (startDate) {
-              var startSpan = startDate.clone().add(1, 'day');
-              var _endSpan3 = startDate.clone().add(minimumNights + 1, 'days');
-              modifiers = this.deleteModifierFromRange(modifiers, startSpan, _endSpan3, 'after-hovered-start');
-
-              if ((0, _isSameDay2['default'])(day, startDate)) {
-                var newStartSpan = startDate.clone().add(1, 'day');
-                var newEndSpan = startDate.clone().add(minimumNights + 1, 'days');
-                modifiers = this.addModifierToRange(modifiers, newStartSpan, newEndSpan, 'after-hovered-start');
-              }
-            }
-          }
-
-          this.setState({
-            hoverDate: day,
-            dateOffset: dateOffset,
-            visibleDays: (0, _object2['default'])({}, visibleDays, modifiers)
-          });
-        }
-      }
-
-      return onDayMouseEnter;
-    }()
-  }, {
-    key: 'onDayMouseLeave',
-    value: function () {
-      function onDayMouseLeave(day) {
-        var _props5 = this.props,
-            startDate = _props5.startDate,
-            endDate = _props5.endDate,
-            minimumNights = _props5.minimumNights;
-        var _state2 = this.state,
-            hoverDate = _state2.hoverDate,
-            visibleDays = _state2.visibleDays,
-            dateOffset = _state2.dateOffset;
-
-        if (this.isTouchDevice || !hoverDate) return;
-
-        var modifiers = {};
-        modifiers = this.deleteModifier(modifiers, hoverDate, 'hovered');
-
-        if (dateOffset) {
-          modifiers = this.deleteModifierFromRange(modifiers, this.state.dateOffset.start, this.state.dateOffset.end, 'hovered-offset');
-        }
-
-        if (startDate && !endDate && (0, _isAfterDay2['default'])(hoverDate, startDate)) {
-          var endSpan = hoverDate.clone().add(1, 'day');
-          modifiers = this.deleteModifierFromRange(modifiers, startDate, endSpan, 'hovered-span');
-        }
-
-        if (!startDate && endDate && (0, _isAfterDay2['default'])(endDate, hoverDate)) {
-          modifiers = this.deleteModifierFromRange(modifiers, hoverDate, endDate, 'hovered-span');
-        }
-
-        if (startDate && (0, _isSameDay2['default'])(day, startDate)) {
-          var startSpan = startDate.clone().add(1, 'day');
-          var _endSpan4 = startDate.clone().add(minimumNights + 1, 'days');
-          modifiers = this.deleteModifierFromRange(modifiers, startSpan, _endSpan4, 'after-hovered-start');
-        }
-
-        this.setState({
-          hoverDate: null,
-          visibleDays: (0, _object2['default'])({}, visibleDays, modifiers)
-        });
-      }
-
-      return onDayMouseLeave;
-    }()
-  }, {
-    key: 'onPrevMonthClick',
-    value: function () {
-      function onPrevMonthClick() {
-        var _props6 = this.props,
-            onPrevMonthClick = _props6.onPrevMonthClick,
-            numberOfMonths = _props6.numberOfMonths,
-            enableOutsideDays = _props6.enableOutsideDays;
-        var _state3 = this.state,
-            currentMonth = _state3.currentMonth,
-            visibleDays = _state3.visibleDays;
-
-
-        var newVisibleDays = {};
-        Object.keys(visibleDays).sort().slice(0, numberOfMonths + 1).forEach(function (month) {
-          newVisibleDays[month] = visibleDays[month];
-        });
-
-        var prevMonth = currentMonth.clone().subtract(2, 'months');
-        var prevMonthVisibleDays = (0, _getVisibleDays2['default'])(prevMonth, 1, enableOutsideDays, true);
-
-        var newCurrentMonth = currentMonth.clone().subtract(1, 'month');
-        this.setState({
-          currentMonth: newCurrentMonth,
-          visibleDays: (0, _object2['default'])({}, newVisibleDays, this.getModifiers(prevMonthVisibleDays))
-        }, function () {
-          onPrevMonthClick(newCurrentMonth.clone());
-        });
-      }
-
-      return onPrevMonthClick;
-    }()
-  }, {
-    key: 'onNextMonthClick',
-    value: function () {
-      function onNextMonthClick() {
-        var _props7 = this.props,
-            onNextMonthClick = _props7.onNextMonthClick,
-            numberOfMonths = _props7.numberOfMonths,
-            enableOutsideDays = _props7.enableOutsideDays;
-        var _state4 = this.state,
-            currentMonth = _state4.currentMonth,
-            visibleDays = _state4.visibleDays;
-
-
-        var newVisibleDays = {};
-        Object.keys(visibleDays).sort().slice(1).forEach(function (month) {
-          newVisibleDays[month] = visibleDays[month];
-        });
-
-        var nextMonth = currentMonth.clone().add(numberOfMonths + 1, 'month');
-        var nextMonthVisibleDays = (0, _getVisibleDays2['default'])(nextMonth, 1, enableOutsideDays, true);
-
-        var newCurrentMonth = currentMonth.clone().add(1, 'month');
-        this.setState({
-          currentMonth: newCurrentMonth,
-          visibleDays: (0, _object2['default'])({}, newVisibleDays, this.getModifiers(nextMonthVisibleDays))
-        }, function () {
-          onNextMonthClick(newCurrentMonth.clone());
-        });
-      }
-
-      return onNextMonthClick;
-    }()
-  }, {
-    key: 'onMonthChange',
-    value: function () {
-      function onMonthChange(newMonth) {
-        var _props8 = this.props,
-            numberOfMonths = _props8.numberOfMonths,
-            enableOutsideDays = _props8.enableOutsideDays,
-            orientation = _props8.orientation;
-
-        var withoutTransitionMonths = orientation === _constants.VERTICAL_SCROLLABLE;
-        var newVisibleDays = (0, _getVisibleDays2['default'])(newMonth, numberOfMonths, enableOutsideDays, withoutTransitionMonths);
-
-        this.setState({
-          currentMonth: newMonth.clone(),
-          visibleDays: this.getModifiers(newVisibleDays)
-        });
-      }
-
-      return onMonthChange;
-    }()
-  }, {
-    key: 'onYearChange',
-    value: function () {
-      function onYearChange(newMonth) {
-        var _props9 = this.props,
-            numberOfMonths = _props9.numberOfMonths,
-            enableOutsideDays = _props9.enableOutsideDays,
-            orientation = _props9.orientation;
-
-        var withoutTransitionMonths = orientation === _constants.VERTICAL_SCROLLABLE;
-        var newVisibleDays = (0, _getVisibleDays2['default'])(newMonth, numberOfMonths, enableOutsideDays, withoutTransitionMonths);
-
-        this.setState({
-          currentMonth: newMonth.clone(),
-          visibleDays: this.getModifiers(newVisibleDays)
-        });
-      }
-
-      return onYearChange;
-    }()
-  }, {
-    key: 'onMultiplyScrollableMonths',
-    value: function () {
-      function onMultiplyScrollableMonths() {
-        var _props10 = this.props,
-            numberOfMonths = _props10.numberOfMonths,
-            enableOutsideDays = _props10.enableOutsideDays;
-        var _state5 = this.state,
-            currentMonth = _state5.currentMonth,
-            visibleDays = _state5.visibleDays;
-
-
-        var numberOfVisibleMonths = Object.keys(visibleDays).length;
-        var nextMonth = currentMonth.clone().add(numberOfVisibleMonths, 'month');
-        var newVisibleDays = (0, _getVisibleDays2['default'])(nextMonth, numberOfMonths, enableOutsideDays, true);
-
-        this.setState({
-          visibleDays: (0, _object2['default'])({}, visibleDays, this.getModifiers(newVisibleDays))
-        });
-      }
-
-      return onMultiplyScrollableMonths;
-    }()
-  }, {
-    key: 'getFirstFocusableDay',
-    value: function () {
-      function getFirstFocusableDay(newMonth) {
-        var _this3 = this;
-
-        var _props11 = this.props,
-            startDate = _props11.startDate,
-            endDate = _props11.endDate,
-            focusedInput = _props11.focusedInput,
-            minimumNights = _props11.minimumNights,
-            numberOfMonths = _props11.numberOfMonths;
-
-
-        var focusedDate = newMonth.clone().startOf('month');
-        if (focusedInput === _constants.START_DATE && startDate) {
-          focusedDate = startDate.clone();
-        } else if (focusedInput === _constants.END_DATE && !endDate && startDate) {
-          focusedDate = startDate.clone().add(minimumNights, 'days');
-        } else if (focusedInput === _constants.END_DATE && endDate) {
-          focusedDate = endDate.clone();
-        }
-
-        if (this.isBlocked(focusedDate)) {
-          var days = [];
-          var lastVisibleDay = newMonth.clone().add(numberOfMonths - 1, 'months').endOf('month');
-          var currentDay = focusedDate.clone();
-          while (!(0, _isAfterDay2['default'])(currentDay, lastVisibleDay)) {
-            currentDay = currentDay.clone().add(1, 'day');
-            days.push(currentDay);
-          }
-
-          var viableDays = days.filter(function (day) {
-            return !_this3.isBlocked(day);
-          });
-
-          if (viableDays.length > 0) {
-            var _viableDays = _slicedToArray(viableDays, 1);
-
-            focusedDate = _viableDays[0];
-          }
-        }
-
-        return focusedDate;
-      }
-
-      return getFirstFocusableDay;
-    }()
-  }, {
-    key: 'getModifiers',
-    value: function () {
-      function getModifiers(visibleDays) {
-        var _this4 = this;
-
-        var modifiers = {};
-        Object.keys(visibleDays).forEach(function (month) {
-          modifiers[month] = {};
-          visibleDays[month].forEach(function (day) {
-            modifiers[month][(0, _toISODateString2['default'])(day)] = _this4.getModifiersForDay(day);
-          });
-        });
-
-        return modifiers;
-      }
-
-      return getModifiers;
-    }()
-  }, {
-    key: 'getModifiersForDay',
-    value: function () {
-      function getModifiersForDay(day) {
-        var _this5 = this;
-
-        return new Set(Object.keys(this.modifiers).filter(function (modifier) {
-          return _this5.modifiers[modifier](day);
-        }));
-      }
-
-      return getModifiersForDay;
-    }()
-  }, {
-    key: 'getStateForNewMonth',
-    value: function () {
-      function getStateForNewMonth(nextProps) {
-        var _this6 = this;
-
-        var initialVisibleMonth = nextProps.initialVisibleMonth,
-            numberOfMonths = nextProps.numberOfMonths,
-            enableOutsideDays = nextProps.enableOutsideDays,
-            orientation = nextProps.orientation,
-            startDate = nextProps.startDate;
-
-        var initialVisibleMonthThunk = initialVisibleMonth || (startDate ? function () {
-          return startDate;
-        } : function () {
-          return _this6.today;
-        });
-        var currentMonth = initialVisibleMonthThunk();
-        var withoutTransitionMonths = orientation === _constants.VERTICAL_SCROLLABLE;
-        var visibleDays = this.getModifiers((0, _getVisibleDays2['default'])(currentMonth, numberOfMonths, enableOutsideDays, withoutTransitionMonths));
-        return { currentMonth: currentMonth, visibleDays: visibleDays };
-      }
-
-      return getStateForNewMonth;
-    }()
-  }, {
-    key: 'addModifier',
-    value: function () {
-      function addModifier(updatedDays, day, modifier) {
-        var _props12 = this.props,
-            numberOfVisibleMonths = _props12.numberOfMonths,
-            enableOutsideDays = _props12.enableOutsideDays,
-            orientation = _props12.orientation;
-        var _state6 = this.state,
-            firstVisibleMonth = _state6.currentMonth,
-            visibleDays = _state6.visibleDays;
-
-
-        var currentMonth = firstVisibleMonth;
-        var numberOfMonths = numberOfVisibleMonths;
-        if (orientation === _constants.VERTICAL_SCROLLABLE) {
-          numberOfMonths = Object.keys(visibleDays).length;
-        } else {
-          currentMonth = currentMonth.clone().subtract(1, 'month');
-          numberOfMonths += 2;
-        }
-        if (!day || !(0, _isDayVisible2['default'])(day, currentMonth, numberOfMonths, enableOutsideDays)) {
-          return updatedDays;
-        }
-
-        var iso = (0, _toISODateString2['default'])(day);
-
-        var updatedDaysAfterAddition = (0, _object2['default'])({}, updatedDays);
-        if (enableOutsideDays) {
-          var monthsToUpdate = Object.keys(visibleDays).filter(function (monthKey) {
-            return Object.keys(visibleDays[monthKey]).indexOf(iso) > -1;
-          });
-
-          updatedDaysAfterAddition = monthsToUpdate.reduce(function (days, monthIso) {
-            var month = updatedDays[monthIso] || visibleDays[monthIso];
-            var modifiers = new Set(month[iso]);
-            modifiers.add(modifier);
-            return (0, _object2['default'])({}, days, _defineProperty({}, monthIso, (0, _object2['default'])({}, month, _defineProperty({}, iso, modifiers))));
-          }, updatedDaysAfterAddition);
-        } else {
-          var monthIso = (0, _toISOMonthString2['default'])(day);
-          var month = updatedDays[monthIso] || visibleDays[monthIso];
-
-          var modifiers = new Set(month[iso]);
-          modifiers.add(modifier);
-          updatedDaysAfterAddition = (0, _object2['default'])({}, updatedDaysAfterAddition, _defineProperty({}, monthIso, (0, _object2['default'])({}, month, _defineProperty({}, iso, modifiers))));
-        }
-
-        return updatedDaysAfterAddition;
-      }
-
-      return addModifier;
-    }()
-  }, {
-    key: 'addModifierToRange',
-    value: function () {
-      function addModifierToRange(updatedDays, start, end, modifier) {
-        var days = updatedDays;
-
-        var spanStart = start.clone();
-        while ((0, _isBeforeDay2['default'])(spanStart, end)) {
-          days = this.addModifier(days, spanStart, modifier);
-          spanStart = spanStart.clone().add(1, 'day');
-        }
-
-        return days;
-      }
-
-      return addModifierToRange;
-    }()
-  }, {
-    key: 'deleteModifier',
-    value: function () {
-      function deleteModifier(updatedDays, day, modifier) {
-        var _props13 = this.props,
-            numberOfVisibleMonths = _props13.numberOfMonths,
-            enableOutsideDays = _props13.enableOutsideDays,
-            orientation = _props13.orientation;
-        var _state7 = this.state,
-            firstVisibleMonth = _state7.currentMonth,
-            visibleDays = _state7.visibleDays;
-
-        var currentMonth = firstVisibleMonth;
-        var numberOfMonths = numberOfVisibleMonths;
-        if (orientation === _constants.VERTICAL_SCROLLABLE) {
-          numberOfMonths = Object.keys(visibleDays).length;
-        } else {
-          currentMonth = currentMonth.clone().subtract(1, 'month');
-          numberOfMonths += 2;
-        }
-        if (!day || !(0, _isDayVisible2['default'])(day, currentMonth, numberOfMonths, enableOutsideDays)) {
-          return updatedDays;
-        }
-
-        var iso = (0, _toISODateString2['default'])(day);
-
-        var updatedDaysAfterDeletion = (0, _object2['default'])({}, updatedDays);
-        if (enableOutsideDays) {
-          var monthsToUpdate = Object.keys(visibleDays).filter(function (monthKey) {
-            return Object.keys(visibleDays[monthKey]).indexOf(iso) > -1;
-          });
-
-          updatedDaysAfterDeletion = monthsToUpdate.reduce(function (days, monthIso) {
-            var month = updatedDays[monthIso] || visibleDays[monthIso];
-            var modifiers = new Set(month[iso]);
-            modifiers['delete'](modifier);
-            return (0, _object2['default'])({}, days, _defineProperty({}, monthIso, (0, _object2['default'])({}, month, _defineProperty({}, iso, modifiers))));
-          }, updatedDaysAfterDeletion);
-        } else {
-          var monthIso = (0, _toISOMonthString2['default'])(day);
-          var month = updatedDays[monthIso] || visibleDays[monthIso];
-
-          var modifiers = new Set(month[iso]);
-          modifiers['delete'](modifier);
-          updatedDaysAfterDeletion = (0, _object2['default'])({}, updatedDaysAfterDeletion, _defineProperty({}, monthIso, (0, _object2['default'])({}, month, _defineProperty({}, iso, modifiers))));
-        }
-
-        return updatedDaysAfterDeletion;
-      }
-
-      return deleteModifier;
-    }()
-  }, {
-    key: 'deleteModifierFromRange',
-    value: function () {
-      function deleteModifierFromRange(updatedDays, start, end, modifier) {
-        var days = updatedDays;
-
-        var spanStart = start.clone();
-        while ((0, _isBeforeDay2['default'])(spanStart, end)) {
-          days = this.deleteModifier(days, spanStart, modifier);
-          spanStart = spanStart.clone().add(1, 'day');
-        }
-
-        return days;
-      }
-
-      return deleteModifierFromRange;
-    }()
-  }, {
-    key: 'doesNotMeetMinimumNights',
-    value: function () {
-      function doesNotMeetMinimumNights(day) {
-        var _props14 = this.props,
-            startDate = _props14.startDate,
-            isOutsideRange = _props14.isOutsideRange,
-            focusedInput = _props14.focusedInput,
-            minimumNights = _props14.minimumNights;
-
-        if (focusedInput !== _constants.END_DATE) return false;
-
-        if (startDate) {
-          var dayDiff = day.diff(startDate.clone().startOf('day').hour(12), 'days');
-          return dayDiff < minimumNights && dayDiff >= 0;
-        }
-        return isOutsideRange((0, _moment2['default'])(day).subtract(minimumNights, 'days'));
-      }
-
-      return doesNotMeetMinimumNights;
-    }()
-  }, {
-    key: 'isDayAfterHoveredStartDate',
-    value: function () {
-      function isDayAfterHoveredStartDate(day) {
-        var _props15 = this.props,
-            startDate = _props15.startDate,
-            endDate = _props15.endDate,
-            minimumNights = _props15.minimumNights;
-
-        var _ref = this.state || {},
-            hoverDate = _ref.hoverDate;
-
-        return !!startDate && !endDate && !this.isBlocked(day) && (0, _isNextDay2['default'])(hoverDate, day) && minimumNights > 0 && (0, _isSameDay2['default'])(hoverDate, startDate);
-      }
-
-      return isDayAfterHoveredStartDate;
-    }()
-  }, {
-    key: 'isEndDate',
-    value: function () {
-      function isEndDate(day) {
-        var endDate = this.props.endDate;
-
-        return (0, _isSameDay2['default'])(day, endDate);
-      }
-
-      return isEndDate;
-    }()
-  }, {
-    key: 'isHovered',
-    value: function () {
-      function isHovered(day) {
-        var _ref2 = this.state || {},
-            hoverDate = _ref2.hoverDate;
-
-        var focusedInput = this.props.focusedInput;
-
-        return !!focusedInput && (0, _isSameDay2['default'])(day, hoverDate);
-      }
-
-      return isHovered;
-    }()
-  }, {
-    key: 'isInHoveredSpan',
-    value: function () {
-      function isInHoveredSpan(day) {
-        var _props16 = this.props,
-            startDate = _props16.startDate,
-            endDate = _props16.endDate;
-
-        var _ref3 = this.state || {},
-            hoverDate = _ref3.hoverDate;
-
-        var isForwardRange = !!startDate && !endDate && (day.isBetween(startDate, hoverDate) || (0, _isSameDay2['default'])(hoverDate, day));
-        var isBackwardRange = !!endDate && !startDate && (day.isBetween(hoverDate, endDate) || (0, _isSameDay2['default'])(hoverDate, day));
-
-        var isValidDayHovered = hoverDate && !this.isBlocked(hoverDate);
-
-        return (isForwardRange || isBackwardRange) && isValidDayHovered;
-      }
-
-      return isInHoveredSpan;
-    }()
-  }, {
-    key: 'isInSelectedSpan',
-    value: function () {
-      function isInSelectedSpan(day) {
-        var _props17 = this.props,
-            startDate = _props17.startDate,
-            endDate = _props17.endDate;
-
-        return day.isBetween(startDate, endDate);
-      }
-
-      return isInSelectedSpan;
-    }()
-  }, {
-    key: 'isLastInRange',
-    value: function () {
-      function isLastInRange(day) {
-        var endDate = this.props.endDate;
-
-        return this.isInSelectedSpan(day) && (0, _isNextDay2['default'])(day, endDate);
-      }
-
-      return isLastInRange;
-    }()
-  }, {
-    key: 'isStartDate',
-    value: function () {
-      function isStartDate(day) {
-        var startDate = this.props.startDate;
-
-        return (0, _isSameDay2['default'])(day, startDate);
-      }
-
-      return isStartDate;
-    }()
-  }, {
-    key: 'isBlocked',
-    value: function () {
-      function isBlocked(day) {
-        var _props18 = this.props,
-            isDayBlocked = _props18.isDayBlocked,
-            isOutsideRange = _props18.isOutsideRange;
-
-        return isDayBlocked(day) || isOutsideRange(day) || this.doesNotMeetMinimumNights(day);
-      }
-
-      return isBlocked;
-    }()
-  }, {
-    key: 'isToday',
-    value: function () {
-      function isToday(day) {
-        return (0, _isSameDay2['default'])(day, this.today);
-      }
-
-      return isToday;
-    }()
-  }, {
-    key: 'isFirstDayOfWeek',
-    value: function () {
-      function isFirstDayOfWeek(day) {
-        var firstDayOfWeek = this.props.firstDayOfWeek;
-
-        return day.day() === (firstDayOfWeek || _moment2['default'].localeData().firstDayOfWeek());
-      }
-
-      return isFirstDayOfWeek;
-    }()
-  }, {
-    key: 'isLastDayOfWeek',
-    value: function () {
-      function isLastDayOfWeek(day) {
-        var firstDayOfWeek = this.props.firstDayOfWeek;
-
-        return day.day() === ((firstDayOfWeek || _moment2['default'].localeData().firstDayOfWeek()) + 6) % 7;
-      }
-
-      return isLastDayOfWeek;
-    }()
-  }, {
-    key: 'render',
-    value: function () {
-      function render() {
-        var _props19 = this.props,
-            numberOfMonths = _props19.numberOfMonths,
-            orientation = _props19.orientation,
-            monthFormat = _props19.monthFormat,
-            renderMonthText = _props19.renderMonthText,
-            navPrev = _props19.navPrev,
-            navNext = _props19.navNext,
-            noNavButtons = _props19.noNavButtons,
-            onOutsideClick = _props19.onOutsideClick,
-            withPortal = _props19.withPortal,
-            enableOutsideDays = _props19.enableOutsideDays,
-            firstDayOfWeek = _props19.firstDayOfWeek,
-            hideKeyboardShortcutsPanel = _props19.hideKeyboardShortcutsPanel,
-            daySize = _props19.daySize,
-            focusedInput = _props19.focusedInput,
-            renderCalendarDay = _props19.renderCalendarDay,
-            renderDayContents = _props19.renderDayContents,
-            renderCalendarInfo = _props19.renderCalendarInfo,
-            renderMonthElement = _props19.renderMonthElement,
-            calendarInfoPosition = _props19.calendarInfoPosition,
-            onBlur = _props19.onBlur,
-            isFocused = _props19.isFocused,
-            showKeyboardShortcuts = _props19.showKeyboardShortcuts,
-            isRTL = _props19.isRTL,
-            weekDayFormat = _props19.weekDayFormat,
-            dayAriaLabelFormat = _props19.dayAriaLabelFormat,
-            verticalHeight = _props19.verticalHeight,
-            noBorder = _props19.noBorder,
-            transitionDuration = _props19.transitionDuration,
-            verticalBorderSpacing = _props19.verticalBorderSpacing,
-            horizontalMonthPadding = _props19.horizontalMonthPadding;
-        var _state8 = this.state,
-            currentMonth = _state8.currentMonth,
-            phrases = _state8.phrases,
-            visibleDays = _state8.visibleDays;
-
-
-        return _react2['default'].createElement(_DayPicker2['default'], {
-          orientation: orientation,
-          enableOutsideDays: enableOutsideDays,
-          modifiers: visibleDays,
-          numberOfMonths: numberOfMonths,
-          onDayClick: this.onDayClick,
-          onDayMouseEnter: this.onDayMouseEnter,
-          onDayMouseLeave: this.onDayMouseLeave,
-          onPrevMonthClick: this.onPrevMonthClick,
-          onNextMonthClick: this.onNextMonthClick,
-          onMonthChange: this.onMonthChange,
-          onYearChange: this.onYearChange,
-          onMultiplyScrollableMonths: this.onMultiplyScrollableMonths,
-          monthFormat: monthFormat,
-          renderMonthText: renderMonthText,
-          withPortal: withPortal,
-          hidden: !focusedInput,
-          initialVisibleMonth: function () {
-            function initialVisibleMonth() {
-              return currentMonth;
-            }
-
-            return initialVisibleMonth;
-          }(),
-          daySize: daySize,
-          onOutsideClick: onOutsideClick,
-          navPrev: navPrev,
-          navNext: navNext,
-          noNavButtons: noNavButtons,
-          renderCalendarDay: renderCalendarDay,
-          renderDayContents: renderDayContents,
-          renderCalendarInfo: renderCalendarInfo,
-          renderMonthElement: renderMonthElement,
-          calendarInfoPosition: calendarInfoPosition,
-          firstDayOfWeek: firstDayOfWeek,
-          hideKeyboardShortcutsPanel: hideKeyboardShortcutsPanel,
-          isFocused: isFocused,
-          getFirstFocusableDay: this.getFirstFocusableDay,
-          onBlur: onBlur,
-          showKeyboardShortcuts: showKeyboardShortcuts,
-          phrases: phrases,
-          isRTL: isRTL,
-          weekDayFormat: weekDayFormat,
-          dayAriaLabelFormat: dayAriaLabelFormat,
-          verticalHeight: verticalHeight,
-          verticalBorderSpacing: verticalBorderSpacing,
-          noBorder: noBorder,
-          transitionDuration: transitionDuration,
-          horizontalMonthPadding: horizontalMonthPadding
-        });
-      }
-
-      return render;
-    }()
-  }]);
-
-  return DayPickerRangeController;
-}(_react2['default'].Component);
-
-exports['default'] = DayPickerRangeController;
-
-
-DayPickerRangeController.propTypes = propTypes;
-DayPickerRangeController.defaultProps = defaultProps;
-
-/***/ }),
-/* 189 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var define = __webpack_require__(73);
-
-var implementation = __webpack_require__(190);
-var getPolyfill = __webpack_require__(191);
-var shim = __webpack_require__(324);
-
-var polyfill = getPolyfill();
-
-define(polyfill, {
-	getPolyfill: getPolyfill,
-	implementation: implementation,
-	shim: shim
-});
-
-module.exports = polyfill;
-
-
-/***/ }),
-/* 190 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var ES = __webpack_require__(166);
-var has = __webpack_require__(91);
-var bind = __webpack_require__(74);
-var isEnumerable = bind.call(Function.call, Object.prototype.propertyIsEnumerable);
-
-module.exports = function values(O) {
-	var obj = ES.RequireObjectCoercible(O);
-	var vals = [];
-	for (var key in obj) {
-		if (has(obj, key) && isEnumerable(obj, key)) {
-			vals.push(obj[key]);
-		}
-	}
-	return vals;
-};
-
-
-/***/ }),
-/* 191 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var implementation = __webpack_require__(190);
-
-module.exports = function getPolyfill() {
-	return typeof Object.values === 'function' ? Object.values : implementation;
-};
-
-
-/***/ }),
-/* 192 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports['default'] = isNextDay;
-
-var _moment = __webpack_require__(29);
-
-var _moment2 = _interopRequireDefault(_moment);
-
-var _isSameDay = __webpack_require__(79);
-
-var _isSameDay2 = _interopRequireDefault(_isSameDay);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-function isNextDay(a, b) {
-  if (!_moment2['default'].isMoment(a) || !_moment2['default'].isMoment(b)) return false;
-  var nextDay = (0, _moment2['default'])(a).add(1, 'day');
-  return (0, _isSameDay2['default'])(nextDay, b);
-}
-
-/***/ }),
-/* 193 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports['default'] = getVisibleDays;
-
-var _moment = __webpack_require__(29);
-
-var _moment2 = _interopRequireDefault(_moment);
-
-var _toISOMonthString = __webpack_require__(104);
-
-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;
-}
-
-/***/ }),
-/* 194 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
-
-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__(46);
-
-var _object2 = _interopRequireDefault(_object);
-
-var _react = __webpack_require__(27);
-
-var _react2 = _interopRequireDefault(_react);
-
-var _propTypes = __webpack_require__(31);
-
-var _propTypes2 = _interopRequireDefault(_propTypes);
-
-var _reactMomentProptypes = __webpack_require__(64);
-
-var _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes);
-
-var _airbnbPropTypes = __webpack_require__(43);
-
-var _moment = __webpack_require__(29);
-
-var _moment2 = _interopRequireDefault(_moment);
-
-var _object3 = __webpack_require__(189);
-
-var _object4 = _interopRequireDefault(_object3);
-
-var _isTouchDevice = __webpack_require__(82);
-
-var _isTouchDevice2 = _interopRequireDefault(_isTouchDevice);
-
-var _defaultPhrases = __webpack_require__(47);
-
-var _getPhrasePropTypes = __webpack_require__(51);
-
-var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);
-
-var _isSameDay = __webpack_require__(79);
-
-var _isSameDay2 = _interopRequireDefault(_isSameDay);
-
-var _isAfterDay = __webpack_require__(106);
-
-var _isAfterDay2 = _interopRequireDefault(_isAfterDay);
-
-var _getVisibleDays = __webpack_require__(193);
-
-var _getVisibleDays2 = _interopRequireDefault(_getVisibleDays);
-
-var _isDayVisible = __webpack_require__(130);
-
-var _isDayVisible2 = _interopRequireDefault(_isDayVisible);
-
-var _toISODateString = __webpack_require__(102);
-
-var _toISODateString2 = _interopRequireDefault(_toISODateString);
-
-var _toISOMonthString = __webpack_require__(104);
-
-var _toISOMonthString2 = _interopRequireDefault(_toISOMonthString);
-
-var _ScrollableOrientationShape = __webpack_require__(81);
-
-var _ScrollableOrientationShape2 = _interopRequireDefault(_ScrollableOrientationShape);
-
-var _DayOfWeekShape = __webpack_require__(75);
-
-var _DayOfWeekShape2 = _interopRequireDefault(_DayOfWeekShape);
-
-var _CalendarInfoPositionShape = __webpack_require__(93);
-
-var _CalendarInfoPositionShape2 = _interopRequireDefault(_CalendarInfoPositionShape);
-
-var _constants = __webpack_require__(39);
-
-var _DayPicker = __webpack_require__(131);
-
-var _DayPicker2 = _interopRequireDefault(_DayPicker);
-
-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 _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)({
-  date: _reactMomentProptypes2['default'].momentObj,
-  onDateChange: _propTypes2['default'].func,
-
-  focused: _propTypes2['default'].bool,
-  onFocusChange: _propTypes2['default'].func,
-  onClose: _propTypes2['default'].func,
-
-  keepOpenOnDateSelect: _propTypes2['default'].bool,
-  isOutsideRange: _propTypes2['default'].func,
-  isDayBlocked: _propTypes2['default'].func,
-  isDayHighlighted: _propTypes2['default'].func,
-
-  // DayPicker props
-  renderMonthText: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),
-  renderMonthElement: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),
-  enableOutsideDays: _propTypes2['default'].bool,
-  numberOfMonths: _propTypes2['default'].number,
-  orientation: _ScrollableOrientationShape2['default'],
-  withPortal: _propTypes2['default'].bool,
-  initialVisibleMonth: _propTypes2['default'].func,
-  firstDayOfWeek: _DayOfWeekShape2['default'],
-  hideKeyboardShortcutsPanel: _propTypes2['default'].bool,
-  daySize: _airbnbPropTypes.nonNegativeInteger,
-  verticalHeight: _airbnbPropTypes.nonNegativeInteger,
-  noBorder: _propTypes2['default'].bool,
-  verticalBorderSpacing: _airbnbPropTypes.nonNegativeInteger,
-  transitionDuration: _airbnbPropTypes.nonNegativeInteger,
-  horizontalMonthPadding: _airbnbPropTypes.nonNegativeInteger,
-
-  navPrev: _propTypes2['default'].node,
-  navNext: _propTypes2['default'].node,
-
-  onPrevMonthClick: _propTypes2['default'].func,
-  onNextMonthClick: _propTypes2['default'].func,
-  onOutsideClick: _propTypes2['default'].func,
-  renderCalendarDay: _propTypes2['default'].func,
-  renderDayContents: _propTypes2['default'].func,
-  renderCalendarInfo: _propTypes2['default'].func,
-  calendarInfoPosition: _CalendarInfoPositionShape2['default'],
-
-  // accessibility
-  onBlur: _propTypes2['default'].func,
-  isFocused: _propTypes2['default'].bool,
-  showKeyboardShortcuts: _propTypes2['default'].bool,
-
-  // i18n
-  monthFormat: _propTypes2['default'].string,
-  weekDayFormat: _propTypes2['default'].string,
-  phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.DayPickerPhrases)),
-  dayAriaLabelFormat: _propTypes2['default'].string,
-
-  isRTL: _propTypes2['default'].bool
-});
-
-var defaultProps = {
-  date: undefined, // TODO: use null
-  onDateChange: function () {
-    function onDateChange() {}
-
-    return onDateChange;
-  }(),
-
-
-  focused: false,
-  onFocusChange: function () {
-    function onFocusChange() {}
-
-    return onFocusChange;
-  }(),
-  onClose: function () {
-    function onClose() {}
-
-    return onClose;
-  }(),
-
-
-  keepOpenOnDateSelect: false,
-  isOutsideRange: function () {
-    function isOutsideRange() {}
-
-    return isOutsideRange;
-  }(),
-  isDayBlocked: function () {
-    function isDayBlocked() {}
-
-    return isDayBlocked;
-  }(),
-  isDayHighlighted: function () {
-    function isDayHighlighted() {}
-
-    return isDayHighlighted;
-  }(),
-
-
-  // DayPicker props
-  renderMonthText: null,
-  enableOutsideDays: false,
-  numberOfMonths: 1,
-  orientation: _constants.HORIZONTAL_ORIENTATION,
-  withPortal: false,
-  hideKeyboardShortcutsPanel: false,
-  initialVisibleMonth: null,
-  firstDayOfWeek: null,
-  daySize: _constants.DAY_SIZE,
-  verticalHeight: null,
-  noBorder: false,
-  verticalBorderSpacing: undefined,
-  transitionDuration: undefined,
-  horizontalMonthPadding: 13,
-
-  navPrev: null,
-  navNext: null,
-
-  onPrevMonthClick: function () {
-    function onPrevMonthClick() {}
-
-    return onPrevMonthClick;
-  }(),
-  onNextMonthClick: function () {
-    function onNextMonthClick() {}
-
-    return onNextMonthClick;
-  }(),
-  onOutsideClick: function () {
-    function onOutsideClick() {}
-
-    return onOutsideClick;
-  }(),
-
-
-  renderCalendarDay: undefined,
-  renderDayContents: null,
-  renderCalendarInfo: null,
-  renderMonthElement: null,
-  calendarInfoPosition: _constants.INFO_POSITION_BOTTOM,
-
-  // accessibility
-  onBlur: function () {
-    function onBlur() {}
-
-    return onBlur;
-  }(),
-
-  isFocused: false,
-  showKeyboardShortcuts: false,
-
-  // i18n
-  monthFormat: 'MMMM YYYY',
-  weekDayFormat: 'dd',
-  phrases: _defaultPhrases.DayPickerPhrases,
-  dayAriaLabelFormat: undefined,
-
-  isRTL: false
-};
-
-var DayPickerSingleDateController = function (_React$Component) {
-  _inherits(DayPickerSingleDateController, _React$Component);
-
-  function DayPickerSingleDateController(props) {
-    _classCallCheck(this, DayPickerSingleDateController);
-
-    var _this = _possibleConstructorReturn(this, (DayPickerSingleDateController.__proto__ || Object.getPrototypeOf(DayPickerSingleDateController)).call(this, props));
-
-    _this.isTouchDevice = false;
-    _this.today = (0, _moment2['default'])();
-
-    _this.modifiers = {
-      today: function () {
-        function today(day) {
-          return _this.isToday(day);
-        }
-
-        return today;
-      }(),
-      blocked: function () {
-        function blocked(day) {
-          return _this.isBlocked(day);
-        }
-
-        return blocked;
-      }(),
-      'blocked-calendar': function () {
-        function blockedCalendar(day) {
-          return props.isDayBlocked(day);
-        }
-
-        return blockedCalendar;
-      }(),
-      'blocked-out-of-range': function () {
-        function blockedOutOfRange(day) {
-          return props.isOutsideRange(day);
-        }
-
-        return blockedOutOfRange;
-      }(),
-      'highlighted-calendar': function () {
-        function highlightedCalendar(day) {
-          return props.isDayHighlighted(day);
-        }
-
-        return highlightedCalendar;
-      }(),
-      valid: function () {
-        function valid(day) {
-          return !_this.isBlocked(day);
-        }
-
-        return valid;
-      }(),
-      hovered: function () {
-        function hovered(day) {
-          return _this.isHovered(day);
-        }
-
-        return hovered;
-      }(),
-      selected: function () {
-        function selected(day) {
-          return _this.isSelected(day);
-        }
-
-        return selected;
-      }(),
-      'first-day-of-week': function () {
-        function firstDayOfWeek(day) {
-          return _this.isFirstDayOfWeek(day);
-        }
-
-        return firstDayOfWeek;
-      }(),
-      'last-day-of-week': function () {
-        function lastDayOfWeek(day) {
-          return _this.isLastDayOfWeek(day);
-        }
-
-        return lastDayOfWeek;
-      }()
-    };
-
-    var _this$getStateForNewM = _this.getStateForNewMonth(props),
-        currentMonth = _this$getStateForNewM.currentMonth,
-        visibleDays = _this$getStateForNewM.visibleDays;
-
-    _this.state = {
-      hoverDate: null,
-      currentMonth: currentMonth,
-      visibleDays: visibleDays
-    };
-
-    _this.onDayMouseEnter = _this.onDayMouseEnter.bind(_this);
-    _this.onDayMouseLeave = _this.onDayMouseLeave.bind(_this);
-    _this.onDayClick = _this.onDayClick.bind(_this);
-
-    _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.getFirstFocusableDay = _this.getFirstFocusableDay.bind(_this);
-    return _this;
-  }
-
-  _createClass(DayPickerSingleDateController, [{
-    key: 'componentDidMount',
-    value: function () {
-      function componentDidMount() {
-        this.isTouchDevice = (0, _isTouchDevice2['default'])();
-      }
-
-      return componentDidMount;
-    }()
-  }, {
-    key: 'componentWillReceiveProps',
-    value: function () {
-      function componentWillReceiveProps(nextProps) {
-        var _this2 = this;
-
-        var date = nextProps.date,
-            focused = nextProps.focused,
-            isOutsideRange = nextProps.isOutsideRange,
-            isDayBlocked = nextProps.isDayBlocked,
-            isDayHighlighted = nextProps.isDayHighlighted,
-            initialVisibleMonth = nextProps.initialVisibleMonth,
-            numberOfMonths = nextProps.numberOfMonths,
-            enableOutsideDays = nextProps.enableOutsideDays;
-        var _props = this.props,
-            prevIsOutsideRange = _props.isOutsideRange,
-            prevIsDayBlocked = _props.isDayBlocked,
-            prevIsDayHighlighted = _props.isDayHighlighted,
-            prevNumberOfMonths = _props.numberOfMonths,
-            prevEnableOutsideDays = _props.enableOutsideDays,
-            prevInitialVisibleMonth = _props.initialVisibleMonth,
-            prevFocused = _props.focused,
-            prevDate = _props.date;
-        var visibleDays = this.state.visibleDays;
-
-
-        var recomputeOutsideRange = false;
-        var recomputeDayBlocked = false;
-        var recomputeDayHighlighted = false;
-
-        if (isOutsideRange !== prevIsOutsideRange) {
-          this.modifiers['blocked-out-of-range'] = function (day) {
-            return isOutsideRange(day);
-          };
-          recomputeOutsideRange = true;
-        }
-
-        if (isDayBlocked !== prevIsDayBlocked) {
-          this.modifiers['blocked-calendar'] = function (day) {
-            return isDayBlocked(day);
-          };
-          recomputeDayBlocked = true;
-        }
-
-        if (isDayHighlighted !== prevIsDayHighlighted) {
-          this.modifiers['highlighted-calendar'] = function (day) {
-            return isDayHighlighted(day);
-          };
-          recomputeDayHighlighted = true;
-        }
-
-        var recomputePropModifiers = recomputeOutsideRange || recomputeDayBlocked || recomputeDayHighlighted;
-
-        if (numberOfMonths !== prevNumberOfMonths || enableOutsideDays !== prevEnableOutsideDays || initialVisibleMonth !== prevInitialVisibleMonth && !prevFocused && focused) {
-          var newMonthState = this.getStateForNewMonth(nextProps);
-          var currentMonth = newMonthState.currentMonth;
-          visibleDays = newMonthState.visibleDays;
-
-          this.setState({
-            currentMonth: currentMonth,
-            visibleDays: visibleDays
-          });
-        }
-
-        var didDateChange = date !== prevDate;
-        var didFocusChange = focused !== prevFocused;
-
-        var modifiers = {};
-
-        if (didDateChange) {
-          modifiers = this.deleteModifier(modifiers, prevDate, 'selected');
-          modifiers = this.addModifier(modifiers, date, 'selected');
-        }
-
-        if (didFocusChange || recomputePropModifiers) {
-          (0, _object4['default'])(visibleDays).forEach(function (days) {
-            Object.keys(days).forEach(function (day) {
-              var momentObj = (0, _moment2['default'])(day);
-              if (_this2.isBlocked(momentObj)) {
-                modifiers = _this2.addModifier(modifiers, momentObj, 'blocked');
-              } else {
-                modifiers = _this2.deleteModifier(modifiers, momentObj, 'blocked');
-              }
-
-              if (didFocusChange || recomputeOutsideRange) {
-                if (isOutsideRange(momentObj)) {
-                  modifiers = _this2.addModifier(modifiers, momentObj, 'blocked-out-of-range');
-                } else {
-                  modifiers = _this2.deleteModifier(modifiers, momentObj, 'blocked-out-of-range');
-                }
-              }
-
-              if (didFocusChange || recomputeDayBlocked) {
-                if (isDayBlocked(momentObj)) {
-                  modifiers = _this2.addModifier(modifiers, momentObj, 'blocked-calendar');
-                } else {
-                  modifiers = _this2.deleteModifier(modifiers, momentObj, 'blocked-calendar');
-                }
-              }
-
-              if (didFocusChange || recomputeDayHighlighted) {
-                if (isDayHighlighted(momentObj)) {
-                  modifiers = _this2.addModifier(modifiers, momentObj, 'highlighted-calendar');
-                } else {
-                  modifiers = _this2.deleteModifier(modifiers, momentObj, 'highlighted-calendar');
-                }
-              }
-            });
-          });
-        }
-
-        var today = (0, _moment2['default'])();
-        if (!(0, _isSameDay2['default'])(this.today, today)) {
-          modifiers = this.deleteModifier(modifiers, this.today, 'today');
-          modifiers = this.addModifier(modifiers, today, 'today');
-          this.today = today;
-        }
-
-        if (Object.keys(modifiers).length > 0) {
-          this.setState({
-            visibleDays: (0, _object2['default'])({}, visibleDays, modifiers)
-          });
-        }
-      }
-
-      return componentWillReceiveProps;
-    }()
-  }, {
-    key: 'componentWillUpdate',
-    value: function () {
-      function componentWillUpdate() {
-        this.today = (0, _moment2['default'])();
-      }
-
-      return componentWillUpdate;
-    }()
-  }, {
-    key: 'onDayClick',
-    value: function () {
-      function onDayClick(day, e) {
-        if (e) e.preventDefault();
-        if (this.isBlocked(day)) return;
-        var _props2 = this.props,
-            onDateChange = _props2.onDateChange,
-            keepOpenOnDateSelect = _props2.keepOpenOnDateSelect,
-            onFocusChange = _props2.onFocusChange,
-            onClose = _props2.onClose;
-
-
-        onDateChange(day);
-        if (!keepOpenOnDateSelect) {
-          onFocusChange({ focused: false });
-          onClose({ date: day });
-        }
-      }
-
-      return onDayClick;
-    }()
-  }, {
-    key: 'onDayMouseEnter',
-    value: function () {
-      function onDayMouseEnter(day) {
-        if (this.isTouchDevice) return;
-        var _state = this.state,
-            hoverDate = _state.hoverDate,
-            visibleDays = _state.visibleDays;
-
-
-        var modifiers = this.deleteModifier({}, hoverDate, 'hovered');
-        modifiers = this.addModifier(modifiers, day, 'hovered');
-
-        this.setState({
-          hoverDate: day,
-          visibleDays: (0, _object2['default'])({}, visibleDays, modifiers)
-        });
-      }
-
-      return onDayMouseEnter;
-    }()
-  }, {
-    key: 'onDayMouseLeave',
-    value: function () {
-      function onDayMouseLeave() {
-        var _state2 = this.state,
-            hoverDate = _state2.hoverDate,
-            visibleDays = _state2.visibleDays;
-
-        if (this.isTouchDevice || !hoverDate) return;
-
-        var modifiers = this.deleteModifier({}, hoverDate, 'hovered');
-
-        this.setState({
-          hoverDate: null,
-          visibleDays: (0, _object2['default'])({}, visibleDays, modifiers)
-        });
-      }
-
-      return onDayMouseLeave;
-    }()
-  }, {
-    key: 'onPrevMonthClick',
-    value: function () {
-      function onPrevMonthClick() {
-        var _props3 = this.props,
-            onPrevMonthClick = _props3.onPrevMonthClick,
-            numberOfMonths = _props3.numberOfMonths,
-            enableOutsideDays = _props3.enableOutsideDays;
-        var _state3 = this.state,
-            currentMonth = _state3.currentMonth,
-            visibleDays = _state3.visibleDays;
-
-
-        var newVisibleDays = {};
-        Object.keys(visibleDays).sort().slice(0, numberOfMonths + 1).forEach(function (month) {
-          newVisibleDays[month] = visibleDays[month];
-        });
-
-        var prevMonth = currentMonth.clone().subtract(1, 'month');
-        var prevMonthVisibleDays = (0, _getVisibleDays2['default'])(prevMonth, 1, enableOutsideDays);
-
-        this.setState({
-          currentMonth: prevMonth,
-          visibleDays: (0, _object2['default'])({}, newVisibleDays, this.getModifiers(prevMonthVisibleDays))
-        }, function () {
-          onPrevMonthClick(prevMonth.clone());
-        });
-      }
-
-      return onPrevMonthClick;
-    }()
-  }, {
-    key: 'onNextMonthClick',
-    value: function () {
-      function onNextMonthClick() {
-        var _props4 = this.props,
-            onNextMonthClick = _props4.onNextMonthClick,
-            numberOfMonths = _props4.numberOfMonths,
-            enableOutsideDays = _props4.enableOutsideDays;
-        var _state4 = this.state,
-            currentMonth = _state4.currentMonth,
-            visibleDays = _state4.visibleDays;
-
-
-        var newVisibleDays = {};
-        Object.keys(visibleDays).sort().slice(1).forEach(function (month) {
-          newVisibleDays[month] = visibleDays[month];
-        });
-
-        var nextMonth = currentMonth.clone().add(numberOfMonths, 'month');
-        var nextMonthVisibleDays = (0, _getVisibleDays2['default'])(nextMonth, 1, enableOutsideDays);
-
-        var newCurrentMonth = currentMonth.clone().add(1, 'month');
-        this.setState({
-          currentMonth: newCurrentMonth,
-          visibleDays: (0, _object2['default'])({}, newVisibleDays, this.getModifiers(nextMonthVisibleDays))
-        }, function () {
-          onNextMonthClick(newCurrentMonth.clone());
-        });
-      }
-
-      return onNextMonthClick;
-    }()
-  }, {
-    key: 'onMonthChange',
-    value: function () {
-      function onMonthChange(newMonth) {
-        var _props5 = this.props,
-            numberOfMonths = _props5.numberOfMonths,
-            enableOutsideDays = _props5.enableOutsideDays,
-            orientation = _props5.orientation;
-
-        var withoutTransitionMonths = orientation === _constants.VERTICAL_SCROLLABLE;
-        var newVisibleDays = (0, _getVisibleDays2['default'])(newMonth, numberOfMonths, enableOutsideDays, withoutTransitionMonths);
-
-        this.setState({
-          currentMonth: newMonth.clone(),
-          visibleDays: this.getModifiers(newVisibleDays)
-        });
-      }
-
-      return onMonthChange;
-    }()
-  }, {
-    key: 'onYearChange',
-    value: function () {
-      function onYearChange(newMonth) {
-        var _props6 = this.props,
-            numberOfMonths = _props6.numberOfMonths,
-            enableOutsideDays = _props6.enableOutsideDays,
-            orientation = _props6.orientation;
-
-        var withoutTransitionMonths = orientation === _constants.VERTICAL_SCROLLABLE;
-        var newVisibleDays = (0, _getVisibleDays2['default'])(newMonth, numberOfMonths, enableOutsideDays, withoutTransitionMonths);
-
-        this.setState({
-          currentMonth: newMonth.clone(),
-          visibleDays: this.getModifiers(newVisibleDays)
-        });
-      }
-
-      return onYearChange;
-    }()
-  }, {
-    key: 'getFirstFocusableDay',
-    value: function () {
-      function getFirstFocusableDay(newMonth) {
-        var _this3 = this;
-
-        var _props7 = this.props,
-            date = _props7.date,
-            numberOfMonths = _props7.numberOfMonths;
-
-
-        var focusedDate = newMonth.clone().startOf('month');
-        if (date) {
-          focusedDate = date.clone();
-        }
-
-        if (this.isBlocked(focusedDate)) {
-          var days = [];
-          var lastVisibleDay = newMonth.clone().add(numberOfMonths - 1, 'months').endOf('month');
-          var currentDay = focusedDate.clone();
-          while (!(0, _isAfterDay2['default'])(currentDay, lastVisibleDay)) {
-            currentDay = currentDay.clone().add(1, 'day');
-            days.push(currentDay);
-          }
-
-          var viableDays = days.filter(function (day) {
-            return !_this3.isBlocked(day) && (0, _isAfterDay2['default'])(day, focusedDate);
-          });
-          if (viableDays.length > 0) {
-            var _viableDays = _slicedToArray(viableDays, 1);
-
-            focusedDate = _viableDays[0];
-          }
-        }
-
-        return focusedDate;
-      }
-
-      return getFirstFocusableDay;
-    }()
-  }, {
-    key: 'getModifiers',
-    value: function () {
-      function getModifiers(visibleDays) {
-        var _this4 = this;
-
-        var modifiers = {};
-        Object.keys(visibleDays).forEach(function (month) {
-          modifiers[month] = {};
-          visibleDays[month].forEach(function (day) {
-            modifiers[month][(0, _toISODateString2['default'])(day)] = _this4.getModifiersForDay(day);
-          });
-        });
-
-        return modifiers;
-      }
-
-      return getModifiers;
-    }()
-  }, {
-    key: 'getModifiersForDay',
-    value: function () {
-      function getModifiersForDay(day) {
-        var _this5 = this;
-
-        return new Set(Object.keys(this.modifiers).filter(function (modifier) {
-          return _this5.modifiers[modifier](day);
-        }));
-      }
-
-      return getModifiersForDay;
-    }()
-  }, {
-    key: 'getStateForNewMonth',
-    value: function () {
-      function getStateForNewMonth(nextProps) {
-        var _this6 = this;
-
-        var initialVisibleMonth = nextProps.initialVisibleMonth,
-            date = nextProps.date,
-            numberOfMonths = nextProps.numberOfMonths,
-            enableOutsideDays = nextProps.enableOutsideDays;
-
-        var initialVisibleMonthThunk = initialVisibleMonth || (date ? function () {
-          return date;
-        } : function () {
-          return _this6.today;
-        });
-        var currentMonth = initialVisibleMonthThunk();
-        var visibleDays = this.getModifiers((0, _getVisibleDays2['default'])(currentMonth, numberOfMonths, enableOutsideDays));
-        return { currentMonth: currentMonth, visibleDays: visibleDays };
-      }
-
-      return getStateForNewMonth;
-    }()
-  }, {
-    key: 'addModifier',
-    value: function () {
-      function addModifier(updatedDays, day, modifier) {
-        var _props8 = this.props,
-            numberOfVisibleMonths = _props8.numberOfMonths,
-            enableOutsideDays = _props8.enableOutsideDays,
-            orientation = _props8.orientation;
-        var _state5 = this.state,
-            firstVisibleMonth = _state5.currentMonth,
-            visibleDays = _state5.visibleDays;
-
-
-        var currentMonth = firstVisibleMonth;
-        var numberOfMonths = numberOfVisibleMonths;
-        if (orientation === _constants.VERTICAL_SCROLLABLE) {
-          numberOfMonths = Object.keys(visibleDays).length;
-        } else {
-          currentMonth = currentMonth.clone().subtract(1, 'month');
-          numberOfMonths += 2;
-        }
-        if (!day || !(0, _isDayVisible2['default'])(day, currentMonth, numberOfMonths, enableOutsideDays)) {
-          return updatedDays;
-        }
-
-        var iso = (0, _toISODateString2['default'])(day);
-
-        var updatedDaysAfterAddition = (0, _object2['default'])({}, updatedDays);
-        if (enableOutsideDays) {
-          var monthsToUpdate = Object.keys(visibleDays).filter(function (monthKey) {
-            return Object.keys(visibleDays[monthKey]).indexOf(iso) > -1;
-          });
-
-          updatedDaysAfterAddition = monthsToUpdate.reduce(function (days, monthIso) {
-            var month = updatedDays[monthIso] || visibleDays[monthIso];
-            var modifiers = new Set(month[iso]);
-            modifiers.add(modifier);
-            return (0, _object2['default'])({}, days, _defineProperty({}, monthIso, (0, _object2['default'])({}, month, _defineProperty({}, iso, modifiers))));
-          }, updatedDaysAfterAddition);
-        } else {
-          var monthIso = (0, _toISOMonthString2['default'])(day);
-          var month = updatedDays[monthIso] || visibleDays[monthIso];
-
-          var modifiers = new Set(month[iso]);
-          modifiers.add(modifier);
-          updatedDaysAfterAddition = (0, _object2['default'])({}, updatedDaysAfterAddition, _defineProperty({}, monthIso, (0, _object2['default'])({}, month, _defineProperty({}, iso, modifiers))));
-        }
-
-        return updatedDaysAfterAddition;
-      }
-
-      return addModifier;
-    }()
-  }, {
-    key: 'deleteModifier',
-    value: function () {
-      function deleteModifier(updatedDays, day, modifier) {
-        var _props9 = this.props,
-            numberOfVisibleMonths = _props9.numberOfMonths,
-            enableOutsideDays = _props9.enableOutsideDays,
-            orientation = _props9.orientation;
-        var _state6 = this.state,
-            firstVisibleMonth = _state6.currentMonth,
-            visibleDays = _state6.visibleDays;
-
-
-        var currentMonth = firstVisibleMonth;
-        var numberOfMonths = numberOfVisibleMonths;
-        if (orientation === _constants.VERTICAL_SCROLLABLE) {
-          numberOfMonths = Object.keys(visibleDays).length;
-        } else {
-          currentMonth = currentMonth.clone().subtract(1, 'month');
-          numberOfMonths += 2;
-        }
-        if (!day || !(0, _isDayVisible2['default'])(day, currentMonth, numberOfMonths, enableOutsideDays)) {
-          return updatedDays;
-        }
-
-        var iso = (0, _toISODateString2['default'])(day);
-
-        var updatedDaysAfterDeletion = (0, _object2['default'])({}, updatedDays);
-        if (enableOutsideDays) {
-          var monthsToUpdate = Object.keys(visibleDays).filter(function (monthKey) {
-            return Object.keys(visibleDays[monthKey]).indexOf(iso) > -1;
-          });
-
-          updatedDaysAfterDeletion = monthsToUpdate.reduce(function (days, monthIso) {
-            var month = updatedDays[monthIso] || visibleDays[monthIso];
-            var modifiers = new Set(month[iso]);
-            modifiers['delete'](modifier);
-            return (0, _object2['default'])({}, days, _defineProperty({}, monthIso, (0, _object2['default'])({}, month, _defineProperty({}, iso, modifiers))));
-          }, updatedDaysAfterDeletion);
-        } else {
-          var monthIso = (0, _toISOMonthString2['default'])(day);
-          var month = updatedDays[monthIso] || visibleDays[monthIso];
-
-          var modifiers = new Set(month[iso]);
-          modifiers['delete'](modifier);
-          updatedDaysAfterDeletion = (0, _object2['default'])({}, updatedDaysAfterDeletion, _defineProperty({}, monthIso, (0, _object2['default'])({}, month, _defineProperty({}, iso, modifiers))));
-        }
-
-        return updatedDaysAfterDeletion;
-      }
-
-      return deleteModifier;
-    }()
-  }, {
-    key: 'isBlocked',
-    value: function () {
-      function isBlocked(day) {
-        var _props10 = this.props,
-            isDayBlocked = _props10.isDayBlocked,
-            isOutsideRange = _props10.isOutsideRange;
-
-        return isDayBlocked(day) || isOutsideRange(day);
-      }
-
-      return isBlocked;
-    }()
-  }, {
-    key: 'isHovered',
-    value: function () {
-      function isHovered(day) {
-        var _ref = this.state || {},
-            hoverDate = _ref.hoverDate;
-
-        return (0, _isSameDay2['default'])(day, hoverDate);
-      }
-
-      return isHovered;
-    }()
-  }, {
-    key: 'isSelected',
-    value: function () {
-      function isSelected(day) {
-        var date = this.props.date;
-
-        return (0, _isSameDay2['default'])(day, date);
-      }
-
-      return isSelected;
-    }()
-  }, {
-    key: 'isToday',
-    value: function () {
-      function isToday(day) {
-        return (0, _isSameDay2['default'])(day, this.today);
-      }
-
-      return isToday;
-    }()
-  }, {
-    key: 'isFirstDayOfWeek',
-    value: function () {
-      function isFirstDayOfWeek(day) {
-        var firstDayOfWeek = this.props.firstDayOfWeek;
-
-        return day.day() === (firstDayOfWeek || _moment2['default'].localeData().firstDayOfWeek());
-      }
-
-      return isFirstDayOfWeek;
-    }()
-  }, {
-    key: 'isLastDayOfWeek',
-    value: function () {
-      function isLastDayOfWeek(day) {
-        var firstDayOfWeek = this.props.firstDayOfWeek;
-
-        return day.day() === ((firstDayOfWeek || _moment2['default'].localeData().firstDayOfWeek()) + 6) % 7;
-      }
-
-      return isLastDayOfWeek;
-    }()
-  }, {
-    key: 'render',
-    value: function () {
-      function render() {
-        var _props11 = this.props,
-            numberOfMonths = _props11.numberOfMonths,
-            orientation = _props11.orientation,
-            monthFormat = _props11.monthFormat,
-            renderMonthText = _props11.renderMonthText,
-            navPrev = _props11.navPrev,
-            navNext = _props11.navNext,
-            onOutsideClick = _props11.onOutsideClick,
-            withPortal = _props11.withPortal,
-            focused = _props11.focused,
-            enableOutsideDays = _props11.enableOutsideDays,
-            hideKeyboardShortcutsPanel = _props11.hideKeyboardShortcutsPanel,
-            daySize = _props11.daySize,
-            firstDayOfWeek = _props11.firstDayOfWeek,
-            renderCalendarDay = _props11.renderCalendarDay,
-            renderDayContents = _props11.renderDayContents,
-            renderCalendarInfo = _props11.renderCalendarInfo,
-            renderMonthElement = _props11.renderMonthElement,
-            calendarInfoPosition = _props11.calendarInfoPosition,
-            isFocused = _props11.isFocused,
-            isRTL = _props11.isRTL,
-            phrases = _props11.phrases,
-            dayAriaLabelFormat = _props11.dayAriaLabelFormat,
-            onBlur = _props11.onBlur,
-            showKeyboardShortcuts = _props11.showKeyboardShortcuts,
-            weekDayFormat = _props11.weekDayFormat,
-            verticalHeight = _props11.verticalHeight,
-            noBorder = _props11.noBorder,
-            transitionDuration = _props11.transitionDuration,
-            verticalBorderSpacing = _props11.verticalBorderSpacing,
-            horizontalMonthPadding = _props11.horizontalMonthPadding;
-        var _state7 = this.state,
-            currentMonth = _state7.currentMonth,
-            visibleDays = _state7.visibleDays;
-
-
-        return _react2['default'].createElement(_DayPicker2['default'], {
-          orientation: orientation,
-          enableOutsideDays: enableOutsideDays,
-          modifiers: visibleDays,
-          numberOfMonths: numberOfMonths,
-          onDayClick: this.onDayClick,
-          onDayMouseEnter: this.onDayMouseEnter,
-          onDayMouseLeave: this.onDayMouseLeave,
-          onPrevMonthClick: this.onPrevMonthClick,
-          onNextMonthClick: this.onNextMonthClick,
-          onMonthChange: this.onMonthChange,
-          onYearChange: this.onYearChange,
-          monthFormat: monthFormat,
-          withPortal: withPortal,
-          hidden: !focused,
-          hideKeyboardShortcutsPanel: hideKeyboardShortcutsPanel,
-          initialVisibleMonth: function () {
-            function initialVisibleMonth() {
-              return currentMonth;
-            }
-
-            return initialVisibleMonth;
-          }(),
-          firstDayOfWeek: firstDayOfWeek,
-          onOutsideClick: onOutsideClick,
-          navPrev: navPrev,
-          navNext: navNext,
-          renderMonthText: renderMonthText,
-          renderCalendarDay: renderCalendarDay,
-          renderDayContents: renderDayContents,
-          renderCalendarInfo: renderCalendarInfo,
-          renderMonthElement: renderMonthElement,
-          calendarInfoPosition: calendarInfoPosition,
-          isFocused: isFocused,
-          getFirstFocusableDay: this.getFirstFocusableDay,
-          onBlur: onBlur,
-          phrases: phrases,
-          daySize: daySize,
-          isRTL: isRTL,
-          showKeyboardShortcuts: showKeyboardShortcuts,
-          weekDayFormat: weekDayFormat,
-          dayAriaLabelFormat: dayAriaLabelFormat,
-          verticalHeight: verticalHeight,
-          noBorder: noBorder,
-          transitionDuration: transitionDuration,
-          verticalBorderSpacing: verticalBorderSpacing,
-          horizontalMonthPadding: horizontalMonthPadding
-        });
-      }
-
-      return render;
-    }()
-  }]);
-
-  return DayPickerSingleDateController;
-}(_react2['default'].Component);
-
-exports['default'] = DayPickerSingleDateController;
-
-
-DayPickerSingleDateController.propTypes = propTypes;
-DayPickerSingleDateController.defaultProps = defaultProps;
-
-/***/ }),
-/* 195 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _propTypes = __webpack_require__(31);
-
-var _propTypes2 = _interopRequireDefault(_propTypes);
-
-var _reactMomentProptypes = __webpack_require__(64);
-
-var _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes);
-
-var _airbnbPropTypes = __webpack_require__(43);
-
-var _defaultPhrases = __webpack_require__(47);
-
-var _getPhrasePropTypes = __webpack_require__(51);
-
-var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);
-
-var _IconPositionShape = __webpack_require__(92);
-
-var _IconPositionShape2 = _interopRequireDefault(_IconPositionShape);
-
-var _OrientationShape = __webpack_require__(174);
-
-var _OrientationShape2 = _interopRequireDefault(_OrientationShape);
-
-var _AnchorDirectionShape = __webpack_require__(175);
-
-var _AnchorDirectionShape2 = _interopRequireDefault(_AnchorDirectionShape);
-
-var _OpenDirectionShape = __webpack_require__(83);
-
-var _OpenDirectionShape2 = _interopRequireDefault(_OpenDirectionShape);
-
-var _DayOfWeekShape = __webpack_require__(75);
-
-var _DayOfWeekShape2 = _interopRequireDefault(_DayOfWeekShape);
-
-var _CalendarInfoPositionShape = __webpack_require__(93);
-
-var _CalendarInfoPositionShape2 = _interopRequireDefault(_CalendarInfoPositionShape);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-exports['default'] = {
-  // required props for a functional interactive SingleDatePicker
-  date: _reactMomentProptypes2['default'].momentObj,
-  onDateChange: _propTypes2['default'].func.isRequired,
-
-  focused: _propTypes2['default'].bool,
-  onFocusChange: _propTypes2['default'].func.isRequired,
-
-  // input related props
-  id: _propTypes2['default'].string.isRequired,
-  placeholder: _propTypes2['default'].string,
-  disabled: _propTypes2['default'].bool,
-  required: _propTypes2['default'].bool,
-  readOnly: _propTypes2['default'].bool,
-  screenReaderInputMessage: _propTypes2['default'].string,
-  showClearDate: _propTypes2['default'].bool,
-  customCloseIcon: _propTypes2['default'].node,
-  showDefaultInputIcon: _propTypes2['default'].bool,
-  inputIconPosition: _IconPositionShape2['default'],
-  customInputIcon: _propTypes2['default'].node,
-  noBorder: _propTypes2['default'].bool,
-  block: _propTypes2['default'].bool,
-  small: _propTypes2['default'].bool,
-  regular: _propTypes2['default'].bool,
-  verticalSpacing: _airbnbPropTypes.nonNegativeInteger,
-  keepFocusOnInput: _propTypes2['default'].bool,
-
-  // calendar presentation and interaction related props
-  renderMonthText: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),
-  renderMonthElement: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),
-  orientation: _OrientationShape2['default'],
-  anchorDirection: _AnchorDirectionShape2['default'],
-  openDirection: _OpenDirectionShape2['default'],
-  horizontalMargin: _propTypes2['default'].number,
-  withPortal: _propTypes2['default'].bool,
-  withFullScreenPortal: _propTypes2['default'].bool,
-  appendToBody: _propTypes2['default'].bool,
-  disableScroll: _propTypes2['default'].bool,
-  initialVisibleMonth: _propTypes2['default'].func,
-  firstDayOfWeek: _DayOfWeekShape2['default'],
-  numberOfMonths: _propTypes2['default'].number,
-  keepOpenOnDateSelect: _propTypes2['default'].bool,
-  reopenPickerOnClearDate: _propTypes2['default'].bool,
-  renderCalendarInfo: _propTypes2['default'].func,
-  calendarInfoPosition: _CalendarInfoPositionShape2['default'],
-  hideKeyboardShortcutsPanel: _propTypes2['default'].bool,
-  daySize: _airbnbPropTypes.nonNegativeInteger,
-  isRTL: _propTypes2['default'].bool,
-  verticalHeight: _airbnbPropTypes.nonNegativeInteger,
-  transitionDuration: _airbnbPropTypes.nonNegativeInteger,
-  horizontalMonthPadding: _airbnbPropTypes.nonNegativeInteger,
-
-  // navigation related props
-  navPrev: _propTypes2['default'].node,
-  navNext: _propTypes2['default'].node,
-
-  onPrevMonthClick: _propTypes2['default'].func,
-  onNextMonthClick: _propTypes2['default'].func,
-  onClose: _propTypes2['default'].func,
-
-  // day presentation and interaction related props
-  renderCalendarDay: _propTypes2['default'].func,
-  renderDayContents: _propTypes2['default'].func,
-  enableOutsideDays: _propTypes2['default'].bool,
-  isDayBlocked: _propTypes2['default'].func,
-  isOutsideRange: _propTypes2['default'].func,
-  isDayHighlighted: _propTypes2['default'].func,
-
-  // internationalization props
-  displayFormat: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].func]),
-  monthFormat: _propTypes2['default'].string,
-  weekDayFormat: _propTypes2['default'].string,
-  phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.SingleDatePickerPhrases)),
-  dayAriaLabelFormat: _propTypes2['default'].string
-};
-
-/***/ }),
-/* 196 */
-/***/ (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__(46);
-
-var _object2 = _interopRequireDefault(_object);
-
-var _react = __webpack_require__(27);
-
-var _react2 = _interopRequireDefault(_react);
-
-var _propTypes = __webpack_require__(31);
-
-var _propTypes2 = _interopRequireDefault(_propTypes);
-
-var _airbnbPropTypes = __webpack_require__(43);
-
-var _reactWithStyles = __webpack_require__(56);
-
-var _defaultPhrases = __webpack_require__(47);
-
-var _getPhrasePropTypes = __webpack_require__(51);
-
-var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);
-
-var _DateInput = __webpack_require__(181);
-
-var _DateInput2 = _interopRequireDefault(_DateInput);
-
-var _IconPositionShape = __webpack_require__(92);
-
-var _IconPositionShape2 = _interopRequireDefault(_IconPositionShape);
-
-var _CloseButton = __webpack_require__(96);
-
-var _CloseButton2 = _interopRequireDefault(_CloseButton);
-
-var _CalendarIcon = __webpack_require__(187);
-
-var _CalendarIcon2 = _interopRequireDefault(_CalendarIcon);
-
-var _OpenDirectionShape = __webpack_require__(83);
-
-var _OpenDirectionShape2 = _interopRequireDefault(_OpenDirectionShape);
-
-var _constants = __webpack_require__(39);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-var propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, {
-  id: _propTypes2['default'].string.isRequired,
-  placeholder: _propTypes2['default'].string, // also used as label
-  displayValue: _propTypes2['default'].string,
-  screenReaderMessage: _propTypes2['default'].string,
-  focused: _propTypes2['default'].bool,
-  isFocused: _propTypes2['default'].bool, // describes actual DOM focus
-  disabled: _propTypes2['default'].bool,
-  required: _propTypes2['default'].bool,
-  readOnly: _propTypes2['default'].bool,
-  openDirection: _OpenDirectionShape2['default'],
-  showCaret: _propTypes2['default'].bool,
-  showClearDate: _propTypes2['default'].bool,
-  customCloseIcon: _propTypes2['default'].node,
-  showDefaultInputIcon: _propTypes2['default'].bool,
-  inputIconPosition: _IconPositionShape2['default'],
-  customInputIcon: _propTypes2['default'].node,
-  isRTL: _propTypes2['default'].bool,
-  noBorder: _propTypes2['default'].bool,
-  block: _propTypes2['default'].bool,
-  small: _propTypes2['default'].bool,
-  regular: _propTypes2['default'].bool,
-  verticalSpacing: _airbnbPropTypes.nonNegativeInteger,
-
-  onChange: _propTypes2['default'].func,
-  onClearDate: _propTypes2['default'].func,
-  onFocus: _propTypes2['default'].func,
-  onKeyDownShiftTab: _propTypes2['default'].func,
-  onKeyDownTab: _propTypes2['default'].func,
-  onKeyDownArrowDown: _propTypes2['default'].func,
-  onKeyDownQuestionMark: _propTypes2['default'].func,
-
-  // i18n
-  phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.SingleDatePickerInputPhrases))
-}));
-
-var defaultProps = {
-  placeholder: 'Select Date',
-  displayValue: '',
-  screenReaderMessage: '',
-  focused: false,
-  isFocused: false,
-  disabled: false,
-  required: false,
-  readOnly: false,
-  openDirection: _constants.OPEN_DOWN,
-  showCaret: false,
-  showClearDate: false,
-  showDefaultInputIcon: false,
-  inputIconPosition: _constants.ICON_BEFORE_POSITION,
-  customCloseIcon: null,
-  customInputIcon: null,
-  isRTL: false,
-  noBorder: false,
-  block: false,
-  small: false,
-  regular: false,
-  verticalSpacing: undefined,
-
-  onChange: function () {
-    function onChange() {}
-
-    return onChange;
-  }(),
-  onClearDate: function () {
-    function onClearDate() {}
-
-    return onClearDate;
-  }(),
-  onFocus: function () {
-    function onFocus() {}
-
-    return onFocus;
-  }(),
-  onKeyDownShiftTab: function () {
-    function onKeyDownShiftTab() {}
-
-    return onKeyDownShiftTab;
-  }(),
-  onKeyDownTab: function () {
-    function onKeyDownTab() {}
-
-    return onKeyDownTab;
-  }(),
-  onKeyDownArrowDown: function () {
-    function onKeyDownArrowDown() {}
-
-    return onKeyDownArrowDown;
-  }(),
-  onKeyDownQuestionMark: function () {
-    function onKeyDownQuestionMark() {}
-
-    return onKeyDownQuestionMark;
-  }(),
-
-
-  // i18n
-  phrases: _defaultPhrases.SingleDatePickerInputPhrases
-};
-
-/* eslint react/no-this-in-sfc: 1 */
-
-function SingleDatePickerInput(_ref) {
-  var id = _ref.id,
-      placeholder = _ref.placeholder,
-      displayValue = _ref.displayValue,
-      focused = _ref.focused,
-      isFocused = _ref.isFocused,
-      disabled = _ref.disabled,
-      required = _ref.required,
-      readOnly = _ref.readOnly,
-      showCaret = _ref.showCaret,
-      showClearDate = _ref.showClearDate,
-      showDefaultInputIcon = _ref.showDefaultInputIcon,
-      inputIconPosition = _ref.inputIconPosition,
-      phrases = _ref.phrases,
-      onClearDate = _ref.onClearDate,
-      onChange = _ref.onChange,
-      onFocus = _ref.onFocus,
-      onKeyDownShiftTab = _ref.onKeyDownShiftTab,
-      onKeyDownTab = _ref.onKeyDownTab,
-      onKeyDownArrowDown = _ref.onKeyDownArrowDown,
-      onKeyDownQuestionMark = _ref.onKeyDownQuestionMark,
-      screenReaderMessage = _ref.screenReaderMessage,
-      customCloseIcon = _ref.customCloseIcon,
-      customInputIcon = _ref.customInputIcon,
-      openDirection = _ref.openDirection,
-      isRTL = _ref.isRTL,
-      noBorder = _ref.noBorder,
-      block = _ref.block,
-      small = _ref.small,
-      regular = _ref.regular,
-      verticalSpacing = _ref.verticalSpacing,
-      styles = _ref.styles;
-
-  var calendarIcon = customInputIcon || _react2['default'].createElement(_CalendarIcon2['default'], (0, _reactWithStyles.css)(styles.SingleDatePickerInput_calendarIcon_svg));
-  var closeIcon = customCloseIcon || _react2['default'].createElement(_CloseButton2['default'], (0, _reactWithStyles.css)(styles.SingleDatePickerInput_clearDate_svg, small && styles.SingleDatePickerInput_clearDate_svg__small));
-
-  var screenReaderText = screenReaderMessage || phrases.keyboardNavigationInstructions;
-  var inputIcon = (showDefaultInputIcon || customInputIcon !== null) && _react2['default'].createElement(
-    'button',
-    _extends({}, (0, _reactWithStyles.css)(styles.SingleDatePickerInput_calendarIcon), {
-      type: 'button',
-      disabled: disabled,
-      'aria-label': phrases.focusStartDate,
-      onClick: onFocus
-    }),
-    calendarIcon
-  );
-
-  return _react2['default'].createElement(
-    'div',
-    (0, _reactWithStyles.css)(styles.SingleDatePickerInput, disabled && styles.SingleDatePickerInput__disabled, isRTL && styles.SingleDatePickerInput__rtl, !noBorder && styles.SingleDatePickerInput__withBorder, block && styles.SingleDatePickerInput__block, showClearDate && styles.SingleDatePickerInput__showClearDate),
-    inputIconPosition === _constants.ICON_BEFORE_POSITION && inputIcon,
-    _react2['default'].createElement(_DateInput2['default'], {
-      id: id,
-      placeholder: placeholder // also used as label
-      , displayValue: displayValue,
-      screenReaderMessage: screenReaderText,
-      focused: focused,
-      isFocused: isFocused,
-      disabled: disabled,
-      required: required,
-      readOnly: readOnly,
-      showCaret: showCaret,
-      onChange: onChange,
-      onFocus: onFocus,
-      onKeyDownShiftTab: onKeyDownShiftTab,
-      onKeyDownTab: onKeyDownTab,
-      onKeyDownArrowDown: onKeyDownArrowDown,
-      onKeyDownQuestionMark: onKeyDownQuestionMark,
-      openDirection: openDirection,
-      verticalSpacing: verticalSpacing,
-      small: small,
-      regular: regular,
-      block: block
-    }),
-    showClearDate && _react2['default'].createElement(
-      'button',
-      _extends({}, (0, _reactWithStyles.css)(styles.SingleDatePickerInput_clearDate, small && styles.SingleDatePickerInput_clearDate__small, !customCloseIcon && styles.SingleDatePickerInput_clearDate__default, !displayValue && styles.SingleDatePickerInput_clearDate__hide), {
-        type: 'button',
-        'aria-label': phrases.clearDate,
-        disabled: disabled,
-        onMouseEnter: this && this.onClearDateMouseEnter,
-        onMouseLeave: this && this.onClearDateMouseLeave,
-        onClick: onClearDate
-      }),
-      closeIcon
-    ),
-    inputIconPosition === _constants.ICON_AFTER_POSITION && inputIcon
-  );
-}
-
-SingleDatePickerInput.propTypes = propTypes;
-SingleDatePickerInput.defaultProps = defaultProps;
-
-exports['default'] = (0, _reactWithStyles.withStyles)(function (_ref2) {
-  var _ref2$reactDates = _ref2.reactDates,
-      border = _ref2$reactDates.border,
-      color = _ref2$reactDates.color;
-  return {
-    SingleDatePickerInput: {
-      display: 'inline-block',
-      backgroundColor: color.background
-    },
-
-    SingleDatePickerInput__withBorder: {
-      borderColor: color.border,
-      borderWidth: border.pickerInput.borderWidth,
-      borderStyle: border.pickerInput.borderStyle,
-      borderRadius: border.pickerInput.borderRadius
-    },
-
-    SingleDatePickerInput__rtl: {
-      direction: 'rtl'
-    },
-
-    SingleDatePickerInput__disabled: {
-      backgroundColor: color.disabled
-    },
-
-    SingleDatePickerInput__block: {
-      display: 'block'
-    },
-
-    SingleDatePickerInput__showClearDate: {
-      paddingRight: 30
-    },
-
-    SingleDatePickerInput_clearDate: {
-      background: 'none',
-      border: 0,
-      color: 'inherit',
-      font: 'inherit',
-      lineHeight: 'normal',
-      overflow: 'visible',
-
-      cursor: 'pointer',
-      padding: 10,
-      margin: '0 10px 0 5px',
-      position: 'absolute',
-      right: 0,
-      top: '50%',
-      transform: 'translateY(-50%)'
-    },
-
-    SingleDatePickerInput_clearDate__default: {
-      ':focus': {
-        background: color.core.border,
-        borderRadius: '50%'
-      },
-
-      ':hover': {
-        background: color.core.border,
-        borderRadius: '50%'
-      }
-    },
-
-    SingleDatePickerInput_clearDate__small: {
-      padding: 6
-    },
-
-    SingleDatePickerInput_clearDate__hide: {
-      visibility: 'hidden'
-    },
-
-    SingleDatePickerInput_clearDate_svg: {
-      fill: color.core.grayLight,
-      height: 12,
-      width: 15,
-      verticalAlign: 'middle'
-    },
-
-    SingleDatePickerInput_clearDate_svg__small: {
-      height: 9
-    },
-
-    SingleDatePickerInput_calendarIcon: {
-      background: 'none',
-      border: 0,
-      color: 'inherit',
-      font: 'inherit',
-      lineHeight: 'normal',
-      overflow: 'visible',
-
-      cursor: 'pointer',
-      display: 'inline-block',
-      verticalAlign: 'middle',
-      padding: 10,
-      margin: '0 5px 0 10px'
-    },
-
-    SingleDatePickerInput_calendarIcon_svg: {
-      fill: color.core.grayLight,
-      height: 15,
-      width: 14,
-      verticalAlign: 'middle'
-    }
-  };
-})(SingleDatePickerInput);
-
-/***/ }),
-/* 197 */,
-/* 198 */,
-/* 199 */,
-/* 200 */,
-/* 201 */,
-/* 202 */,
-/* 203 */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-
-// EXTERNAL MODULE: external "ReactDOM"
-var external_ReactDOM_ = __webpack_require__(52);
-var external_ReactDOM_default = /*#__PURE__*/__webpack_require__.n(external_ReactDOM_);
-
-// EXTERNAL MODULE: external "React"
-var external_React_ = __webpack_require__(27);
-var external_React_default = /*#__PURE__*/__webpack_require__.n(external_React_);
-
-// EXTERNAL MODULE: ./node_modules/prop-types/index.js
-var prop_types = __webpack_require__(31);
-var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
-
-// CONCATENATED MODULE: ./node_modules/react-portal/es/utils.js
-var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);
-// CONCATENATED MODULE: ./node_modules/react-portal/es/Portal.js
-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; }; }();
-
-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 Portal_Portal = function (_React$Component) {
-  _inherits(Portal, _React$Component);
-
-  function Portal() {
-    _classCallCheck(this, Portal);
-
-    return _possibleConstructorReturn(this, (Portal.__proto__ || Object.getPrototypeOf(Portal)).apply(this, arguments));
-  }
-
-  _createClass(Portal, [{
-    key: 'componentWillUnmount',
-    value: function componentWillUnmount() {
-      if (this.defaultNode) {
-        document.body.removeChild(this.defaultNode);
-      }
-      this.defaultNode = null;
-    }
-  }, {
-    key: 'render',
-    value: function render() {
-      if (!canUseDOM) {
-        return null;
-      }
-      if (!this.props.node && !this.defaultNode) {
-        this.defaultNode = document.createElement('div');
-        document.body.appendChild(this.defaultNode);
-      }
-      return external_ReactDOM_default.a.createPortal(this.props.children, this.props.node || this.defaultNode);
-    }
-  }]);
-
-  return Portal;
-}(external_React_default.a.Component);
-
-Portal_Portal.propTypes = {
-  children: prop_types_default.a.node.isRequired,
-  node: prop_types_default.a.any
-};
-
-/* harmony default export */ var es_Portal = (Portal_Portal);
-// CONCATENATED MODULE: ./node_modules/react-portal/es/LegacyPortal.js
-var LegacyPortal_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; }; }();
-
-function LegacyPortal_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
-
-function LegacyPortal_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 LegacyPortal_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; }
-
-// This file is a fallback for a consumer who is not yet on React 16
-// as createPortal was introduced in React 16
-
-
-
-
-
-var LegacyPortal_Portal = function (_React$Component) {
-  LegacyPortal_inherits(Portal, _React$Component);
-
-  function Portal() {
-    LegacyPortal_classCallCheck(this, Portal);
-
-    return LegacyPortal_possibleConstructorReturn(this, (Portal.__proto__ || Object.getPrototypeOf(Portal)).apply(this, arguments));
-  }
-
-  LegacyPortal_createClass(Portal, [{
-    key: 'componentDidMount',
-    value: function componentDidMount() {
-      this.renderPortal();
-    }
-  }, {
-    key: 'componentDidUpdate',
-    value: function componentDidUpdate(props) {
-      this.renderPortal();
-    }
-  }, {
-    key: 'componentWillUnmount',
-    value: function componentWillUnmount() {
-      external_ReactDOM_default.a.unmountComponentAtNode(this.defaultNode || this.props.node);
-      if (this.defaultNode) {
-        document.body.removeChild(this.defaultNode);
-      }
-      this.defaultNode = null;
-      this.portal = null;
-    }
-  }, {
-    key: 'renderPortal',
-    value: function renderPortal(props) {
-      if (!this.props.node && !this.defaultNode) {
-        this.defaultNode = document.createElement('div');
-        document.body.appendChild(this.defaultNode);
-      }
-
-      var children = this.props.children;
-      // https://gist.github.com/jimfb/d99e0678e9da715ccf6454961ef04d1b
-      if (typeof this.props.children.type === 'function') {
-        children = external_React_default.a.cloneElement(this.props.children);
-      }
-
-      this.portal = external_ReactDOM_default.a.unstable_renderSubtreeIntoContainer(this, children, this.props.node || this.defaultNode);
-    }
-  }, {
-    key: 'render',
-    value: function render() {
-      return null;
-    }
-  }]);
-
-  return Portal;
-}(external_React_default.a.Component);
-
-/* harmony default export */ var LegacyPortal = (LegacyPortal_Portal);
-
-
-LegacyPortal_Portal.propTypes = {
-  children: prop_types_default.a.node.isRequired,
-  node: prop_types_default.a.any
-};
-// CONCATENATED MODULE: ./node_modules/react-portal/es/PortalCompat.js
-
-
-
-
-
-var PortalCompat_Portal = void 0;
-
-if (external_ReactDOM_default.a.createPortal) {
-  PortalCompat_Portal = es_Portal;
-} else {
-  PortalCompat_Portal = LegacyPortal;
-}
-
-/* harmony default export */ var PortalCompat = (PortalCompat_Portal);
-// CONCATENATED MODULE: ./node_modules/react-portal/es/PortalWithState.js
-var PortalWithState_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; }; }();
-
-function PortalWithState_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
-
-function PortalWithState_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 PortalWithState_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 KEYCODES = {
-  ESCAPE: 27
-};
-
-var PortalWithState_PortalWithState = function (_React$Component) {
-  PortalWithState_inherits(PortalWithState, _React$Component);
-
-  function PortalWithState(props) {
-    PortalWithState_classCallCheck(this, PortalWithState);
-
-    var _this = PortalWithState_possibleConstructorReturn(this, (PortalWithState.__proto__ || Object.getPrototypeOf(PortalWithState)).call(this, props));
-
-    _this.portalNode = null;
-    _this.state = { active: !!props.defaultOpen };
-    _this.openPortal = _this.openPortal.bind(_this);
-    _this.closePortal = _this.closePortal.bind(_this);
-    _this.wrapWithPortal = _this.wrapWithPortal.bind(_this);
-    _this.handleOutsideMouseClick = _this.handleOutsideMouseClick.bind(_this);
-    _this.handleKeydown = _this.handleKeydown.bind(_this);
-    return _this;
-  }
-
-  PortalWithState_createClass(PortalWithState, [{
-    key: 'componentDidMount',
-    value: function componentDidMount() {
-      if (this.props.closeOnEsc) {
-        document.addEventListener('keydown', this.handleKeydown);
-      }
-      if (this.props.closeOnOutsideClick) {
-        document.addEventListener('click', this.handleOutsideMouseClick);
-      }
-    }
-  }, {
-    key: 'componentWillUnmount',
-    value: function componentWillUnmount() {
-      if (this.props.closeOnEsc) {
-        document.removeEventListener('keydown', this.handleKeydown);
-      }
-      if (this.props.closeOnOutsideClick) {
-        document.removeEventListener('click', this.handleOutsideMouseClick);
-      }
-    }
-  }, {
-    key: 'openPortal',
-    value: function openPortal(e) {
-      if (this.state.active) {
-        return;
-      }
-      if (e && e.nativeEvent) {
-        e.nativeEvent.stopImmediatePropagation();
-      }
-      this.setState({ active: true }, this.props.onOpen);
-    }
-  }, {
-    key: 'closePortal',
-    value: function closePortal() {
-      if (!this.state.active) {
-        return;
-      }
-      this.setState({ active: false }, this.props.onClose);
-    }
-  }, {
-    key: 'wrapWithPortal',
-    value: function wrapWithPortal(children) {
-      var _this2 = this;
-
-      if (!this.state.active) {
-        return null;
-      }
-      return external_React_default.a.createElement(
-        PortalCompat,
-        {
-          node: this.props.node,
-          key: 'react-portal',
-          ref: function ref(portalNode) {
-            return _this2.portalNode = portalNode;
-          }
-        },
-        children
-      );
-    }
-  }, {
-    key: 'handleOutsideMouseClick',
-    value: function handleOutsideMouseClick(e) {
-      if (!this.state.active) {
-        return;
-      }
-      var root = this.portalNode.props.node || this.portalNode.defaultNode;
-      if (!root || root.contains(e.target) || e.button && e.button !== 0) {
-        return;
-      }
-      this.closePortal();
-    }
-  }, {
-    key: 'handleKeydown',
-    value: function handleKeydown(e) {
-      if (e.keyCode === KEYCODES.ESCAPE && this.state.active) {
-        this.closePortal();
-      }
-    }
-  }, {
-    key: 'render',
-    value: function render() {
-      return this.props.children({
-        openPortal: this.openPortal,
-        closePortal: this.closePortal,
-        portal: this.wrapWithPortal,
-        isOpen: this.state.active
-      });
-    }
-  }]);
-
-  return PortalWithState;
-}(external_React_default.a.Component);
-
-PortalWithState_PortalWithState.propTypes = {
-  children: prop_types_default.a.func.isRequired,
-  defaultOpen: prop_types_default.a.bool,
-  node: prop_types_default.a.any,
-  closeOnEsc: prop_types_default.a.bool,
-  closeOnOutsideClick: prop_types_default.a.bool,
-  onOpen: prop_types_default.a.func,
-  onClose: prop_types_default.a.func
-};
-
-PortalWithState_PortalWithState.defaultProps = {
-  onOpen: function onOpen() {},
-  onClose: function onClose() {}
-};
-
-/* harmony default export */ var es_PortalWithState = (PortalWithState_PortalWithState);
-// CONCATENATED MODULE: ./node_modules/react-portal/es/index.js
-/* concated harmony reexport Portal */__webpack_require__.d(__webpack_exports__, "Portal", function() { return PortalCompat; });
-/* concated harmony reexport PortalWithState */__webpack_require__.d(__webpack_exports__, "PortalWithState", function() { return es_PortalWithState; });
-
-
-
-
-
-/***/ }),
-/* 204 */,
-/* 205 */,
-/* 206 */,
-/* 207 */,
-/* 208 */,
-/* 209 */,
-/* 210 */,
-/* 211 */,
-/* 212 */,
-/* 213 */,
-/* 214 */,
-/* 215 */,
-/* 216 */,
-/* 217 */,
-/* 218 */,
-/* 219 */,
-/* 220 */,
-/* 221 */
-/***/ (function(module, exports, __webpack_require__) {
-
-/*!
- * clipboard.js v2.0.4
- * https://zenorocha.github.io/clipboard.js
- * 
- * Licensed MIT © Zeno Rocha
- */
-(function webpackUniversalModuleDefinition(root, factory) {
-	if(true)
-		module.exports = factory();
-	else {}
-})(this, function() {
-return /******/ (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 = 0);
-/******/ })
-/************************************************************************/
-/******/ ([
-/* 0 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-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 _clipboardAction = __webpack_require__(1);
-
-var _clipboardAction2 = _interopRequireDefault(_clipboardAction);
-
-var _tinyEmitter = __webpack_require__(3);
-
-var _tinyEmitter2 = _interopRequireDefault(_tinyEmitter);
-
-var _goodListener = __webpack_require__(4);
-
-var _goodListener2 = _interopRequireDefault(_goodListener);
-
-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; }
-
-/**
- * Base class which takes one or more elements, adds event listeners to them,
- * and instantiates a new `ClipboardAction` on each click.
- */
-var Clipboard = function (_Emitter) {
-    _inherits(Clipboard, _Emitter);
-
-    /**
-     * @param {String|HTMLElement|HTMLCollection|NodeList} trigger
-     * @param {Object} options
-     */
-    function Clipboard(trigger, options) {
-        _classCallCheck(this, Clipboard);
-
-        var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this));
-
-        _this.resolveOptions(options);
-        _this.listenClick(trigger);
-        return _this;
-    }
-
-    /**
-     * Defines if attributes would be resolved using internal setter functions
-     * or custom functions that were passed in the constructor.
-     * @param {Object} options
-     */
-
-
-    _createClass(Clipboard, [{
-        key: 'resolveOptions',
-        value: function resolveOptions() {
-            var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
-
-            this.action = typeof options.action === 'function' ? options.action : this.defaultAction;
-            this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;
-            this.text = typeof options.text === 'function' ? options.text : this.defaultText;
-            this.container = _typeof(options.container) === 'object' ? options.container : document.body;
-        }
-
-        /**
-         * Adds a click event listener to the passed trigger.
-         * @param {String|HTMLElement|HTMLCollection|NodeList} trigger
-         */
-
-    }, {
-        key: 'listenClick',
-        value: function listenClick(trigger) {
-            var _this2 = this;
-
-            this.listener = (0, _goodListener2.default)(trigger, 'click', function (e) {
-                return _this2.onClick(e);
-            });
-        }
-
-        /**
-         * Defines a new `ClipboardAction` on each click event.
-         * @param {Event} e
-         */
-
-    }, {
-        key: 'onClick',
-        value: function onClick(e) {
-            var trigger = e.delegateTarget || e.currentTarget;
-
-            if (this.clipboardAction) {
-                this.clipboardAction = null;
-            }
-
-            this.clipboardAction = new _clipboardAction2.default({
-                action: this.action(trigger),
-                target: this.target(trigger),
-                text: this.text(trigger),
-                container: this.container,
-                trigger: trigger,
-                emitter: this
-            });
-        }
-
-        /**
-         * Default `action` lookup function.
-         * @param {Element} trigger
-         */
-
-    }, {
-        key: 'defaultAction',
-        value: function defaultAction(trigger) {
-            return getAttributeValue('action', trigger);
-        }
-
-        /**
-         * Default `target` lookup function.
-         * @param {Element} trigger
-         */
-
-    }, {
-        key: 'defaultTarget',
-        value: function defaultTarget(trigger) {
-            var selector = getAttributeValue('target', trigger);
-
-            if (selector) {
-                return document.querySelector(selector);
-            }
-        }
-
-        /**
-         * Returns the support of the given action, or all actions if no action is
-         * given.
-         * @param {String} [action]
-         */
-
-    }, {
-        key: 'defaultText',
-
-
-        /**
-         * Default `text` lookup function.
-         * @param {Element} trigger
-         */
-        value: function defaultText(trigger) {
-            return getAttributeValue('text', trigger);
-        }
-
-        /**
-         * Destroy lifecycle.
-         */
-
-    }, {
-        key: 'destroy',
-        value: function destroy() {
-            this.listener.destroy();
-
-            if (this.clipboardAction) {
-                this.clipboardAction.destroy();
-                this.clipboardAction = null;
-            }
-        }
-    }], [{
-        key: 'isSupported',
-        value: function isSupported() {
-            var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];
-
-            var actions = typeof action === 'string' ? [action] : action;
-            var support = !!document.queryCommandSupported;
-
-            actions.forEach(function (action) {
-                support = support && !!document.queryCommandSupported(action);
-            });
-
-            return support;
-        }
-    }]);
-
-    return Clipboard;
-}(_tinyEmitter2.default);
-
-/**
- * Helper function to retrieve attribute value.
- * @param {String} suffix
- * @param {Element} element
- */
-
-
-function getAttributeValue(suffix, element) {
-    var attribute = 'data-clipboard-' + suffix;
-
-    if (!element.hasAttribute(attribute)) {
-        return;
-    }
-
-    return element.getAttribute(attribute);
-}
-
-module.exports = Clipboard;
-
-/***/ }),
-/* 1 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-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 _select = __webpack_require__(2);
-
-var _select2 = _interopRequireDefault(_select);
-
-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"); } }
-
-/**
- * Inner class which performs selection from either `text` or `target`
- * properties and then executes copy or cut operations.
- */
-var ClipboardAction = function () {
-    /**
-     * @param {Object} options
-     */
-    function ClipboardAction(options) {
-        _classCallCheck(this, ClipboardAction);
-
-        this.resolveOptions(options);
-        this.initSelection();
-    }
-
-    /**
-     * Defines base properties passed from constructor.
-     * @param {Object} options
-     */
-
-
-    _createClass(ClipboardAction, [{
-        key: 'resolveOptions',
-        value: function resolveOptions() {
-            var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
-
-            this.action = options.action;
-            this.container = options.container;
-            this.emitter = options.emitter;
-            this.target = options.target;
-            this.text = options.text;
-            this.trigger = options.trigger;
-
-            this.selectedText = '';
-        }
-
-        /**
-         * Decides which selection strategy is going to be applied based
-         * on the existence of `text` and `target` properties.
-         */
-
-    }, {
-        key: 'initSelection',
-        value: function initSelection() {
-            if (this.text) {
-                this.selectFake();
-            } else if (this.target) {
-                this.selectTarget();
-            }
-        }
-
-        /**
-         * Creates a fake textarea element, sets its value from `text` property,
-         * and makes a selection on it.
-         */
-
-    }, {
-        key: 'selectFake',
-        value: function selectFake() {
-            var _this = this;
-
-            var isRTL = document.documentElement.getAttribute('dir') == 'rtl';
-
-            this.removeFake();
-
-            this.fakeHandlerCallback = function () {
-                return _this.removeFake();
-            };
-            this.fakeHandler = this.container.addEventListener('click', this.fakeHandlerCallback) || true;
-
-            this.fakeElem = document.createElement('textarea');
-            // Prevent zooming on iOS
-            this.fakeElem.style.fontSize = '12pt';
-            // Reset box model
-            this.fakeElem.style.border = '0';
-            this.fakeElem.style.padding = '0';
-            this.fakeElem.style.margin = '0';
-            // Move element out of screen horizontally
-            this.fakeElem.style.position = 'absolute';
-            this.fakeElem.style[isRTL ? 'right' : 'left'] = '-9999px';
-            // Move element to the same position vertically
-            var yPosition = window.pageYOffset || document.documentElement.scrollTop;
-            this.fakeElem.style.top = yPosition + 'px';
-
-            this.fakeElem.setAttribute('readonly', '');
-            this.fakeElem.value = this.text;
-
-            this.container.appendChild(this.fakeElem);
-
-            this.selectedText = (0, _select2.default)(this.fakeElem);
-            this.copyText();
-        }
-
-        /**
-         * Only removes the fake element after another click event, that way
-         * a user can hit `Ctrl+C` to copy because selection still exists.
-         */
-
-    }, {
-        key: 'removeFake',
-        value: function removeFake() {
-            if (this.fakeHandler) {
-                this.container.removeEventListener('click', this.fakeHandlerCallback);
-                this.fakeHandler = null;
-                this.fakeHandlerCallback = null;
-            }
-
-            if (this.fakeElem) {
-                this.container.removeChild(this.fakeElem);
-                this.fakeElem = null;
-            }
-        }
-
-        /**
-         * Selects the content from element passed on `target` property.
-         */
-
-    }, {
-        key: 'selectTarget',
-        value: function selectTarget() {
-            this.selectedText = (0, _select2.default)(this.target);
-            this.copyText();
-        }
-
-        /**
-         * Executes the copy operation based on the current selection.
-         */
-
-    }, {
-        key: 'copyText',
-        value: function copyText() {
-            var succeeded = void 0;
-
-            try {
-                succeeded = document.execCommand(this.action);
-            } catch (err) {
-                succeeded = false;
-            }
-
-            this.handleResult(succeeded);
-        }
-
-        /**
-         * Fires an event based on the copy operation result.
-         * @param {Boolean} succeeded
-         */
-
-    }, {
-        key: 'handleResult',
-        value: function handleResult(succeeded) {
-            this.emitter.emit(succeeded ? 'success' : 'error', {
-                action: this.action,
-                text: this.selectedText,
-                trigger: this.trigger,
-                clearSelection: this.clearSelection.bind(this)
-            });
-        }
-
-        /**
-         * Moves focus away from `target` and back to the trigger, removes current selection.
-         */
-
-    }, {
-        key: 'clearSelection',
-        value: function clearSelection() {
-            if (this.trigger) {
-                this.trigger.focus();
-            }
-
-            window.getSelection().removeAllRanges();
-        }
-
-        /**
-         * Sets the `action` to be performed which can be either 'copy' or 'cut'.
-         * @param {String} action
-         */
-
-    }, {
-        key: 'destroy',
-
-
-        /**
-         * Destroy lifecycle.
-         */
-        value: function destroy() {
-            this.removeFake();
-        }
-    }, {
-        key: 'action',
-        set: function set() {
-            var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'copy';
-
-            this._action = action;
-
-            if (this._action !== 'copy' && this._action !== 'cut') {
-                throw new Error('Invalid "action" value, use either "copy" or "cut"');
-            }
-        }
-
-        /**
-         * Gets the `action` property.
-         * @return {String}
-         */
-        ,
-        get: function get() {
-            return this._action;
-        }
-
-        /**
-         * Sets the `target` property using an element
-         * that will be have its content copied.
-         * @param {Element} target
-         */
-
-    }, {
-        key: 'target',
-        set: function set(target) {
-            if (target !== undefined) {
-                if (target && (typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object' && target.nodeType === 1) {
-                    if (this.action === 'copy' && target.hasAttribute('disabled')) {
-                        throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');
-                    }
-
-                    if (this.action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {
-                        throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');
-                    }
-
-                    this._target = target;
-                } else {
-                    throw new Error('Invalid "target" value, use a valid Element');
-                }
-            }
-        }
-
-        /**
-         * Gets the `target` property.
-         * @return {String|HTMLElement}
-         */
-        ,
-        get: function get() {
-            return this._target;
-        }
-    }]);
-
-    return ClipboardAction;
-}();
-
-module.exports = ClipboardAction;
-
-/***/ }),
-/* 2 */
-/***/ (function(module, exports) {
-
-function select(element) {
-    var selectedText;
-
-    if (element.nodeName === 'SELECT') {
-        element.focus();
-
-        selectedText = element.value;
-    }
-    else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {
-        var isReadOnly = element.hasAttribute('readonly');
-
-        if (!isReadOnly) {
-            element.setAttribute('readonly', '');
-        }
-
-        element.select();
-        element.setSelectionRange(0, element.value.length);
-
-        if (!isReadOnly) {
-            element.removeAttribute('readonly');
-        }
-
-        selectedText = element.value;
-    }
-    else {
-        if (element.hasAttribute('contenteditable')) {
-            element.focus();
-        }
-
-        var selection = window.getSelection();
-        var range = document.createRange();
-
-        range.selectNodeContents(element);
-        selection.removeAllRanges();
-        selection.addRange(range);
-
-        selectedText = selection.toString();
-    }
-
-    return selectedText;
-}
-
-module.exports = select;
-
-
-/***/ }),
-/* 3 */
-/***/ (function(module, exports) {
-
-function E () {
-  // Keep this empty so it's easier to inherit from
-  // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)
-}
-
-E.prototype = {
-  on: function (name, callback, ctx) {
-    var e = this.e || (this.e = {});
-
-    (e[name] || (e[name] = [])).push({
-      fn: callback,
-      ctx: ctx
-    });
-
-    return this;
-  },
-
-  once: function (name, callback, ctx) {
-    var self = this;
-    function listener () {
-      self.off(name, listener);
-      callback.apply(ctx, arguments);
-    };
-
-    listener._ = callback
-    return this.on(name, listener, ctx);
-  },
-
-  emit: function (name) {
-    var data = [].slice.call(arguments, 1);
-    var evtArr = ((this.e || (this.e = {}))[name] || []).slice();
-    var i = 0;
-    var len = evtArr.length;
-
-    for (i; i < len; i++) {
-      evtArr[i].fn.apply(evtArr[i].ctx, data);
-    }
-
-    return this;
-  },
-
-  off: function (name, callback) {
-    var e = this.e || (this.e = {});
-    var evts = e[name];
-    var liveEvents = [];
-
-    if (evts && callback) {
-      for (var i = 0, len = evts.length; i < len; i++) {
-        if (evts[i].fn !== callback && evts[i].fn._ !== callback)
-          liveEvents.push(evts[i]);
-      }
-    }
-
-    // Remove event from queue to prevent memory leak
-    // Suggested by https://github.com/lazd
-    // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910
-
-    (liveEvents.length)
-      ? e[name] = liveEvents
-      : delete e[name];
-
-    return this;
-  }
-};
-
-module.exports = E;
-
-
-/***/ }),
-/* 4 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var is = __webpack_require__(5);
-var delegate = __webpack_require__(6);
-
-/**
- * Validates all params and calls the right
- * listener function based on its target type.
- *
- * @param {String|HTMLElement|HTMLCollection|NodeList} target
- * @param {String} type
- * @param {Function} callback
- * @return {Object}
- */
-function listen(target, type, callback) {
-    if (!target && !type && !callback) {
-        throw new Error('Missing required arguments');
-    }
-
-    if (!is.string(type)) {
-        throw new TypeError('Second argument must be a String');
-    }
-
-    if (!is.fn(callback)) {
-        throw new TypeError('Third argument must be a Function');
-    }
-
-    if (is.node(target)) {
-        return listenNode(target, type, callback);
-    }
-    else if (is.nodeList(target)) {
-        return listenNodeList(target, type, callback);
-    }
-    else if (is.string(target)) {
-        return listenSelector(target, type, callback);
-    }
-    else {
-        throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');
-    }
-}
-
-/**
- * Adds an event listener to a HTML element
- * and returns a remove listener function.
- *
- * @param {HTMLElement} node
- * @param {String} type
- * @param {Function} callback
- * @return {Object}
- */
-function listenNode(node, type, callback) {
-    node.addEventListener(type, callback);
-
-    return {
-        destroy: function() {
-            node.removeEventListener(type, callback);
-        }
-    }
-}
-
-/**
- * Add an event listener to a list of HTML elements
- * and returns a remove listener function.
- *
- * @param {NodeList|HTMLCollection} nodeList
- * @param {String} type
- * @param {Function} callback
- * @return {Object}
- */
-function listenNodeList(nodeList, type, callback) {
-    Array.prototype.forEach.call(nodeList, function(node) {
-        node.addEventListener(type, callback);
-    });
-
-    return {
-        destroy: function() {
-            Array.prototype.forEach.call(nodeList, function(node) {
-                node.removeEventListener(type, callback);
-            });
-        }
-    }
-}
-
-/**
- * Add an event listener to a selector
- * and returns a remove listener function.
- *
- * @param {String} selector
- * @param {String} type
- * @param {Function} callback
- * @return {Object}
- */
-function listenSelector(selector, type, callback) {
-    return delegate(document.body, selector, type, callback);
-}
-
-module.exports = listen;
-
-
-/***/ }),
-/* 5 */
-/***/ (function(module, exports) {
-
-/**
- * Check if argument is a HTML element.
- *
- * @param {Object} value
- * @return {Boolean}
- */
-exports.node = function(value) {
-    return value !== undefined
-        && value instanceof HTMLElement
-        && value.nodeType === 1;
-};
-
-/**
- * Check if argument is a list of HTML elements.
- *
- * @param {Object} value
- * @return {Boolean}
- */
-exports.nodeList = function(value) {
-    var type = Object.prototype.toString.call(value);
-
-    return value !== undefined
-        && (type === '[object NodeList]' || type === '[object HTMLCollection]')
-        && ('length' in value)
-        && (value.length === 0 || exports.node(value[0]));
-};
-
-/**
- * Check if argument is a string.
- *
- * @param {Object} value
- * @return {Boolean}
- */
-exports.string = function(value) {
-    return typeof value === 'string'
-        || value instanceof String;
-};
-
-/**
- * Check if argument is a function.
- *
- * @param {Object} value
- * @return {Boolean}
- */
-exports.fn = function(value) {
-    var type = Object.prototype.toString.call(value);
-
-    return type === '[object Function]';
-};
-
-
-/***/ }),
-/* 6 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var closest = __webpack_require__(7);
-
-/**
- * Delegates event to a selector.
- *
- * @param {Element} element
- * @param {String} selector
- * @param {String} type
- * @param {Function} callback
- * @param {Boolean} useCapture
- * @return {Object}
- */
-function _delegate(element, selector, type, callback, useCapture) {
-    var listenerFn = listener.apply(this, arguments);
-
-    element.addEventListener(type, listenerFn, useCapture);
-
-    return {
-        destroy: function() {
-            element.removeEventListener(type, listenerFn, useCapture);
-        }
-    }
-}
-
-/**
- * Delegates event to a selector.
- *
- * @param {Element|String|Array} [elements]
- * @param {String} selector
- * @param {String} type
- * @param {Function} callback
- * @param {Boolean} useCapture
- * @return {Object}
- */
-function delegate(elements, selector, type, callback, useCapture) {
-    // Handle the regular Element usage
-    if (typeof elements.addEventListener === 'function') {
-        return _delegate.apply(null, arguments);
-    }
-
-    // Handle Element-less usage, it defaults to global delegation
-    if (typeof type === 'function') {
-        // Use `document` as the first parameter, then apply arguments
-        // This is a short way to .unshift `arguments` without running into deoptimizations
-        return _delegate.bind(null, document).apply(null, arguments);
-    }
-
-    // Handle Selector-based usage
-    if (typeof elements === 'string') {
-        elements = document.querySelectorAll(elements);
-    }
-
-    // Handle Array-like based usage
-    return Array.prototype.map.call(elements, function (element) {
-        return _delegate(element, selector, type, callback, useCapture);
-    });
-}
-
-/**
- * Finds closest match and invokes callback.
- *
- * @param {Element} element
- * @param {String} selector
- * @param {String} type
- * @param {Function} callback
- * @return {Function}
- */
-function listener(element, selector, type, callback) {
-    return function(e) {
-        e.delegateTarget = closest(e.target, selector);
-
-        if (e.delegateTarget) {
-            callback.call(element, e);
-        }
-    }
-}
-
-module.exports = delegate;
-
-
-/***/ }),
-/* 7 */
-/***/ (function(module, exports) {
-
-var DOCUMENT_NODE_TYPE = 9;
-
-/**
- * A polyfill for Element.matches()
- */
-if (typeof Element !== 'undefined' && !Element.prototype.matches) {
-    var proto = Element.prototype;
-
-    proto.matches = proto.matchesSelector ||
-                    proto.mozMatchesSelector ||
-                    proto.msMatchesSelector ||
-                    proto.oMatchesSelector ||
-                    proto.webkitMatchesSelector;
-}
-
-/**
- * Finds the closest parent that matches a selector.
- *
- * @param {Element} element
- * @param {String} selector
- * @return {Function}
- */
-function closest (element, selector) {
-    while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {
-        if (typeof element.matches === 'function' &&
-            element.matches(selector)) {
-          return element;
-        }
-        element = element.parentNode;
-    }
-}
-
-module.exports = closest;
-
-
-/***/ })
-/******/ ]);
-});
-
-/***/ }),
-/* 222 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var __WEBPACK_AMD_DEFINE_RESULT__;/*global define:false */
-/**
- * Copyright 2012-2017 Craig Campbell
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * Mousetrap is a simple keyboard shortcut library for Javascript with
- * no external dependencies
- *
- * @version 1.6.3
- * @url craig.is/killing/mice
- */
-(function(window, document, undefined) {
-
-    // Check if mousetrap is used inside browser, if not, return
-    if (!window) {
-        return;
-    }
-
-    /**
-     * mapping of special keycodes to their corresponding keys
-     *
-     * everything in this dictionary cannot use keypress events
-     * so it has to be here to map to the correct keycodes for
-     * keyup/keydown events
-     *
-     * @type {Object}
-     */
-    var _MAP = {
-        8: 'backspace',
-        9: 'tab',
-        13: 'enter',
-        16: 'shift',
-        17: 'ctrl',
-        18: 'alt',
-        20: 'capslock',
-        27: 'esc',
-        32: 'space',
-        33: 'pageup',
-        34: 'pagedown',
-        35: 'end',
-        36: 'home',
-        37: 'left',
-        38: 'up',
-        39: 'right',
-        40: 'down',
-        45: 'ins',
-        46: 'del',
-        91: 'meta',
-        93: 'meta',
-        224: 'meta'
-    };
-
-    /**
-     * mapping for special characters so they can support
-     *
-     * this dictionary is only used incase you want to bind a
-     * keyup or keydown event to one of these keys
-     *
-     * @type {Object}
-     */
-    var _KEYCODE_MAP = {
-        106: '*',
-        107: '+',
-        109: '-',
-        110: '.',
-        111 : '/',
-        186: ';',
-        187: '=',
-        188: ',',
-        189: '-',
-        190: '.',
-        191: '/',
-        192: '`',
-        219: '[',
-        220: '\\',
-        221: ']',
-        222: '\''
-    };
-
-    /**
-     * this is a mapping of keys that require shift on a US keypad
-     * back to the non shift equivelents
-     *
-     * this is so you can use keyup events with these keys
-     *
-     * note that this will only work reliably on US keyboards
-     *
-     * @type {Object}
-     */
-    var _SHIFT_MAP = {
-        '~': '`',
-        '!': '1',
-        '@': '2',
-        '#': '3',
-        '$': '4',
-        '%': '5',
-        '^': '6',
-        '&': '7',
-        '*': '8',
-        '(': '9',
-        ')': '0',
-        '_': '-',
-        '+': '=',
-        ':': ';',
-        '\"': '\'',
-        '<': ',',
-        '>': '.',
-        '?': '/',
-        '|': '\\'
-    };
-
-    /**
-     * this is a list of special strings you can use to map
-     * to modifier keys when you specify your keyboard shortcuts
-     *
-     * @type {Object}
-     */
-    var _SPECIAL_ALIASES = {
-        'option': 'alt',
-        'command': 'meta',
-        'return': 'enter',
-        'escape': 'esc',
-        'plus': '+',
-        'mod': /Mac|iPod|iPhone|iPad/.test(navigator.platform) ? 'meta' : 'ctrl'
-    };
-
-    /**
-     * variable to store the flipped version of _MAP from above
-     * needed to check if we should use keypress or not when no action
-     * is specified
-     *
-     * @type {Object|undefined}
-     */
-    var _REVERSE_MAP;
-
-    /**
-     * loop through the f keys, f1 to f19 and add them to the map
-     * programatically
-     */
-    for (var i = 1; i < 20; ++i) {
-        _MAP[111 + i] = 'f' + i;
-    }
-
-    /**
-     * loop through to map numbers on the numeric keypad
-     */
-    for (i = 0; i <= 9; ++i) {
-
-        // This needs to use a string cause otherwise since 0 is falsey
-        // mousetrap will never fire for numpad 0 pressed as part of a keydown
-        // event.
-        //
-        // @see https://github.com/ccampbell/mousetrap/pull/258
-        _MAP[i + 96] = i.toString();
-    }
-
-    /**
-     * cross browser add event method
-     *
-     * @param {Element|HTMLDocument} object
-     * @param {string} type
-     * @param {Function} callback
-     * @returns void
-     */
-    function _addEvent(object, type, callback) {
-        if (object.addEventListener) {
-            object.addEventListener(type, callback, false);
-            return;
-        }
-
-        object.attachEvent('on' + type, callback);
-    }
-
-    /**
-     * takes the event and returns the key character
-     *
-     * @param {Event} e
-     * @return {string}
-     */
-    function _characterFromEvent(e) {
-
-        // for keypress events we should return the character as is
-        if (e.type == 'keypress') {
-            var character = String.fromCharCode(e.which);
-
-            // if the shift key is not pressed then it is safe to assume
-            // that we want the character to be lowercase.  this means if
-            // you accidentally have caps lock on then your key bindings
-            // will continue to work
-            //
-            // the only side effect that might not be desired is if you
-            // bind something like 'A' cause you want to trigger an
-            // event when capital A is pressed caps lock will no longer
-            // trigger the event.  shift+a will though.
-            if (!e.shiftKey) {
-                character = character.toLowerCase();
-            }
-
-            return character;
-        }
-
-        // for non keypress events the special maps are needed
-        if (_MAP[e.which]) {
-            return _MAP[e.which];
-        }
-
-        if (_KEYCODE_MAP[e.which]) {
-            return _KEYCODE_MAP[e.which];
-        }
-
-        // if it is not in the special map
-
-        // with keydown and keyup events the character seems to always
-        // come in as an uppercase character whether you are pressing shift
-        // or not.  we should make sure it is always lowercase for comparisons
-        return String.fromCharCode(e.which).toLowerCase();
-    }
-
-    /**
-     * checks if two arrays are equal
-     *
-     * @param {Array} modifiers1
-     * @param {Array} modifiers2
-     * @returns {boolean}
-     */
-    function _modifiersMatch(modifiers1, modifiers2) {
-        return modifiers1.sort().join(',') === modifiers2.sort().join(',');
-    }
-
-    /**
-     * takes a key event and figures out what the modifiers are
-     *
-     * @param {Event} e
-     * @returns {Array}
-     */
-    function _eventModifiers(e) {
-        var modifiers = [];
-
-        if (e.shiftKey) {
-            modifiers.push('shift');
-        }
-
-        if (e.altKey) {
-            modifiers.push('alt');
-        }
-
-        if (e.ctrlKey) {
-            modifiers.push('ctrl');
-        }
-
-        if (e.metaKey) {
-            modifiers.push('meta');
-        }
-
-        return modifiers;
-    }
-
-    /**
-     * prevents default for this event
-     *
-     * @param {Event} e
-     * @returns void
-     */
-    function _preventDefault(e) {
-        if (e.preventDefault) {
-            e.preventDefault();
-            return;
-        }
-
-        e.returnValue = false;
-    }
-
-    /**
-     * stops propogation for this event
-     *
-     * @param {Event} e
-     * @returns void
-     */
-    function _stopPropagation(e) {
-        if (e.stopPropagation) {
-            e.stopPropagation();
-            return;
-        }
-
-        e.cancelBubble = true;
-    }
-
-    /**
-     * determines if the keycode specified is a modifier key or not
-     *
-     * @param {string} key
-     * @returns {boolean}
-     */
-    function _isModifier(key) {
-        return key == 'shift' || key == 'ctrl' || key == 'alt' || key == 'meta';
-    }
-
-    /**
-     * reverses the map lookup so that we can look for specific keys
-     * to see what can and can't use keypress
-     *
-     * @return {Object}
-     */
-    function _getReverseMap() {
-        if (!_REVERSE_MAP) {
-            _REVERSE_MAP = {};
-            for (var key in _MAP) {
-
-                // pull out the numeric keypad from here cause keypress should
-                // be able to detect the keys from the character
-                if (key > 95 && key < 112) {
-                    continue;
-                }
-
-                if (_MAP.hasOwnProperty(key)) {
-                    _REVERSE_MAP[_MAP[key]] = key;
-                }
-            }
-        }
-        return _REVERSE_MAP;
-    }
-
-    /**
-     * picks the best action based on the key combination
-     *
-     * @param {string} key - character for key
-     * @param {Array} modifiers
-     * @param {string=} action passed in
-     */
-    function _pickBestAction(key, modifiers, action) {
-
-        // if no action was picked in we should try to pick the one
-        // that we think would work best for this key
-        if (!action) {
-            action = _getReverseMap()[key] ? 'keydown' : 'keypress';
-        }
-
-        // modifier keys don't work as expected with keypress,
-        // switch to keydown
-        if (action == 'keypress' && modifiers.length) {
-            action = 'keydown';
-        }
-
-        return action;
-    }
-
-    /**
-     * Converts from a string key combination to an array
-     *
-     * @param  {string} combination like "command+shift+l"
-     * @return {Array}
-     */
-    function _keysFromString(combination) {
-        if (combination === '+') {
-            return ['+'];
-        }
-
-        combination = combination.replace(/\+{2}/g, '+plus');
-        return combination.split('+');
-    }
-
-    /**
-     * Gets info for a specific key combination
-     *
-     * @param  {string} combination key combination ("command+s" or "a" or "*")
-     * @param  {string=} action
-     * @returns {Object}
-     */
-    function _getKeyInfo(combination, action) {
-        var keys;
-        var key;
-        var i;
-        var modifiers = [];
-
-        // take the keys from this pattern and figure out what the actual
-        // pattern is all about
-        keys = _keysFromString(combination);
-
-        for (i = 0; i < keys.length; ++i) {
-            key = keys[i];
-
-            // normalize key names
-            if (_SPECIAL_ALIASES[key]) {
-                key = _SPECIAL_ALIASES[key];
-            }
-
-            // if this is not a keypress event then we should
-            // be smart about using shift keys
-            // this will only work for US keyboards however
-            if (action && action != 'keypress' && _SHIFT_MAP[key]) {
-                key = _SHIFT_MAP[key];
-                modifiers.push('shift');
-            }
-
-            // if this key is a modifier then add it to the list of modifiers
-            if (_isModifier(key)) {
-                modifiers.push(key);
-            }
-        }
-
-        // depending on what the key combination is
-        // we will try to pick the best event for it
-        action = _pickBestAction(key, modifiers, action);
-
-        return {
-            key: key,
-            modifiers: modifiers,
-            action: action
-        };
-    }
-
-    function _belongsTo(element, ancestor) {
-        if (element === null || element === document) {
-            return false;
-        }
-
-        if (element === ancestor) {
-            return true;
-        }
-
-        return _belongsTo(element.parentNode, ancestor);
-    }
-
-    function Mousetrap(targetElement) {
-        var self = this;
-
-        targetElement = targetElement || document;
-
-        if (!(self instanceof Mousetrap)) {
-            return new Mousetrap(targetElement);
-        }
-
-        /**
-         * element to attach key events to
-         *
-         * @type {Element}
-         */
-        self.target = targetElement;
-
-        /**
-         * a list of all the callbacks setup via Mousetrap.bind()
-         *
-         * @type {Object}
-         */
-        self._callbacks = {};
-
-        /**
-         * direct map of string combinations to callbacks used for trigger()
-         *
-         * @type {Object}
-         */
-        self._directMap = {};
-
-        /**
-         * keeps track of what level each sequence is at since multiple
-         * sequences can start out with the same sequence
-         *
-         * @type {Object}
-         */
-        var _sequenceLevels = {};
-
-        /**
-         * variable to store the setTimeout call
-         *
-         * @type {null|number}
-         */
-        var _resetTimer;
-
-        /**
-         * temporary state where we will ignore the next keyup
-         *
-         * @type {boolean|string}
-         */
-        var _ignoreNextKeyup = false;
-
-        /**
-         * temporary state where we will ignore the next keypress
-         *
-         * @type {boolean}
-         */
-        var _ignoreNextKeypress = false;
-
-        /**
-         * are we currently inside of a sequence?
-         * type of action ("keyup" or "keydown" or "keypress") or false
-         *
-         * @type {boolean|string}
-         */
-        var _nextExpectedAction = false;
-
-        /**
-         * resets all sequence counters except for the ones passed in
-         *
-         * @param {Object} doNotReset
-         * @returns void
-         */
-        function _resetSequences(doNotReset) {
-            doNotReset = doNotReset || {};
-
-            var activeSequences = false,
-                key;
-
-            for (key in _sequenceLevels) {
-                if (doNotReset[key]) {
-                    activeSequences = true;
-                    continue;
-                }
-                _sequenceLevels[key] = 0;
-            }
-
-            if (!activeSequences) {
-                _nextExpectedAction = false;
-            }
-        }
-
-        /**
-         * finds all callbacks that match based on the keycode, modifiers,
-         * and action
-         *
-         * @param {string} character
-         * @param {Array} modifiers
-         * @param {Event|Object} e
-         * @param {string=} sequenceName - name of the sequence we are looking for
-         * @param {string=} combination
-         * @param {number=} level
-         * @returns {Array}
-         */
-        function _getMatches(character, modifiers, e, sequenceName, combination, level) {
-            var i;
-            var callback;
-            var matches = [];
-            var action = e.type;
-
-            // if there are no events related to this keycode
-            if (!self._callbacks[character]) {
-                return [];
-            }
-
-            // if a modifier key is coming up on its own we should allow it
-            if (action == 'keyup' && _isModifier(character)) {
-                modifiers = [character];
-            }
-
-            // loop through all callbacks for the key that was pressed
-            // and see if any of them match
-            for (i = 0; i < self._callbacks[character].length; ++i) {
-                callback = self._callbacks[character][i];
-
-                // if a sequence name is not specified, but this is a sequence at
-                // the wrong level then move onto the next match
-                if (!sequenceName && callback.seq && _sequenceLevels[callback.seq] != callback.level) {
-                    continue;
-                }
-
-                // if the action we are looking for doesn't match the action we got
-                // then we should keep going
-                if (action != callback.action) {
-                    continue;
-                }
-
-                // if this is a keypress event and the meta key and control key
-                // are not pressed that means that we need to only look at the
-                // character, otherwise check the modifiers as well
-                //
-                // chrome will not fire a keypress if meta or control is down
-                // safari will fire a keypress if meta or meta+shift is down
-                // firefox will fire a keypress if meta or control is down
-                if ((action == 'keypress' && !e.metaKey && !e.ctrlKey) || _modifiersMatch(modifiers, callback.modifiers)) {
-
-                    // when you bind a combination or sequence a second time it
-                    // should overwrite the first one.  if a sequenceName or
-                    // combination is specified in this call it does just that
-                    //
-                    // @todo make deleting its own method?
-                    var deleteCombo = !sequenceName && callback.combo == combination;
-                    var deleteSequence = sequenceName && callback.seq == sequenceName && callback.level == level;
-                    if (deleteCombo || deleteSequence) {
-                        self._callbacks[character].splice(i, 1);
-                    }
-
-                    matches.push(callback);
-                }
-            }
-
-            return matches;
-        }
-
-        /**
-         * actually calls the callback function
-         *
-         * if your callback function returns false this will use the jquery
-         * convention - prevent default and stop propogation on the event
-         *
-         * @param {Function} callback
-         * @param {Event} e
-         * @returns void
-         */
-        function _fireCallback(callback, e, combo, sequence) {
-
-            // if this event should not happen stop here
-            if (self.stopCallback(e, e.target || e.srcElement, combo, sequence)) {
-                return;
-            }
-
-            if (callback(e, combo) === false) {
-                _preventDefault(e);
-                _stopPropagation(e);
-            }
-        }
-
-        /**
-         * handles a character key event
-         *
-         * @param {string} character
-         * @param {Array} modifiers
-         * @param {Event} e
-         * @returns void
-         */
-        self._handleKey = function(character, modifiers, e) {
-            var callbacks = _getMatches(character, modifiers, e);
-            var i;
-            var doNotReset = {};
-            var maxLevel = 0;
-            var processedSequenceCallback = false;
-
-            // Calculate the maxLevel for sequences so we can only execute the longest callback sequence
-            for (i = 0; i < callbacks.length; ++i) {
-                if (callbacks[i].seq) {
-                    maxLevel = Math.max(maxLevel, callbacks[i].level);
-                }
-            }
-
-            // loop through matching callbacks for this key event
-            for (i = 0; i < callbacks.length; ++i) {
-
-                // fire for all sequence callbacks
-                // this is because if for example you have multiple sequences
-                // bound such as "g i" and "g t" they both need to fire the
-                // callback for matching g cause otherwise you can only ever
-                // match the first one
-                if (callbacks[i].seq) {
-
-                    // only fire callbacks for the maxLevel to prevent
-                    // subsequences from also firing
-                    //
-                    // for example 'a option b' should not cause 'option b' to fire
-                    // even though 'option b' is part of the other sequence
-                    //
-                    // any sequences that do not match here will be discarded
-                    // below by the _resetSequences call
-                    if (callbacks[i].level != maxLevel) {
-                        continue;
-                    }
-
-                    processedSequenceCallback = true;
-
-                    // keep a list of which sequences were matches for later
-                    doNotReset[callbacks[i].seq] = 1;
-                    _fireCallback(callbacks[i].callback, e, callbacks[i].combo, callbacks[i].seq);
-                    continue;
-                }
-
-                // if there were no sequence matches but we are still here
-                // that means this is a regular match so we should fire that
-                if (!processedSequenceCallback) {
-                    _fireCallback(callbacks[i].callback, e, callbacks[i].combo);
-                }
-            }
-
-            // if the key you pressed matches the type of sequence without
-            // being a modifier (ie "keyup" or "keypress") then we should
-            // reset all sequences that were not matched by this event
-            //
-            // this is so, for example, if you have the sequence "h a t" and you
-            // type "h e a r t" it does not match.  in this case the "e" will
-            // cause the sequence to reset
-            //
-            // modifier keys are ignored because you can have a sequence
-            // that contains modifiers such as "enter ctrl+space" and in most
-            // cases the modifier key will be pressed before the next key
-            //
-            // also if you have a sequence such as "ctrl+b a" then pressing the
-            // "b" key will trigger a "keypress" and a "keydown"
-            //
-            // the "keydown" is expected when there is a modifier, but the
-            // "keypress" ends up matching the _nextExpectedAction since it occurs
-            // after and that causes the sequence to reset
-            //
-            // we ignore keypresses in a sequence that directly follow a keydown
-            // for the same character
-            var ignoreThisKeypress = e.type == 'keypress' && _ignoreNextKeypress;
-            if (e.type == _nextExpectedAction && !_isModifier(character) && !ignoreThisKeypress) {
-                _resetSequences(doNotReset);
-            }
-
-            _ignoreNextKeypress = processedSequenceCallback && e.type == 'keydown';
-        };
-
-        /**
-         * handles a keydown event
-         *
-         * @param {Event} e
-         * @returns void
-         */
-        function _handleKeyEvent(e) {
-
-            // normalize e.which for key events
-            // @see http://stackoverflow.com/questions/4285627/javascript-keycode-vs-charcode-utter-confusion
-            if (typeof e.which !== 'number') {
-                e.which = e.keyCode;
-            }
-
-            var character = _characterFromEvent(e);
-
-            // no character found then stop
-            if (!character) {
-                return;
-            }
-
-            // need to use === for the character check because the character can be 0
-            if (e.type == 'keyup' && _ignoreNextKeyup === character) {
-                _ignoreNextKeyup = false;
-                return;
-            }
-
-            self.handleKey(character, _eventModifiers(e), e);
-        }
-
-        /**
-         * called to set a 1 second timeout on the specified sequence
-         *
-         * this is so after each key press in the sequence you have 1 second
-         * to press the next key before you have to start over
-         *
-         * @returns void
-         */
-        function _resetSequenceTimer() {
-            clearTimeout(_resetTimer);
-            _resetTimer = setTimeout(_resetSequences, 1000);
-        }
-
-        /**
-         * binds a key sequence to an event
-         *
-         * @param {string} combo - combo specified in bind call
-         * @param {Array} keys
-         * @param {Function} callback
-         * @param {string=} action
-         * @returns void
-         */
-        function _bindSequence(combo, keys, callback, action) {
-
-            // start off by adding a sequence level record for this combination
-            // and setting the level to 0
-            _sequenceLevels[combo] = 0;
-
-            /**
-             * callback to increase the sequence level for this sequence and reset
-             * all other sequences that were active
-             *
-             * @param {string} nextAction
-             * @returns {Function}
-             */
-            function _increaseSequence(nextAction) {
-                return function() {
-                    _nextExpectedAction = nextAction;
-                    ++_sequenceLevels[combo];
-                    _resetSequenceTimer();
-                };
-            }
-
-            /**
-             * wraps the specified callback inside of another function in order
-             * to reset all sequence counters as soon as this sequence is done
-             *
-             * @param {Event} e
-             * @returns void
-             */
-            function _callbackAndReset(e) {
-                _fireCallback(callback, e, combo);
-
-                // we should ignore the next key up if the action is key down
-                // or keypress.  this is so if you finish a sequence and
-                // release the key the final key will not trigger a keyup
-                if (action !== 'keyup') {
-                    _ignoreNextKeyup = _characterFromEvent(e);
-                }
-
-                // weird race condition if a sequence ends with the key
-                // another sequence begins with
-                setTimeout(_resetSequences, 10);
-            }
-
-            // loop through keys one at a time and bind the appropriate callback
-            // function.  for any key leading up to the final one it should
-            // increase the sequence. after the final, it should reset all sequences
-            //
-            // if an action is specified in the original bind call then that will
-            // be used throughout.  otherwise we will pass the action that the
-            // next key in the sequence should match.  this allows a sequence
-            // to mix and match keypress and keydown events depending on which
-            // ones are better suited to the key provided
-            for (var i = 0; i < keys.length; ++i) {
-                var isFinal = i + 1 === keys.length;
-                var wrappedCallback = isFinal ? _callbackAndReset : _increaseSequence(action || _getKeyInfo(keys[i + 1]).action);
-                _bindSingle(keys[i], wrappedCallback, action, combo, i);
-            }
-        }
-
-        /**
-         * binds a single keyboard combination
-         *
-         * @param {string} combination
-         * @param {Function} callback
-         * @param {string=} action
-         * @param {string=} sequenceName - name of sequence if part of sequence
-         * @param {number=} level - what part of the sequence the command is
-         * @returns void
-         */
-        function _bindSingle(combination, callback, action, sequenceName, level) {
-
-            // store a direct mapped reference for use with Mousetrap.trigger
-            self._directMap[combination + ':' + action] = callback;
-
-            // make sure multiple spaces in a row become a single space
-            combination = combination.replace(/\s+/g, ' ');
-
-            var sequence = combination.split(' ');
-            var info;
-
-            // if this pattern is a sequence of keys then run through this method
-            // to reprocess each pattern one key at a time
-            if (sequence.length > 1) {
-                _bindSequence(combination, sequence, callback, action);
-                return;
-            }
-
-            info = _getKeyInfo(combination, action);
-
-            // make sure to initialize array if this is the first time
-            // a callback is added for this key
-            self._callbacks[info.key] = self._callbacks[info.key] || [];
-
-            // remove an existing match if there is one
-            _getMatches(info.key, info.modifiers, {type: info.action}, sequenceName, combination, level);
-
-            // add this call back to the array
-            // if it is a sequence put it at the beginning
-            // if not put it at the end
-            //
-            // this is important because the way these are processed expects
-            // the sequence ones to come first
-            self._callbacks[info.key][sequenceName ? 'unshift' : 'push']({
-                callback: callback,
-                modifiers: info.modifiers,
-                action: info.action,
-                seq: sequenceName,
-                level: level,
-                combo: combination
-            });
-        }
-
-        /**
-         * binds multiple combinations to the same callback
-         *
-         * @param {Array} combinations
-         * @param {Function} callback
-         * @param {string|undefined} action
-         * @returns void
-         */
-        self._bindMultiple = function(combinations, callback, action) {
-            for (var i = 0; i < combinations.length; ++i) {
-                _bindSingle(combinations[i], callback, action);
-            }
-        };
-
-        // start!
-        _addEvent(targetElement, 'keypress', _handleKeyEvent);
-        _addEvent(targetElement, 'keydown', _handleKeyEvent);
-        _addEvent(targetElement, 'keyup', _handleKeyEvent);
-    }
-
-    /**
-     * binds an event to mousetrap
-     *
-     * can be a single key, a combination of keys separated with +,
-     * an array of keys, or a sequence of keys separated by spaces
-     *
-     * be sure to list the modifier keys first to make sure that the
-     * correct key ends up getting bound (the last key in the pattern)
-     *
-     * @param {string|Array} keys
-     * @param {Function} callback
-     * @param {string=} action - 'keypress', 'keydown', or 'keyup'
-     * @returns void
-     */
-    Mousetrap.prototype.bind = function(keys, callback, action) {
-        var self = this;
-        keys = keys instanceof Array ? keys : [keys];
-        self._bindMultiple.call(self, keys, callback, action);
-        return self;
-    };
-
-    /**
-     * unbinds an event to mousetrap
-     *
-     * the unbinding sets the callback function of the specified key combo
-     * to an empty function and deletes the corresponding key in the
-     * _directMap dict.
-     *
-     * TODO: actually remove this from the _callbacks dictionary instead
-     * of binding an empty function
-     *
-     * the keycombo+action has to be exactly the same as
-     * it was defined in the bind method
-     *
-     * @param {string|Array} keys
-     * @param {string} action
-     * @returns void
-     */
-    Mousetrap.prototype.unbind = function(keys, action) {
-        var self = this;
-        return self.bind.call(self, keys, function() {}, action);
-    };
-
-    /**
-     * triggers an event that has already been bound
-     *
-     * @param {string} keys
-     * @param {string=} action
-     * @returns void
-     */
-    Mousetrap.prototype.trigger = function(keys, action) {
-        var self = this;
-        if (self._directMap[keys + ':' + action]) {
-            self._directMap[keys + ':' + action]({}, keys);
-        }
-        return self;
-    };
-
-    /**
-     * resets the library back to its initial state.  this is useful
-     * if you want to clear out the current keyboard shortcuts and bind
-     * new ones - for example if you switch to another page
-     *
-     * @returns void
-     */
-    Mousetrap.prototype.reset = function() {
-        var self = this;
-        self._callbacks = {};
-        self._directMap = {};
-        return self;
-    };
-
-    /**
-     * should we stop this event before firing off callbacks
-     *
-     * @param {Event} e
-     * @param {Element} element
-     * @return {boolean}
-     */
-    Mousetrap.prototype.stopCallback = function(e, element) {
-        var self = this;
-
-        // if the element has the class "mousetrap" then no need to stop
-        if ((' ' + element.className + ' ').indexOf(' mousetrap ') > -1) {
-            return false;
-        }
-
-        if (_belongsTo(element, self.target)) {
-            return false;
-        }
-
-        // Events originating from a shadow DOM are re-targetted and `e.target` is the shadow host,
-        // not the initial event target in the shadow tree. Note that not all events cross the
-        // shadow boundary.
-        // For shadow trees with `mode: 'open'`, the initial event target is the first element in
-        // the event’s composed path. For shadow trees with `mode: 'closed'`, the initial event
-        // target cannot be obtained.
-        if ('composedPath' in e && typeof e.composedPath === 'function') {
-            // For open shadow trees, update `element` so that the following check works.
-            var initialEventTarget = e.composedPath()[0];
-            if (initialEventTarget !== e.target) {
-                element = initialEventTarget;
-            }
-        }
-
-        // stop for input, select, and textarea
-        return element.tagName == 'INPUT' || element.tagName == 'SELECT' || element.tagName == 'TEXTAREA' || element.isContentEditable;
-    };
-
-    /**
-     * exposes _handleKey publicly so it can be overwritten by extensions
-     */
-    Mousetrap.prototype.handleKey = function() {
-        var self = this;
-        return self._handleKey.apply(self, arguments);
-    };
-
-    /**
-     * allow custom key mappings
-     */
-    Mousetrap.addKeycodes = function(object) {
-        for (var key in object) {
-            if (object.hasOwnProperty(key)) {
-                _MAP[key] = object[key];
-            }
-        }
-        _REVERSE_MAP = null;
-    };
-
-    /**
-     * Init the global mousetrap functions
-     *
-     * This method is needed to allow the global mousetrap functions to work
-     * now that mousetrap is a constructor function.
-     */
-    Mousetrap.init = function() {
-        var documentMousetrap = Mousetrap(document);
-        for (var method in documentMousetrap) {
-            if (method.charAt(0) !== '_') {
-                Mousetrap[method] = (function(method) {
-                    return function() {
-                        return documentMousetrap[method].apply(documentMousetrap, arguments);
-                    };
-                } (method));
-            }
-        }
-    };
-
-    Mousetrap.init();
-
-    // expose mousetrap to the global object
-    window.Mousetrap = Mousetrap;
-
-    // expose as a common js module
-    if ( true && module.exports) {
-        module.exports = Mousetrap;
-    }
-
-    // expose mousetrap as an AMD module
-    if (true) {
-        !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() {
-            return Mousetrap;
-        }).call(exports, __webpack_require__, exports, module),
-				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
-    }
-}) (typeof window !== 'undefined' ? window : null, typeof  window !== 'undefined' ? document : null);
-
-
-/***/ }),
-/* 223 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// eslint-disable-next-line import/no-unresolved
-module.exports = __webpack_require__(285);
-
-
-/***/ }),
-/* 224 */,
-/* 225 */,
-/* 226 */,
-/* 227 */,
-/* 228 */,
-/* 229 */,
-/* 230 */,
-/* 231 */,
-/* 232 */,
-/* 233 */,
-/* 234 */,
-/* 235 */,
-/* 236 */,
-/* 237 */,
-/* 238 */,
-/* 239 */,
-/* 240 */,
-/* 241 */,
-/* 242 */,
-/* 243 */,
-/* 244 */,
-/* 245 */,
-/* 246 */,
-/* 247 */,
-/* 248 */,
-/* 249 */,
-/* 250 */,
-/* 251 */,
-/* 252 */,
-/* 253 */,
-/* 254 */,
-/* 255 */,
-/* 256 */,
-/* 257 */,
-/* 258 */,
-/* 259 */
-/***/ (function(module, exports) {
-
-/**
- * adds a bindGlobal method to Mousetrap that allows you to
- * bind specific keyboard shortcuts that will still work
- * inside a text input field
- *
- * usage:
- * Mousetrap.bindGlobal('ctrl+s', _saveChanges);
- */
-/* global Mousetrap:true */
-(function(Mousetrap) {
-    var _globalCallbacks = {};
-    var _originalStopCallback = Mousetrap.prototype.stopCallback;
-
-    Mousetrap.prototype.stopCallback = function(e, element, combo, sequence) {
-        var self = this;
-
-        if (self.paused) {
-            return true;
-        }
-
-        if (_globalCallbacks[combo] || _globalCallbacks[sequence]) {
-            return false;
-        }
-
-        return _originalStopCallback.call(self, e, element, combo);
-    };
-
-    Mousetrap.prototype.bindGlobal = function(keys, callback, action) {
-        var self = this;
-        self.bind(keys, callback, action);
-
-        if (keys instanceof Array) {
-            for (var i = 0; i < keys.length; i++) {
-                _globalCallbacks[keys[i]] = true;
-            }
-            return;
-        }
-
-        _globalCallbacks[keys] = true;
-    };
-
-    Mousetrap.init();
-}) (Mousetrap);
-
-
-/***/ }),
-/* 260 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// eslint-disable-next-line import/no-unresolved
-__webpack_require__(261);
-
-
-/***/ }),
-/* 261 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var _registerCSSInterfaceWithDefaultTheme = __webpack_require__(262);
-
-var _registerCSSInterfaceWithDefaultTheme2 = _interopRequireDefault(_registerCSSInterfaceWithDefaultTheme);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-(0, _registerCSSInterfaceWithDefaultTheme2['default'])();
-
-/***/ }),
-/* 262 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports['default'] = registerCSSInterfaceWithDefaultTheme;
-
-var _reactWithStylesInterfaceCss = __webpack_require__(263);
-
-var _reactWithStylesInterfaceCss2 = _interopRequireDefault(_reactWithStylesInterfaceCss);
-
-var _registerInterfaceWithDefaultTheme = __webpack_require__(284);
-
-var _registerInterfaceWithDefaultTheme2 = _interopRequireDefault(_registerInterfaceWithDefaultTheme);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-function registerCSSInterfaceWithDefaultTheme() {
-  (0, _registerInterfaceWithDefaultTheme2['default'])(_reactWithStylesInterfaceCss2['default']);
-}
-
-/***/ }),
-/* 263 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// eslint-disable-next-line import/no-unresolved
-module.exports = __webpack_require__(264).default;
-
-
-/***/ }),
-/* 264 */
-/***/ (function(module, exports, __webpack_require__) {
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _arrayPrototype = __webpack_require__(265);
-
-var _arrayPrototype2 = _interopRequireDefault(_arrayPrototype);
-
-var _globalCache = __webpack_require__(280);
-
-var _globalCache2 = _interopRequireDefault(_globalCache);
-
-var _constants = __webpack_require__(281);
-
-var _getClassName = __webpack_require__(282);
-
-var _getClassName2 = _interopRequireDefault(_getClassName);
-
-var _separateStyles2 = __webpack_require__(283);
-
-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 };
-
-/***/ }),
-/* 265 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var define = __webpack_require__(73);
-var bind = __webpack_require__(74);
-
-var implementation = __webpack_require__(142);
-var getPolyfill = __webpack_require__(152);
-var polyfill = getPolyfill();
-var shim = __webpack_require__(279);
-
-var boundFlat = bind.call(Function.call, polyfill);
-
-define(boundFlat, {
-	getPolyfill: getPolyfill,
-	implementation: implementation,
-	shim: shim
-});
-
-module.exports = boundFlat;
-
-
-/***/ }),
-/* 266 */
-/***/ (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;
-};
-
-
-/***/ }),
-/* 267 */
-/***/ (function(module, exports) {
-
-
-var hasOwn = Object.prototype.hasOwnProperty;
-var toString = Object.prototype.toString;
-
-module.exports = function forEach (obj, fn, ctx) {
-    if (toString.call(fn) !== '[object Function]') {
-        throw new TypeError('iterator must be a function');
-    }
-    var l = obj.length;
-    if (l === +l) {
-        for (var i = 0; i < l; i++) {
-            fn.call(ctx, obj[i], i, obj);
-        }
-    } else {
-        for (var k in obj) {
-            if (hasOwn.call(obj, k)) {
-                fn.call(ctx, obj[k], k, obj);
-            }
-        }
-    }
-};
-
-
-
-/***/ }),
-/* 268 */
-/***/ (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;
-};
-
-
-/***/ }),
-/* 269 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var ES2016 = __webpack_require__(143);
-var assign = __webpack_require__(124);
-
-var ES2017 = assign(assign({}, ES2016), {
-	ToIndex: function ToIndex(value) {
-		if (typeof value === 'undefined') {
-			return 0;
-		}
-		var integerIndex = this.ToInteger(value);
-		if (integerIndex < 0) {
-			throw new RangeError('index must be >= 0');
-		}
-		var index = this.ToLength(integerIndex);
-		if (!this.SameValueZero(integerIndex, index)) {
-			throw new RangeError('index must be >= 0 and < 2 ** 53 - 1');
-		}
-		return index;
-	}
-});
-
-delete ES2017.EnumerableOwnNames; // replaced with EnumerableOwnProperties
-
-module.exports = ES2017;
-
-
-/***/ }),
-/* 270 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var has = __webpack_require__(91);
-var toPrimitive = __webpack_require__(271);
-
-var GetIntrinsic = __webpack_require__(147);
-
-var $TypeError = GetIntrinsic('%TypeError%');
-var $SyntaxError = GetIntrinsic('%SyntaxError%');
-var $Array = GetIntrinsic('%Array%');
-var $String = GetIntrinsic('%String%');
-var $Object = GetIntrinsic('%Object%');
-var $Number = GetIntrinsic('%Number%');
-var $Symbol = GetIntrinsic('%Symbol%', true);
-var $RegExp = GetIntrinsic('%RegExp%');
-
-var hasSymbols = !!$Symbol;
-
-var $isNaN = __webpack_require__(148);
-var $isFinite = __webpack_require__(149);
-var MAX_SAFE_INTEGER = $Number.MAX_SAFE_INTEGER || Math.pow(2, 53) - 1;
-
-var assign = __webpack_require__(124);
-var sign = __webpack_require__(150);
-var mod = __webpack_require__(151);
-var isPrimitive = __webpack_require__(275);
-var parseInteger = parseInt;
-var bind = __webpack_require__(74);
-var arraySlice = bind.call(Function.call, $Array.prototype.slice);
-var strSlice = bind.call(Function.call, $String.prototype.slice);
-var isBinary = bind.call(Function.call, $RegExp.prototype.test, /^0b[01]+$/i);
-var isOctal = bind.call(Function.call, $RegExp.prototype.test, /^0o[0-7]+$/i);
-var regexExec = bind.call(Function.call, $RegExp.prototype.exec);
-var nonWS = ['\u0085', '\u200b', '\ufffe'].join('');
-var nonWSregex = new $RegExp('[' + nonWS + ']', 'g');
-var hasNonWS = bind.call(Function.call, $RegExp.prototype.test, nonWSregex);
-var invalidHexLiteral = /^[-+]0x[0-9a-f]+$/i;
-var isInvalidHexLiteral = bind.call(Function.call, $RegExp.prototype.test, invalidHexLiteral);
-var $charCodeAt = bind.call(Function.call, $String.prototype.charCodeAt);
-
-var toStr = bind.call(Function.call, Object.prototype.toString);
-
-var $floor = Math.floor;
-var $abs = Math.abs;
-
-var $ObjectCreate = Object.create;
-var $gOPD = $Object.getOwnPropertyDescriptor;
-
-var $isExtensible = $Object.isExtensible;
-
-// whitespace from: http://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 = bind.call(Function.call, $String.prototype.replace);
-var trim = function (value) {
-	return replace(value, trimRegex, '');
-};
-
-var ES5 = __webpack_require__(276);
-
-var hasRegExpMatcher = __webpack_require__(278);
-
-// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-abstract-operations
-var ES6 = assign(assign({}, ES5), {
-
-	// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-call-f-v-args
-	Call: function Call(F, V) {
-		var args = arguments.length > 2 ? arguments[2] : [];
-		if (!this.IsCallable(F)) {
-			throw new $TypeError(F + ' is not a function');
-		}
-		return F.apply(V, args);
-	},
-
-	// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toprimitive
-	ToPrimitive: toPrimitive,
-
-	// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toboolean
-	// ToBoolean: ES5.ToBoolean,
-
-	// https://ecma-international.org/ecma-262/6.0/#sec-tonumber
-	ToNumber: 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 === 'string') {
-			if (isBinary(value)) {
-				return this.ToNumber(parseInteger(strSlice(value, 2), 2));
-			} else if (isOctal(value)) {
-				return this.ToNumber(parseInteger(strSlice(value, 2), 8));
-			} else if (hasNonWS(value) || isInvalidHexLiteral(value)) {
-				return NaN;
-			} else {
-				var trimmed = trim(value);
-				if (trimmed !== value) {
-					return this.ToNumber(trimmed);
-				}
-			}
-		}
-		return $Number(value);
-	},
-
-	// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tointeger
-	// ToInteger: ES5.ToNumber,
-
-	// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toint32
-	// ToInt32: ES5.ToInt32,
-
-	// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint32
-	// ToUint32: ES5.ToUint32,
-
-	// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toint16
-	ToInt16: function ToInt16(argument) {
-		var int16bit = this.ToUint16(argument);
-		return int16bit >= 0x8000 ? int16bit - 0x10000 : int16bit;
-	},
-
-	// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint16
-	// ToUint16: ES5.ToUint16,
-
-	// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toint8
-	ToInt8: function ToInt8(argument) {
-		var int8bit = this.ToUint8(argument);
-		return int8bit >= 0x80 ? int8bit - 0x100 : int8bit;
-	},
-
-	// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint8
-	ToUint8: function ToUint8(argument) {
-		var number = this.ToNumber(argument);
-		if ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; }
-		var posInt = sign(number) * $floor($abs(number));
-		return mod(posInt, 0x100);
-	},
-
-	// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint8clamp
-	ToUint8Clamp: function ToUint8Clamp(argument) {
-		var number = this.ToNumber(argument);
-		if ($isNaN(number) || number <= 0) { return 0; }
-		if (number >= 0xFF) { return 0xFF; }
-		var f = $floor(argument);
-		if (f + 0.5 < number) { return f + 1; }
-		if (number < f + 0.5) { return f; }
-		if (f % 2 !== 0) { return f + 1; }
-		return f;
-	},
-
-	// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tostring
-	ToString: function ToString(argument) {
-		if (typeof argument === 'symbol') {
-			throw new $TypeError('Cannot convert a Symbol value to a string');
-		}
-		return $String(argument);
-	},
-
-	// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toobject
-	ToObject: function ToObject(value) {
-		this.RequireObjectCoercible(value);
-		return $Object(value);
-	},
-
-	// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-topropertykey
-	ToPropertyKey: function ToPropertyKey(argument) {
-		var key = this.ToPrimitive(argument, $String);
-		return typeof key === 'symbol' ? key : this.ToString(key);
-	},
-
-	// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength
-	ToLength: function ToLength(argument) {
-		var len = this.ToInteger(argument);
-		if (len <= 0) { return 0; } // includes converting -0 to +0
-		if (len > MAX_SAFE_INTEGER) { return MAX_SAFE_INTEGER; }
-		return len;
-	},
-
-	// https://ecma-international.org/ecma-262/6.0/#sec-canonicalnumericindexstring
-	CanonicalNumericIndexString: function CanonicalNumericIndexString(argument) {
-		if (toStr(argument) !== '[object String]') {
-			throw new $TypeError('must be a string');
-		}
-		if (argument === '-0') { return -0; }
-		var n = this.ToNumber(argument);
-		if (this.SameValue(this.ToString(n), argument)) { return n; }
-		return void 0;
-	},
-
-	// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-requireobjectcoercible
-	RequireObjectCoercible: ES5.CheckObjectCoercible,
-
-	// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isarray
-	IsArray: $Array.isArray || function IsArray(argument) {
-		return toStr(argument) === '[object Array]';
-	},
-
-	// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-iscallable
-	// IsCallable: ES5.IsCallable,
-
-	// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isconstructor
-	IsConstructor: function IsConstructor(argument) {
-		return typeof argument === 'function' && !!argument.prototype; // unfortunately there's no way to truly check this without try/catch `new argument`
-	},
-
-	// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isextensible-o
-	IsExtensible: Object.preventExtensions
-		? function IsExtensible(obj) {
-			if (isPrimitive(obj)) {
-				return false;
-			}
-			return $isExtensible(obj);
-		}
-		: function isExtensible(obj) { return true; }, // eslint-disable-line no-unused-vars
-
-	// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isinteger
-	IsInteger: function IsInteger(argument) {
-		if (typeof argument !== 'number' || $isNaN(argument) || !$isFinite(argument)) {
-			return false;
-		}
-		var abs = $abs(argument);
-		return $floor(abs) === abs;
-	},
-
-	// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-ispropertykey
-	IsPropertyKey: function IsPropertyKey(argument) {
-		return typeof argument === 'string' || typeof argument === 'symbol';
-	},
-
-	// https://ecma-international.org/ecma-262/6.0/#sec-isregexp
-	IsRegExp: function IsRegExp(argument) {
-		if (!argument || typeof argument !== 'object') {
-			return false;
-		}
-		if (hasSymbols) {
-			var isRegExp = argument[$Symbol.match];
-			if (typeof isRegExp !== 'undefined') {
-				return ES5.ToBoolean(isRegExp);
-			}
-		}
-		return hasRegExpMatcher(argument);
-	},
-
-	// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevalue
-	// SameValue: ES5.SameValue,
-
-	// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero
-	SameValueZero: function SameValueZero(x, y) {
-		return (x === y) || ($isNaN(x) && $isNaN(y));
-	},
-
-	/**
-	 * 7.3.2 GetV (V, P)
-	 * 1. Assert: IsPropertyKey(P) is true.
-	 * 2. Let O be ToObject(V).
-	 * 3. ReturnIfAbrupt(O).
-	 * 4. Return O.[[Get]](P, V).
-	 */
-	GetV: function GetV(V, P) {
-		// 7.3.2.1
-		if (!this.IsPropertyKey(P)) {
-			throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
-		}
-
-		// 7.3.2.2-3
-		var O = this.ToObject(V);
-
-		// 7.3.2.4
-		return O[P];
-	},
-
-	/**
-	 * 7.3.9 - https://ecma-international.org/ecma-262/6.0/#sec-getmethod
-	 * 1. Assert: IsPropertyKey(P) is true.
-	 * 2. Let func be GetV(O, P).
-	 * 3. ReturnIfAbrupt(func).
-	 * 4. If func is either undefined or null, return undefined.
-	 * 5. If IsCallable(func) is false, throw a TypeError exception.
-	 * 6. Return func.
-	 */
-	GetMethod: function GetMethod(O, P) {
-		// 7.3.9.1
-		if (!this.IsPropertyKey(P)) {
-			throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
-		}
-
-		// 7.3.9.2
-		var func = this.GetV(O, P);
-
-		// 7.3.9.4
-		if (func == null) {
-			return void 0;
-		}
-
-		// 7.3.9.5
-		if (!this.IsCallable(func)) {
-			throw new $TypeError(P + 'is not a function');
-		}
-
-		// 7.3.9.6
-		return func;
-	},
-
-	/**
-	 * 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).
-	 */
-	Get: function Get(O, P) {
-		// 7.3.1.1
-		if (this.Type(O) !== 'Object') {
-			throw new $TypeError('Assertion failed: Type(O) is not Object');
-		}
-		// 7.3.1.2
-		if (!this.IsPropertyKey(P)) {
-			throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
-		}
-		// 7.3.1.3
-		return O[P];
-	},
-
-	Type: function Type(x) {
-		if (typeof x === 'symbol') {
-			return 'Symbol';
-		}
-		return ES5.Type(x);
-	},
-
-	// https://ecma-international.org/ecma-262/6.0/#sec-speciesconstructor
-	SpeciesConstructor: function SpeciesConstructor(O, defaultConstructor) {
-		if (this.Type(O) !== 'Object') {
-			throw new $TypeError('Assertion failed: Type(O) is not Object');
-		}
-		var C = O.constructor;
-		if (typeof C === 'undefined') {
-			return defaultConstructor;
-		}
-		if (this.Type(C) !== 'Object') {
-			throw new $TypeError('O.constructor is not an Object');
-		}
-		var S = hasSymbols && $Symbol.species ? C[$Symbol.species] : void 0;
-		if (S == null) {
-			return defaultConstructor;
-		}
-		if (this.IsConstructor(S)) {
-			return S;
-		}
-		throw new $TypeError('no constructor found');
-	},
-
-	// https://ecma-international.org/ecma-262/6.0/#sec-completepropertydescriptor
-	CompletePropertyDescriptor: function CompletePropertyDescriptor(Desc) {
-		if (!this.IsPropertyDescriptor(Desc)) {
-			throw new $TypeError('Desc must be a Property Descriptor');
-		}
-
-		if (this.IsGenericDescriptor(Desc) || this.IsDataDescriptor(Desc)) {
-			if (!has(Desc, '[[Value]]')) {
-				Desc['[[Value]]'] = void 0;
-			}
-			if (!has(Desc, '[[Writable]]')) {
-				Desc['[[Writable]]'] = false;
-			}
-		} else {
-			if (!has(Desc, '[[Get]]')) {
-				Desc['[[Get]]'] = void 0;
-			}
-			if (!has(Desc, '[[Set]]')) {
-				Desc['[[Set]]'] = void 0;
-			}
-		}
-		if (!has(Desc, '[[Enumerable]]')) {
-			Desc['[[Enumerable]]'] = false;
-		}
-		if (!has(Desc, '[[Configurable]]')) {
-			Desc['[[Configurable]]'] = false;
-		}
-		return Desc;
-	},
-
-	// https://ecma-international.org/ecma-262/6.0/#sec-set-o-p-v-throw
-	Set: function Set(O, P, V, Throw) {
-		if (this.Type(O) !== 'Object') {
-			throw new $TypeError('O must be an Object');
-		}
-		if (!this.IsPropertyKey(P)) {
-			throw new $TypeError('P must be a Property Key');
-		}
-		if (this.Type(Throw) !== 'Boolean') {
-			throw new $TypeError('Throw must be a Boolean');
-		}
-		if (Throw) {
-			O[P] = V;
-			return true;
-		} else {
-			try {
-				O[P] = V;
-			} catch (e) {
-				return false;
-			}
-		}
-	},
-
-	// https://ecma-international.org/ecma-262/6.0/#sec-hasownproperty
-	HasOwnProperty: function HasOwnProperty(O, P) {
-		if (this.Type(O) !== 'Object') {
-			throw new $TypeError('O must be an Object');
-		}
-		if (!this.IsPropertyKey(P)) {
-			throw new $TypeError('P must be a Property Key');
-		}
-		return has(O, P);
-	},
-
-	// https://ecma-international.org/ecma-262/6.0/#sec-hasproperty
-	HasProperty: function HasProperty(O, P) {
-		if (this.Type(O) !== 'Object') {
-			throw new $TypeError('O must be an Object');
-		}
-		if (!this.IsPropertyKey(P)) {
-			throw new $TypeError('P must be a Property Key');
-		}
-		return P in O;
-	},
-
-	// https://ecma-international.org/ecma-262/6.0/#sec-isconcatspreadable
-	IsConcatSpreadable: function IsConcatSpreadable(O) {
-		if (this.Type(O) !== 'Object') {
-			return false;
-		}
-		if (hasSymbols && typeof $Symbol.isConcatSpreadable === 'symbol') {
-			var spreadable = this.Get(O, Symbol.isConcatSpreadable);
-			if (typeof spreadable !== 'undefined') {
-				return this.ToBoolean(spreadable);
-			}
-		}
-		return this.IsArray(O);
-	},
-
-	// https://ecma-international.org/ecma-262/6.0/#sec-invoke
-	Invoke: function Invoke(O, P) {
-		if (!this.IsPropertyKey(P)) {
-			throw new $TypeError('P must be a Property Key');
-		}
-		var argumentsList = arraySlice(arguments, 2);
-		var func = this.GetV(O, P);
-		return this.Call(func, O, argumentsList);
-	},
-
-	// https://ecma-international.org/ecma-262/6.0/#sec-getiterator
-	GetIterator: function GetIterator(obj, method) {
-		if (!hasSymbols) {
-			throw new SyntaxError('ES.GetIterator depends on native iterator support.');
-		}
-
-		var actualMethod = method;
-		if (arguments.length < 2) {
-			actualMethod = this.GetMethod(obj, $Symbol.iterator);
-		}
-		var iterator = this.Call(actualMethod, obj);
-		if (this.Type(iterator) !== 'Object') {
-			throw new $TypeError('iterator must return an object');
-		}
-
-		return iterator;
-	},
-
-	// https://ecma-international.org/ecma-262/6.0/#sec-iteratornext
-	IteratorNext: function IteratorNext(iterator, value) {
-		var result = this.Invoke(iterator, 'next', arguments.length < 2 ? [] : [value]);
-		if (this.Type(result) !== 'Object') {
-			throw new $TypeError('iterator next must return an object');
-		}
-		return result;
-	},
-
-	// https://ecma-international.org/ecma-262/6.0/#sec-iteratorcomplete
-	IteratorComplete: function IteratorComplete(iterResult) {
-		if (this.Type(iterResult) !== 'Object') {
-			throw new $TypeError('Assertion failed: Type(iterResult) is not Object');
-		}
-		return this.ToBoolean(this.Get(iterResult, 'done'));
-	},
-
-	// https://ecma-international.org/ecma-262/6.0/#sec-iteratorvalue
-	IteratorValue: function IteratorValue(iterResult) {
-		if (this.Type(iterResult) !== 'Object') {
-			throw new $TypeError('Assertion failed: Type(iterResult) is not Object');
-		}
-		return this.Get(iterResult, 'value');
-	},
-
-	// https://ecma-international.org/ecma-262/6.0/#sec-iteratorstep
-	IteratorStep: function IteratorStep(iterator) {
-		var result = this.IteratorNext(iterator);
-		var done = this.IteratorComplete(result);
-		return done === true ? false : result;
-	},
-
-	// https://ecma-international.org/ecma-262/6.0/#sec-iteratorclose
-	IteratorClose: function IteratorClose(iterator, completion) {
-		if (this.Type(iterator) !== 'Object') {
-			throw new $TypeError('Assertion failed: Type(iterator) is not Object');
-		}
-		if (!this.IsCallable(completion)) {
-			throw new $TypeError('Assertion failed: completion is not a thunk for a Completion Record');
-		}
-		var completionThunk = completion;
-
-		var iteratorReturn = this.GetMethod(iterator, 'return');
-
-		if (typeof iteratorReturn === 'undefined') {
-			return completionThunk();
-		}
-
-		var completionRecord;
-		try {
-			var innerResult = this.Call(iteratorReturn, iterator, []);
-		} catch (e) {
-			// if we hit here, then "e" is the innerResult completion that needs re-throwing
-
-			// if the completion is of type "throw", this will throw.
-			completionRecord = completionThunk();
-			completionThunk = null; // ensure it's not called twice.
-
-			// if not, then return the innerResult completion
-			throw e;
-		}
-		completionRecord = completionThunk(); // if innerResult worked, then throw if the completion does
-		completionThunk = null; // ensure it's not called twice.
-
-		if (this.Type(innerResult) !== 'Object') {
-			throw new $TypeError('iterator .return must return an object');
-		}
-
-		return completionRecord;
-	},
-
-	// https://ecma-international.org/ecma-262/6.0/#sec-createiterresultobject
-	CreateIterResultObject: function CreateIterResultObject(value, done) {
-		if (this.Type(done) !== 'Boolean') {
-			throw new $TypeError('Assertion failed: Type(done) is not Boolean');
-		}
-		return {
-			value: value,
-			done: done
-		};
-	},
-
-	// https://ecma-international.org/ecma-262/6.0/#sec-regexpexec
-	RegExpExec: function RegExpExec(R, S) {
-		if (this.Type(R) !== 'Object') {
-			throw new $TypeError('R must be an Object');
-		}
-		if (this.Type(S) !== 'String') {
-			throw new $TypeError('S must be a String');
-		}
-		var exec = this.Get(R, 'exec');
-		if (this.IsCallable(exec)) {
-			var result = this.Call(exec, R, [S]);
-			if (result === null || this.Type(result) === 'Object') {
-				return result;
-			}
-			throw new $TypeError('"exec" method must return `null` or an Object');
-		}
-		return regexExec(R, S);
-	},
-
-	// https://ecma-international.org/ecma-262/6.0/#sec-arrayspeciescreate
-	ArraySpeciesCreate: function ArraySpeciesCreate(originalArray, length) {
-		if (!this.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 = this.IsArray(originalArray);
-		if (isArray) {
-			C = this.Get(originalArray, 'constructor');
-			// TODO: figure out how to make a cross-realm normal Array, a same-realm Array
-			// if (this.IsConstructor(C)) {
-			// 	if C is another realm's Array, C = undefined
-			// 	Object.getPrototypeOf(Object.getPrototypeOf(Object.getPrototypeOf(Array))) === null ?
-			// }
-			if (this.Type(C) === 'Object' && hasSymbols && $Symbol.species) {
-				C = this.Get(C, $Symbol.species);
-				if (C === null) {
-					C = void 0;
-				}
-			}
-		}
-		if (typeof C === 'undefined') {
-			return $Array(len);
-		}
-		if (!this.IsConstructor(C)) {
-			throw new $TypeError('C must be a constructor');
-		}
-		return new C(len); // this.Construct(C, len);
-	},
-
-	CreateDataProperty: function CreateDataProperty(O, P, V) {
-		if (this.Type(O) !== 'Object') {
-			throw new $TypeError('Assertion failed: Type(O) is not Object');
-		}
-		if (!this.IsPropertyKey(P)) {
-			throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
-		}
-		var oldDesc = $gOPD(O, P);
-		var extensible = oldDesc || (typeof $isExtensible !== 'function' || $isExtensible(O));
-		var immutable = oldDesc && (!oldDesc.writable || !oldDesc.configurable);
-		if (immutable || !extensible) {
-			return false;
-		}
-		var newDesc = {
-			configurable: true,
-			enumerable: true,
-			value: V,
-			writable: true
-		};
-		Object.defineProperty(O, P, newDesc);
-		return true;
-	},
-
-	// https://ecma-international.org/ecma-262/6.0/#sec-createdatapropertyorthrow
-	CreateDataPropertyOrThrow: function CreateDataPropertyOrThrow(O, P, V) {
-		if (this.Type(O) !== 'Object') {
-			throw new $TypeError('Assertion failed: Type(O) is not Object');
-		}
-		if (!this.IsPropertyKey(P)) {
-			throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
-		}
-		var success = this.CreateDataProperty(O, P, V);
-		if (!success) {
-			throw new $TypeError('unable to create data property');
-		}
-		return success;
-	},
-
-	// https://www.ecma-international.org/ecma-262/6.0/#sec-objectcreate
-	ObjectCreate: function ObjectCreate(proto, internalSlotsList) {
-		if (proto !== null && this.Type(proto) !== 'Object') {
-			throw new $TypeError('Assertion failed: proto must be null or an object');
-		}
-		var slots = arguments.length < 2 ? [] : internalSlotsList;
-		if (slots.length > 0) {
-			throw new $SyntaxError('es-abstract does not yet support internal slots');
-		}
-
-		if (proto === null && !$ObjectCreate) {
-			throw new $SyntaxError('native Object.create support is required to create null objects');
-		}
-
-		return $ObjectCreate(proto);
-	},
-
-	// https://ecma-international.org/ecma-262/6.0/#sec-advancestringindex
-	AdvanceStringIndex: function AdvanceStringIndex(S, index, unicode) {
-		if (this.Type(S) !== 'String') {
-			throw new $TypeError('S must be a String');
-		}
-		if (!this.IsInteger(index) || index < 0 || index > MAX_SAFE_INTEGER) {
-			throw new $TypeError('Assertion failed: length must be an integer >= 0 and <= 2**53');
-		}
-		if (this.Type(unicode) !== 'Boolean') {
-			throw new $TypeError('Assertion failed: unicode must be a Boolean');
-		}
-		if (!unicode) {
-			return index + 1;
-		}
-		var length = S.length;
-		if ((index + 1) >= length) {
-			return index + 1;
-		}
-
-		var first = $charCodeAt(S, index);
-		if (first < 0xD800 || first > 0xDBFF) {
-			return index + 1;
-		}
-
-		var second = $charCodeAt(S, index + 1);
-		if (second < 0xDC00 || second > 0xDFFF) {
-			return index + 1;
-		}
-
-		return index + 2;
-	}
-});
-
-delete ES6.CheckObjectCoercible; // renamed in ES6 to RequireObjectCoercible
-
-module.exports = ES6;
-
-
-/***/ }),
-/* 271 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-module.exports = __webpack_require__(272);
-
-
-/***/ }),
-/* 272 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var hasSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol';
-
-var isPrimitive = __webpack_require__(144);
-var isCallable = __webpack_require__(123);
-var isDate = __webpack_require__(273);
-var isSymbol = __webpack_require__(145);
-
-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);
-};
-
-
-/***/ }),
-/* 273 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var getDay = Date.prototype.getDay;
-var tryDateObject = function tryDateObject(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;
-};
-
-
-/***/ }),
-/* 274 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-/* WEBPACK VAR INJECTION */(function(global) {
-
-var origSymbol = global.Symbol;
-var hasSymbolSham = __webpack_require__(146);
-
-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__(59)))
-
-/***/ }),
-/* 275 */
-/***/ (function(module, exports) {
-
-module.exports = function isPrimitive(value) {
-	return value === null || (typeof value !== 'function' && typeof value !== 'object');
-};
-
-
-/***/ }),
-/* 276 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var GetIntrinsic = __webpack_require__(147);
-
-var $Object = GetIntrinsic('%Object%');
-var $TypeError = GetIntrinsic('%TypeError%');
-var $String = GetIntrinsic('%String%');
-
-var $isNaN = __webpack_require__(148);
-var $isFinite = __webpack_require__(149);
-
-var sign = __webpack_require__(150);
-var mod = __webpack_require__(151);
-
-var IsCallable = __webpack_require__(123);
-var toPrimitive = __webpack_require__(277);
-
-var has = __webpack_require__(91);
-
-// https://es5.github.io/#x9
-var ES5 = {
-	ToPrimitive: toPrimitive,
-
-	ToBoolean: function ToBoolean(value) {
-		return !!value;
-	},
-	ToNumber: function ToNumber(value) {
-		return +value; // eslint-disable-line no-implicit-coercion
-	},
-	ToInteger: function ToInteger(value) {
-		var number = this.ToNumber(value);
-		if ($isNaN(number)) { return 0; }
-		if (number === 0 || !$isFinite(number)) { return number; }
-		return sign(number) * Math.floor(Math.abs(number));
-	},
-	ToInt32: function ToInt32(x) {
-		return this.ToNumber(x) >> 0;
-	},
-	ToUint32: function ToUint32(x) {
-		return this.ToNumber(x) >>> 0;
-	},
-	ToUint16: function ToUint16(value) {
-		var number = this.ToNumber(value);
-		if ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; }
-		var posInt = sign(number) * Math.floor(Math.abs(number));
-		return mod(posInt, 0x10000);
-	},
-	ToString: function ToString(value) {
-		return $String(value);
-	},
-	ToObject: function ToObject(value) {
-		this.CheckObjectCoercible(value);
-		return $Object(value);
-	},
-	CheckObjectCoercible: function CheckObjectCoercible(value, optMessage) {
-		/* jshint eqnull:true */
-		if (value == null) {
-			throw new $TypeError(optMessage || 'Cannot call method on ' + value);
-		}
-		return value;
-	},
-	IsCallable: IsCallable,
-	SameValue: 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);
-	},
-
-	// https://www.ecma-international.org/ecma-262/5.1/#sec-8
-	Type: 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';
-		}
-	},
-
-	// https://ecma-international.org/ecma-262/6.0/#sec-property-descriptor-specification-type
-	IsPropertyDescriptor: function IsPropertyDescriptor(Desc) {
-		if (this.Type(Desc) !== 'Object') {
-			return false;
-		}
-		var allowed = {
-			'[[Configurable]]': true,
-			'[[Enumerable]]': true,
-			'[[Get]]': true,
-			'[[Set]]': true,
-			'[[Value]]': true,
-			'[[Writable]]': true
-		};
-		// jscs:disable
-		for (var key in Desc) { // eslint-disable-line
-			if (has(Desc, key) && !allowed[key]) {
-				return false;
-			}
-		}
-		// jscs:enable
-		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://ecma-international.org/ecma-262/5.1/#sec-8.10.1
-	IsAccessorDescriptor: function IsAccessorDescriptor(Desc) {
-		if (typeof Desc === 'undefined') {
-			return false;
-		}
-
-		if (!this.IsPropertyDescriptor(Desc)) {
-			throw new $TypeError('Desc must be a Property Descriptor');
-		}
-
-		if (!has(Desc, '[[Get]]') && !has(Desc, '[[Set]]')) {
-			return false;
-		}
-
-		return true;
-	},
-
-	// https://ecma-international.org/ecma-262/5.1/#sec-8.10.2
-	IsDataDescriptor: function IsDataDescriptor(Desc) {
-		if (typeof Desc === 'undefined') {
-			return false;
-		}
-
-		if (!this.IsPropertyDescriptor(Desc)) {
-			throw new $TypeError('Desc must be a Property Descriptor');
-		}
-
-		if (!has(Desc, '[[Value]]') && !has(Desc, '[[Writable]]')) {
-			return false;
-		}
-
-		return true;
-	},
-
-	// https://ecma-international.org/ecma-262/5.1/#sec-8.10.3
-	IsGenericDescriptor: function IsGenericDescriptor(Desc) {
-		if (typeof Desc === 'undefined') {
-			return false;
-		}
-
-		if (!this.IsPropertyDescriptor(Desc)) {
-			throw new $TypeError('Desc must be a Property Descriptor');
-		}
-
-		if (!this.IsAccessorDescriptor(Desc) && !this.IsDataDescriptor(Desc)) {
-			return true;
-		}
-
-		return false;
-	},
-
-	// https://ecma-international.org/ecma-262/5.1/#sec-8.10.4
-	FromPropertyDescriptor: function FromPropertyDescriptor(Desc) {
-		if (typeof Desc === 'undefined') {
-			return Desc;
-		}
-
-		if (!this.IsPropertyDescriptor(Desc)) {
-			throw new $TypeError('Desc must be a Property Descriptor');
-		}
-
-		if (this.IsDataDescriptor(Desc)) {
-			return {
-				value: Desc['[[Value]]'],
-				writable: !!Desc['[[Writable]]'],
-				enumerable: !!Desc['[[Enumerable]]'],
-				configurable: !!Desc['[[Configurable]]']
-			};
-		} else if (this.IsAccessorDescriptor(Desc)) {
-			return {
-				get: Desc['[[Get]]'],
-				set: Desc['[[Set]]'],
-				enumerable: !!Desc['[[Enumerable]]'],
-				configurable: !!Desc['[[Configurable]]']
-			};
-		} else {
-			throw new $TypeError('FromPropertyDescriptor must be called with a fully populated Property Descriptor');
-		}
-	},
-
-	// https://ecma-international.org/ecma-262/5.1/#sec-8.10.5
-	ToPropertyDescriptor: function ToPropertyDescriptor(Obj) {
-		if (this.Type(Obj) !== 'Object') {
-			throw new $TypeError('ToPropertyDescriptor requires an object');
-		}
-
-		var desc = {};
-		if (has(Obj, 'enumerable')) {
-			desc['[[Enumerable]]'] = this.ToBoolean(Obj.enumerable);
-		}
-		if (has(Obj, 'configurable')) {
-			desc['[[Configurable]]'] = this.ToBoolean(Obj.configurable);
-		}
-		if (has(Obj, 'value')) {
-			desc['[[Value]]'] = Obj.value;
-		}
-		if (has(Obj, 'writable')) {
-			desc['[[Writable]]'] = this.ToBoolean(Obj.writable);
-		}
-		if (has(Obj, 'get')) {
-			var getter = Obj.get;
-			if (typeof getter !== 'undefined' && !this.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' && !this.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;
-	}
-};
-
-module.exports = ES5;
-
-
-/***/ }),
-/* 277 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var toStr = Object.prototype.toString;
-
-var isPrimitive = __webpack_require__(144);
-
-var isCallable = __webpack_require__(123);
-
-// 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);
-};
-
-
-/***/ }),
-/* 278 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var has = __webpack_require__(91);
-var regexExec = RegExp.prototype.exec;
-var gOPD = Object.getOwnPropertyDescriptor;
-
-var tryRegexExecCall = function tryRegexExec(value) {
-	try {
-		var lastIndex = value.lastIndex;
-		value.lastIndex = 0;
-
-		regexExec.call(value);
-		return true;
-	} catch (e) {
-		return false;
-	} finally {
-		value.lastIndex = lastIndex;
-	}
-};
-var toStr = Object.prototype.toString;
-var regexClass = '[object RegExp]';
-var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';
-
-module.exports = function isRegex(value) {
-	if (!value || typeof value !== 'object') {
-		return false;
-	}
-	if (!hasToStringTag) {
-		return toStr.call(value) === regexClass;
-	}
-
-	var descriptor = gOPD(value, 'lastIndex');
-	var hasLastIndexDataProperty = descriptor && has(descriptor, 'value');
-	if (!hasLastIndexDataProperty) {
-		return false;
-	}
-
-	return tryRegexExecCall(value);
-};
-
-
-/***/ }),
-/* 279 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var define = __webpack_require__(73);
-var getPolyfill = __webpack_require__(152);
-
-module.exports = function shimFlat() {
-	var polyfill = getPolyfill();
-	define(
-		Array.prototype,
-		{ flat: polyfill },
-		{ flat: function () { return Array.prototype.flat !== polyfill; } }
-	);
-	return polyfill;
-};
-
-
-/***/ }),
-/* 280 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-/* WEBPACK VAR INJECTION */(function(global) {
-
-var define = __webpack_require__(73);
-var isSymbol = __webpack_require__(145);
-
-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__(59)))
-
-/***/ }),
-/* 281 */
-/***/ (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;
-
-/***/ }),
-/* 282 */
-/***/ (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);
-}
-
-/***/ }),
-/* 283 */
-/***/ (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;
-
-/***/ }),
-/* 284 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports['default'] = registerInterfaceWithDefaultTheme;
-
-var _ThemedStyleSheet = __webpack_require__(153);
-
-var _ThemedStyleSheet2 = _interopRequireDefault(_ThemedStyleSheet);
-
-var _DefaultTheme = __webpack_require__(154);
-
-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']);
-}
-
-/***/ }),
-/* 285 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _CalendarDay = __webpack_require__(125);
-
-Object.defineProperty(exports, 'CalendarDay', {
-  enumerable: true,
-  get: function () {
-    function get() {
-      return _interopRequireDefault(_CalendarDay)['default'];
-    }
-
-    return get;
-  }()
-});
-
-var _CalendarMonth = __webpack_require__(158);
-
-Object.defineProperty(exports, 'CalendarMonth', {
-  enumerable: true,
-  get: function () {
-    function get() {
-      return _interopRequireDefault(_CalendarMonth)['default'];
-    }
-
-    return get;
-  }()
-});
-
-var _CalendarMonthGrid = __webpack_require__(160);
-
-Object.defineProperty(exports, 'CalendarMonthGrid', {
-  enumerable: true,
-  get: function () {
-    function get() {
-      return _interopRequireDefault(_CalendarMonthGrid)['default'];
-    }
-
-    return get;
-  }()
-});
-
-var _DateRangePicker = __webpack_require__(302);
-
-Object.defineProperty(exports, 'DateRangePicker', {
-  enumerable: true,
-  get: function () {
-    function get() {
-      return _interopRequireDefault(_DateRangePicker)['default'];
-    }
-
-    return get;
-  }()
-});
-
-var _DateRangePickerInput = __webpack_require__(180);
-
-Object.defineProperty(exports, 'DateRangePickerInput', {
-  enumerable: true,
-  get: function () {
-    function get() {
-      return _interopRequireDefault(_DateRangePickerInput)['default'];
-    }
-
-    return get;
-  }()
-});
-
-var _DateRangePickerInputController = __webpack_require__(179);
-
-Object.defineProperty(exports, 'DateRangePickerInputController', {
-  enumerable: true,
-  get: function () {
-    function get() {
-      return _interopRequireDefault(_DateRangePickerInputController)['default'];
-    }
-
-    return get;
-  }()
-});
-
-var _DateRangePickerShape = __webpack_require__(172);
-
-Object.defineProperty(exports, 'DateRangePickerShape', {
-  enumerable: true,
-  get: function () {
-    function get() {
-      return _interopRequireDefault(_DateRangePickerShape)['default'];
-    }
-
-    return get;
-  }()
-});
-
-var _DayPicker = __webpack_require__(131);
-
-Object.defineProperty(exports, 'DayPicker', {
-  enumerable: true,
-  get: function () {
-    function get() {
-      return _interopRequireDefault(_DayPicker)['default'];
-    }
-
-    return get;
-  }()
-});
-
-var _DayPickerRangeController = __webpack_require__(188);
-
-Object.defineProperty(exports, 'DayPickerRangeController', {
-  enumerable: true,
-  get: function () {
-    function get() {
-      return _interopRequireDefault(_DayPickerRangeController)['default'];
-    }
-
-    return get;
-  }()
-});
-
-var _DayPickerSingleDateController = __webpack_require__(194);
-
-Object.defineProperty(exports, 'DayPickerSingleDateController', {
-  enumerable: true,
-  get: function () {
-    function get() {
-      return _interopRequireDefault(_DayPickerSingleDateController)['default'];
-    }
-
-    return get;
-  }()
-});
-
-var _SingleDatePicker = __webpack_require__(333);
-
-Object.defineProperty(exports, 'SingleDatePicker', {
-  enumerable: true,
-  get: function () {
-    function get() {
-      return _interopRequireDefault(_SingleDatePicker)['default'];
-    }
-
-    return get;
-  }()
-});
-
-var _SingleDatePickerInput = __webpack_require__(196);
-
-Object.defineProperty(exports, 'SingleDatePickerInput', {
-  enumerable: true,
-  get: function () {
-    function get() {
-      return _interopRequireDefault(_SingleDatePickerInput)['default'];
-    }
-
-    return get;
-  }()
-});
-
-var _SingleDatePickerShape = __webpack_require__(195);
-
-Object.defineProperty(exports, 'SingleDatePickerShape', {
-  enumerable: true,
-  get: function () {
-    function get() {
-      return _interopRequireDefault(_SingleDatePickerShape)['default'];
-    }
-
-    return get;
-  }()
-});
-
-var _isInclusivelyAfterDay = __webpack_require__(94);
-
-Object.defineProperty(exports, 'isInclusivelyAfterDay', {
-  enumerable: true,
-  get: function () {
-    function get() {
-      return _interopRequireDefault(_isInclusivelyAfterDay)['default'];
-    }
-
-    return get;
-  }()
-});
-
-var _isInclusivelyBeforeDay = __webpack_require__(334);
-
-Object.defineProperty(exports, 'isInclusivelyBeforeDay', {
-  enumerable: true,
-  get: function () {
-    function get() {
-      return _interopRequireDefault(_isInclusivelyBeforeDay)['default'];
-    }
-
-    return get;
-  }()
-});
-
-var _isNextDay = __webpack_require__(192);
-
-Object.defineProperty(exports, 'isNextDay', {
-  enumerable: true,
-  get: function () {
-    function get() {
-      return _interopRequireDefault(_isNextDay)['default'];
-    }
-
-    return get;
-  }()
-});
-
-var _isSameDay = __webpack_require__(79);
-
-Object.defineProperty(exports, 'isSameDay', {
-  enumerable: true,
-  get: function () {
-    function get() {
-      return _interopRequireDefault(_isSameDay)['default'];
-    }
-
-    return get;
-  }()
-});
-
-var _toISODateString = __webpack_require__(102);
-
-Object.defineProperty(exports, 'toISODateString', {
-  enumerable: true,
-  get: function () {
-    function get() {
-      return _interopRequireDefault(_toISODateString)['default'];
-    }
-
-    return get;
-  }()
-});
-
-var _toLocalizedDateString = __webpack_require__(129);
-
-Object.defineProperty(exports, 'toLocalizedDateString', {
-  enumerable: true,
-  get: function () {
-    function get() {
-      return _interopRequireDefault(_toLocalizedDateString)['default'];
-    }
-
-    return get;
-  }()
-});
-
-var _toMomentObject = __webpack_require__(80);
-
-Object.defineProperty(exports, 'toMomentObject', {
-  enumerable: true,
-  get: function () {
-    function get() {
-      return _interopRequireDefault(_toMomentObject)['default'];
-    }
-
-    return get;
-  }()
-});
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-/***/ }),
-/* 286 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var define = __webpack_require__(73);
-var getPolyfill = __webpack_require__(156);
-
-module.exports = function shimAssign() {
-	var polyfill = getPolyfill();
-	define(
-		Object,
-		{ assign: polyfill },
-		{ assign: function () { return Object.assign !== polyfill; } }
-	);
-	return polyfill;
-};
-
-
-/***/ }),
-/* 287 */
-/***/ (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.
- *
- * @typechecks
- * 
- */
-
-/*eslint-disable no-self-compare */
-
-
-
-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;
-}
-
-module.exports = shallowEqual;
-
-/***/ }),
-/* 288 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var moment = __webpack_require__(29);
-
-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,
-};
-
-
-/***/ }),
-/* 289 */
-/***/ (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,
-};
-
-
-/***/ }),
-/* 290 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-function noop() {
-  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,
-  range: noopThunk,
-  ref: noopThunk,
-  requiredBy: noopThunk,
-  restrictedProp: noopThunk,
-  sequenceOf: noopThunk,
-  shape: noopThunk,
-  stringStartsWith: noopThunk,
-  uniqueArray: noopThunk,
-  uniqueArrayOf: noopThunk,
-  valuesOf: noopThunk,
-  withShape: noopThunk
-};
-
-
-/***/ }),
-/* 291 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var isMergeableObject = function isMergeableObject(value) {
-	return isNonNullObject(value)
-		&& !isSpecial(value)
-};
-
-function isNonNullObject(value) {
-	return !!value && typeof value === 'object'
-}
-
-function isSpecial(value) {
-	var stringValue = Object.prototype.toString.call(value);
-
-	return stringValue === '[object RegExp]'
-		|| stringValue === '[object Date]'
-		|| isReactElement(value)
-}
-
-// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25
-var canUseSymbol = typeof Symbol === 'function' && Symbol.for;
-var REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;
-
-function isReactElement(value) {
-	return value.$$typeof === REACT_ELEMENT_TYPE
-}
-
-function emptyTarget(val) {
-    return Array.isArray(val) ? [] : {}
-}
-
-function cloneIfNecessary(value, optionsArgument) {
-    var clone = optionsArgument && optionsArgument.clone === true;
-    return (clone && isMergeableObject(value)) ? deepmerge(emptyTarget(value), value, optionsArgument) : value
-}
-
-function defaultArrayMerge(target, source, optionsArgument) {
-    var destination = target.slice();
-    source.forEach(function(e, i) {
-        if (typeof destination[i] === 'undefined') {
-            destination[i] = cloneIfNecessary(e, optionsArgument);
-        } else if (isMergeableObject(e)) {
-            destination[i] = deepmerge(target[i], e, optionsArgument);
-        } else if (target.indexOf(e) === -1) {
-            destination.push(cloneIfNecessary(e, optionsArgument));
-        }
-    });
-    return destination
-}
-
-function mergeObject(target, source, optionsArgument) {
-    var destination = {};
-    if (isMergeableObject(target)) {
-        Object.keys(target).forEach(function(key) {
-            destination[key] = cloneIfNecessary(target[key], optionsArgument);
-        });
-    }
-    Object.keys(source).forEach(function(key) {
-        if (!isMergeableObject(source[key]) || !target[key]) {
-            destination[key] = cloneIfNecessary(source[key], optionsArgument);
-        } else {
-            destination[key] = deepmerge(target[key], source[key], optionsArgument);
-        }
-    });
-    return destination
-}
-
-function deepmerge(target, source, optionsArgument) {
-    var sourceIsArray = Array.isArray(source);
-    var targetIsArray = Array.isArray(target);
-    var options = optionsArgument || { arrayMerge: defaultArrayMerge };
-    var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;
-
-    if (!sourceAndTargetTypesMatch) {
-        return cloneIfNecessary(source, optionsArgument)
-    } else if (sourceIsArray) {
-        var arrayMerge = options.arrayMerge || defaultArrayMerge;
-        return arrayMerge(target, source, optionsArgument)
-    } else {
-        return mergeObject(target, source, optionsArgument)
-    }
-}
-
-deepmerge.all = function deepmergeAll(array, optionsArgument) {
-    if (!Array.isArray(array) || array.length < 2) {
-        throw new Error('first argument should be an array with at least two elements')
-    }
-
-    // we are sure there are at least 2 values, so it is safe to have no initial value
-    return array.reduce(function(prev, next) {
-        return deepmerge(prev, next, optionsArgument)
-    })
-};
-
-var deepmerge_1 = deepmerge;
-
-module.exports = deepmerge_1;
-
-
-/***/ }),
-/* 292 */
-/***/ (function(module, exports) {
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var CHANNEL = exports.CHANNEL = '__direction__';
-
-var DIRECTIONS = exports.DIRECTIONS = {
-  LTR: 'ltr',
-  RTL: 'rtl'
-};
-
-/***/ }),
-/* 293 */
-/***/ (function(module, exports, __webpack_require__) {
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _propTypes = __webpack_require__(31);
-
-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
-});
-
-/***/ }),
-/* 294 */
-/***/ (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 '';
-}
-
-/***/ }),
-/* 295 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports['default'] = CalendarWeek;
-
-var _react = __webpack_require__(27);
-
-var _react2 = _interopRequireDefault(_react);
-
-var _airbnbPropTypes = __webpack_require__(43);
-
-var _CalendarDay = __webpack_require__(125);
-
-var _CalendarDay2 = _interopRequireDefault(_CalendarDay);
-
-var _CustomizableCalendarDay = __webpack_require__(296);
-
-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;
-
-/***/ }),
-/* 296 */
-/***/ (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__(46);
-
-var _object2 = _interopRequireDefault(_object);
-
-var _react = __webpack_require__(27);
-
-var _react2 = _interopRequireDefault(_react);
-
-var _propTypes = __webpack_require__(31);
-
-var _propTypes2 = _interopRequireDefault(_propTypes);
-
-var _reactAddonsShallowCompare = __webpack_require__(78);
-
-var _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare);
-
-var _reactMomentProptypes = __webpack_require__(64);
-
-var _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes);
-
-var _airbnbPropTypes = __webpack_require__(43);
-
-var _reactWithStyles = __webpack_require__(56);
-
-var _moment = __webpack_require__(29);
-
-var _moment2 = _interopRequireDefault(_moment);
-
-var _defaultPhrases = __webpack_require__(47);
-
-var _getPhrasePropTypes = __webpack_require__(51);
-
-var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);
-
-var _getCalendarDaySettings = __webpack_require__(157);
-
-var _getCalendarDaySettings2 = _interopRequireDefault(_getCalendarDaySettings);
-
-var _constants = __webpack_require__(39);
-
-var _DefaultTheme = __webpack_require__(154);
-
-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);
-
-/***/ }),
-/* 297 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports['default'] = getCalendarMonthWeeks;
-
-var _moment = __webpack_require__(29);
-
-var _moment2 = _interopRequireDefault(_moment);
-
-var _constants = __webpack_require__(39);
-
-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;
-}
-
-/***/ }),
-/* 298 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports['default'] = isTransitionEndSupported;
-function isTransitionEndSupported() {
-  return !!(typeof window !== 'undefined' && 'TransitionEvent' in window);
-}
-
-/***/ }),
-/* 299 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = getTransformStyles;
-function getTransformStyles(transformValue) {
-  return {
-    transform: transformValue,
-    msTransform: transformValue,
-    MozTransform: transformValue,
-    WebkitTransform: transformValue
-  };
-}
-
-/***/ }),
-/* 300 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports['default'] = isPrevMonth;
-
-var _moment = __webpack_require__(29);
-
-var _moment2 = _interopRequireDefault(_moment);
-
-var _isSameMonth = __webpack_require__(162);
-
-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);
-}
-
-/***/ }),
-/* 301 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports['default'] = isNextMonth;
-
-var _moment = __webpack_require__(29);
-
-var _moment2 = _interopRequireDefault(_moment);
-
-var _isSameMonth = __webpack_require__(162);
-
-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);
-}
-
-/***/ }),
-/* 302 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.PureDateRangePicker = 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__(46);
-
-var _object2 = _interopRequireDefault(_object);
-
-var _react = __webpack_require__(27);
-
-var _react2 = _interopRequireDefault(_react);
-
-var _reactAddonsShallowCompare = __webpack_require__(78);
-
-var _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare);
-
-var _moment = __webpack_require__(29);
-
-var _moment2 = _interopRequireDefault(_moment);
-
-var _reactWithStyles = __webpack_require__(56);
-
-var _reactPortal = __webpack_require__(203);
-
-var _airbnbPropTypes = __webpack_require__(43);
-
-var _consolidatedEvents = __webpack_require__(103);
-
-var _isTouchDevice = __webpack_require__(82);
-
-var _isTouchDevice2 = _interopRequireDefault(_isTouchDevice);
-
-var _reactOutsideClickHandler = __webpack_require__(126);
-
-var _reactOutsideClickHandler2 = _interopRequireDefault(_reactOutsideClickHandler);
-
-var _DateRangePickerShape = __webpack_require__(172);
-
-var _DateRangePickerShape2 = _interopRequireDefault(_DateRangePickerShape);
-
-var _defaultPhrases = __webpack_require__(47);
-
-var _getResponsiveContainerStyles = __webpack_require__(176);
-
-var _getResponsiveContainerStyles2 = _interopRequireDefault(_getResponsiveContainerStyles);
-
-var _getDetachedContainerStyles = __webpack_require__(177);
-
-var _getDetachedContainerStyles2 = _interopRequireDefault(_getDetachedContainerStyles);
-
-var _getInputHeight = __webpack_require__(127);
-
-var _getInputHeight2 = _interopRequireDefault(_getInputHeight);
-
-var _isInclusivelyAfterDay = __webpack_require__(94);
-
-var _isInclusivelyAfterDay2 = _interopRequireDefault(_isInclusivelyAfterDay);
-
-var _disableScroll2 = __webpack_require__(178);
-
-var _disableScroll3 = _interopRequireDefault(_disableScroll2);
-
-var _DateRangePickerInputController = __webpack_require__(179);
-
-var _DateRangePickerInputController2 = _interopRequireDefault(_DateRangePickerInputController);
-
-var _DayPickerRangeController = __webpack_require__(188);
-
-var _DayPickerRangeController2 = _interopRequireDefault(_DayPickerRangeController);
-
-var _CloseButton = __webpack_require__(96);
-
-var _CloseButton2 = _interopRequireDefault(_CloseButton);
-
-var _constants = __webpack_require__(39);
-
-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, _DateRangePickerShape2['default']));
-
-var defaultProps = {
-  // required props for a functional interactive DateRangePicker
-  startDate: null,
-  endDate: null,
-  focusedInput: null,
-
-  // input related props
-  startDatePlaceholderText: 'Start Date',
-  endDatePlaceholderText: 'End Date',
-  disabled: false,
-  required: false,
-  readOnly: false,
-  screenReaderInputMessage: '',
-  showClearDates: false,
-  showDefaultInputIcon: false,
-  inputIconPosition: _constants.ICON_BEFORE_POSITION,
-  customInputIcon: null,
-  customArrowIcon: null,
-  customCloseIcon: null,
-  noBorder: false,
-  block: false,
-  small: false,
-  regular: false,
-  keepFocusOnInput: false,
-
-  // calendar presentation and interaction related props
-  renderMonthText: null,
-  orientation: _constants.HORIZONTAL_ORIENTATION,
-  anchorDirection: _constants.ANCHOR_LEFT,
-  openDirection: _constants.OPEN_DOWN,
-  horizontalMargin: 0,
-  withPortal: false,
-  withFullScreenPortal: false,
-  appendToBody: false,
-  disableScroll: false,
-  initialVisibleMonth: null,
-  numberOfMonths: 2,
-  keepOpenOnDateSelect: false,
-  reopenPickerOnClearDates: false,
-  renderCalendarInfo: null,
-  calendarInfoPosition: _constants.INFO_POSITION_BOTTOM,
-  hideKeyboardShortcutsPanel: false,
-  daySize: _constants.DAY_SIZE,
-  isRTL: false,
-  firstDayOfWeek: null,
-  verticalHeight: null,
-  transitionDuration: undefined,
-  verticalSpacing: _constants.DEFAULT_VERTICAL_SPACING,
-
-  // navigation related props
-  navPrev: null,
-  navNext: null,
-
-  onPrevMonthClick: function () {
-    function onPrevMonthClick() {}
-
-    return onPrevMonthClick;
-  }(),
-  onNextMonthClick: function () {
-    function onNextMonthClick() {}
-
-    return onNextMonthClick;
-  }(),
-  onClose: function () {
-    function onClose() {}
-
-    return onClose;
-  }(),
-
-
-  // day presentation and interaction related props
-  renderCalendarDay: undefined,
-  renderDayContents: null,
-  renderMonthElement: null,
-  minimumNights: 1,
-  enableOutsideDays: false,
-  isDayBlocked: function () {
-    function isDayBlocked() {
-      return false;
-    }
-
-    return isDayBlocked;
-  }(),
-  isOutsideRange: function () {
-    function isOutsideRange(day) {
-      return !(0, _isInclusivelyAfterDay2['default'])(day, (0, _moment2['default'])());
-    }
-
-    return isOutsideRange;
-  }(),
-  isDayHighlighted: function () {
-    function isDayHighlighted() {
-      return false;
-    }
-
-    return isDayHighlighted;
-  }(),
-
-  // internationalization
-  displayFormat: function () {
-    function displayFormat() {
-      return _moment2['default'].localeData().longDateFormat('L');
-    }
-
-    return displayFormat;
-  }(),
-  monthFormat: 'MMMM YYYY',
-  weekDayFormat: 'dd',
-  phrases: _defaultPhrases.DateRangePickerPhrases,
-  dayAriaLabelFormat: undefined
-};
-
-var DateRangePicker = function (_React$Component) {
-  _inherits(DateRangePicker, _React$Component);
-
-  function DateRangePicker(props) {
-    _classCallCheck(this, DateRangePicker);
-
-    var _this = _possibleConstructorReturn(this, (DateRangePicker.__proto__ || Object.getPrototypeOf(DateRangePicker)).call(this, props));
-
-    _this.state = {
-      dayPickerContainerStyles: {},
-      isDateRangePickerInputFocused: false,
-      isDayPickerFocused: false,
-      showKeyboardShortcuts: false
-    };
-
-    _this.isTouchDevice = false;
-
-    _this.onOutsideClick = _this.onOutsideClick.bind(_this);
-    _this.onDateRangePickerInputFocus = _this.onDateRangePickerInputFocus.bind(_this);
-    _this.onDayPickerFocus = _this.onDayPickerFocus.bind(_this);
-    _this.onDayPickerBlur = _this.onDayPickerBlur.bind(_this);
-    _this.showKeyboardShortcutsPanel = _this.showKeyboardShortcutsPanel.bind(_this);
-
-    _this.responsivizePickerPosition = _this.responsivizePickerPosition.bind(_this);
-    _this.disableScroll = _this.disableScroll.bind(_this);
-
-    _this.setDayPickerContainerRef = _this.setDayPickerContainerRef.bind(_this);
-    _this.setContainerRef = _this.setContainerRef.bind(_this);
-    return _this;
-  }
-
-  _createClass(DateRangePicker, [{
-    key: 'componentDidMount',
-    value: function () {
-      function componentDidMount() {
-        this.removeEventListener = (0, _consolidatedEvents.addEventListener)(window, 'resize', this.responsivizePickerPosition, { passive: true });
-        this.responsivizePickerPosition();
-        this.disableScroll();
-
-        var focusedInput = this.props.focusedInput;
-
-        if (focusedInput) {
-          this.setState({
-            isDateRangePickerInputFocused: true
-          });
-        }
-
-        this.isTouchDevice = (0, _isTouchDevice2['default'])();
-      }
-
-      return componentDidMount;
-    }()
-  }, {
-    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 focusedInput = this.props.focusedInput;
-
-        if (!prevProps.focusedInput && focusedInput && this.isOpened()) {
-          // The date picker just changed from being closed to being open.
-          this.responsivizePickerPosition();
-          this.disableScroll();
-        } else if (prevProps.focusedInput && !focusedInput && !this.isOpened()) {
-          // The date picker just changed from being open to being closed.
-          if (this.enableScroll) this.enableScroll();
-        }
-      }
-
-      return componentDidUpdate;
-    }()
-  }, {
-    key: 'componentWillUnmount',
-    value: function () {
-      function componentWillUnmount() {
-        if (this.removeEventListener) this.removeEventListener();
-        if (this.enableScroll) this.enableScroll();
-      }
-
-      return componentWillUnmount;
-    }()
-  }, {
-    key: 'onOutsideClick',
-    value: function () {
-      function onOutsideClick(event) {
-        var _props = this.props,
-            onFocusChange = _props.onFocusChange,
-            onClose = _props.onClose,
-            startDate = _props.startDate,
-            endDate = _props.endDate,
-            appendToBody = _props.appendToBody;
-
-        if (!this.isOpened()) return;
-        if (appendToBody && this.dayPickerContainer.contains(event.target)) return;
-
-        this.setState({
-          isDateRangePickerInputFocused: false,
-          isDayPickerFocused: false,
-          showKeyboardShortcuts: false
-        });
-
-        onFocusChange(null);
-        onClose({ startDate: startDate, endDate: endDate });
-      }
-
-      return onOutsideClick;
-    }()
-  }, {
-    key: 'onDateRangePickerInputFocus',
-    value: function () {
-      function onDateRangePickerInputFocus(focusedInput) {
-        var _props2 = this.props,
-            onFocusChange = _props2.onFocusChange,
-            readOnly = _props2.readOnly,
-            withPortal = _props2.withPortal,
-            withFullScreenPortal = _props2.withFullScreenPortal,
-            keepFocusOnInput = _props2.keepFocusOnInput;
-
-
-        if (focusedInput) {
-          var withAnyPortal = withPortal || withFullScreenPortal;
-          var moveFocusToDayPicker = withAnyPortal || readOnly && !keepFocusOnInput || this.isTouchDevice && !keepFocusOnInput;
-
-          if (moveFocusToDayPicker) {
-            this.onDayPickerFocus();
-          } else {
-            this.onDayPickerBlur();
-          }
-        }
-
-        onFocusChange(focusedInput);
-      }
-
-      return onDateRangePickerInputFocus;
-    }()
-  }, {
-    key: 'onDayPickerFocus',
-    value: function () {
-      function onDayPickerFocus() {
-        var _props3 = this.props,
-            focusedInput = _props3.focusedInput,
-            onFocusChange = _props3.onFocusChange;
-
-        if (!focusedInput) onFocusChange(_constants.START_DATE);
-
-        this.setState({
-          isDateRangePickerInputFocused: false,
-          isDayPickerFocused: true,
-          showKeyboardShortcuts: false
-        });
-      }
-
-      return onDayPickerFocus;
-    }()
-  }, {
-    key: 'onDayPickerBlur',
-    value: function () {
-      function onDayPickerBlur() {
-        this.setState({
-          isDateRangePickerInputFocused: true,
-          isDayPickerFocused: false,
-          showKeyboardShortcuts: false
-        });
-      }
-
-      return onDayPickerBlur;
-    }()
-  }, {
-    key: 'setDayPickerContainerRef',
-    value: function () {
-      function setDayPickerContainerRef(ref) {
-        this.dayPickerContainer = ref;
-      }
-
-      return setDayPickerContainerRef;
-    }()
-  }, {
-    key: 'setContainerRef',
-    value: function () {
-      function setContainerRef(ref) {
-        this.container = ref;
-      }
-
-      return setContainerRef;
-    }()
-  }, {
-    key: 'isOpened',
-    value: function () {
-      function isOpened() {
-        var focusedInput = this.props.focusedInput;
-
-        return focusedInput === _constants.START_DATE || focusedInput === _constants.END_DATE;
-      }
-
-      return isOpened;
-    }()
-  }, {
-    key: 'disableScroll',
-    value: function () {
-      function disableScroll() {
-        var _props4 = this.props,
-            appendToBody = _props4.appendToBody,
-            propDisableScroll = _props4.disableScroll;
-
-        if (!appendToBody && !propDisableScroll) return;
-        if (!this.isOpened()) return;
-
-        // Disable scroll for every ancestor of this DateRangePicker up to the
-        // document level. This ensures the input and the picker never move. Other
-        // sibling elements or the picker itself can scroll.
-        this.enableScroll = (0, _disableScroll3['default'])(this.container);
-      }
-
-      return disableScroll;
-    }()
-  }, {
-    key: 'responsivizePickerPosition',
-    value: function () {
-      function responsivizePickerPosition() {
-        // It's possible the portal props have been changed in response to window resizes
-        // So let's ensure we reset this back to the base state each time
-        this.setState({ dayPickerContainerStyles: {} });
-
-        if (!this.isOpened()) {
-          return;
-        }
-
-        var _props5 = this.props,
-            openDirection = _props5.openDirection,
-            anchorDirection = _props5.anchorDirection,
-            horizontalMargin = _props5.horizontalMargin,
-            withPortal = _props5.withPortal,
-            withFullScreenPortal = _props5.withFullScreenPortal,
-            appendToBody = _props5.appendToBody;
-        var dayPickerContainerStyles = this.state.dayPickerContainerStyles;
-
-
-        var isAnchoredLeft = anchorDirection === _constants.ANCHOR_LEFT;
-        if (!withPortal && !withFullScreenPortal) {
-          var containerRect = this.dayPickerContainer.getBoundingClientRect();
-          var currentOffset = dayPickerContainerStyles[anchorDirection] || 0;
-          var containerEdge = isAnchoredLeft ? containerRect[_constants.ANCHOR_RIGHT] : containerRect[_constants.ANCHOR_LEFT];
-
-          this.setState({
-            dayPickerContainerStyles: (0, _object2['default'])({}, (0, _getResponsiveContainerStyles2['default'])(anchorDirection, currentOffset, containerEdge, horizontalMargin), appendToBody && (0, _getDetachedContainerStyles2['default'])(openDirection, anchorDirection, this.container))
-          });
-        }
-      }
-
-      return responsivizePickerPosition;
-    }()
-  }, {
-    key: 'showKeyboardShortcutsPanel',
-    value: function () {
-      function showKeyboardShortcutsPanel() {
-        this.setState({
-          isDateRangePickerInputFocused: false,
-          isDayPickerFocused: true,
-          showKeyboardShortcuts: true
-        });
-      }
-
-      return showKeyboardShortcutsPanel;
-    }()
-  }, {
-    key: 'maybeRenderDayPickerWithPortal',
-    value: function () {
-      function maybeRenderDayPickerWithPortal() {
-        var _props6 = this.props,
-            withPortal = _props6.withPortal,
-            withFullScreenPortal = _props6.withFullScreenPortal,
-            appendToBody = _props6.appendToBody;
-
-
-        if (!this.isOpened()) {
-          return null;
-        }
-
-        if (withPortal || withFullScreenPortal || appendToBody) {
-          return _react2['default'].createElement(
-            _reactPortal.Portal,
-            null,
-            this.renderDayPicker()
-          );
-        }
-
-        return this.renderDayPicker();
-      }
-
-      return maybeRenderDayPickerWithPortal;
-    }()
-  }, {
-    key: 'renderDayPicker',
-    value: function () {
-      function renderDayPicker() {
-        var _props7 = this.props,
-            anchorDirection = _props7.anchorDirection,
-            openDirection = _props7.openDirection,
-            isDayBlocked = _props7.isDayBlocked,
-            isDayHighlighted = _props7.isDayHighlighted,
-            isOutsideRange = _props7.isOutsideRange,
-            numberOfMonths = _props7.numberOfMonths,
-            orientation = _props7.orientation,
-            monthFormat = _props7.monthFormat,
-            renderMonthText = _props7.renderMonthText,
-            navPrev = _props7.navPrev,
-            navNext = _props7.navNext,
-            onPrevMonthClick = _props7.onPrevMonthClick,
-            onNextMonthClick = _props7.onNextMonthClick,
-            onDatesChange = _props7.onDatesChange,
-            onFocusChange = _props7.onFocusChange,
-            withPortal = _props7.withPortal,
-            withFullScreenPortal = _props7.withFullScreenPortal,
-            daySize = _props7.daySize,
-            enableOutsideDays = _props7.enableOutsideDays,
-            focusedInput = _props7.focusedInput,
-            startDate = _props7.startDate,
-            endDate = _props7.endDate,
-            minimumNights = _props7.minimumNights,
-            keepOpenOnDateSelect = _props7.keepOpenOnDateSelect,
-            renderCalendarDay = _props7.renderCalendarDay,
-            renderDayContents = _props7.renderDayContents,
-            renderCalendarInfo = _props7.renderCalendarInfo,
-            renderMonthElement = _props7.renderMonthElement,
-            calendarInfoPosition = _props7.calendarInfoPosition,
-            firstDayOfWeek = _props7.firstDayOfWeek,
-            initialVisibleMonth = _props7.initialVisibleMonth,
-            hideKeyboardShortcutsPanel = _props7.hideKeyboardShortcutsPanel,
-            customCloseIcon = _props7.customCloseIcon,
-            onClose = _props7.onClose,
-            phrases = _props7.phrases,
-            dayAriaLabelFormat = _props7.dayAriaLabelFormat,
-            isRTL = _props7.isRTL,
-            weekDayFormat = _props7.weekDayFormat,
-            styles = _props7.styles,
-            verticalHeight = _props7.verticalHeight,
-            transitionDuration = _props7.transitionDuration,
-            verticalSpacing = _props7.verticalSpacing,
-            small = _props7.small,
-            disabled = _props7.disabled,
-            reactDates = _props7.theme.reactDates;
-        var _state = this.state,
-            dayPickerContainerStyles = _state.dayPickerContainerStyles,
-            isDayPickerFocused = _state.isDayPickerFocused,
-            showKeyboardShortcuts = _state.showKeyboardShortcuts;
-
-
-        var onOutsideClick = !withFullScreenPortal && withPortal ? this.onOutsideClick : undefined;
-        var initialVisibleMonthThunk = initialVisibleMonth || function () {
-          return startDate || endDate || (0, _moment2['default'])();
-        };
-
-        var closeIcon = customCloseIcon || _react2['default'].createElement(_CloseButton2['default'], (0, _reactWithStyles.css)(styles.DateRangePicker_closeButton_svg));
-
-        var inputHeight = (0, _getInputHeight2['default'])(reactDates, small);
-
-        var withAnyPortal = withPortal || withFullScreenPortal;
-
-        return _react2['default'].createElement(
-          'div',
-          _extends({ // eslint-disable-line jsx-a11y/no-static-element-interactions
-            ref: this.setDayPickerContainerRef
-          }, (0, _reactWithStyles.css)(styles.DateRangePicker_picker, anchorDirection === _constants.ANCHOR_LEFT && styles.DateRangePicker_picker__directionLeft, anchorDirection === _constants.ANCHOR_RIGHT && styles.DateRangePicker_picker__directionRight, orientation === _constants.HORIZONTAL_ORIENTATION && styles.DateRangePicker_picker__horizontal, orientation === _constants.VERTICAL_ORIENTATION && styles.DateRangePicker_picker__vertical, !withAnyPortal && openDirection === _constants.OPEN_DOWN && {
-            top: inputHeight + verticalSpacing
-          }, !withAnyPortal && openDirection === _constants.OPEN_UP && {
-            bottom: inputHeight + verticalSpacing
-          }, withAnyPortal && styles.DateRangePicker_picker__portal, withFullScreenPortal && styles.DateRangePicker_picker__fullScreenPortal, isRTL && styles.DateRangePicker_picker__rtl, dayPickerContainerStyles), {
-            onClick: onOutsideClick
-          }),
-          _react2['default'].createElement(_DayPickerRangeController2['default'], {
-            orientation: orientation,
-            enableOutsideDays: enableOutsideDays,
-            numberOfMonths: numberOfMonths,
-            onPrevMonthClick: onPrevMonthClick,
-            onNextMonthClick: onNextMonthClick,
-            onDatesChange: onDatesChange,
-            onFocusChange: onFocusChange,
-            onClose: onClose,
-            focusedInput: focusedInput,
-            startDate: startDate,
-            endDate: endDate,
-            monthFormat: monthFormat,
-            renderMonthText: renderMonthText,
-            withPortal: withAnyPortal,
-            daySize: daySize,
-            initialVisibleMonth: initialVisibleMonthThunk,
-            hideKeyboardShortcutsPanel: hideKeyboardShortcutsPanel,
-            navPrev: navPrev,
-            navNext: navNext,
-            minimumNights: minimumNights,
-            isOutsideRange: isOutsideRange,
-            isDayHighlighted: isDayHighlighted,
-            isDayBlocked: isDayBlocked,
-            keepOpenOnDateSelect: keepOpenOnDateSelect,
-            renderCalendarDay: renderCalendarDay,
-            renderDayContents: renderDayContents,
-            renderCalendarInfo: renderCalendarInfo,
-            renderMonthElement: renderMonthElement,
-            calendarInfoPosition: calendarInfoPosition,
-            isFocused: isDayPickerFocused,
-            showKeyboardShortcuts: showKeyboardShortcuts,
-            onBlur: this.onDayPickerBlur,
-            phrases: phrases,
-            dayAriaLabelFormat: dayAriaLabelFormat,
-            isRTL: isRTL,
-            firstDayOfWeek: firstDayOfWeek,
-            weekDayFormat: weekDayFormat,
-            verticalHeight: verticalHeight,
-            transitionDuration: transitionDuration,
-            disabled: disabled
-          }),
-          withFullScreenPortal && _react2['default'].createElement(
-            'button',
-            _extends({}, (0, _reactWithStyles.css)(styles.DateRangePicker_closeButton), {
-              type: 'button',
-              onClick: this.onOutsideClick,
-              'aria-label': phrases.closeDatePicker
-            }),
-            closeIcon
-          )
-        );
-      }
-
-      return renderDayPicker;
-    }()
-  }, {
-    key: 'render',
-    value: function () {
-      function render() {
-        var _props8 = this.props,
-            startDate = _props8.startDate,
-            startDateId = _props8.startDateId,
-            startDatePlaceholderText = _props8.startDatePlaceholderText,
-            endDate = _props8.endDate,
-            endDateId = _props8.endDateId,
-            endDatePlaceholderText = _props8.endDatePlaceholderText,
-            focusedInput = _props8.focusedInput,
-            screenReaderInputMessage = _props8.screenReaderInputMessage,
-            showClearDates = _props8.showClearDates,
-            showDefaultInputIcon = _props8.showDefaultInputIcon,
-            inputIconPosition = _props8.inputIconPosition,
-            customInputIcon = _props8.customInputIcon,
-            customArrowIcon = _props8.customArrowIcon,
-            customCloseIcon = _props8.customCloseIcon,
-            disabled = _props8.disabled,
-            required = _props8.required,
-            readOnly = _props8.readOnly,
-            openDirection = _props8.openDirection,
-            phrases = _props8.phrases,
-            isOutsideRange = _props8.isOutsideRange,
-            minimumNights = _props8.minimumNights,
-            withPortal = _props8.withPortal,
-            withFullScreenPortal = _props8.withFullScreenPortal,
-            displayFormat = _props8.displayFormat,
-            reopenPickerOnClearDates = _props8.reopenPickerOnClearDates,
-            keepOpenOnDateSelect = _props8.keepOpenOnDateSelect,
-            onDatesChange = _props8.onDatesChange,
-            onClose = _props8.onClose,
-            isRTL = _props8.isRTL,
-            noBorder = _props8.noBorder,
-            block = _props8.block,
-            verticalSpacing = _props8.verticalSpacing,
-            small = _props8.small,
-            regular = _props8.regular,
-            styles = _props8.styles;
-        var isDateRangePickerInputFocused = this.state.isDateRangePickerInputFocused;
-
-
-        var enableOutsideClick = !withPortal && !withFullScreenPortal;
-
-        var hideFang = verticalSpacing < _constants.FANG_HEIGHT_PX;
-
-        var input = _react2['default'].createElement(_DateRangePickerInputController2['default'], {
-          startDate: startDate,
-          startDateId: startDateId,
-          startDatePlaceholderText: startDatePlaceholderText,
-          isStartDateFocused: focusedInput === _constants.START_DATE,
-          endDate: endDate,
-          endDateId: endDateId,
-          endDatePlaceholderText: endDatePlaceholderText,
-          isEndDateFocused: focusedInput === _constants.END_DATE,
-          displayFormat: displayFormat,
-          showClearDates: showClearDates,
-          showCaret: !withPortal && !withFullScreenPortal && !hideFang,
-          showDefaultInputIcon: showDefaultInputIcon,
-          inputIconPosition: inputIconPosition,
-          customInputIcon: customInputIcon,
-          customArrowIcon: customArrowIcon,
-          customCloseIcon: customCloseIcon,
-          disabled: disabled,
-          required: required,
-          readOnly: readOnly,
-          openDirection: openDirection,
-          reopenPickerOnClearDates: reopenPickerOnClearDates,
-          keepOpenOnDateSelect: keepOpenOnDateSelect,
-          isOutsideRange: isOutsideRange,
-          minimumNights: minimumNights,
-          withFullScreenPortal: withFullScreenPortal,
-          onDatesChange: onDatesChange,
-          onFocusChange: this.onDateRangePickerInputFocus,
-          onKeyDownArrowDown: this.onDayPickerFocus,
-          onKeyDownQuestionMark: this.showKeyboardShortcutsPanel,
-          onClose: onClose,
-          phrases: phrases,
-          screenReaderMessage: screenReaderInputMessage,
-          isFocused: isDateRangePickerInputFocused,
-          isRTL: isRTL,
-          noBorder: noBorder,
-          block: block,
-          small: small,
-          regular: regular,
-          verticalSpacing: verticalSpacing
-        });
-
-        return _react2['default'].createElement(
-          'div',
-          _extends({
-            ref: this.setContainerRef
-          }, (0, _reactWithStyles.css)(styles.DateRangePicker, block && styles.DateRangePicker__block)),
-          enableOutsideClick && _react2['default'].createElement(
-            _reactOutsideClickHandler2['default'],
-            { onOutsideClick: this.onOutsideClick },
-            input,
-            this.maybeRenderDayPickerWithPortal()
-          ),
-          !enableOutsideClick && input,
-          !enableOutsideClick && this.maybeRenderDayPickerWithPortal()
-        );
-      }
-
-      return render;
-    }()
-  }]);
-
-  return DateRangePicker;
-}(_react2['default'].Component);
-
-DateRangePicker.propTypes = propTypes;
-DateRangePicker.defaultProps = defaultProps;
-
-exports.PureDateRangePicker = DateRangePicker;
-exports['default'] = (0, _reactWithStyles.withStyles)(function (_ref) {
-  var _ref$reactDates = _ref.reactDates,
-      color = _ref$reactDates.color,
-      zIndex = _ref$reactDates.zIndex;
-  return {
-    DateRangePicker: {
-      position: 'relative',
-      display: 'inline-block'
-    },
-
-    DateRangePicker__block: {
-      display: 'block'
-    },
-
-    DateRangePicker_picker: {
-      zIndex: zIndex + 1,
-      backgroundColor: color.background,
-      position: 'absolute'
-    },
-
-    DateRangePicker_picker__rtl: {
-      direction: 'rtl'
-    },
-
-    DateRangePicker_picker__directionLeft: {
-      left: 0
-    },
-
-    DateRangePicker_picker__directionRight: {
-      right: 0
-    },
-
-    DateRangePicker_picker__portal: {
-      backgroundColor: 'rgba(0, 0, 0, 0.3)',
-      position: 'fixed',
-      top: 0,
-      left: 0,
-      height: '100%',
-      width: '100%'
-    },
-
-    DateRangePicker_picker__fullScreenPortal: {
-      backgroundColor: color.background
-    },
-
-    DateRangePicker_closeButton: {
-      background: 'none',
-      border: 0,
-      color: 'inherit',
-      font: 'inherit',
-      lineHeight: 'normal',
-      overflow: 'visible',
-      cursor: 'pointer',
-
-      position: 'absolute',
-      top: 0,
-      right: 0,
-      padding: 15,
-      zIndex: zIndex + 2,
-
-      ':hover': {
-        color: 'darken(' + String(color.core.grayLighter) + ', 10%)',
-        textDecoration: 'none'
-      },
-
-      ':focus': {
-        color: 'darken(' + String(color.core.grayLighter) + ', 10%)',
-        textDecoration: 'none'
-      }
-    },
-
-    DateRangePicker_closeButton_svg: {
-      height: 15,
-      width: 15,
-      fill: color.core.grayLighter
-    }
-  };
-})(DateRangePicker);
-
-/***/ }),
-/* 303 */
-/***/ (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__(27);
-
-var _react2 = _interopRequireDefault(_react);
-
-var _propTypes = __webpack_require__(304);
-
-var _propTypes2 = _interopRequireDefault(_propTypes);
-
-var _airbnbPropTypes = __webpack_require__(43);
-
-var _consolidatedEvents = __webpack_require__(103);
-
-var _object = __webpack_require__(307);
-
-var _object2 = _interopRequireDefault(_object);
-
-var _document = __webpack_require__(311);
-
-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_BLOCK: 'inline-block'
-};
-
-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: 'componentWillReceiveProps',
-    value: function () {
-      function componentWillReceiveProps(_ref2) {
-        var disabled = _ref2.disabled,
-            useCapture = _ref2.useCapture;
-        var prevDisabled = this.props.disabled;
-
-        if (prevDisabled !== disabled) {
-          if (disabled) {
-            this.removeEventListeners();
-          } else {
-            this.addMouseDownEventListener(useCapture);
-          }
-        }
-      }
-
-      return componentWillReceiveProps;
-    }()
-  }, {
-    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) {
-          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 _props2 = this.props,
-            children = _props2.children,
-            display = _props2.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;
-
-/***/ }),
-/* 304 */
-/***/ (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__(305)();
-}
-
-
-/***/ }),
-/* 305 */
-/***/ (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__(306);
+var ReactPropTypesSecret = __webpack_require__(139);
 
 function emptyFunction() {}
 function emptyFunctionWithReset() {}
@@ -20899,7 +12398,7 @@
 
 
 /***/ }),
-/* 306 */
+/* 139 */
 /***/ (function(module, exports, __webpack_require__) {
 
 "use strict";
@@ -20918,2031 +12417,75 @@
 
 
 /***/ }),
-/* 307 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var define = __webpack_require__(163);
-
-var implementation = __webpack_require__(165);
-var getPolyfill = __webpack_require__(167);
-var shim = __webpack_require__(310);
-
-var polyfill = getPolyfill();
-
-define(polyfill, {
-	getPolyfill: getPolyfill,
-	implementation: implementation,
-	shim: shim
-});
-
-module.exports = polyfill;
-
-
-/***/ }),
-/* 308 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var slice = Array.prototype.slice;
-var isArgs = __webpack_require__(164);
-
-var origKeys = Object.keys;
-var keysShim = origKeys ? function keys(o) { return origKeys(o); } : __webpack_require__(309);
-
-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;
-
-
-/***/ }),
-/* 309 */
-/***/ (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__(164); // 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;
-
-
-/***/ }),
-/* 310 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var getPolyfill = __webpack_require__(167);
-var define = __webpack_require__(163);
-
-module.exports = function shimValues() {
-	var polyfill = getPolyfill();
-	define(Object, { values: polyfill }, {
-		values: function testValues() {
-			return Object.values !== polyfill;
-		}
-	});
-	return polyfill;
-};
-
-
-/***/ }),
-/* 311 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var define = __webpack_require__(168);
-
-var implementation = __webpack_require__(170);
-var getPolyfill = __webpack_require__(171);
-var polyfill = getPolyfill();
-var shim = __webpack_require__(314);
-
-var boundContains = function contains(node, other) {
-	return polyfill.apply(node, [other]);
-};
-
-define(boundContains, {
-	getPolyfill: getPolyfill,
-	implementation: implementation,
-	shim: shim
-});
-
-module.exports = boundContains;
-
-
-/***/ }),
-/* 312 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var slice = Array.prototype.slice;
-var isArgs = __webpack_require__(169);
-
-var origKeys = Object.keys;
-var keysShim = origKeys ? function keys(o) { return origKeys(o); } : __webpack_require__(313);
-
-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;
-
-
-/***/ }),
-/* 313 */
-/***/ (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__(169); // 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;
-
-
-/***/ }),
-/* 314 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var define = __webpack_require__(168);
-var getPolyfill = __webpack_require__(171);
-
-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;
-};
-
-
-/***/ }),
-/* 315 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var isObject = __webpack_require__(128),
-    now = __webpack_require__(316),
-    toNumber = __webpack_require__(318);
-
-/** 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.
-        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;
-
-
-/***/ }),
-/* 316 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var root = __webpack_require__(183);
-
-/**
- * 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;
-
-
-/***/ }),
-/* 317 */
-/***/ (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__(59)))
-
-/***/ }),
-/* 318 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var isObject = __webpack_require__(128),
-    isSymbol = __webpack_require__(319);
-
-/** Used as references for various `Number` constants. */
-var NAN = 0 / 0;
-
-/** Used to match leading and trailing whitespace. */
-var reTrim = /^\s+|\s+$/g;
-
-/** 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 = value.replace(reTrim, '');
-  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;
-
-
-/***/ }),
-/* 319 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var baseGetTag = __webpack_require__(320),
-    isObjectLike = __webpack_require__(323);
-
-/** `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;
-
-
-/***/ }),
-/* 320 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var Symbol = __webpack_require__(184),
-    getRawTag = __webpack_require__(321),
-    objectToString = __webpack_require__(322);
-
-/** `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;
-
-
-/***/ }),
-/* 321 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var Symbol = __webpack_require__(184);
-
-/** 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;
-
-
-/***/ }),
-/* 322 */
-/***/ (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;
-
-
-/***/ }),
-/* 323 */
-/***/ (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;
-
-
-/***/ }),
-/* 324 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var getPolyfill = __webpack_require__(191);
-var define = __webpack_require__(73);
-
-module.exports = function shimValues() {
-	var polyfill = getPolyfill();
-	define(Object, { values: polyfill }, {
-		values: function testValues() {
-			return Object.values !== polyfill;
-		}
-	});
-	return polyfill;
-};
-
-
-/***/ }),
-/* 325 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = getSelectedDateOffset;
-var defaultModifier = function defaultModifier(day) {
-  return day;
-};
-
-function getSelectedDateOffset(fn, day) {
-  var modifier = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultModifier;
-
-  if (!fn) return day;
-  return modifier(fn(day.clone()));
-}
-
-/***/ }),
-/* 326 */
-/***/ (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__(46);
-
-var _object2 = _interopRequireDefault(_object);
-
-var _react = __webpack_require__(27);
-
-var _react2 = _interopRequireDefault(_react);
-
-var _propTypes = __webpack_require__(31);
-
-var _propTypes2 = _interopRequireDefault(_propTypes);
-
-var _airbnbPropTypes = __webpack_require__(43);
-
-var _reactWithStyles = __webpack_require__(56);
-
-var _defaultPhrases = __webpack_require__(47);
-
-var _getPhrasePropTypes = __webpack_require__(51);
-
-var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);
-
-var _LeftArrow = __webpack_require__(186);
-
-var _LeftArrow2 = _interopRequireDefault(_LeftArrow);
-
-var _RightArrow = __webpack_require__(185);
-
-var _RightArrow2 = _interopRequireDefault(_RightArrow);
-
-var _ChevronUp = __webpack_require__(327);
-
-var _ChevronUp2 = _interopRequireDefault(_ChevronUp);
-
-var _ChevronDown = __webpack_require__(328);
-
-var _ChevronDown2 = _interopRequireDefault(_ChevronDown);
-
-var _ScrollableOrientationShape = __webpack_require__(81);
-
-var _ScrollableOrientationShape2 = _interopRequireDefault(_ScrollableOrientationShape);
-
-var _constants = __webpack_require__(39);
-
-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);
-
-/***/ }),
-/* 327 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _react = __webpack_require__(27);
-
-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;
-
-/***/ }),
-/* 328 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _react = __webpack_require__(27);
-
-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;
-
-/***/ }),
-/* 329 */
-/***/ (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__(46);
-
-var _object2 = _interopRequireDefault(_object);
-
-var _react = __webpack_require__(27);
-
-var _react2 = _interopRequireDefault(_react);
-
-var _propTypes = __webpack_require__(31);
-
-var _propTypes2 = _interopRequireDefault(_propTypes);
-
-var _airbnbPropTypes = __webpack_require__(43);
-
-var _reactWithStyles = __webpack_require__(56);
-
-var _defaultPhrases = __webpack_require__(47);
-
-var _getPhrasePropTypes = __webpack_require__(51);
-
-var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);
-
-var _KeyboardShortcutRow = __webpack_require__(330);
-
-var _KeyboardShortcutRow2 = _interopRequireDefault(_KeyboardShortcutRow);
-
-var _CloseButton = __webpack_require__(96);
-
-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);
-
-/***/ }),
-/* 330 */
-/***/ (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__(46);
-
-var _object2 = _interopRequireDefault(_object);
-
-var _react = __webpack_require__(27);
-
-var _react2 = _interopRequireDefault(_react);
-
-var _propTypes = __webpack_require__(31);
-
-var _propTypes2 = _interopRequireDefault(_propTypes);
-
-var _airbnbPropTypes = __webpack_require__(43);
-
-var _reactWithStyles = __webpack_require__(56);
-
-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
-    )
-  );
-}
-
-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);
-
-/***/ }),
-/* 331 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports['default'] = getNumberOfCalendarMonthWeeks;
-
-var _moment = __webpack_require__(29);
-
-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);
-}
-
-/***/ }),
-/* 332 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports['default'] = getActiveElement;
-function getActiveElement() {
-  return typeof document !== 'undefined' && document.activeElement;
-}
-
-/***/ }),
-/* 333 */
+/* 140 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(58);
+
+var callBind = __webpack_require__(182);
+
+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.')) {
+		return callBind(intrinsic);
+	}
+	return intrinsic;
+};
+
+
+/***/ }),
+/* 141 */
+/***/ (function(module, exports, __webpack_require__) {
+
+var moment = __webpack_require__(43);
+var momentValidationWrapper = __webpack_require__(354);
+var core = __webpack_require__(355);
+
+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'
+  ),
+
+};
+
+
+/***/ }),
+/* 142 */
 /***/ (function(module, exports, __webpack_require__) {
 
 "use strict";
@@ -22951,2047 +12494,94 @@
 Object.defineProperty(exports, "__esModule", {
   value: true
 });
-exports.PureSingleDatePicker = 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__(46);
-
-var _object2 = _interopRequireDefault(_object);
-
-var _react = __webpack_require__(27);
-
-var _react2 = _interopRequireDefault(_react);
-
-var _moment = __webpack_require__(29);
-
-var _moment2 = _interopRequireDefault(_moment);
-
-var _reactWithStyles = __webpack_require__(56);
-
-var _reactPortal = __webpack_require__(203);
-
-var _airbnbPropTypes = __webpack_require__(43);
-
-var _consolidatedEvents = __webpack_require__(103);
-
-var _isTouchDevice = __webpack_require__(82);
-
-var _isTouchDevice2 = _interopRequireDefault(_isTouchDevice);
-
-var _reactOutsideClickHandler = __webpack_require__(126);
-
-var _reactOutsideClickHandler2 = _interopRequireDefault(_reactOutsideClickHandler);
-
-var _SingleDatePickerShape = __webpack_require__(195);
-
-var _SingleDatePickerShape2 = _interopRequireDefault(_SingleDatePickerShape);
-
-var _defaultPhrases = __webpack_require__(47);
-
-var _toMomentObject = __webpack_require__(80);
-
-var _toMomentObject2 = _interopRequireDefault(_toMomentObject);
-
-var _toLocalizedDateString = __webpack_require__(129);
-
-var _toLocalizedDateString2 = _interopRequireDefault(_toLocalizedDateString);
-
-var _getResponsiveContainerStyles = __webpack_require__(176);
-
-var _getResponsiveContainerStyles2 = _interopRequireDefault(_getResponsiveContainerStyles);
-
-var _getDetachedContainerStyles = __webpack_require__(177);
-
-var _getDetachedContainerStyles2 = _interopRequireDefault(_getDetachedContainerStyles);
-
-var _getInputHeight = __webpack_require__(127);
-
-var _getInputHeight2 = _interopRequireDefault(_getInputHeight);
-
-var _isInclusivelyAfterDay = __webpack_require__(94);
-
-var _isInclusivelyAfterDay2 = _interopRequireDefault(_isInclusivelyAfterDay);
-
-var _disableScroll2 = __webpack_require__(178);
-
-var _disableScroll3 = _interopRequireDefault(_disableScroll2);
-
-var _SingleDatePickerInput = __webpack_require__(196);
-
-var _SingleDatePickerInput2 = _interopRequireDefault(_SingleDatePickerInput);
-
-var _DayPickerSingleDateController = __webpack_require__(194);
-
-var _DayPickerSingleDateController2 = _interopRequireDefault(_DayPickerSingleDateController);
-
-var _CloseButton = __webpack_require__(96);
-
-var _CloseButton2 = _interopRequireDefault(_CloseButton);
-
-var _constants = __webpack_require__(39);
-
-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, _SingleDatePickerShape2['default']));
-
-var defaultProps = {
-  // required props for a functional interactive SingleDatePicker
-  date: null,
-  focused: false,
-
-  // input related props
-  id: 'date',
-  placeholder: 'Date',
-  disabled: false,
-  required: false,
-  readOnly: false,
-  screenReaderInputMessage: '',
-  showClearDate: false,
-  showDefaultInputIcon: false,
-  inputIconPosition: _constants.ICON_BEFORE_POSITION,
-  customInputIcon: null,
-  customCloseIcon: null,
-  noBorder: false,
-  block: false,
-  small: false,
-  regular: false,
-  verticalSpacing: _constants.DEFAULT_VERTICAL_SPACING,
-  keepFocusOnInput: false,
-
-  // calendar presentation and interaction related props
-  orientation: _constants.HORIZONTAL_ORIENTATION,
-  anchorDirection: _constants.ANCHOR_LEFT,
-  openDirection: _constants.OPEN_DOWN,
-  horizontalMargin: 0,
-  withPortal: false,
-  withFullScreenPortal: false,
-  appendToBody: false,
-  disableScroll: false,
-  initialVisibleMonth: null,
-  firstDayOfWeek: null,
-  numberOfMonths: 2,
-  keepOpenOnDateSelect: false,
-  reopenPickerOnClearDate: false,
-  renderCalendarInfo: null,
-  calendarInfoPosition: _constants.INFO_POSITION_BOTTOM,
-  hideKeyboardShortcutsPanel: false,
-  daySize: _constants.DAY_SIZE,
-  isRTL: false,
-  verticalHeight: null,
-  transitionDuration: undefined,
-  horizontalMonthPadding: 13,
-
-  // navigation related props
-  navPrev: null,
-  navNext: null,
-
-  onPrevMonthClick: function () {
-    function onPrevMonthClick() {}
-
-    return onPrevMonthClick;
-  }(),
-  onNextMonthClick: function () {
-    function onNextMonthClick() {}
-
-    return onNextMonthClick;
-  }(),
-  onClose: function () {
-    function onClose() {}
-
-    return onClose;
-  }(),
-
-
-  // month presentation and interaction related props
-  renderMonthText: null,
-
-  // day presentation and interaction related props
-  renderCalendarDay: undefined,
-  renderDayContents: null,
-  renderMonthElement: null,
-  enableOutsideDays: false,
-  isDayBlocked: function () {
-    function isDayBlocked() {
-      return false;
-    }
-
-    return isDayBlocked;
-  }(),
-  isOutsideRange: function () {
-    function isOutsideRange(day) {
-      return !(0, _isInclusivelyAfterDay2['default'])(day, (0, _moment2['default'])());
-    }
-
-    return isOutsideRange;
-  }(),
-  isDayHighlighted: function () {
-    function isDayHighlighted() {}
-
-    return isDayHighlighted;
-  }(),
-
-  // internationalization props
-  displayFormat: function () {
-    function displayFormat() {
-      return _moment2['default'].localeData().longDateFormat('L');
-    }
-
-    return displayFormat;
-  }(),
-  monthFormat: 'MMMM YYYY',
-  weekDayFormat: 'dd',
-  phrases: _defaultPhrases.SingleDatePickerPhrases,
-  dayAriaLabelFormat: undefined
-};
-
-var SingleDatePicker = function (_React$Component) {
-  _inherits(SingleDatePicker, _React$Component);
-
-  function SingleDatePicker(props) {
-    _classCallCheck(this, SingleDatePicker);
-
-    var _this = _possibleConstructorReturn(this, (SingleDatePicker.__proto__ || Object.getPrototypeOf(SingleDatePicker)).call(this, props));
-
-    _this.isTouchDevice = false;
-
-    _this.state = {
-      dayPickerContainerStyles: {},
-      isDayPickerFocused: false,
-      isInputFocused: false,
-      showKeyboardShortcuts: false
-    };
-
-    _this.onDayPickerFocus = _this.onDayPickerFocus.bind(_this);
-    _this.onDayPickerBlur = _this.onDayPickerBlur.bind(_this);
-    _this.showKeyboardShortcutsPanel = _this.showKeyboardShortcutsPanel.bind(_this);
-
-    _this.onChange = _this.onChange.bind(_this);
-    _this.onFocus = _this.onFocus.bind(_this);
-    _this.onClearFocus = _this.onClearFocus.bind(_this);
-    _this.clearDate = _this.clearDate.bind(_this);
-
-    _this.responsivizePickerPosition = _this.responsivizePickerPosition.bind(_this);
-    _this.disableScroll = _this.disableScroll.bind(_this);
-
-    _this.setDayPickerContainerRef = _this.setDayPickerContainerRef.bind(_this);
-    _this.setContainerRef = _this.setContainerRef.bind(_this);
-    return _this;
-  }
-
-  /* istanbul ignore next */
-
-
-  _createClass(SingleDatePicker, [{
-    key: 'componentDidMount',
-    value: function () {
-      function componentDidMount() {
-        this.removeEventListener = (0, _consolidatedEvents.addEventListener)(window, 'resize', this.responsivizePickerPosition, { passive: true });
-        this.responsivizePickerPosition();
-        this.disableScroll();
-
-        var focused = this.props.focused;
-
-
-        if (focused) {
-          this.setState({
-            isInputFocused: true
-          });
-        }
-
-        this.isTouchDevice = (0, _isTouchDevice2['default'])();
-      }
-
-      return componentDidMount;
-    }()
-  }, {
-    key: 'componentDidUpdate',
-    value: function () {
-      function componentDidUpdate(prevProps) {
-        var focused = this.props.focused;
-
-        if (!prevProps.focused && focused) {
-          this.responsivizePickerPosition();
-          this.disableScroll();
-        } else if (prevProps.focused && !focused) {
-          if (this.enableScroll) this.enableScroll();
-        }
-      }
-
-      return componentDidUpdate;
-    }()
-
-    /* istanbul ignore next */
-
-  }, {
-    key: 'componentWillUnmount',
-    value: function () {
-      function componentWillUnmount() {
-        if (this.removeEventListener) this.removeEventListener();
-        if (this.enableScroll) this.enableScroll();
-      }
-
-      return componentWillUnmount;
-    }()
-  }, {
-    key: 'onChange',
-    value: function () {
-      function onChange(dateString) {
-        var _props = this.props,
-            isOutsideRange = _props.isOutsideRange,
-            keepOpenOnDateSelect = _props.keepOpenOnDateSelect,
-            onDateChange = _props.onDateChange,
-            onFocusChange = _props.onFocusChange,
-            onClose = _props.onClose;
-
-        var newDate = (0, _toMomentObject2['default'])(dateString, this.getDisplayFormat());
-
-        var isValid = newDate && !isOutsideRange(newDate);
-        if (isValid) {
-          onDateChange(newDate);
-          if (!keepOpenOnDateSelect) {
-            onFocusChange({ focused: false });
-            onClose({ date: newDate });
-          }
-        } else {
-          onDateChange(null);
-        }
-      }
-
-      return onChange;
-    }()
-  }, {
-    key: 'onFocus',
-    value: function () {
-      function onFocus() {
-        var _props2 = this.props,
-            disabled = _props2.disabled,
-            onFocusChange = _props2.onFocusChange,
-            readOnly = _props2.readOnly,
-            withPortal = _props2.withPortal,
-            withFullScreenPortal = _props2.withFullScreenPortal,
-            keepFocusOnInput = _props2.keepFocusOnInput;
-
-
-        var withAnyPortal = withPortal || withFullScreenPortal;
-        var moveFocusToDayPicker = withAnyPortal || readOnly && !keepFocusOnInput || this.isTouchDevice && !keepFocusOnInput;
-
-        if (moveFocusToDayPicker) {
-          this.onDayPickerFocus();
-        } else {
-          this.onDayPickerBlur();
-        }
-
-        if (!disabled) {
-          onFocusChange({ focused: true });
-        }
-      }
-
-      return onFocus;
-    }()
-  }, {
-    key: 'onClearFocus',
-    value: function () {
-      function onClearFocus(event) {
-        var _props3 = this.props,
-            date = _props3.date,
-            focused = _props3.focused,
-            onFocusChange = _props3.onFocusChange,
-            onClose = _props3.onClose,
-            appendToBody = _props3.appendToBody;
-
-        if (!focused) return;
-        if (appendToBody && this.dayPickerContainer.contains(event.target)) return;
-
-        this.setState({
-          isInputFocused: false,
-          isDayPickerFocused: false
-        });
-
-        onFocusChange({ focused: false });
-        onClose({ date: date });
-      }
-
-      return onClearFocus;
-    }()
-  }, {
-    key: 'onDayPickerFocus',
-    value: function () {
-      function onDayPickerFocus() {
-        this.setState({
-          isInputFocused: false,
-          isDayPickerFocused: true,
-          showKeyboardShortcuts: false
-        });
-      }
-
-      return onDayPickerFocus;
-    }()
-  }, {
-    key: 'onDayPickerBlur',
-    value: function () {
-      function onDayPickerBlur() {
-        this.setState({
-          isInputFocused: true,
-          isDayPickerFocused: false,
-          showKeyboardShortcuts: false
-        });
-      }
-
-      return onDayPickerBlur;
-    }()
-  }, {
-    key: 'getDateString',
-    value: function () {
-      function getDateString(date) {
-        var displayFormat = this.getDisplayFormat();
-        if (date && displayFormat) {
-          return date && date.format(displayFormat);
-        }
-        return (0, _toLocalizedDateString2['default'])(date);
-      }
-
-      return getDateString;
-    }()
-  }, {
-    key: 'getDisplayFormat',
-    value: function () {
-      function getDisplayFormat() {
-        var displayFormat = this.props.displayFormat;
-
-        return typeof displayFormat === 'string' ? displayFormat : displayFormat();
-      }
-
-      return getDisplayFormat;
-    }()
-  }, {
-    key: 'setDayPickerContainerRef',
-    value: function () {
-      function setDayPickerContainerRef(ref) {
-        this.dayPickerContainer = ref;
-      }
-
-      return setDayPickerContainerRef;
-    }()
-  }, {
-    key: 'setContainerRef',
-    value: function () {
-      function setContainerRef(ref) {
-        this.container = ref;
-      }
-
-      return setContainerRef;
-    }()
-  }, {
-    key: 'clearDate',
-    value: function () {
-      function clearDate() {
-        var _props4 = this.props,
-            onDateChange = _props4.onDateChange,
-            reopenPickerOnClearDate = _props4.reopenPickerOnClearDate,
-            onFocusChange = _props4.onFocusChange;
-
-        onDateChange(null);
-        if (reopenPickerOnClearDate) {
-          onFocusChange({ focused: true });
-        }
-      }
-
-      return clearDate;
-    }()
-  }, {
-    key: 'disableScroll',
-    value: function () {
-      function disableScroll() {
-        var _props5 = this.props,
-            appendToBody = _props5.appendToBody,
-            propDisableScroll = _props5.disableScroll,
-            focused = _props5.focused;
-
-        if (!appendToBody && !propDisableScroll) return;
-        if (!focused) return;
-
-        // Disable scroll for every ancestor of this <SingleDatePicker> up to the
-        // document level. This ensures the input and the picker never move. Other
-        // sibling elements or the picker itself can scroll.
-        this.enableScroll = (0, _disableScroll3['default'])(this.container);
-      }
-
-      return disableScroll;
-    }()
-
-    /* istanbul ignore next */
-
-  }, {
-    key: 'responsivizePickerPosition',
-    value: function () {
-      function responsivizePickerPosition() {
-        // It's possible the portal props have been changed in response to window resizes
-        // So let's ensure we reset this back to the base state each time
-        this.setState({ dayPickerContainerStyles: {} });
-
-        var _props6 = this.props,
-            openDirection = _props6.openDirection,
-            anchorDirection = _props6.anchorDirection,
-            horizontalMargin = _props6.horizontalMargin,
-            withPortal = _props6.withPortal,
-            withFullScreenPortal = _props6.withFullScreenPortal,
-            appendToBody = _props6.appendToBody,
-            focused = _props6.focused;
-        var dayPickerContainerStyles = this.state.dayPickerContainerStyles;
-
-
-        if (!focused) {
-          return;
-        }
-
-        var isAnchoredLeft = anchorDirection === _constants.ANCHOR_LEFT;
-
-        if (!withPortal && !withFullScreenPortal) {
-          var containerRect = this.dayPickerContainer.getBoundingClientRect();
-          var currentOffset = dayPickerContainerStyles[anchorDirection] || 0;
-          var containerEdge = isAnchoredLeft ? containerRect[_constants.ANCHOR_RIGHT] : containerRect[_constants.ANCHOR_LEFT];
-
-          this.setState({
-            dayPickerContainerStyles: (0, _object2['default'])({}, (0, _getResponsiveContainerStyles2['default'])(anchorDirection, currentOffset, containerEdge, horizontalMargin), appendToBody && (0, _getDetachedContainerStyles2['default'])(openDirection, anchorDirection, this.container))
-          });
-        }
-      }
-
-      return responsivizePickerPosition;
-    }()
-  }, {
-    key: 'showKeyboardShortcutsPanel',
-    value: function () {
-      function showKeyboardShortcutsPanel() {
-        this.setState({
-          isInputFocused: false,
-          isDayPickerFocused: true,
-          showKeyboardShortcuts: true
-        });
-      }
-
-      return showKeyboardShortcutsPanel;
-    }()
-  }, {
-    key: 'maybeRenderDayPickerWithPortal',
-    value: function () {
-      function maybeRenderDayPickerWithPortal() {
-        var _props7 = this.props,
-            focused = _props7.focused,
-            withPortal = _props7.withPortal,
-            withFullScreenPortal = _props7.withFullScreenPortal,
-            appendToBody = _props7.appendToBody;
-
-
-        if (!focused) {
-          return null;
-        }
-
-        if (withPortal || withFullScreenPortal || appendToBody) {
-          return _react2['default'].createElement(
-            _reactPortal.Portal,
-            null,
-            this.renderDayPicker()
-          );
-        }
-
-        return this.renderDayPicker();
-      }
-
-      return maybeRenderDayPickerWithPortal;
-    }()
-  }, {
-    key: 'renderDayPicker',
-    value: function () {
-      function renderDayPicker() {
-        var _props8 = this.props,
-            anchorDirection = _props8.anchorDirection,
-            openDirection = _props8.openDirection,
-            onDateChange = _props8.onDateChange,
-            date = _props8.date,
-            onFocusChange = _props8.onFocusChange,
-            focused = _props8.focused,
-            enableOutsideDays = _props8.enableOutsideDays,
-            numberOfMonths = _props8.numberOfMonths,
-            orientation = _props8.orientation,
-            monthFormat = _props8.monthFormat,
-            navPrev = _props8.navPrev,
-            navNext = _props8.navNext,
-            onPrevMonthClick = _props8.onPrevMonthClick,
-            onNextMonthClick = _props8.onNextMonthClick,
-            onClose = _props8.onClose,
-            withPortal = _props8.withPortal,
-            withFullScreenPortal = _props8.withFullScreenPortal,
-            keepOpenOnDateSelect = _props8.keepOpenOnDateSelect,
-            initialVisibleMonth = _props8.initialVisibleMonth,
-            renderMonthText = _props8.renderMonthText,
-            renderCalendarDay = _props8.renderCalendarDay,
-            renderDayContents = _props8.renderDayContents,
-            renderCalendarInfo = _props8.renderCalendarInfo,
-            renderMonthElement = _props8.renderMonthElement,
-            calendarInfoPosition = _props8.calendarInfoPosition,
-            hideKeyboardShortcutsPanel = _props8.hideKeyboardShortcutsPanel,
-            firstDayOfWeek = _props8.firstDayOfWeek,
-            customCloseIcon = _props8.customCloseIcon,
-            phrases = _props8.phrases,
-            dayAriaLabelFormat = _props8.dayAriaLabelFormat,
-            daySize = _props8.daySize,
-            isRTL = _props8.isRTL,
-            isOutsideRange = _props8.isOutsideRange,
-            isDayBlocked = _props8.isDayBlocked,
-            isDayHighlighted = _props8.isDayHighlighted,
-            weekDayFormat = _props8.weekDayFormat,
-            styles = _props8.styles,
-            verticalHeight = _props8.verticalHeight,
-            transitionDuration = _props8.transitionDuration,
-            verticalSpacing = _props8.verticalSpacing,
-            horizontalMonthPadding = _props8.horizontalMonthPadding,
-            small = _props8.small,
-            reactDates = _props8.theme.reactDates;
-        var _state = this.state,
-            dayPickerContainerStyles = _state.dayPickerContainerStyles,
-            isDayPickerFocused = _state.isDayPickerFocused,
-            showKeyboardShortcuts = _state.showKeyboardShortcuts;
-
-
-        var onOutsideClick = !withFullScreenPortal && withPortal ? this.onClearFocus : undefined;
-        var closeIcon = customCloseIcon || _react2['default'].createElement(_CloseButton2['default'], null);
-
-        var inputHeight = (0, _getInputHeight2['default'])(reactDates, small);
-
-        var withAnyPortal = withPortal || withFullScreenPortal;
-
-        return _react2['default'].createElement(
-          'div',
-          _extends({ // eslint-disable-line jsx-a11y/no-static-element-interactions
-            ref: this.setDayPickerContainerRef
-          }, (0, _reactWithStyles.css)(styles.SingleDatePicker_picker, anchorDirection === _constants.ANCHOR_LEFT && styles.SingleDatePicker_picker__directionLeft, anchorDirection === _constants.ANCHOR_RIGHT && styles.SingleDatePicker_picker__directionRight, openDirection === _constants.OPEN_DOWN && styles.SingleDatePicker_picker__openDown, openDirection === _constants.OPEN_UP && styles.SingleDatePicker_picker__openUp, !withAnyPortal && openDirection === _constants.OPEN_DOWN && {
-            top: inputHeight + verticalSpacing
-          }, !withAnyPortal && openDirection === _constants.OPEN_UP && {
-            bottom: inputHeight + verticalSpacing
-          }, orientation === _constants.HORIZONTAL_ORIENTATION && styles.SingleDatePicker_picker__horizontal, orientation === _constants.VERTICAL_ORIENTATION && styles.SingleDatePicker_picker__vertical, withAnyPortal && styles.SingleDatePicker_picker__portal, withFullScreenPortal && styles.SingleDatePicker_picker__fullScreenPortal, isRTL && styles.SingleDatePicker_picker__rtl, dayPickerContainerStyles), {
-            onClick: onOutsideClick
-          }),
-          _react2['default'].createElement(_DayPickerSingleDateController2['default'], {
-            date: date,
-            onDateChange: onDateChange,
-            onFocusChange: onFocusChange,
-            orientation: orientation,
-            enableOutsideDays: enableOutsideDays,
-            numberOfMonths: numberOfMonths,
-            monthFormat: monthFormat,
-            withPortal: withAnyPortal,
-            focused: focused,
-            keepOpenOnDateSelect: keepOpenOnDateSelect,
-            hideKeyboardShortcutsPanel: hideKeyboardShortcutsPanel,
-            initialVisibleMonth: initialVisibleMonth,
-            navPrev: navPrev,
-            navNext: navNext,
-            onPrevMonthClick: onPrevMonthClick,
-            onNextMonthClick: onNextMonthClick,
-            onClose: onClose,
-            renderMonthText: renderMonthText,
-            renderCalendarDay: renderCalendarDay,
-            renderDayContents: renderDayContents,
-            renderCalendarInfo: renderCalendarInfo,
-            renderMonthElement: renderMonthElement,
-            calendarInfoPosition: calendarInfoPosition,
-            isFocused: isDayPickerFocused,
-            showKeyboardShortcuts: showKeyboardShortcuts,
-            onBlur: this.onDayPickerBlur,
-            phrases: phrases,
-            dayAriaLabelFormat: dayAriaLabelFormat,
-            daySize: daySize,
-            isRTL: isRTL,
-            isOutsideRange: isOutsideRange,
-            isDayBlocked: isDayBlocked,
-            isDayHighlighted: isDayHighlighted,
-            firstDayOfWeek: firstDayOfWeek,
-            weekDayFormat: weekDayFormat,
-            verticalHeight: verticalHeight,
-            transitionDuration: transitionDuration,
-            horizontalMonthPadding: horizontalMonthPadding
-          }),
-          withFullScreenPortal && _react2['default'].createElement(
-            'button',
-            _extends({}, (0, _reactWithStyles.css)(styles.SingleDatePicker_closeButton), {
-              'aria-label': phrases.closeDatePicker,
-              type: 'button',
-              onClick: this.onClearFocus
-            }),
-            _react2['default'].createElement(
-              'div',
-              (0, _reactWithStyles.css)(styles.SingleDatePicker_closeButton_svg),
-              closeIcon
-            )
-          )
-        );
-      }
-
-      return renderDayPicker;
-    }()
-  }, {
-    key: 'render',
-    value: function () {
-      function render() {
-        var _props9 = this.props,
-            id = _props9.id,
-            placeholder = _props9.placeholder,
-            disabled = _props9.disabled,
-            focused = _props9.focused,
-            required = _props9.required,
-            readOnly = _props9.readOnly,
-            openDirection = _props9.openDirection,
-            showClearDate = _props9.showClearDate,
-            showDefaultInputIcon = _props9.showDefaultInputIcon,
-            inputIconPosition = _props9.inputIconPosition,
-            customCloseIcon = _props9.customCloseIcon,
-            customInputIcon = _props9.customInputIcon,
-            date = _props9.date,
-            phrases = _props9.phrases,
-            withPortal = _props9.withPortal,
-            withFullScreenPortal = _props9.withFullScreenPortal,
-            screenReaderInputMessage = _props9.screenReaderInputMessage,
-            isRTL = _props9.isRTL,
-            noBorder = _props9.noBorder,
-            block = _props9.block,
-            small = _props9.small,
-            regular = _props9.regular,
-            verticalSpacing = _props9.verticalSpacing,
-            styles = _props9.styles;
-        var isInputFocused = this.state.isInputFocused;
-
-
-        var displayValue = this.getDateString(date);
-
-        var enableOutsideClick = !withPortal && !withFullScreenPortal;
-
-        var hideFang = verticalSpacing < _constants.FANG_HEIGHT_PX;
-
-        var input = _react2['default'].createElement(_SingleDatePickerInput2['default'], {
-          id: id,
-          placeholder: placeholder,
-          focused: focused,
-          isFocused: isInputFocused,
-          disabled: disabled,
-          required: required,
-          readOnly: readOnly,
-          openDirection: openDirection,
-          showCaret: !withPortal && !withFullScreenPortal && !hideFang,
-          onClearDate: this.clearDate,
-          showClearDate: showClearDate,
-          showDefaultInputIcon: showDefaultInputIcon,
-          inputIconPosition: inputIconPosition,
-          customCloseIcon: customCloseIcon,
-          customInputIcon: customInputIcon,
-          displayValue: displayValue,
-          onChange: this.onChange,
-          onFocus: this.onFocus,
-          onKeyDownShiftTab: this.onClearFocus,
-          onKeyDownTab: this.onClearFocus,
-          onKeyDownArrowDown: this.onDayPickerFocus,
-          onKeyDownQuestionMark: this.showKeyboardShortcutsPanel,
-          screenReaderMessage: screenReaderInputMessage,
-          phrases: phrases,
-          isRTL: isRTL,
-          noBorder: noBorder,
-          block: block,
-          small: small,
-          regular: regular,
-          verticalSpacing: verticalSpacing
-        });
-
-        return _react2['default'].createElement(
-          'div',
-          _extends({
-            ref: this.setContainerRef
-          }, (0, _reactWithStyles.css)(styles.SingleDatePicker, block && styles.SingleDatePicker__block)),
-          enableOutsideClick && _react2['default'].createElement(
-            _reactOutsideClickHandler2['default'],
-            { onOutsideClick: this.onClearFocus },
-            input,
-            this.maybeRenderDayPickerWithPortal()
-          ),
-          !enableOutsideClick && input,
-          !enableOutsideClick && this.maybeRenderDayPickerWithPortal()
-        );
-      }
-
-      return render;
-    }()
-  }]);
-
-  return SingleDatePicker;
-}(_react2['default'].Component);
-
-SingleDatePicker.propTypes = propTypes;
-SingleDatePicker.defaultProps = defaultProps;
-
-exports.PureSingleDatePicker = SingleDatePicker;
-exports['default'] = (0, _reactWithStyles.withStyles)(function (_ref) {
-  var _ref$reactDates = _ref.reactDates,
-      color = _ref$reactDates.color,
-      zIndex = _ref$reactDates.zIndex;
-  return {
-    SingleDatePicker: {
-      position: 'relative',
-      display: 'inline-block'
-    },
-
-    SingleDatePicker__block: {
-      display: 'block'
-    },
-
-    SingleDatePicker_picker: {
-      zIndex: zIndex + 1,
-      backgroundColor: color.background,
-      position: 'absolute'
-    },
-
-    SingleDatePicker_picker__rtl: {
-      direction: 'rtl'
-    },
-
-    SingleDatePicker_picker__directionLeft: {
-      left: 0
-    },
-
-    SingleDatePicker_picker__directionRight: {
-      right: 0
-    },
-
-    SingleDatePicker_picker__portal: {
-      backgroundColor: 'rgba(0, 0, 0, 0.3)',
-      position: 'fixed',
-      top: 0,
-      left: 0,
-      height: '100%',
-      width: '100%'
-    },
-
-    SingleDatePicker_picker__fullScreenPortal: {
-      backgroundColor: color.background
-    },
-
-    SingleDatePicker_closeButton: {
-      background: 'none',
-      border: 0,
-      color: 'inherit',
-      font: 'inherit',
-      lineHeight: 'normal',
-      overflow: 'visible',
-      cursor: 'pointer',
-
-      position: 'absolute',
-      top: 0,
-      right: 0,
-      padding: 15,
-      zIndex: zIndex + 2,
-
-      ':hover': {
-        color: 'darken(' + String(color.core.grayLighter) + ', 10%)',
-        textDecoration: 'none'
-      },
-
-      ':focus': {
-        color: 'darken(' + String(color.core.grayLighter) + ', 10%)',
-        textDecoration: 'none'
-      }
-    },
-
-    SingleDatePicker_closeButton_svg: {
-      height: 15,
-      width: 15,
-      fill: color.core.grayLighter
-    }
-  };
-})(SingleDatePicker);
-
-/***/ }),
-/* 334 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports['default'] = isInclusivelyBeforeDay;
-
-var _moment = __webpack_require__(29);
-
-var _moment2 = _interopRequireDefault(_moment);
-
-var _isAfterDay = __webpack_require__(106);
-
-var _isAfterDay2 = _interopRequireDefault(_isAfterDay);
+
+var _propTypes = __webpack_require__(28);
+
+var _propTypes2 = _interopRequireDefault(_propTypes);
+
+var _constants = __webpack_require__(77);
 
 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
 
-function isInclusivelyBeforeDay(a, b) {
-  if (!_moment2['default'].isMoment(a) || !_moment2['default'].isMoment(b)) return false;
-  return !(0, _isAfterDay2['default'])(a, b);
-}
-
-/***/ }),
-/* 335 */,
-/* 336 */,
-/* 337 */,
-/* 338 */,
-/* 339 */,
-/* 340 */,
-/* 341 */,
-/* 342 */,
-/* 343 */,
-/* 344 */,
-/* 345 */,
-/* 346 */,
-/* 347 */,
-/* 348 */,
-/* 349 */,
-/* 350 */,
-/* 351 */,
-/* 352 */,
-/* 353 */,
-/* 354 */,
-/* 355 */,
-/* 356 */,
-/* 357 */,
-/* 358 */,
-/* 359 */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-
-// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectSpread.js
-var objectSpread = __webpack_require__(7);
-
-// EXTERNAL MODULE: external {"this":["wp","element"]}
-var external_this_wp_element_ = __webpack_require__(0);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/primitives/svg/index.js
-
-
-/**
- * WordPress dependencies
- */
-
-var svg_Circle = function Circle(props) {
-  return Object(external_this_wp_element_["createElement"])('circle', props);
-};
-var svg_G = function G(props) {
-  return Object(external_this_wp_element_["createElement"])('g', props);
-};
-var svg_Path = function Path(props) {
-  return Object(external_this_wp_element_["createElement"])('path', props);
-};
-var svg_Polygon = function Polygon(props) {
-  return Object(external_this_wp_element_["createElement"])('polygon', props);
-};
-var svg_Rect = function Rect(props) {
-  return Object(external_this_wp_element_["createElement"])('rect', props);
-};
-var svg_SVG = function SVG(props) {
-  var appliedProps = Object(objectSpread["a" /* default */])({}, props, {
-    role: 'img',
-    'aria-hidden': 'true',
-    focusable: 'false'
-  }); // Disable reason: We need to have a way to render HTML tag for web.
-  // eslint-disable-next-line react/forbid-elements
-
-
-  return Object(external_this_wp_element_["createElement"])("svg", appliedProps);
-};
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/primitives/index.js
-
-
-// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js
-var defineProperty = __webpack_require__(15);
-
-// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 1 modules
-var slicedToArray = __webpack_require__(28);
-
-// EXTERNAL MODULE: ./node_modules/classnames/index.js
-var classnames = __webpack_require__(16);
-var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/animate/index.js
-
-
-
-/**
- * External dependencies
- */
-
-
-function Animate(_ref) {
-  var type = _ref.type,
-      _ref$options = _ref.options,
-      options = _ref$options === void 0 ? {} : _ref$options,
-      children = _ref.children;
-
-  if (type === 'appear') {
-    var _classnames;
-
-    var _options$origin = options.origin,
-        origin = _options$origin === void 0 ? 'top' : _options$origin;
-
-    var _origin$split = origin.split(' '),
-        _origin$split2 = Object(slicedToArray["a" /* default */])(_origin$split, 2),
-        yAxis = _origin$split2[0],
-        _origin$split2$ = _origin$split2[1],
-        xAxis = _origin$split2$ === void 0 ? 'center' : _origin$split2$;
-
-    return children({
-      className: classnames_default()('components-animate__appear', (_classnames = {}, Object(defineProperty["a" /* default */])(_classnames, 'is-from-' + xAxis, xAxis !== 'center'), Object(defineProperty["a" /* default */])(_classnames, 'is-from-' + yAxis, yAxis !== 'middle'), _classnames))
-    });
-  }
-
-  if (type === 'slide-in') {
-    var _options$origin2 = options.origin,
-        _origin = _options$origin2 === void 0 ? 'left' : _options$origin2;
-
-    return children({
-      className: classnames_default()('components-animate__slide-in', 'is-from-' + _origin)
-    });
-  }
-
-  return children({});
-}
-
-/* harmony default export */ var build_module_animate = (Animate);
-
-// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js
-var classCallCheck = __webpack_require__(10);
-
-// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js
-var possibleConstructorReturn = __webpack_require__(11);
-
-// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js
-var getPrototypeOf = __webpack_require__(12);
-
-// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/createClass.js
-var createClass = __webpack_require__(9);
-
-// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js + 1 modules
-var inherits = __webpack_require__(13);
-
-// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js
-var assertThisInitialized = __webpack_require__(3);
-
-// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js + 2 modules
-var toConsumableArray = __webpack_require__(17);
-
-// EXTERNAL MODULE: external "lodash"
-var external_lodash_ = __webpack_require__(2);
-
-// EXTERNAL MODULE: external {"this":["wp","keycodes"]}
-var external_this_wp_keycodes_ = __webpack_require__(18);
-
-// EXTERNAL MODULE: external {"this":["wp","i18n"]}
-var external_this_wp_i18n_ = __webpack_require__(1);
-
-// EXTERNAL MODULE: external {"this":["wp","compose"]}
-var external_this_wp_compose_ = __webpack_require__(6);
-
-// EXTERNAL MODULE: external {"this":["wp","richText"]}
-var external_this_wp_richText_ = __webpack_require__(20);
-
-// EXTERNAL MODULE: external {"this":["wp","dom"]}
-var external_this_wp_dom_ = __webpack_require__(24);
-
-// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js
-var esm_extends = __webpack_require__(19);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/higher-order/with-focus-outside/index.js
-
-
-
-
-
-
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-/**
- * Input types which are classified as button types, for use in considering
- * whether element is a (focus-normalized) button.
- *
- * @type {string[]}
- */
-
-var INPUT_BUTTON_TYPES = ['button', 'submit'];
-/**
- * Returns true if the given element is a button element subject to focus
- * normalization, or false otherwise.
- *
- * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus
- *
- * @param {Element} element Element to test.
- *
- * @return {boolean} Whether element is a button.
- */
-
-function isFocusNormalizedButton(element) {
-  switch (element.nodeName) {
-    case 'A':
-    case 'BUTTON':
-      return true;
-
-    case 'INPUT':
-      return Object(external_lodash_["includes"])(INPUT_BUTTON_TYPES, element.type);
-  }
-
-  return false;
-}
-
-/* harmony default export */ var with_focus_outside = (Object(external_this_wp_compose_["createHigherOrderComponent"])(function (WrappedComponent) {
+exports['default'] = _propTypes2['default'].oneOf([_constants.HORIZONTAL_ORIENTATION, _constants.VERTICAL_ORIENTATION, _constants.VERTICAL_SCROLLABLE]);
+
+/***/ }),
+/* 143 */
+/***/ (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 shallowEqual = __webpack_require__(369);
+
+/**
+ * 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 (
-    /*#__PURE__*/
-    function (_Component) {
-      Object(inherits["a" /* default */])(_class, _Component);
-
-      function _class() {
-        var _this;
-
-        Object(classCallCheck["a" /* default */])(this, _class);
-
-        _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(_class).apply(this, arguments));
-        _this.bindNode = _this.bindNode.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-        _this.cancelBlurCheck = _this.cancelBlurCheck.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-        _this.queueBlurCheck = _this.queueBlurCheck.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-        _this.normalizeButtonFocus = _this.normalizeButtonFocus.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-        return _this;
-      }
-
-      Object(createClass["a" /* default */])(_class, [{
-        key: "componentWillUnmount",
-        value: function componentWillUnmount() {
-          this.cancelBlurCheck();
-        }
-      }, {
-        key: "bindNode",
-        value: function bindNode(node) {
-          if (node) {
-            this.node = node;
-          } else {
-            delete this.node;
-            this.cancelBlurCheck();
-          }
-        }
-      }, {
-        key: "queueBlurCheck",
-        value: function queueBlurCheck(event) {
-          var _this2 = this;
-
-          // React does not allow using an event reference asynchronously
-          // due to recycling behavior, except when explicitly persisted.
-          event.persist(); // Skip blur check if clicking button. See `normalizeButtonFocus`.
-
-          if (this.preventBlurCheck) {
-            return;
-          }
-
-          this.blurCheckTimeout = setTimeout(function () {
-            if ('function' === typeof _this2.node.handleFocusOutside) {
-              _this2.node.handleFocusOutside(event);
-            }
-          }, 0);
-        }
-      }, {
-        key: "cancelBlurCheck",
-        value: function cancelBlurCheck() {
-          clearTimeout(this.blurCheckTimeout);
-        }
-        /**
-         * Handles a mousedown or mouseup event to respectively assign and
-         * unassign a flag for preventing blur check on button elements. Some
-         * browsers, namely Firefox and Safari, do not emit a focus event on
-         * button elements when clicked, while others do. The logic here
-         * intends to normalize this as treating click on buttons as focus.
-         *
-         * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus
-         *
-         * @param {MouseEvent} event Event for mousedown or mouseup.
-         */
-
-      }, {
-        key: "normalizeButtonFocus",
-        value: function normalizeButtonFocus(event) {
-          var type = event.type,
-              target = event.target;
-          var isInteractionEnd = Object(external_lodash_["includes"])(['mouseup', 'touchend'], type);
-
-          if (isInteractionEnd) {
-            this.preventBlurCheck = false;
-          } else if (isFocusNormalizedButton(target)) {
-            this.preventBlurCheck = true;
-          }
-        }
-      }, {
-        key: "render",
-        value: function render() {
-          // Disable reason: See `normalizeButtonFocus` for browser-specific
-          // focus event normalization.
-
-          /* eslint-disable jsx-a11y/no-static-element-interactions */
-          return Object(external_this_wp_element_["createElement"])("div", {
-            onFocus: this.cancelBlurCheck,
-            onMouseDown: this.normalizeButtonFocus,
-            onMouseUp: this.normalizeButtonFocus,
-            onTouchStart: this.normalizeButtonFocus,
-            onTouchEnd: this.normalizeButtonFocus,
-            onBlur: this.queueBlurCheck
-          }, Object(external_this_wp_element_["createElement"])(WrappedComponent, Object(esm_extends["a" /* default */])({
-            ref: this.bindNode
-          }, this.props)));
-          /* eslint-enable jsx-a11y/no-static-element-interactions */
-        }
-      }]);
-
-      return _class;
-    }(external_this_wp_element_["Component"])
+    !shallowEqual(instance.props, nextProps) ||
+    !shallowEqual(instance.state, nextState)
   );
-}, 'withFocusOutside'));
-
-// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js + 1 modules
-var objectWithoutProperties = __webpack_require__(21);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/button/index.js
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-function Button(props, ref) {
-  var href = props.href,
-      target = props.target,
-      isPrimary = props.isPrimary,
-      isLarge = props.isLarge,
-      isSmall = props.isSmall,
-      isTertiary = props.isTertiary,
-      isToggled = props.isToggled,
-      isBusy = props.isBusy,
-      isDefault = props.isDefault,
-      isLink = props.isLink,
-      isDestructive = props.isDestructive,
-      className = props.className,
-      disabled = props.disabled,
-      additionalProps = Object(objectWithoutProperties["a" /* default */])(props, ["href", "target", "isPrimary", "isLarge", "isSmall", "isTertiary", "isToggled", "isBusy", "isDefault", "isLink", "isDestructive", "className", "disabled"]);
-
-  var classes = classnames_default()('components-button', className, {
-    'is-button': isDefault || isPrimary || isLarge || isSmall,
-    'is-default': isDefault || isLarge || isSmall,
-    'is-primary': isPrimary,
-    'is-large': isLarge,
-    'is-small': isSmall,
-    'is-tertiary': isTertiary,
-    'is-toggled': isToggled,
-    'is-busy': isBusy,
-    'is-link': isLink,
-    'is-destructive': isDestructive
-  });
-  var tag = href !== undefined && !disabled ? 'a' : 'button';
-  var tagProps = tag === 'a' ? {
-    href: href,
-    target: target
-  } : {
-    type: 'button',
-    disabled: disabled
-  };
-  return Object(external_this_wp_element_["createElement"])(tag, Object(objectSpread["a" /* default */])({}, tagProps, additionalProps, {
-    className: classes,
-    ref: ref
-  }));
-}
-/* harmony default export */ var build_module_button = (Object(external_this_wp_element_["forwardRef"])(Button));
-
-// EXTERNAL MODULE: external {"this":["wp","isShallowEqual"]}
-var external_this_wp_isShallowEqual_ = __webpack_require__(42);
-var external_this_wp_isShallowEqual_default = /*#__PURE__*/__webpack_require__.n(external_this_wp_isShallowEqual_);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/popover/utils.js
-
-
-
-/**
- * Module constants
- */
-var HEIGHT_OFFSET = 10; // used by the arrow and a bit of empty space
-
-var isMobileViewport = function isMobileViewport() {
-  return window.innerWidth < 782;
-};
-
-var isRTL = function isRTL() {
-  return document.documentElement.dir === 'rtl';
-};
-/**
- * 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} chosenYAxis      yAxis to be used.
- * @param {boolean} expandOnMobile  Whether to expand the popover on mobile or not.
- *
- * @return {Object} Popover xAxis position and constraints.
- */
-
-
-function computePopoverXAxisPosition(anchorRect, contentSize, xAxis, chosenYAxis) {
-  var width = contentSize.width; // Correct xAxis for RTL support
-
-  if (xAxis === 'left' && isRTL()) {
-    xAxis = 'right';
-  } else if (xAxis === 'right' && isRTL()) {
-    xAxis = 'left';
-  } // x axis alignment choices
-
-
-  var anchorMidPoint = Math.round(anchorRect.left + anchorRect.width / 2);
-  var centerAlignment = {
-    popoverLeft: anchorMidPoint,
-    contentWidth: (anchorMidPoint - width / 2 > 0 ? width / 2 : anchorMidPoint) + (anchorMidPoint + width / 2 > window.innerWidth ? window.innerWidth - anchorMidPoint : width / 2)
-  };
-  var leftAlignmentX = chosenYAxis === 'middle' ? anchorRect.left : anchorMidPoint;
-  var leftAlignment = {
-    popoverLeft: leftAlignmentX,
-    contentWidth: leftAlignmentX - width > 0 ? width : leftAlignmentX
-  };
-  var rightAlignmentX = chosenYAxis === 'middle' ? anchorRect.right : anchorMidPoint;
-  var rightAlignment = {
-    popoverLeft: rightAlignmentX,
-    contentWidth: rightAlignmentX + width > window.innerWidth ? window.innerWidth - rightAlignmentX : width
-  }; // Choosing the x axis
-
-  var chosenXAxis;
-  var contentWidth = null;
-
-  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';
-    var chosenWidth = chosenXAxis === 'left' ? leftAlignment.contentWidth : rightAlignment.contentWidth;
-    contentWidth = chosenWidth !== width ? chosenWidth : null;
-  }
-
-  var popoverLeft;
-
-  if (chosenXAxis === 'center') {
-    popoverLeft = centerAlignment.popoverLeft;
-  } else if (chosenXAxis === 'left') {
-    popoverLeft = leftAlignment.popoverLeft;
-  } else {
-    popoverLeft = rightAlignment.popoverLeft;
-  }
-
-  return {
-    xAxis: chosenXAxis,
-    popoverLeft: popoverLeft,
-    contentWidth: 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 {boolean} expandOnMobile  Whether to expand the popover on mobile or not.
- *
- * @return {Object} Popover xAxis position and constraints.
- */
-
-function computePopoverYAxisPosition(anchorRect, contentSize, yAxis) {
-  var height = contentSize.height; // y axis alignment choices
-
-  var anchorMidPoint = anchorRect.top + anchorRect.height / 2;
-  var middleAlignment = {
-    popoverTop: anchorMidPoint,
-    contentHeight: (anchorMidPoint - height / 2 > 0 ? height / 2 : anchorMidPoint) + (anchorMidPoint + height / 2 > window.innerHeight ? window.innerHeight - anchorMidPoint : height / 2)
-  };
-  var topAlignment = {
-    popoverTop: anchorRect.top,
-    contentHeight: anchorRect.top - HEIGHT_OFFSET - height > 0 ? height : anchorRect.top - HEIGHT_OFFSET
-  };
-  var bottomAlignment = {
-    popoverTop: anchorRect.bottom,
-    contentHeight: anchorRect.bottom + HEIGHT_OFFSET + height > window.innerHeight ? window.innerHeight - HEIGHT_OFFSET - anchorRect.bottom : height
-  }; // Choosing the y axis
-
-  var chosenYAxis;
-  var contentHeight = null;
-
-  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';
-    var chosenHeight = chosenYAxis === 'top' ? topAlignment.contentHeight : bottomAlignment.contentHeight;
-    contentHeight = chosenHeight !== height ? chosenHeight : null;
-  }
-
-  var popoverTop;
-
-  if (chosenYAxis === 'middle') {
-    popoverTop = middleAlignment.popoverTop;
-  } else if (chosenYAxis === 'top') {
-    popoverTop = topAlignment.popoverTop;
-  } else {
-    popoverTop = bottomAlignment.popoverTop;
-  }
-
-  return {
-    yAxis: chosenYAxis,
-    popoverTop: popoverTop,
-    contentHeight: 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} expandOnMobile  Whether to expand the popover on mobile or not.
- *
- * @return {Object} Popover position and constraints.
- */
-
-function utils_computePopoverPosition(anchorRect, contentSize) {
-  var position = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'top';
-  var expandOnMobile = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
-
-  var _position$split = position.split(' '),
-      _position$split2 = Object(slicedToArray["a" /* default */])(_position$split, 2),
-      yAxis = _position$split2[0],
-      _position$split2$ = _position$split2[1],
-      xAxis = _position$split2$ === void 0 ? 'center' : _position$split2$;
-
-  var yAxisPosition = computePopoverYAxisPosition(anchorRect, contentSize, yAxis);
-  var xAxisPosition = computePopoverXAxisPosition(anchorRect, contentSize, xAxis, yAxisPosition.yAxis);
-  return Object(objectSpread["a" /* default */])({
-    isMobile: isMobileViewport() && expandOnMobile
-  }, xAxisPosition, yAxisPosition);
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/higher-order/with-focus-return/context.js
-
-
-
-
-
-
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-var _createContext = Object(external_this_wp_element_["createContext"])({
-  focusHistory: []
-}),
-    Provider = _createContext.Provider,
-    Consumer = _createContext.Consumer;
-
-Provider.displayName = 'FocusReturnProvider';
-Consumer.displayName = 'FocusReturnConsumer';
-/**
- * The maximum history length to capture for the focus stack. When exceeded,
- * items should be shifted from the stack for each consecutive push.
- *
- * @type {number}
- */
-
-var MAX_STACK_LENGTH = 100;
-
-var context_FocusReturnProvider =
-/*#__PURE__*/
-function (_Component) {
-  Object(inherits["a" /* default */])(FocusReturnProvider, _Component);
-
-  function FocusReturnProvider() {
-    var _this;
-
-    Object(classCallCheck["a" /* default */])(this, FocusReturnProvider);
-
-    _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(FocusReturnProvider).apply(this, arguments));
-    _this.onFocus = _this.onFocus.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.state = {
-      focusHistory: []
-    };
-    return _this;
-  }
-
-  Object(createClass["a" /* default */])(FocusReturnProvider, [{
-    key: "onFocus",
-    value: function onFocus(event) {
-      var focusHistory = this.state.focusHistory; // Push the focused element to the history stack, keeping only unique
-      // members but preferring the _last_ occurrence of any duplicates.
-      // Lodash's `uniq` behavior favors the first occurrence, so the array
-      // is temporarily reversed prior to it being called upon. Uniqueness
-      // helps avoid situations where, such as in a constrained tabbing area,
-      // the user changes focus enough within a transient element that the
-      // stack may otherwise only consist of members pending destruction, at
-      // which point focus might have been lost.
-
-      var nextFocusHistory = Object(external_lodash_["uniq"])([].concat(Object(toConsumableArray["a" /* default */])(focusHistory), [event.target]).slice(-1 * MAX_STACK_LENGTH).reverse()).reverse();
-      this.setState({
-        focusHistory: nextFocusHistory
-      });
-    }
-  }, {
-    key: "render",
-    value: function render() {
-      var _this$props = this.props,
-          children = _this$props.children,
-          className = _this$props.className;
-      return Object(external_this_wp_element_["createElement"])(Provider, {
-        value: this.state
-      }, Object(external_this_wp_element_["createElement"])("div", {
-        onFocus: this.onFocus,
-        className: className
-      }, children));
-    }
-  }]);
-
-  return FocusReturnProvider;
-}(external_this_wp_element_["Component"]);
-
-/* harmony default export */ var with_focus_return_context = (context_FocusReturnProvider);
-
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/higher-order/with-focus-return/index.js
-
-
-
-
-
-
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-/**
- * Internal 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_this_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 {Component} Component with the focus restauration behaviour.
- */
-
-
-function withFocusReturn(options) {
-  // Normalize as overloaded form `withFocusReturn( options )( Component )`
-  // or as `withFocusReturn( Component )`.
-  if (isComponentLike(options)) {
-    var WrappedComponent = options;
-    return withFocusReturn({})(WrappedComponent);
-  }
-
-  var _options$onFocusRetur = options.onFocusReturn,
-      onFocusReturn = _options$onFocusRetur === void 0 ? external_lodash_["stubTrue"] : _options$onFocusRetur;
-  return function (WrappedComponent) {
-    var FocusReturn =
-    /*#__PURE__*/
-    function (_Component) {
-      Object(inherits["a" /* default */])(FocusReturn, _Component);
-
-      function FocusReturn() {
-        var _this;
-
-        Object(classCallCheck["a" /* default */])(this, FocusReturn);
-
-        _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(FocusReturn).apply(this, arguments));
-        _this.ownFocusedElements = new Set();
-        _this.activeElementOnMount = document.activeElement;
-
-        _this.setIsFocusedFalse = function () {
-          return _this.isFocused = false;
-        };
-
-        _this.setIsFocusedTrue = function (event) {
-          _this.ownFocusedElements.add(event.target);
-
-          _this.isFocused = true;
-        };
-
-        return _this;
-      }
-
-      Object(createClass["a" /* default */])(FocusReturn, [{
-        key: "componentWillUnmount",
-        value: function componentWillUnmount() {
-          var activeElementOnMount = this.activeElementOnMount,
-              isFocused = this.isFocused,
-              ownFocusedElements = this.ownFocusedElements;
-
-          if (!isFocused) {
-            return;
-          } // Defer to the component's own explicit focus return behavior,
-          // if specified. The function should return `false` to prevent
-          // the default behavior otherwise occurring here. This allows
-          // for support that the `onFocusReturn` decides to allow the
-          // default behavior to occur under some conditions.
-
-
-          if (onFocusReturn() === false) {
-            return;
-          }
-
-          var stack = [].concat(Object(toConsumableArray["a" /* default */])(external_lodash_["without"].apply(void 0, [this.props.focusHistory].concat(Object(toConsumableArray["a" /* default */])(ownFocusedElements)))), [activeElementOnMount]);
-          var candidate;
-
-          while (candidate = stack.pop()) {
-            if (document.body.contains(candidate)) {
-              candidate.focus();
-              return;
-            }
-          }
-        }
-      }, {
-        key: "render",
-        value: function render() {
-          return Object(external_this_wp_element_["createElement"])("div", {
-            onFocus: this.setIsFocusedTrue,
-            onBlur: this.setIsFocusedFalse
-          }, Object(external_this_wp_element_["createElement"])(WrappedComponent, this.props));
-        }
-      }]);
-
-      return FocusReturn;
-    }(external_this_wp_element_["Component"]);
-
-    return function (props) {
-      return Object(external_this_wp_element_["createElement"])(Consumer, null, function (context) {
-        return Object(external_this_wp_element_["createElement"])(FocusReturn, Object(esm_extends["a" /* default */])({}, props, context));
-      });
-    };
-  };
-}
-
-/* harmony default export */ var with_focus_return = (Object(external_this_wp_compose_["createHigherOrderComponent"])(withFocusReturn, 'withFocusReturn'));
-
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/higher-order/with-constrained-tabbing/index.js
-
-
-
-
-
-
-
-
-/**
- * WordPress dependencies
- */
-
-
-
-
-var withConstrainedTabbing = Object(external_this_wp_compose_["createHigherOrderComponent"])(function (WrappedComponent) {
-  return (
-    /*#__PURE__*/
-    function (_Component) {
-      Object(inherits["a" /* default */])(_class, _Component);
-
-      function _class() {
-        var _this;
-
-        Object(classCallCheck["a" /* default */])(this, _class);
-
-        _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(_class).apply(this, arguments));
-        _this.focusContainRef = Object(external_this_wp_element_["createRef"])();
-        _this.handleTabBehaviour = _this.handleTabBehaviour.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-        return _this;
-      }
-
-      Object(createClass["a" /* default */])(_class, [{
-        key: "handleTabBehaviour",
-        value: function handleTabBehaviour(event) {
-          if (event.keyCode !== external_this_wp_keycodes_["TAB"]) {
-            return;
-          }
-
-          var tabbables = external_this_wp_dom_["focus"].tabbable.find(this.focusContainRef.current);
-
-          if (!tabbables.length) {
-            return;
-          }
-
-          var firstTabbable = tabbables[0];
-          var lastTabbable = tabbables[tabbables.length - 1];
-
-          if (event.shiftKey && event.target === firstTabbable) {
-            event.preventDefault();
-            lastTabbable.focus();
-          } else if (!event.shiftKey && event.target === lastTabbable) {
-            event.preventDefault();
-            firstTabbable.focus();
-            /*
-             * When pressing Tab and none of the tabbables has focus, the keydown
-             * event happens on the wrapper div: move focus on the first tabbable.
-             */
-          } else if (!tabbables.includes(event.target)) {
-            event.preventDefault();
-            firstTabbable.focus();
-          }
-        }
-      }, {
-        key: "render",
-        value: function render() {
-          // Disable reason: this component is non-interactive, but must capture
-          // events from the wrapped component to determine when the Tab key is used.
-
-          /* eslint-disable jsx-a11y/no-static-element-interactions */
-          return Object(external_this_wp_element_["createElement"])("div", {
-            onKeyDown: this.handleTabBehaviour,
-            ref: this.focusContainRef,
-            tabIndex: "-1"
-          }, Object(external_this_wp_element_["createElement"])(WrappedComponent, this.props));
-          /* eslint-enable jsx-a11y/no-static-element-interactions */
-        }
-      }]);
-
-      return _class;
-    }(external_this_wp_element_["Component"])
-  );
-}, 'withConstrainedTabbing');
-/* harmony default export */ var with_constrained_tabbing = (withConstrainedTabbing);
-
-// EXTERNAL MODULE: ./node_modules/react-click-outside/dist/index.js
-var dist = __webpack_require__(108);
-var dist_default = /*#__PURE__*/__webpack_require__.n(dist);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/popover/detect-outside.js
-
-
-
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-var detect_outside_PopoverDetectOutside =
-/*#__PURE__*/
-function (_Component) {
-  Object(inherits["a" /* default */])(PopoverDetectOutside, _Component);
-
-  function PopoverDetectOutside() {
-    Object(classCallCheck["a" /* default */])(this, PopoverDetectOutside);
-
-    return Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(PopoverDetectOutside).apply(this, arguments));
-  }
-
-  Object(createClass["a" /* default */])(PopoverDetectOutside, [{
-    key: "handleClickOutside",
-    value: function handleClickOutside(event) {
-      var onClickOutside = this.props.onClickOutside;
-
-      if (onClickOutside) {
-        onClickOutside(event);
-      }
-    }
-  }, {
-    key: "render",
-    value: function render() {
-      return this.props.children;
-    }
-  }]);
-
-  return PopoverDetectOutside;
-}(external_this_wp_element_["Component"]);
-
-/* harmony default export */ var detect_outside = (dist_default()(detect_outside_PopoverDetectOutside));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/shortcut/index.js
-
-
-/**
- * External dependencies
- */
-
-
-function Shortcut(_ref) {
-  var shortcut = _ref.shortcut,
-      className = _ref.className;
-
-  if (!shortcut) {
-    return null;
-  }
-
-  var displayText;
-  var ariaLabel;
-
-  if (Object(external_lodash_["isString"])(shortcut)) {
-    displayText = shortcut;
-  }
-
-  if (Object(external_lodash_["isObject"])(shortcut)) {
-    displayText = shortcut.display;
-    ariaLabel = shortcut.ariaLabel;
-  }
-
-  return Object(external_this_wp_element_["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
-
-
-
-
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-/**
- * Time over children to wait before showing tooltip
- *
- * @type {Number}
- */
-
-var TOOLTIP_DELAY = 700;
-
-var tooltip_Tooltip =
-/*#__PURE__*/
-function (_Component) {
-  Object(inherits["a" /* default */])(Tooltip, _Component);
-
-  function Tooltip() {
-    var _this;
-
-    Object(classCallCheck["a" /* default */])(this, Tooltip);
-
-    _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(Tooltip).apply(this, arguments));
-    _this.delayedSetIsOver = Object(external_lodash_["debounce"])(function (isOver) {
-      return _this.setState({
-        isOver: isOver
-      });
-    }, TOOLTIP_DELAY);
-    _this.state = {
-      isOver: false
-    };
-    return _this;
-  }
-
-  Object(createClass["a" /* default */])(Tooltip, [{
-    key: "componentWillUnmount",
-    value: function componentWillUnmount() {
-      this.delayedSetIsOver.cancel();
-    }
-  }, {
-    key: "emitToChild",
-    value: function emitToChild(eventName, event) {
-      var children = this.props.children;
-
-      if (external_this_wp_element_["Children"].count(children) !== 1) {
-        return;
-      }
-
-      var child = external_this_wp_element_["Children"].only(children);
-
-      if (typeof child.props[eventName] === 'function') {
-        child.props[eventName](event);
-      }
-    }
-  }, {
-    key: "createToggleIsOver",
-    value: function createToggleIsOver(eventName, isDelayed) {
-      var _this2 = this;
-
-      return function (event) {
-        // Preserve original child callback behavior
-        _this2.emitToChild(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;
-        } // Needed in case unsetting is over while delayed set pending, i.e.
-        // quickly blur/mouseleave before delayedSetIsOver is called
-
-
-        _this2.delayedSetIsOver.cancel();
-
-        var isOver = Object(external_lodash_["includes"])(['focus', 'mouseenter'], event.type);
-
-        if (isOver === _this2.state.isOver) {
-          return;
-        }
-
-        if (isDelayed) {
-          _this2.delayedSetIsOver(isOver);
-        } else {
-          _this2.setState({
-            isOver: isOver
-          });
-        }
-      };
-    }
-  }, {
-    key: "render",
-    value: function render() {
-      var _this$props = this.props,
-          children = _this$props.children,
-          position = _this$props.position,
-          text = _this$props.text,
-          shortcut = _this$props.shortcut;
-
-      if (external_this_wp_element_["Children"].count(children) !== 1) {
-        if (false) {}
-
-        return children;
-      }
-
-      var child = external_this_wp_element_["Children"].only(children);
-      var isOver = this.state.isOver;
-      return Object(external_this_wp_element_["cloneElement"])(child, {
-        onMouseEnter: this.createToggleIsOver('onMouseEnter', true),
-        onMouseLeave: this.createToggleIsOver('onMouseLeave'),
-        onClick: this.createToggleIsOver('onClick'),
-        onFocus: this.createToggleIsOver('onFocus'),
-        onBlur: this.createToggleIsOver('onBlur'),
-        children: Object(external_this_wp_element_["concatChildren"])(child.props.children, isOver && Object(external_this_wp_element_["createElement"])(popover, {
-          focusOnMount: false,
-          position: position,
-          className: "components-tooltip",
-          "aria-hidden": "true",
-          animate: false
-        }, text, Object(external_this_wp_element_["createElement"])(build_module_shortcut, {
-          className: "components-tooltip__shortcut",
-          shortcut: shortcut
-        })))
-      });
-    }
-  }]);
-
-  return Tooltip;
-}(external_this_wp_element_["Component"]);
-
-/* harmony default export */ var build_module_tooltip = (tooltip_Tooltip);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/dashicon/icon-class.js
-var IconClass = function IconClass(props) {
-  var icon = props.icon,
-      className = props.className;
-  return ['dashicon', 'dashicons-' + icon, className].filter(Boolean).join(' ');
-};
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/dashicon/index.js
-
-
-
-
-
-
+}
+
+module.exports = shallowCompare;
+
+
+/***/ }),
+/* 144 */,
+/* 145 */
+/***/ (function(module, exports) {
+
+function _inheritsLoose(subClass, superClass) {
+  subClass.prototype = Object.create(superClass.prototype);
+  subClass.prototype.constructor = subClass;
+  subClass.__proto__ = superClass;
+}
+
+module.exports = _inheritsLoose;
+
+/***/ }),
+/* 146 */,
+/* 147 */,
+/* 148 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Dashicon; });
+/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8);
+/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15);
+/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(20);
+/* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(19);
+/* harmony import */ var _babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(23);
+/* harmony import */ var _babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(16);
+/* harmony import */ var _babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(22);
+/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(0);
+/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_7__);
+/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(6);
+/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_8__);
+
+
+
+
+
+
+
+
+
+function _createSuper(Derived) { return function () { var Super = Object(_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = Object(_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"])(this, result); }; }
+
+function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
 
 /* !!!
 IF YOU ARE EDITING dashicon/index.jsx
@@ -25004,36 +12594,29 @@
  * WordPress dependencies
  */
 
-/**
- * Internal dependencies
- */
-
-
-
-
-var dashicon_Dashicon =
-/*#__PURE__*/
-function (_Component) {
-  Object(inherits["a" /* default */])(Dashicon, _Component);
+
+
+var Dashicon = /*#__PURE__*/function (_Component) {
+  Object(_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"])(Dashicon, _Component);
+
+  var _super = _createSuper(Dashicon);
 
   function Dashicon() {
-    Object(classCallCheck["a" /* default */])(this, Dashicon);
-
-    return Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(Dashicon).apply(this, arguments));
-  }
-
-  Object(createClass["a" /* default */])(Dashicon, [{
-    key: "shouldComponentUpdate",
-    value: function shouldComponentUpdate(nextProps) {
-      return this.props.icon !== nextProps.icon || this.props.size !== nextProps.size || this.props.className !== nextProps.className || this.props.ariaPressed !== nextProps.ariaPressed;
-    }
-  }, {
+    Object(_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(this, Dashicon);
+
+    return _super.apply(this, arguments);
+  }
+
+  Object(_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"])(Dashicon, [{
     key: "render",
     value: function render() {
       var _this$props = this.props,
           icon = _this$props.icon,
           _this$props$size = _this$props.size,
-          size = _this$props$size === void 0 ? 20 : _this$props$size;
+          size = _this$props$size === void 0 ? 20 : _this$props$size,
+          className = _this$props.className,
+          extraProps = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(_this$props, ["icon", "size", "className"]);
+
       var path;
 
       switch (icon) {
@@ -26194,8 +13777,8 @@
         return null;
       }
 
-      var iconClass = IconClass(this.props);
-      return Object(external_this_wp_element_["createElement"])(svg_SVG, {
+      var iconClass = ['dashicon', 'dashicons-' + icon, className].filter(Boolean).join(' ');
+      return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_7__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_8__["SVG"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])({
         "aria-hidden": true,
         role: "img",
         focusable: "false",
@@ -26204,91 +13787,281 @@
         width: size,
         height: size,
         viewBox: "0 0 20 20"
-      }, Object(external_this_wp_element_["createElement"])(svg_Path, {
+      }, extraProps), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_7__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_8__["Path"], {
         d: path
       }));
     }
   }]);
 
   return Dashicon;
-}(external_this_wp_element_["Component"]);
-
-
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/icon-button/index.js
-
-
-
-
-/**
- * External dependencies
- */
-
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-function IconButton(props, ref) {
-  var icon = props.icon,
-      children = props.children,
-      label = props.label,
-      className = props.className,
-      tooltip = props.tooltip,
-      shortcut = props.shortcut,
-      labelPosition = props.labelPosition,
-      additionalProps = Object(objectWithoutProperties["a" /* default */])(props, ["icon", "children", "label", "className", "tooltip", "shortcut", "labelPosition"]);
-
-  var ariaPressed = additionalProps['aria-pressed'];
-  var classes = classnames_default()('components-icon-button', className, {
-    'has-text': children
-  });
-  var tooltipText = tooltip || label; // Should show the tooltip if...
-
-  var showTooltip = !additionalProps.disabled && ( // an explicit tooltip is passed or...
-  tooltip || // there's a shortcut or...
-  shortcut || // there's a label and...
-  !!label && ( // the children are empty and...
-  !children || Object(external_lodash_["isArray"])(children) && !children.length) && // the tooltip is not explicitly disabled.
-  false !== tooltip);
-  var element = Object(external_this_wp_element_["createElement"])(build_module_button, Object(esm_extends["a" /* default */])({
-    "aria-label": label
-  }, additionalProps, {
-    className: classes,
-    ref: ref
-  }), Object(external_lodash_["isString"])(icon) ? Object(external_this_wp_element_["createElement"])(dashicon_Dashicon, {
-    icon: icon,
-    ariaPressed: ariaPressed
-  }) : icon, children);
-
-  if (showTooltip) {
-    element = Object(external_this_wp_element_["createElement"])(build_module_tooltip, {
-      text: tooltipText,
-      shortcut: shortcut,
-      position: labelPosition
-    }, element);
-  }
-
-  return element;
-}
-
-/* harmony default export */ var icon_button = (Object(external_this_wp_element_["forwardRef"])(IconButton));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/scroll-lock/index.js
-
-
-
-
-
+}(_wordpress_element__WEBPACK_IMPORTED_MODULE_7__["Component"]);
+
+
+
+
+/***/ }),
+/* 149 */
+/***/ (function(module, exports, __webpack_require__) {
+
+var e=__webpack_require__(13),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]};
+
+
+/***/ }),
+/* 150 */,
+/* 151 */,
+/* 152 */,
+/* 153 */,
+/* 154 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
+/* 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__(6);
+/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
+
+
+/**
+ * WordPress dependencies
+ */
+
+var 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);
+
+
+/***/ }),
+/* 155 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
+/* 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__(6);
+/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
+
+
+/**
+ * WordPress dependencies
+ */
+
+var 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: "M9 18.6L3.5 13l1-1L9 16.4l9.5-9.9 1 1z"
+}));
+/* harmony default export */ __webpack_exports__["a"] = (check);
+
+
+/***/ }),
+/* 156 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+
+var _propTypes = __webpack_require__(28);
+
+var _propTypes2 = _interopRequireDefault(_propTypes);
+
+var _constants = __webpack_require__(77);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+exports['default'] = _propTypes2['default'].oneOf(_constants.WEEKDAYS);
+
+/***/ }),
+/* 157 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+
+var _propTypes = __webpack_require__(28);
+
+var _propTypes2 = _interopRequireDefault(_propTypes);
+
+var _airbnbPropTypes = __webpack_require__(85);
+
+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)');
+
+/***/ }),
+/* 158 */,
+/* 159 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return useSlot; });
+/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5);
+/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(0);
+/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__);
+/* harmony import */ var _slot_fill_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(133);
+
+
+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(Object(source), true).forEach(function (key) { Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(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; }
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+function useSlot(name) {
+  var registry = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["useContext"])(_slot_fill_context__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"]);
+  var slot = registry.slots[name] || {};
+  var slotFills = registry.fills[name];
+  var fills = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["useMemo"])(function () {
+    return slotFills || [];
+  }, [slotFills]);
+  var updateSlot = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["useCallback"])(function (fillProps) {
+    registry.updateSlot(name, fillProps);
+  }, [name, registry.updateSlot]);
+  var unregisterSlot = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["useCallback"])(function (slotRef) {
+    registry.unregisterSlot(name, slotRef);
+  }, [name, registry.unregisterSlot]);
+  var registerFill = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["useCallback"])(function (fillRef) {
+    registry.registerFill(name, fillRef);
+  }, [name, registry.registerFill]);
+  var unregisterFill = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["useCallback"])(function (fillRef) {
+    registry.unregisterFill(name, fillRef);
+  }, [name, registry.unregisterFill]);
+  return _objectSpread({}, slot, {
+    updateSlot: updateSlot,
+    unregisterSlot: unregisterSlot,
+    fills: fills,
+    registerFill: registerFill,
+    unregisterFill: unregisterFill
+  });
+}
+
+
+/***/ }),
+/* 160 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5);
+/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(14);
+/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11);
+/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_2__);
+
+
+
+/**
+ * External dependencies
+ */
+
+
+function Animate(_ref) {
+  var type = _ref.type,
+      _ref$options = _ref.options,
+      options = _ref$options === void 0 ? {} : _ref$options,
+      children = _ref.children;
+
+  if (type === 'appear') {
+    var _classnames;
+
+    var _options$origin = options.origin,
+        origin = _options$origin === void 0 ? 'top' : _options$origin;
+
+    var _origin$split = origin.split(' '),
+        _origin$split2 = Object(_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(_origin$split, 2),
+        yAxis = _origin$split2[0],
+        _origin$split2$ = _origin$split2[1],
+        xAxis = _origin$split2$ === void 0 ? 'center' : _origin$split2$;
+
+    return children({
+      className: classnames__WEBPACK_IMPORTED_MODULE_2___default()('components-animate__appear', (_classnames = {}, Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_classnames, 'is-from-' + xAxis, xAxis !== 'center'), Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_classnames, 'is-from-' + yAxis, yAxis !== 'middle'), _classnames))
+    });
+  }
+
+  if (type === 'slide-in') {
+    var _options$origin2 = options.origin,
+        _origin = _options$origin2 === void 0 ? 'left' : _options$origin2;
+
+    return children({
+      className: classnames__WEBPACK_IMPORTED_MODULE_2___default()('components-animate__slide-in', 'is-from-' + _origin)
+    });
+  }
+
+  if (type === 'loading') {
+    return children({
+      className: classnames__WEBPACK_IMPORTED_MODULE_2___default()('components-animate__loading')
+    });
+  }
+
+  return children({});
+}
+
+/* harmony default export */ __webpack_exports__["a"] = (Animate);
+
+
+/***/ }),
+/* 161 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* unused harmony export createScrollLockComponent */
+/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20);
+/* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(19);
+/* harmony import */ var _babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(23);
+/* harmony import */ var _babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(16);
+/* harmony import */ var _babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(22);
+/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(0);
+/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_5__);
+
+
+
+
+
+
+function _createSuper(Derived) { return function () { var Super = Object(_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"])(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = Object(_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(this, result); }; }
+
+function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
 
 /**
  * WordPress dependencies
@@ -26303,7 +14076,7 @@
  * @param {Object} args Keyword args.
  * @param {HTMLDocument} args.htmlDocument The document to lock the scroll for.
  * @param {string} args.className The name of the class used to lock scrolling.
- * @return {Component} The bound ScrollLock component.
+ * @return {WPComponent} The bound ScrollLock component.
  */
 
 function createScrollLockComponent() {
@@ -26377,991 +14150,7445 @@
     --lockCounter;
   }
 
-  return (
-    /*#__PURE__*/
-    function (_Component) {
-      Object(inherits["a" /* default */])(ScrollLock, _Component);
-
-      function ScrollLock() {
-        Object(classCallCheck["a" /* default */])(this, ScrollLock);
-
-        return Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(ScrollLock).apply(this, arguments));
-      }
-
-      Object(createClass["a" /* default */])(ScrollLock, [{
-        key: "componentDidMount",
-
-        /**
-         * Requests scroll lock on mount.
-         */
-        value: function componentDidMount() {
-          requestLock();
-        }
-        /**
-         * Releases scroll lock before unmount.
-         */
-
-      }, {
-        key: "componentWillUnmount",
-        value: function componentWillUnmount() {
-          releaseLock();
-        }
-        /**
-         * Render nothing as this component is merely a way to declare scroll lock.
-         *
-         * @return {null} Render nothing by returning `null`.
-         */
-
-      }, {
-        key: "render",
-        value: function render() {
-          return null;
-        }
-      }]);
-
-      return ScrollLock;
-    }(external_this_wp_element_["Component"])
-  );
-}
-/* harmony default export */ var scroll_lock = (createScrollLockComponent());
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/isolated-event-container/index.js
-
-
-
-
-
-
-
-
-
-
-/**
- * WordPress dependencies
- */
-
-
-var isolated_event_container_IsolatedEventContainer =
-/*#__PURE__*/
-function (_Component) {
-  Object(inherits["a" /* default */])(IsolatedEventContainer, _Component);
-
-  function IsolatedEventContainer(props) {
+  return /*#__PURE__*/function (_Component) {
+    Object(_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"])(ScrollLock, _Component);
+
+    var _super = _createSuper(ScrollLock);
+
+    function ScrollLock() {
+      Object(_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(this, ScrollLock);
+
+      return _super.apply(this, arguments);
+    }
+
+    Object(_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(ScrollLock, [{
+      key: "componentDidMount",
+
+      /**
+       * Requests scroll lock on mount.
+       */
+      value: function componentDidMount() {
+        requestLock();
+      }
+      /**
+       * Releases scroll lock before unmount.
+       */
+
+    }, {
+      key: "componentWillUnmount",
+      value: function componentWillUnmount() {
+        releaseLock();
+      }
+      /**
+       * Render nothing as this component is merely a way to declare scroll lock.
+       *
+       * @return {null} Render nothing by returning `null`.
+       */
+
+    }, {
+      key: "render",
+      value: function render() {
+        return null;
+      }
+    }]);
+
+    return ScrollLock;
+  }(_wordpress_element__WEBPACK_IMPORTED_MODULE_5__["Component"]);
+}
+/* harmony default export */ __webpack_exports__["a"] = (createScrollLockComponent());
+
+
+/***/ }),
+/* 162 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(process) {/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
+/* 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__(2);
+/* 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__(11);
+/* 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__(54);
+/* 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__(1);
+/* 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__(104);
+/* 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__(34);
+
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+var 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) {
+  var spokenMessage = typeof message === 'string' ? message : Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["renderToString"])(message);
+  Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["useEffect"])(function () {
+    if (spokenMessage) {
+      Object(_wordpress_a11y__WEBPACK_IMPORTED_MODULE_3__["speak"])(spokenMessage, politeness);
+    }
+  }, [spokenMessage, politeness]);
+}
+
+function Snackbar(_ref, ref) {
+  var className = _ref.className,
+      children = _ref.children,
+      _ref$spokenMessage = _ref.spokenMessage,
+      spokenMessage = _ref$spokenMessage === void 0 ? children : _ref$spokenMessage,
+      _ref$politeness = _ref.politeness,
+      politeness = _ref$politeness === void 0 ? 'polite' : _ref$politeness,
+      _ref$actions = _ref.actions,
+      actions = _ref$actions === void 0 ? [] : _ref$actions,
+      _ref$onRemove = _ref.onRemove,
+      onRemove = _ref$onRemove === void 0 ? lodash__WEBPACK_IMPORTED_MODULE_1__["noop"] : _ref$onRemove;
+  useSpokenMessage(spokenMessage, politeness);
+  Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["useEffect"])(function () {
+    var timeoutHandle = setTimeout(function () {
+      onRemove();
+    }, NOTICE_TIMEOUT);
+    return function () {
+      return clearTimeout(timeoutHandle);
+    };
+  }, []);
+  var classes = classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'components-snackbar');
+
+  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]];
+  }
+
+  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", {
+    ref: ref,
+    className: classes,
+    onClick: onRemove,
+    tabIndex: "0",
+    role: "button",
+    onKeyPress: onRemove,
+    "aria-label": Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__["__"])('Dismiss this notice')
+  }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", {
+    className: "components-snackbar__content"
+  }, children, actions.map(function (_ref2, index) {
+    var label = _ref2.label,
+        _onClick = _ref2.onClick,
+        url = _ref2.url;
+    return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(___WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"], {
+      key: index,
+      href: url,
+      isTertiary: true,
+      onClick: function onClick(event) {
+        event.stopPropagation();
+
+        if (_onClick) {
+          _onClick(event);
+        }
+      },
+      className: "components-snackbar__action"
+    }, label);
+  })));
+}
+
+/* harmony default export */ __webpack_exports__["a"] = (Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["forwardRef"])(Snackbar));
+
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(117)))
+
+/***/ }),
+/* 163 */,
+/* 164 */,
+/* 165 */,
+/* 166 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
+/* 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__(2);
+/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);
+
+
+/**
+ * External dependencies
+ */
+
+
+function Shortcut(_ref) {
+  var shortcut = _ref.shortcut,
+      className = _ref.className;
+
+  if (!shortcut) {
+    return null;
+  }
+
+  var displayText;
+  var 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);
+
+
+/***/ }),
+/* 167 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return useToolbarState; });
+/* harmony import */ var _rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17);
+/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(13);
+/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
+/* harmony import */ var reakit_utils_useSealedState__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(62);
+/* harmony import */ var _CompositeState_3a25dcee_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(51);
+
+
+
+
+
+
+
+
+
+function useToolbarState(initialState) {
+  if (initialState === void 0) {
+    initialState = {};
+  }
+
+  var _useSealedState = Object(reakit_utils_useSealedState__WEBPACK_IMPORTED_MODULE_2__[/* useSealedState */ "a"])(initialState),
+      _useSealedState$orien = _useSealedState.orientation,
+      orientation = _useSealedState$orien === void 0 ? "horizontal" : _useSealedState$orien,
+      sealed = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* _ */ "a"])(_useSealedState, ["orientation"]);
+
+  return Object(_CompositeState_3a25dcee_js__WEBPACK_IMPORTED_MODULE_3__[/* u */ "g"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ "b"])({
+    orientation: orientation
+  }, sealed));
+}
+var keys = [].concat(_CompositeState_3a25dcee_js__WEBPACK_IMPORTED_MODULE_3__[/* u */ "g"].__keys);
+useToolbarState.__keys = keys;
+
+
+
+
+/***/ }),
+/* 168 */,
+/* 169 */,
+/* 170 */
+/***/ (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;
+  };
+
+  return _extends.apply(this, arguments);
+}
+
+module.exports = _extends;
+
+/***/ }),
+/* 171 */
+/***/ (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;
+
+/***/ }),
+/* 172 */
+/***/ (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;
+
+/***/ }),
+/* 173 */,
+/* 174 */,
+/* 175 */,
+/* 176 */,
+/* 177 */,
+/* 178 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var util = __webpack_require__(179);
+
+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;
+
+/***/ }),
+/* 179 */
+/***/ (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);
+
+/***/ }),
+/* 180 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
+/* 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__(6);
+/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
+
+
+/**
+ * WordPress dependencies
+ */
+
+var 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);
+
+
+/***/ }),
+/* 181 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var slice = Array.prototype.slice;
+var isArgs = __webpack_require__(206);
+
+var origKeys = Object.keys;
+var keysShim = origKeys ? function keys(o) { return origKeys(o); } : __webpack_require__(311);
+
+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;
+
+
+/***/ }),
+/* 182 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var bind = __webpack_require__(118);
+
+var GetIntrinsic = __webpack_require__(58);
+
+var $apply = GetIntrinsic('%Function.prototype.apply%');
+var $call = GetIntrinsic('%Function.prototype.call%');
+var $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);
+
+module.exports = function callBind() {
+	return $reflectApply(bind, $call, arguments);
+};
+
+module.exports.apply = function applyBind() {
+	return $reflectApply(bind, $apply, arguments);
+};
+
+
+/***/ }),
+/* 183 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(58);
+
+var $TypeError = GetIntrinsic('%TypeError%');
+
+var inspect = __webpack_require__(315);
+
+var IsPropertyKey = __webpack_require__(128);
+var Type = __webpack_require__(90);
+
+/**
+ * 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];
+};
+
+
+/***/ }),
+/* 184 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(58);
+
+var $Array = GetIntrinsic('%Array%');
+
+// eslint-disable-next-line global-require
+var toStr = !$Array.isArray && __webpack_require__(140)('Object.prototype.toString');
+
+// https://www.ecma-international.org/ecma-262/6.0/#sec-isarray
+
+module.exports = $Array.isArray || function IsArray(argument) {
+	return toStr(argument) === '[object Array]';
+};
+
+
+/***/ }),
+/* 185 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(58);
+
+var $TypeError = GetIntrinsic('%TypeError%');
+var $SyntaxError = GetIntrinsic('%SyntaxError%');
+
+var has = __webpack_require__(91);
+
+var predicates = {
+	// https://ecma-international.org/ecma-262/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);
+	}
+};
+
+
+/***/ }),
+/* 186 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+module.exports = Number.isNaN || function isNaN(a) {
+	return a !== a;
+};
+
+
+/***/ }),
+/* 187 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var toStr = Object.prototype.toString;
+var hasSymbols = __webpack_require__(342)();
+
+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;
+	};
+}
+
+
+/***/ }),
+/* 188 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var fnToStr = Function.prototype.toString;
+
+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 = 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;
+};
+
+
+/***/ }),
+/* 189 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+/* globals
+	Set,
+	Map,
+	WeakSet,
+	WeakMap,
+
+	Promise,
+
+	Symbol,
+	Proxy,
+
+	Atomics,
+	SharedArrayBuffer,
+
+	ArrayBuffer,
+	DataView,
+	Uint8Array,
+	Float32Array,
+	Float64Array,
+	Int8Array,
+	Int16Array,
+	Int32Array,
+	Uint8ClampedArray,
+	Uint16Array,
+	Uint32Array,
+*/
+
+var undefined; // eslint-disable-line no-shadow-restricted-names
+
+var ThrowTypeError = Object.getOwnPropertyDescriptor
+	? (function () { return Object.getOwnPropertyDescriptor(arguments, 'callee').get; }())
+	: function () { throw new TypeError(); };
+
+var hasSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol';
+
+var getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto
+
+var generator; // = function * () {};
+var generatorFunction = generator ? getProto(generator) : undefined;
+var asyncFn; // async function() {};
+var asyncFunction = asyncFn ? asyncFn.constructor : undefined;
+var asyncGen; // async function * () {};
+var asyncGenFunction = asyncGen ? getProto(asyncGen) : undefined;
+var asyncGenIterator = asyncGen ? asyncGen() : undefined;
+
+var TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);
+
+var INTRINSICS = {
+	'$ %Array%': Array,
+	'$ %ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,
+	'$ %ArrayBufferPrototype%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer.prototype,
+	'$ %ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,
+	'$ %ArrayPrototype%': Array.prototype,
+	'$ %ArrayProto_entries%': Array.prototype.entries,
+	'$ %ArrayProto_forEach%': Array.prototype.forEach,
+	'$ %ArrayProto_keys%': Array.prototype.keys,
+	'$ %ArrayProto_values%': Array.prototype.values,
+	'$ %AsyncFromSyncIteratorPrototype%': undefined,
+	'$ %AsyncFunction%': asyncFunction,
+	'$ %AsyncFunctionPrototype%': asyncFunction ? asyncFunction.prototype : undefined,
+	'$ %AsyncGenerator%': asyncGen ? getProto(asyncGenIterator) : undefined,
+	'$ %AsyncGeneratorFunction%': asyncGenFunction,
+	'$ %AsyncGeneratorPrototype%': asyncGenFunction ? asyncGenFunction.prototype : undefined,
+	'$ %AsyncIteratorPrototype%': asyncGenIterator && hasSymbols && Symbol.asyncIterator ? asyncGenIterator[Symbol.asyncIterator]() : undefined,
+	'$ %Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,
+	'$ %Boolean%': Boolean,
+	'$ %BooleanPrototype%': Boolean.prototype,
+	'$ %DataView%': typeof DataView === 'undefined' ? undefined : DataView,
+	'$ %DataViewPrototype%': typeof DataView === 'undefined' ? undefined : DataView.prototype,
+	'$ %Date%': Date,
+	'$ %DatePrototype%': Date.prototype,
+	'$ %decodeURI%': decodeURI,
+	'$ %decodeURIComponent%': decodeURIComponent,
+	'$ %encodeURI%': encodeURI,
+	'$ %encodeURIComponent%': encodeURIComponent,
+	'$ %Error%': Error,
+	'$ %ErrorPrototype%': Error.prototype,
+	'$ %eval%': eval, // eslint-disable-line no-eval
+	'$ %EvalError%': EvalError,
+	'$ %EvalErrorPrototype%': EvalError.prototype,
+	'$ %Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,
+	'$ %Float32ArrayPrototype%': typeof Float32Array === 'undefined' ? undefined : Float32Array.prototype,
+	'$ %Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,
+	'$ %Float64ArrayPrototype%': typeof Float64Array === 'undefined' ? undefined : Float64Array.prototype,
+	'$ %Function%': Function,
+	'$ %FunctionPrototype%': Function.prototype,
+	'$ %Generator%': generator ? getProto(generator()) : undefined,
+	'$ %GeneratorFunction%': generatorFunction,
+	'$ %GeneratorPrototype%': generatorFunction ? generatorFunction.prototype : undefined,
+	'$ %Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,
+	'$ %Int8ArrayPrototype%': typeof Int8Array === 'undefined' ? undefined : Int8Array.prototype,
+	'$ %Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,
+	'$ %Int16ArrayPrototype%': typeof Int16Array === 'undefined' ? undefined : Int8Array.prototype,
+	'$ %Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,
+	'$ %Int32ArrayPrototype%': typeof Int32Array === 'undefined' ? undefined : Int32Array.prototype,
+	'$ %isFinite%': isFinite,
+	'$ %isNaN%': isNaN,
+	'$ %IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,
+	'$ %JSON%': JSON,
+	'$ %JSONParse%': JSON.parse,
+	'$ %Map%': typeof Map === 'undefined' ? undefined : Map,
+	'$ %MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),
+	'$ %MapPrototype%': typeof Map === 'undefined' ? undefined : Map.prototype,
+	'$ %Math%': Math,
+	'$ %Number%': Number,
+	'$ %NumberPrototype%': Number.prototype,
+	'$ %Object%': Object,
+	'$ %ObjectPrototype%': Object.prototype,
+	'$ %ObjProto_toString%': Object.prototype.toString,
+	'$ %ObjProto_valueOf%': Object.prototype.valueOf,
+	'$ %parseFloat%': parseFloat,
+	'$ %parseInt%': parseInt,
+	'$ %Promise%': typeof Promise === 'undefined' ? undefined : Promise,
+	'$ %PromisePrototype%': typeof Promise === 'undefined' ? undefined : Promise.prototype,
+	'$ %PromiseProto_then%': typeof Promise === 'undefined' ? undefined : Promise.prototype.then,
+	'$ %Promise_all%': typeof Promise === 'undefined' ? undefined : Promise.all,
+	'$ %Promise_reject%': typeof Promise === 'undefined' ? undefined : Promise.reject,
+	'$ %Promise_resolve%': typeof Promise === 'undefined' ? undefined : Promise.resolve,
+	'$ %Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,
+	'$ %RangeError%': RangeError,
+	'$ %RangeErrorPrototype%': RangeError.prototype,
+	'$ %ReferenceError%': ReferenceError,
+	'$ %ReferenceErrorPrototype%': ReferenceError.prototype,
+	'$ %Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,
+	'$ %RegExp%': RegExp,
+	'$ %RegExpPrototype%': RegExp.prototype,
+	'$ %Set%': typeof Set === 'undefined' ? undefined : Set,
+	'$ %SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),
+	'$ %SetPrototype%': typeof Set === 'undefined' ? undefined : Set.prototype,
+	'$ %SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,
+	'$ %SharedArrayBufferPrototype%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer.prototype,
+	'$ %String%': String,
+	'$ %StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,
+	'$ %StringPrototype%': String.prototype,
+	'$ %Symbol%': hasSymbols ? Symbol : undefined,
+	'$ %SymbolPrototype%': hasSymbols ? Symbol.prototype : undefined,
+	'$ %SyntaxError%': SyntaxError,
+	'$ %SyntaxErrorPrototype%': SyntaxError.prototype,
+	'$ %ThrowTypeError%': ThrowTypeError,
+	'$ %TypedArray%': TypedArray,
+	'$ %TypedArrayPrototype%': TypedArray ? TypedArray.prototype : undefined,
+	'$ %TypeError%': TypeError,
+	'$ %TypeErrorPrototype%': TypeError.prototype,
+	'$ %Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,
+	'$ %Uint8ArrayPrototype%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array.prototype,
+	'$ %Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,
+	'$ %Uint8ClampedArrayPrototype%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray.prototype,
+	'$ %Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,
+	'$ %Uint16ArrayPrototype%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array.prototype,
+	'$ %Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,
+	'$ %Uint32ArrayPrototype%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array.prototype,
+	'$ %URIError%': URIError,
+	'$ %URIErrorPrototype%': URIError.prototype,
+	'$ %WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,
+	'$ %WeakMapPrototype%': typeof WeakMap === 'undefined' ? undefined : WeakMap.prototype,
+	'$ %WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet,
+	'$ %WeakSetPrototype%': typeof WeakSet === 'undefined' ? undefined : WeakSet.prototype
+};
+
+module.exports = function GetIntrinsic(name, allowMissing) {
+	if (arguments.length > 1 && typeof allowMissing !== 'boolean') {
+		throw new TypeError('"allowMissing" argument must be a boolean');
+	}
+
+	var key = '$ ' + name;
+	if (!(key in INTRINSICS)) {
+		throw new SyntaxError('intrinsic ' + name + ' does not exist!');
+	}
+
+	// istanbul ignore if // hopefully this is impossible to test :-)
+	if (typeof INTRINSICS[key] === 'undefined' && !allowMissing) {
+		throw new TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');
+	}
+	return INTRINSICS[key];
+};
+
+
+/***/ }),
+/* 190 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports['default'] = isSameDay;
+
+var _moment = __webpack_require__(43);
+
+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();
+}
+
+/***/ }),
+/* 191 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports['default'] = toISOMonthString;
+
+var _moment = __webpack_require__(43);
+
+var _moment2 = _interopRequireDefault(_moment);
+
+var _toMomentObject = __webpack_require__(241);
+
+var _toMomentObject2 = _interopRequireDefault(_toMomentObject);
+
+var _constants = __webpack_require__(77);
+
+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);
+}
+
+/***/ }),
+/* 192 */
+/***/ (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;
+
+
+/***/ }),
+/* 193 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Consumer; });
+/* harmony import */ var _babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(18);
+/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
+/* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(19);
+/* harmony import */ var _babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12);
+/* harmony import */ var _babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(23);
+/* harmony import */ var _babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(16);
+/* harmony import */ var _babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(22);
+/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(0);
+/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_7__);
+/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(2);
+/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_8__);
+
+
+
+
+
+
+
+
+
+function _createSuper(Derived) { return function () { var Super = Object(_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = Object(_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"])(this, result); }; }
+
+function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+var _createContext = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_7__["createContext"])({
+  focusHistory: []
+}),
+    Provider = _createContext.Provider,
+    Consumer = _createContext.Consumer;
+
+Provider.displayName = 'FocusReturnProvider';
+Consumer.displayName = 'FocusReturnConsumer';
+/**
+ * The maximum history length to capture for the focus stack. When exceeded,
+ * items should be shifted from the stack for each consecutive push.
+ *
+ * @type {number}
+ */
+
+var MAX_STACK_LENGTH = 100;
+
+var FocusReturnProvider = /*#__PURE__*/function (_Component) {
+  Object(_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"])(FocusReturnProvider, _Component);
+
+  var _super = _createSuper(FocusReturnProvider);
+
+  function FocusReturnProvider() {
     var _this;
 
-    Object(classCallCheck["a" /* default */])(this, IsolatedEventContainer);
-
-    _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(IsolatedEventContainer).call(this, props));
-    _this.stopEventPropagationOutsideContainer = _this.stopEventPropagationOutsideContainer.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
+    Object(_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(this, FocusReturnProvider);
+
+    _this = _super.apply(this, arguments);
+    _this.onFocus = _this.onFocus.bind(Object(_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"])(_this));
+    _this.state = {
+      focusHistory: []
+    };
     return _this;
   }
 
-  Object(createClass["a" /* default */])(IsolatedEventContainer, [{
-    key: "stopEventPropagationOutsideContainer",
-    value: function stopEventPropagationOutsideContainer(event) {
-      event.stopPropagation();
+  Object(_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(FocusReturnProvider, [{
+    key: "onFocus",
+    value: function onFocus(event) {
+      var focusHistory = this.state.focusHistory; // Push the focused element to the history stack, keeping only unique
+      // members but preferring the _last_ occurrence of any duplicates.
+      // Lodash's `uniq` behavior favors the first occurrence, so the array
+      // is temporarily reversed prior to it being called upon. Uniqueness
+      // helps avoid situations where, such as in a constrained tabbing area,
+      // the user changes focus enough within a transient element that the
+      // stack may otherwise only consist of members pending destruction, at
+      // which point focus might have been lost.
+
+      var nextFocusHistory = Object(lodash__WEBPACK_IMPORTED_MODULE_8__["uniq"])([].concat(Object(_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(focusHistory), [event.target]).slice(-1 * MAX_STACK_LENGTH).reverse()).reverse();
+      this.setState({
+        focusHistory: nextFocusHistory
+      });
     }
   }, {
     key: "render",
     value: function render() {
       var _this$props = this.props,
           children = _this$props.children,
-          props = Object(objectWithoutProperties["a" /* default */])(_this$props, ["children"]); // 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_this_wp_element_["createElement"])("div", Object(esm_extends["a" /* default */])({}, props, {
-        onMouseDown: this.stopEventPropagationOutsideContainer
-      }), children);
-    }
-  }]);
-
-  return IsolatedEventContainer;
-}(external_this_wp_element_["Component"]);
-
-/* harmony default export */ var isolated_event_container = (isolated_event_container_IsolatedEventContainer);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/context.js
-
-
-
-
-
-
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-var context_createContext = Object(external_this_wp_element_["createContext"])({
-  registerSlot: function registerSlot() {},
-  unregisterSlot: function unregisterSlot() {},
-  registerFill: function registerFill() {},
-  unregisterFill: function unregisterFill() {},
-  getSlot: function getSlot() {},
-  getFills: function getFills() {}
-}),
-    context_Provider = context_createContext.Provider,
-    context_Consumer = context_createContext.Consumer;
-
-var context_SlotFillProvider =
-/*#__PURE__*/
-function (_Component) {
-  Object(inherits["a" /* default */])(SlotFillProvider, _Component);
-
-  function SlotFillProvider() {
-    var _this;
-
-    Object(classCallCheck["a" /* default */])(this, SlotFillProvider);
-
-    _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(SlotFillProvider).apply(this, arguments));
-    _this.registerSlot = _this.registerSlot.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.registerFill = _this.registerFill.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.unregisterSlot = _this.unregisterSlot.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.unregisterFill = _this.unregisterFill.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.getSlot = _this.getSlot.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.getFills = _this.getFills.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.slots = {};
-    _this.fills = {};
-    _this.state = {
-      registerSlot: _this.registerSlot,
-      unregisterSlot: _this.unregisterSlot,
-      registerFill: _this.registerFill,
-      unregisterFill: _this.unregisterFill,
-      getSlot: _this.getSlot,
-      getFills: _this.getFills
-    };
-    return _this;
-  }
-
-  Object(createClass["a" /* default */])(SlotFillProvider, [{
-    key: "registerSlot",
-    value: function registerSlot(name, slot) {
-      var previousSlot = this.slots[name];
-      this.slots[name] = slot;
-      this.forceUpdateFills(name); // 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();
-      }
-    }
-  }, {
-    key: "registerFill",
-    value: function registerFill(name, instance) {
-      this.fills[name] = [].concat(Object(toConsumableArray["a" /* default */])(this.fills[name] || []), [instance]);
-      this.forceUpdateSlot(name);
-    }
-  }, {
-    key: "unregisterSlot",
-    value: function 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.forceUpdateFills(name);
-    }
-  }, {
-    key: "unregisterFill",
-    value: function unregisterFill(name, instance) {
-      this.fills[name] = Object(external_lodash_["without"])(this.fills[name], instance);
-      this.resetFillOccurrence(name);
-      this.forceUpdateSlot(name);
-    }
-  }, {
-    key: "getSlot",
-    value: function getSlot(name) {
-      return this.slots[name];
-    }
-  }, {
-    key: "getFills",
-    value: function 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 Object(external_lodash_["sortBy"])(this.fills[name], 'occurrence');
-    }
-  }, {
-    key: "resetFillOccurrence",
-    value: function resetFillOccurrence(name) {
-      Object(external_lodash_["forEach"])(this.fills[name], function (instance) {
-        instance.resetOccurrence();
-      });
-    }
-  }, {
-    key: "forceUpdateFills",
-    value: function forceUpdateFills(name) {
-      Object(external_lodash_["forEach"])(this.fills[name], function (instance) {
-        instance.forceUpdate();
-      });
-    }
-  }, {
-    key: "forceUpdateSlot",
-    value: function forceUpdateSlot(name) {
-      var slot = this.getSlot(name);
-
-      if (slot) {
-        slot.forceUpdate();
-      }
-    }
-  }, {
-    key: "render",
-    value: function render() {
-      return Object(external_this_wp_element_["createElement"])(context_Provider, {
+          className = _this$props.className;
+      return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_7__["createElement"])(Provider, {
         value: this.state
-      }, this.props.children);
-    }
-  }]);
-
-  return SlotFillProvider;
-}(external_this_wp_element_["Component"]);
-
-/* harmony default export */ var slot_fill_context = (context_SlotFillProvider);
-
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/slot.js
-
-
-
-
-
-
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-var slot_SlotComponent =
-/*#__PURE__*/
-function (_Component) {
-  Object(inherits["a" /* default */])(SlotComponent, _Component);
-
-  function SlotComponent() {
-    var _this;
-
-    Object(classCallCheck["a" /* default */])(this, SlotComponent);
-
-    _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(SlotComponent).apply(this, arguments));
-    _this.bindNode = _this.bindNode.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    return _this;
-  }
-
-  Object(createClass["a" /* default */])(SlotComponent, [{
-    key: "componentDidMount",
-    value: function componentDidMount() {
-      var registerSlot = this.props.registerSlot;
-      registerSlot(this.props.name, this);
-    }
-  }, {
-    key: "componentWillUnmount",
-    value: function componentWillUnmount() {
-      var unregisterSlot = this.props.unregisterSlot;
-      unregisterSlot(this.props.name, this);
-    }
-  }, {
-    key: "componentDidUpdate",
-    value: function componentDidUpdate(prevProps) {
-      var _this$props = this.props,
-          name = _this$props.name,
-          unregisterSlot = _this$props.unregisterSlot,
-          registerSlot = _this$props.registerSlot;
-
-      if (prevProps.name !== name) {
-        unregisterSlot(prevProps.name);
-        registerSlot(name, this);
-      }
-    }
-  }, {
-    key: "bindNode",
-    value: function bindNode(node) {
-      this.node = node;
-    }
-  }, {
-    key: "render",
-    value: function render() {
-      var _this$props2 = this.props,
-          children = _this$props2.children,
-          name = _this$props2.name,
-          _this$props2$bubblesV = _this$props2.bubblesVirtually,
-          bubblesVirtually = _this$props2$bubblesV === void 0 ? false : _this$props2$bubblesV,
-          _this$props2$fillProp = _this$props2.fillProps,
-          fillProps = _this$props2$fillProp === void 0 ? {} : _this$props2$fillProp,
-          getFills = _this$props2.getFills;
-
-      if (bubblesVirtually) {
-        return Object(external_this_wp_element_["createElement"])("div", {
-          ref: this.bindNode
-        });
-      }
-
-      var fills = Object(external_lodash_["map"])(getFills(name, this), function (fill) {
-        var fillKey = fill.occurrence;
-        var fillChildren = Object(external_lodash_["isFunction"])(fill.props.children) ? fill.props.children(fillProps) : fill.props.children;
-        return external_this_wp_element_["Children"].map(fillChildren, function (child, childIndex) {
-          if (!child || Object(external_lodash_["isString"])(child)) {
-            return child;
-          }
-
-          var childKey = "".concat(fillKey, "---").concat(child.key || childIndex);
-          return Object(external_this_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_this_wp_element_["isEmptyElement"]));
-      return Object(external_this_wp_element_["createElement"])(external_this_wp_element_["Fragment"], null, Object(external_lodash_["isFunction"])(children) ? children(fills) : fills);
-    }
-  }]);
-
-  return SlotComponent;
-}(external_this_wp_element_["Component"]);
-
-var slot_Slot = function Slot(props) {
-  return Object(external_this_wp_element_["createElement"])(context_Consumer, null, function (_ref) {
-    var registerSlot = _ref.registerSlot,
-        unregisterSlot = _ref.unregisterSlot,
-        getFills = _ref.getFills;
-    return Object(external_this_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_Slot);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/fill.js
-
-
-
-
-
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-var occurrences = 0;
-
-var fill_FillComponent =
-/*#__PURE__*/
-function (_Component) {
-  Object(inherits["a" /* default */])(FillComponent, _Component);
-
-  function FillComponent() {
-    var _this;
-
-    Object(classCallCheck["a" /* default */])(this, FillComponent);
-
-    _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(FillComponent).apply(this, arguments));
-    _this.occurrence = ++occurrences;
-    return _this;
-  }
-
-  Object(createClass["a" /* default */])(FillComponent, [{
-    key: "componentDidMount",
-    value: function componentDidMount() {
-      var registerFill = this.props.registerFill;
-      registerFill(this.props.name, this);
-    }
-  }, {
-    key: "componentWillUpdate",
-    value: function componentWillUpdate() {
-      if (!this.occurrence) {
-        this.occurrence = ++occurrences;
-      }
-
-      var getSlot = this.props.getSlot;
-      var slot = getSlot(this.props.name);
-
-      if (slot && !slot.props.bubblesVirtually) {
-        slot.forceUpdate();
-      }
-    }
-  }, {
-    key: "componentWillUnmount",
-    value: function componentWillUnmount() {
-      var unregisterFill = this.props.unregisterFill;
-      unregisterFill(this.props.name, this);
-    }
-  }, {
-    key: "componentDidUpdate",
-    value: function componentDidUpdate(prevProps) {
-      var _this$props = this.props,
-          name = _this$props.name,
-          unregisterFill = _this$props.unregisterFill,
-          registerFill = _this$props.registerFill;
-
-      if (prevProps.name !== name) {
-        unregisterFill(prevProps.name, this);
-        registerFill(name, this);
-      }
-    }
-  }, {
-    key: "resetOccurrence",
-    value: function resetOccurrence() {
-      this.occurrence = null;
-    }
-  }, {
-    key: "render",
-    value: function render() {
-      var _this$props2 = this.props,
-          name = _this$props2.name,
-          getSlot = _this$props2.getSlot;
-      var children = this.props.children;
-      var slot = getSlot(name);
-
-      if (!slot || !slot.node || !slot.props.bubblesVirtually) {
-        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_this_wp_element_["createPortal"])(children, slot.node);
+      }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_7__["createElement"])("div", {
+        onFocus: this.onFocus,
+        className: className
+      }, children));
     }
   }]);
 
-  return FillComponent;
-}(external_this_wp_element_["Component"]);
-
-var fill_Fill = function Fill(props) {
-  return Object(external_this_wp_element_["createElement"])(context_Consumer, null, function (_ref) {
-    var getSlot = _ref.getSlot,
-        registerFill = _ref.registerFill,
-        unregisterFill = _ref.unregisterFill;
-    return Object(external_this_wp_element_["createElement"])(fill_FillComponent, Object(esm_extends["a" /* default */])({}, props, {
-      getSlot: getSlot,
-      registerFill: registerFill,
-      unregisterFill: unregisterFill
-    }));
-  });
-};
-
-/* harmony default export */ var slot_fill_fill = (fill_Fill);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/index.js
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-
-function createSlotFill(name) {
-  var FillComponent = function FillComponent(props) {
-    return Object(external_this_wp_element_["createElement"])(slot_fill_fill, Object(esm_extends["a" /* default */])({
-      name: name
-    }, props));
-  };
-
-  FillComponent.displayName = name + 'Fill';
-
-  var SlotComponent = function SlotComponent(props) {
-    return Object(external_this_wp_element_["createElement"])(slot_fill_slot, Object(esm_extends["a" /* default */])({
-      name: name
-    }, props));
-  };
-
-  SlotComponent.displayName = name + 'Slot';
-  return {
-    Fill: FillComponent,
-    Slot: SlotComponent
-  };
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/popover/index.js
-
-
-
-
-
-
-
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-
-
-
-
-
-var FocusManaged = with_constrained_tabbing(with_focus_return(function (_ref) {
-  var children = _ref.children;
-  return children;
+  return FocusReturnProvider;
+}(_wordpress_element__WEBPACK_IMPORTED_MODULE_7__["Component"]);
+
+/* harmony default export */ __webpack_exports__["b"] = (FocusReturnProvider);
+
+
+
+/***/ }),
+/* 194 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+if (true) {
+  module.exports = __webpack_require__(304);
+} else {}
+
+
+/***/ }),
+/* 195 */
+/***/ (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;
+
+
+/***/ }),
+/* 196 */,
+/* 197 */,
+/* 198 */,
+/* 199 */,
+/* 200 */,
+/* 201 */,
+/* 202 */,
+/* 203 */,
+/* 204 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
+/* 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__(6);
+/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
+
+
+/**
+ * WordPress dependencies
+ */
+
+var 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);
+
+
+/***/ }),
+/* 205 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
+/* 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__(6);
+/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
+
+
+/**
+ * WordPress dependencies
+ */
+
+var 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"
 }));
-/**
- * Name of slot in which popover should fill.
- *
- * @type {String}
- */
-
-var SLOT_NAME = 'Popover';
-
-var popover_Popover =
-/*#__PURE__*/
-function (_Component) {
-  Object(inherits["a" /* default */])(Popover, _Component);
-
-  function Popover() {
-    var _this;
-
-    Object(classCallCheck["a" /* default */])(this, Popover);
-
-    _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(Popover).apply(this, arguments));
-    _this.getAnchorRect = _this.getAnchorRect.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.computePopoverPosition = _this.computePopoverPosition.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.maybeClose = _this.maybeClose.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.throttledRefresh = _this.throttledRefresh.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.refresh = _this.refresh.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.refreshOnAnchorMove = _this.refreshOnAnchorMove.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.contentNode = Object(external_this_wp_element_["createRef"])();
-    _this.anchorNode = Object(external_this_wp_element_["createRef"])();
-    _this.state = {
-      popoverLeft: null,
-      popoverTop: null,
-      yAxis: 'top',
-      xAxis: 'center',
-      contentHeight: null,
-      contentWidth: null,
-      isMobile: false,
-      popoverSize: null,
-      // Delay the animation after the initial render
-      // because the animation have impact on the height of the popover
-      // causing the computed position to be wrong.
-      isReadyToAnimate: false
-    }; // Property used keep track of the previous anchor rect
-    // used to compute the popover position and size.
-
-    _this.anchorRect = {};
+/* harmony default export */ __webpack_exports__["a"] = (linkOff);
+
+
+/***/ }),
+/* 206 */
+/***/ (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;
+};
+
+
+/***/ }),
+/* 207 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(global) {
+
+var origSymbol = global.Symbol;
+var hasSymbolSham = __webpack_require__(313);
+
+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__(127)))
+
+/***/ }),
+/* 208 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var ArraySpeciesCreate = __webpack_require__(314);
+var FlattenIntoArray = __webpack_require__(324);
+var Get = __webpack_require__(183);
+var ToInteger = __webpack_require__(220);
+var ToLength = __webpack_require__(219);
+var ToObject = __webpack_require__(344);
+
+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;
+};
+
+
+/***/ }),
+/* 209 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(58);
+
+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__(140);
+
+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;
+};
+
+
+/***/ }),
+/* 210 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var assertRecord = __webpack_require__(185);
+
+var Type = __webpack_require__(90);
+
+// https://www.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;
+};
+
+
+/***/ }),
+/* 211 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var has = __webpack_require__(91);
+
+var assertRecord = __webpack_require__(185);
+
+var Type = __webpack_require__(90);
+
+// https://www.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;
+};
+
+
+/***/ }),
+/* 212 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var $isNaN = __webpack_require__(186);
+
+// http://www.ecma-international.org/ecma-262/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);
+};
+
+
+/***/ }),
+/* 213 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var has = __webpack_require__(91);
+
+var GetIntrinsic = __webpack_require__(58);
+
+var $TypeError = GetIntrinsic('%TypeError%');
+
+var Type = __webpack_require__(90);
+var ToBoolean = __webpack_require__(214);
+var IsCallable = __webpack_require__(322);
+
+// https://ecma-international.org/ecma-262/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;
+};
+
+
+/***/ }),
+/* 214 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+// http://www.ecma-international.org/ecma-262/5.1/#sec-9.2
+
+module.exports = function ToBoolean(value) { return !!value; };
+
+
+/***/ }),
+/* 215 */
+/***/ (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 = {};
+	} catch (_) {
+		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;
+	};
+
+
+/***/ }),
+/* 216 */
+/***/ (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; };
+
+
+/***/ }),
+/* 217 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(58);
+
+var $Math = GetIntrinsic('%Math%');
+var $Number = GetIntrinsic('%Number%');
+
+module.exports = $Number.MAX_SAFE_INTEGER || $Math.pow(2, 53) - 1;
+
+
+/***/ }),
+/* 218 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+module.exports = function isPrimitive(value) {
+	return value === null || (typeof value !== 'function' && typeof value !== 'object');
+};
+
+
+/***/ }),
+/* 219 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var MAX_SAFE_INTEGER = __webpack_require__(217);
+
+var ToInteger = __webpack_require__(220);
+
+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;
+};
+
+
+/***/ }),
+/* 220 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var ES5ToInteger = __webpack_require__(334);
+
+var ToNumber = __webpack_require__(337);
+
+// https://www.ecma-international.org/ecma-262/6.0/#sec-tointeger
+
+module.exports = function ToInteger(value) {
+	var number = ToNumber(value);
+	return ES5ToInteger(number);
+};
+
+
+/***/ }),
+/* 221 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var getDay = Date.prototype.getDay;
+var tryDateObject = function tryDateObject(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;
+};
+
+
+/***/ }),
+/* 222 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+/* eslint complexity: [2, 17], 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;
+};
+
+
+/***/ }),
+/* 223 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var implementation = __webpack_require__(208);
+
+module.exports = function getPolyfill() {
+	return Array.prototype.flat || implementation;
+};
+
+
+/***/ }),
+/* 224 */
+/***/ (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
+};
+
+/***/ }),
+/* 225 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+var core = {
+  white: '#fff',
+  gray: '#484848',
+  grayLight: '#82888a',
+  grayLighter: '#cacccd',
+  grayLightest: '#f2f2f2',
+
+  borderMedium: '#c4c4c4',
+  border: '#dbdbdb',
+  borderLight: '#e4e7e7',
+  borderLighter: '#eceeee',
+  borderBright: '#f4f5f5',
+
+  primary: '#00a699',
+  primaryShade_1: '#33dacd',
+  primaryShade_2: '#66e2da',
+  primaryShade_3: '#80e8e0',
+  primaryShade_4: '#b2f1ec',
+  primary_dark: '#008489',
+
+  secondary: '#007a87',
+
+  yellow: '#ffe8bc',
+  yellow_dark: '#ffce71'
+};
+
+exports['default'] = {
+  reactDates: {
+    zIndex: 0,
+    border: {
+      input: {
+        border: 0,
+        borderTop: 0,
+        borderRight: 0,
+        borderBottom: '2px solid transparent',
+        borderLeft: 0,
+        outlineFocused: 0,
+        borderFocused: 0,
+        borderTopFocused: 0,
+        borderLeftFocused: 0,
+        borderBottomFocused: '2px solid ' + String(core.primary_dark),
+        borderRightFocused: 0,
+        borderRadius: 0
+      },
+      pickerInput: {
+        borderWidth: 1,
+        borderStyle: 'solid',
+        borderRadius: 2
+      }
+    },
+
+    color: {
+      core: core,
+
+      disabled: core.grayLightest,
+
+      background: core.white,
+      backgroundDark: '#f2f2f2',
+      backgroundFocused: core.white,
+      border: 'rgb(219, 219, 219)',
+      text: core.gray,
+      textDisabled: core.border,
+      textFocused: '#007a87',
+      placeholderText: '#757575',
+
+      outside: {
+        backgroundColor: core.white,
+        backgroundColor_active: core.white,
+        backgroundColor_hover: core.white,
+        color: core.gray,
+        color_active: core.gray,
+        color_hover: core.gray
+      },
+
+      highlighted: {
+        backgroundColor: core.yellow,
+        backgroundColor_active: core.yellow_dark,
+        backgroundColor_hover: core.yellow_dark,
+        color: core.gray,
+        color_active: core.gray,
+        color_hover: core.gray
+      },
+
+      minimumNights: {
+        backgroundColor: core.white,
+        backgroundColor_active: core.white,
+        backgroundColor_hover: core.white,
+        borderColor: core.borderLighter,
+        color: core.grayLighter,
+        color_active: core.grayLighter,
+        color_hover: core.grayLighter
+      },
+
+      hoveredSpan: {
+        backgroundColor: core.primaryShade_4,
+        backgroundColor_active: core.primaryShade_3,
+        backgroundColor_hover: core.primaryShade_4,
+        borderColor: core.primaryShade_3,
+        borderColor_active: core.primaryShade_3,
+        borderColor_hover: core.primaryShade_3,
+        color: core.secondary,
+        color_active: core.secondary,
+        color_hover: core.secondary
+      },
+
+      selectedSpan: {
+        backgroundColor: core.primaryShade_2,
+        backgroundColor_active: core.primaryShade_1,
+        backgroundColor_hover: core.primaryShade_1,
+        borderColor: core.primaryShade_1,
+        borderColor_active: core.primary,
+        borderColor_hover: core.primary,
+        color: core.white,
+        color_active: core.white,
+        color_hover: core.white
+      },
+
+      selected: {
+        backgroundColor: core.primary,
+        backgroundColor_active: core.primary,
+        backgroundColor_hover: core.primary,
+        borderColor: core.primary,
+        borderColor_active: core.primary,
+        borderColor_hover: core.primary,
+        color: core.white,
+        color_active: core.white,
+        color_hover: core.white
+      },
+
+      blocked_calendar: {
+        backgroundColor: core.grayLighter,
+        backgroundColor_active: core.grayLighter,
+        backgroundColor_hover: core.grayLighter,
+        borderColor: core.grayLighter,
+        borderColor_active: core.grayLighter,
+        borderColor_hover: core.grayLighter,
+        color: core.grayLight,
+        color_active: core.grayLight,
+        color_hover: core.grayLight
+      },
+
+      blocked_out_of_range: {
+        backgroundColor: core.white,
+        backgroundColor_active: core.white,
+        backgroundColor_hover: core.white,
+        borderColor: core.borderLight,
+        borderColor_active: core.borderLight,
+        borderColor_hover: core.borderLight,
+        color: core.grayLighter,
+        color_active: core.grayLighter,
+        color_hover: core.grayLighter
+      }
+    },
+
+    spacing: {
+      dayPickerHorizontalPadding: 9,
+      captionPaddingTop: 22,
+      captionPaddingBottom: 37,
+      inputPadding: 0,
+      displayTextPaddingVertical: undefined,
+      displayTextPaddingTop: 11,
+      displayTextPaddingBottom: 9,
+      displayTextPaddingHorizontal: undefined,
+      displayTextPaddingLeft: 11,
+      displayTextPaddingRight: 11,
+      displayTextPaddingVertical_small: undefined,
+      displayTextPaddingTop_small: 7,
+      displayTextPaddingBottom_small: 5,
+      displayTextPaddingHorizontal_small: undefined,
+      displayTextPaddingLeft_small: 7,
+      displayTextPaddingRight_small: 7
+    },
+
+    sizing: {
+      inputWidth: 130,
+      inputWidth_small: 97,
+      arrowWidth: 24
+    },
+
+    noScrollBarOnVerticalScrollable: false,
+
+    font: {
+      size: 14,
+      captionSize: 18,
+      input: {
+        size: 19,
+        lineHeight: '24px',
+        size_small: 15,
+        lineHeight_small: '18px',
+        letterSpacing_small: '0.2px',
+        styleDisabled: 'italic'
+      }
+    }
+  }
+};
+
+/***/ }),
+/* 226 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+// modified from https://github.com/es-shims/es6-shim
+var keys = __webpack_require__(181);
+var bind = __webpack_require__(118);
+var canBeObject = function (obj) {
+	return typeof obj !== 'undefined' && obj !== null;
+};
+var hasSymbols = __webpack_require__(222)();
+var toObject = Object;
+var push = bind.call(Function.call, Array.prototype.push);
+var propIsEnumerable = bind.call(Function.call, Object.prototype.propertyIsEnumerable);
+var originalGetSymbols = hasSymbols ? Object.getOwnPropertySymbols : null;
+
+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;
+};
+
+
+/***/ }),
+/* 227 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var implementation = __webpack_require__(226);
+
+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;
+};
+
+
+/***/ }),
+/* 228 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var define = __webpack_require__(101);
+
+var implementation = __webpack_require__(229);
+var getPolyfill = __webpack_require__(237);
+var shim = __webpack_require__(366);
+
+var polyfill = getPolyfill();
+
+define(polyfill, {
+	getPolyfill: getPolyfill,
+	implementation: implementation,
+	shim: shim
+});
+
+module.exports = polyfill;
+
+
+/***/ }),
+/* 229 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var ES = __webpack_require__(357);
+var has = __webpack_require__(91);
+var bind = __webpack_require__(118);
+var isEnumerable = bind.call(Function.call, Object.prototype.propertyIsEnumerable);
+
+module.exports = function values(O) {
+	var obj = ES.RequireObjectCoercible(O);
+	var vals = [];
+	for (var key in obj) {
+		if (has(obj, key) && isEnumerable(obj, key)) {
+			vals.push(obj[key]);
+		}
+	}
+	return vals;
+};
+
+
+/***/ }),
+/* 230 */
+/***/ (function(module, exports) {
+
+module.exports = function isPrimitive(value) {
+	return value === null || (typeof value !== 'function' && typeof value !== 'object');
+};
+
+
+/***/ }),
+/* 231 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(189);
+
+var $TypeError = GetIntrinsic('%TypeError%');
+var $SyntaxError = GetIntrinsic('%SyntaxError%');
+
+var has = __webpack_require__(91);
+
+var predicates = {
+  // https://ecma-international.org/ecma-262/6.0/#sec-property-descriptor-specification-type
+  'Property Descriptor': 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
+      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(ES, recordType, argumentName, value) {
+  var predicate = predicates[recordType];
+  if (typeof predicate !== 'function') {
+    throw new $SyntaxError('unknown record type: ' + recordType);
+  }
+  if (!predicate(ES, value)) {
+    throw new $TypeError(argumentName + ' must be a ' + recordType);
+  }
+  console.log(predicate(ES, value), value);
+};
+
+
+/***/ }),
+/* 232 */
+/***/ (function(module, exports) {
+
+module.exports = Number.isNaN || function isNaN(a) {
+	return a !== a;
+};
+
+
+/***/ }),
+/* 233 */
+/***/ (function(module, exports) {
+
+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; };
+
+
+/***/ }),
+/* 234 */
+/***/ (function(module, exports, __webpack_require__) {
+
+var bind = __webpack_require__(118);
+var has = bind.call(Function.call, Object.prototype.hasOwnProperty);
+
+var $assign = Object.assign;
+
+module.exports = function assign(target, source) {
+	if ($assign) {
+		return $assign(target, source);
+	}
+
+	for (var key in source) {
+		if (has(source, key)) {
+			target[key] = source[key];
+		}
+	}
+	return target;
+};
+
+
+/***/ }),
+/* 235 */
+/***/ (function(module, exports) {
+
+module.exports = function sign(number) {
+	return number >= 0 ? 1 : -1;
+};
+
+
+/***/ }),
+/* 236 */
+/***/ (function(module, exports) {
+
+module.exports = function mod(number, modulo) {
+	var remain = number % modulo;
+	return Math.floor(remain >= 0 ? remain : remain + modulo);
+};
+
+
+/***/ }),
+/* 237 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var implementation = __webpack_require__(229);
+
+module.exports = function getPolyfill() {
+	return typeof Object.values === 'function' ? Object.values : implementation;
+};
+
+
+/***/ }),
+/* 238 */
+/***/ (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'];
+
+/***/ }),
+/* 239 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports['default'] = isAfterDay;
+
+var _moment = __webpack_require__(43);
+
+var _moment2 = _interopRequireDefault(_moment);
+
+var _isBeforeDay = __webpack_require__(240);
+
+var _isBeforeDay2 = _interopRequireDefault(_isBeforeDay);
+
+var _isSameDay = __webpack_require__(190);
+
+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);
+}
+
+/***/ }),
+/* 240 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports['default'] = isBeforeDay;
+
+var _moment = __webpack_require__(43);
+
+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;
+}
+
+/***/ }),
+/* 241 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports['default'] = toMomentObject;
+
+var _moment = __webpack_require__(43);
+
+var _moment2 = _interopRequireDefault(_moment);
+
+var _constants = __webpack_require__(77);
+
+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;
+}
+
+/***/ }),
+/* 242 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports['default'] = isDayVisible;
+
+var _isBeforeDay = __webpack_require__(240);
+
+var _isBeforeDay2 = _interopRequireDefault(_isBeforeDay);
+
+var _isAfterDay = __webpack_require__(239);
+
+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);
+}
+
+/***/ }),
+/* 243 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports['default'] = toISODateString;
+
+var _moment = __webpack_require__(43);
+
+var _moment2 = _interopRequireDefault(_moment);
+
+var _toMomentObject = __webpack_require__(241);
+
+var _toMomentObject2 = _interopRequireDefault(_toMomentObject);
+
+var _constants = __webpack_require__(77);
+
+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);
+}
+
+/***/ }),
+/* 244 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+
+var _propTypes = __webpack_require__(28);
+
+var _propTypes2 = _interopRequireDefault(_propTypes);
+
+var _constants = __webpack_require__(77);
+
+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]);
+
+/***/ }),
+/* 245 */
+/***/ (function(module, exports, __webpack_require__) {
+
+var freeGlobal = __webpack_require__(378);
+
+/** 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;
+
+
+/***/ }),
+/* 246 */
+/***/ (function(module, exports, __webpack_require__) {
+
+var root = __webpack_require__(245);
+
+/** Built-in value references. */
+var Symbol = root.Symbol;
+
+module.exports = Symbol;
+
+
+/***/ }),
+/* 247 */
+/***/ (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);
+}
+
+
+
+
+/***/ }),
+/* 248 */
+/***/ (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;
+};
+
+
+/***/ }),
+/* 249 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var implementation = __webpack_require__(248);
+
+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;
+};
+
+
+/***/ }),
+/* 250 */
+/***/ (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__(92);
+
+var _object2 = _interopRequireDefault(_object);
+
+var _react = __webpack_require__(13);
+
+var _react2 = _interopRequireDefault(_react);
+
+var _propTypes = __webpack_require__(28);
+
+var _propTypes2 = _interopRequireDefault(_propTypes);
+
+var _reactAddonsShallowCompare = __webpack_require__(143);
+
+var _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare);
+
+var _reactMomentProptypes = __webpack_require__(141);
+
+var _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes);
+
+var _airbnbPropTypes = __webpack_require__(85);
+
+var _reactWithStyles = __webpack_require__(109);
+
+var _moment = __webpack_require__(43);
+
+var _moment2 = _interopRequireDefault(_moment);
+
+var _defaultPhrases = __webpack_require__(107);
+
+var _getPhrasePropTypes = __webpack_require__(108);
+
+var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);
+
+var _getCalendarDaySettings = __webpack_require__(251);
+
+var _getCalendarDaySettings2 = _interopRequireDefault(_getCalendarDaySettings);
+
+var _ModifiersShape = __webpack_require__(157);
+
+var _ModifiersShape2 = _interopRequireDefault(_ModifiersShape);
+
+var _constants = __webpack_require__(77);
+
+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;
   }
 
-  Object(createClass["a" /* default */])(Popover, [{
-    key: "componentDidMount",
-    value: function componentDidMount() {
-      var _this2 = this;
-
-      this.toggleAutoRefresh(!this.props.hasOwnProperty('anchorRect'));
-      this.refresh();
-      /*
-       * Without the setTimeout, the dom node is not being focused. Related:
-       * https://stackoverflow.com/questions/35522220/react-ref-with-focus-doesnt-work-without-settimeout-my-example
-       *
-       * TODO: Treat the cause, not the symptom.
-       */
-
-      this.focusTimeout = setTimeout(function () {
-        _this2.focus();
-      }, 0);
-    }
-  }, {
-    key: "componentDidUpdate",
-    value: function componentDidUpdate(prevProps) {
-      if (prevProps.position !== this.props.position) {
-        this.computePopoverPosition(this.state.popoverSize, this.anchorRect);
-      }
-
-      if (prevProps.anchorRect !== this.props.anchorRect) {
-        this.refreshOnAnchorMove();
-      }
-
-      var hasAnchorRect = this.props.hasOwnProperty('anchorRect');
-
-      if (hasAnchorRect !== prevProps.hasOwnProperty('anchorRect')) {
-        this.toggleAutoRefresh(!hasAnchorRect);
-      }
-    }
-  }, {
-    key: "componentWillUnmount",
-    value: function componentWillUnmount() {
-      clearTimeout(this.focusTimeout);
-      this.toggleAutoRefresh(false);
-    }
-  }, {
-    key: "toggleAutoRefresh",
-    value: function toggleAutoRefresh(isActive) {
-      window.cancelAnimationFrame(this.rafHandle); // Refresh the popover every time the window is resized or scrolled
-
-      var handler = isActive ? 'addEventListener' : 'removeEventListener';
-      window[handler]('resize', this.throttledRefresh);
-      window[handler]('scroll', this.throttledRefresh, true);
-      /*
-       * 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
-       */
-
-      if (isActive) {
-        this.autoRefresh = setInterval(this.refreshOnAnchorMove, 500);
+  _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);
+
+/***/ }),
+/* 251 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports['default'] = getCalendarDaySettings;
+
+var _getPhrase = __webpack_require__(392);
+
+var _getPhrase2 = _interopRequireDefault(_getPhrase);
+
+var _constants = __webpack_require__(77);
+
+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
+  };
+}
+
+/***/ }),
+/* 252 */
+/***/ (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;
+}
+
+/***/ }),
+/* 253 */
+/***/ (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;
+}
+
+/***/ }),
+/* 254 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports['default'] = isSameMonth;
+
+var _moment = __webpack_require__(43);
+
+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();
+}
+
+/***/ }),
+/* 255 */,
+/* 256 */,
+/* 257 */,
+/* 258 */,
+/* 259 */,
+/* 260 */
+/***/ (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_this_wp_primitives_["SVG"]; });
+__webpack_require__.d(__webpack_exports__, "Path", function() { return /* reexport */ external_this_wp_primitives_["Path"]; });
+__webpack_require__.d(__webpack_exports__, "Circle", function() { return /* reexport */ external_this_wp_primitives_["Circle"]; });
+__webpack_require__.d(__webpack_exports__, "Polygon", function() { return /* reexport */ external_this_wp_primitives_["Polygon"]; });
+__webpack_require__.d(__webpack_exports__, "Rect", function() { return /* reexport */ external_this_wp_primitives_["Rect"]; });
+__webpack_require__.d(__webpack_exports__, "G", function() { return /* reexport */ external_this_wp_primitives_["G"]; });
+__webpack_require__.d(__webpack_exports__, "HorizontalRule", function() { return /* reexport */ external_this_wp_primitives_["HorizontalRule"]; });
+__webpack_require__.d(__webpack_exports__, "BlockQuotation", function() { return /* reexport */ external_this_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__, "AnglePickerControl", function() { return /* reexport */ AnglePickerControl; });
+__webpack_require__.d(__webpack_exports__, "Autocomplete", function() { return /* reexport */ autocomplete; });
+__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__, "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__, "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_DateTimePicker; });
+__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__, "Draggable", function() { return /* reexport */ draggable; });
+__webpack_require__.d(__webpack_exports__, "DropZone", function() { return /* reexport */ drop_zone; });
+__webpack_require__.d(__webpack_exports__, "__unstableUseDropZone", function() { return /* reexport */ useDropZone; });
+__webpack_require__.d(__webpack_exports__, "DropZoneProvider", function() { return /* reexport */ provider; });
+__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__, "ExternalLink", function() { return /* reexport */ external_link; });
+__webpack_require__.d(__webpack_exports__, "Flex", function() { return /* reexport */ flex; });
+__webpack_require__.d(__webpack_exports__, "FlexBlock", function() { return /* reexport */ block; });
+__webpack_require__.d(__webpack_exports__, "FlexItem", function() { return /* reexport */ flex_item; });
+__webpack_require__.d(__webpack_exports__, "FocalPointPicker", function() { return /* reexport */ focal_point_picker; });
+__webpack_require__.d(__webpack_exports__, "FocusableIframe", function() { return /* reexport */ focusable_iframe; });
+__webpack_require__.d(__webpack_exports__, "FontSizePicker", function() { return /* reexport */ FontSizePicker; });
+__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__, "Guide", function() { return /* reexport */ Guide; });
+__webpack_require__.d(__webpack_exports__, "GuidePage", function() { return /* reexport */ GuidePage; });
+__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 */ menu; });
+__webpack_require__.d(__webpack_exports__, "TabbableContainer", function() { return /* reexport */ tabbable; });
+__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 */ row; });
+__webpack_require__.d(__webpack_exports__, "Placeholder", function() { return /* reexport */ placeholder; });
+__webpack_require__.d(__webpack_exports__, "Popover", function() { return /* reexport */ 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 */ SelectControl; });
+__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__, "Spinner", function() { return /* reexport */ Spinner; });
+__webpack_require__.d(__webpack_exports__, "TabPanel", function() { return /* reexport */ TabPanel; });
+__webpack_require__.d(__webpack_exports__, "__experimentalText", function() { return /* reexport */ build_module_text; });
+__webpack_require__.d(__webpack_exports__, "TextControl", function() { return /* reexport */ TextControl; });
+__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__, "__experimentalToolbarContext", function() { return /* reexport */ toolbar_context["a" /* default */]; });
+__webpack_require__.d(__webpack_exports__, "ToolbarGroup", function() { return /* reexport */ toolbar_group; });
+__webpack_require__.d(__webpack_exports__, "__experimentalToolbarItem", 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 */ TreeGrid; });
+__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__, "__experimentalUnitControl", function() { return /* reexport */ unit_control; });
+__webpack_require__.d(__webpack_exports__, "VisuallyHidden", function() { return /* reexport */ visually_hidden; });
+__webpack_require__.d(__webpack_exports__, "IsolatedEventContainer", function() { return /* reexport */ isolated_event_container["a" /* default */]; });
+__webpack_require__.d(__webpack_exports__, "createSlotFill", function() { return /* reexport */ slot_fill["c" /* createSlotFill */]; });
+__webpack_require__.d(__webpack_exports__, "Slot", function() { return /* reexport */ slot_fill["b" /* 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_context["b" /* default */]; });
+__webpack_require__.d(__webpack_exports__, "__experimentalUseSlot", function() { return /* reexport */ use_slot["a" /* default */]; });
+__webpack_require__.d(__webpack_exports__, "navigateRegions", function() { return /* reexport */ navigate_regions; });
+__webpack_require__.d(__webpack_exports__, "withConstrainedTabbing", function() { return /* reexport */ with_constrained_tabbing["a" /* default */]; });
+__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["a" /* default */]; });
+__webpack_require__.d(__webpack_exports__, "withFocusReturn", function() { return /* reexport */ with_focus_return["a" /* default */]; });
+__webpack_require__.d(__webpack_exports__, "FocusReturnProvider", function() { return /* reexport */ with_focus_return_context["b" /* default */]; });
+__webpack_require__.d(__webpack_exports__, "withNotices", function() { return /* reexport */ with_notices; });
+__webpack_require__.d(__webpack_exports__, "withSpokenMessages", function() { return /* reexport */ with_spoken_messages; });
+
+// EXTERNAL MODULE: external {"this":["wp","primitives"]}
+var external_this_wp_primitives_ = __webpack_require__(6);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js
+var esm_extends = __webpack_require__(8);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 1 modules
+var slicedToArray = __webpack_require__(14);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js
+var objectWithoutProperties = __webpack_require__(15);
+
+// EXTERNAL MODULE: external {"this":["wp","element"]}
+var external_this_wp_element_ = __webpack_require__(0);
+
+// EXTERNAL MODULE: external {"this":"lodash"}
+var external_this_lodash_ = __webpack_require__(2);
+
+// EXTERNAL MODULE: ./node_modules/classnames/index.js
+var classnames = __webpack_require__(11);
+var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);
+
+// EXTERNAL MODULE: ./node_modules/reakit/es/CompositeState-3a25dcee.js
+var CompositeState_3a25dcee = __webpack_require__(51);
+
+// EXTERNAL MODULE: ./node_modules/reakit/es/Composite/Composite.js
+var Composite = __webpack_require__(119);
+
+// EXTERNAL MODULE: ./node_modules/reakit/es/_rollupPluginBabelHelpers-1f0bf8c2.js
+var _rollupPluginBabelHelpers_1f0bf8c2 = __webpack_require__(17);
+
+// EXTERNAL MODULE: ./node_modules/reakit-system/es/createComponent.js + 1 modules
+var createComponent = __webpack_require__(49);
+
+// EXTERNAL MODULE: ./node_modules/reakit-system/es/createHook.js + 4 modules
+var createHook = __webpack_require__(48);
+
+// EXTERNAL MODULE: external {"this":"React"}
+var external_this_React_ = __webpack_require__(13);
+var external_this_React_default = /*#__PURE__*/__webpack_require__.n(external_this_React_);
+
+// EXTERNAL MODULE: ./node_modules/reakit-utils/es/useForkRef.js
+var useForkRef = __webpack_require__(63);
+
+// EXTERNAL MODULE: ./node_modules/reakit-utils/es/useIsomorphicEffect.js
+var useIsomorphicEffect = __webpack_require__(59);
+
+// EXTERNAL MODULE: ./node_modules/reakit/es/Box/Box.js
+var Box = __webpack_require__(67);
+
+// CONCATENATED MODULE: ./node_modules/reakit/es/Group/Group.js
+
+
+
+
+
+
+var useGroup = Object(createHook["a" /* createHook */])({
+  name: "Group",
+  compose: Box["a" /* useBox */],
+  useProps: function useProps(_, htmlProps) {
+    return Object(_rollupPluginBabelHelpers_1f0bf8c2["b" /* a */])({
+      role: "group"
+    }, htmlProps);
+  }
+});
+var Group = Object(createComponent["a" /* createComponent */])({
+  as: "div",
+  useHook: useGroup
+});
+
+
+
+// EXTERNAL MODULE: ./node_modules/reakit/es/Id/Id.js
+var Id = __webpack_require__(93);
+
+// CONCATENATED MODULE: ./node_modules/reakit/es/Composite/CompositeGroup.js
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+var useCompositeGroup = Object(createHook["a" /* createHook */])({
+  name: "CompositeGroup",
+  compose: [useGroup, Id["a" /* unstable_useId */]],
+  useState: CompositeState_3a25dcee["g" /* u */],
+  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 = Object(CompositeState_3a25dcee["d" /* f */])(prev.items, prevCurrentId);
+      var nextCurrentItem = Object(CompositeState_3a25dcee["d" /* f */])(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_this_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
+});
+
+
+
+// EXTERNAL MODULE: external {"this":["wp","i18n"]}
+var external_this_wp_i18n_ = __webpack_require__(1);
+
+// EXTERNAL MODULE: external {"this":["wp","compose"]}
+var external_this_wp_compose_ = __webpack_require__(9);
+
+// EXTERNAL MODULE: ./node_modules/reakit/es/Composite/CompositeItem.js
+var CompositeItem = __webpack_require__(120);
+
+// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/tooltip/index.js
+var build_module_tooltip = __webpack_require__(86);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js
+var defineProperty = __webpack_require__(5);
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/visually-hidden/utils.js
+
+
+
+/**
+ * Utility Functions
+ */
+
+/**
+ * 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.
+ *
+ * @param {string|WPComponent} as A tag or component to render.
+ * @return {WPComponent} The rendered component.
+ */
+function renderAsRenderProps(_ref) {
+  var _ref$as = _ref.as,
+      Component = _ref$as === void 0 ? 'div' : _ref$as,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["as"]);
+
+  if (typeof props.children === 'function') {
+    return props.children(props);
+  }
+
+  return Object(external_this_wp_element_["createElement"])(Component, props);
+}
+
+
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/visually-hidden/index.js
+
+
+
+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(Object(source), true).forEach(function (key) { Object(defineProperty["a" /* default */])(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; }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+/**
+ * VisuallyHidden component to render text out non-visually
+ * for use in devices such as a screen reader.
+ *
+ * @param {Object}             props             Component props.
+ * @param {string|WPComponent} [props.as="div"]  A tag or component to render.
+ * @param {string}             [props.className] Class to set on the container.
+ */
+
+function VisuallyHidden(_ref) {
+  var _ref$as = _ref.as,
+      as = _ref$as === void 0 ? 'div' : _ref$as,
+      className = _ref.className,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["as", "className"]);
+
+  return renderAsRenderProps(_objectSpread({
+    as: as,
+    className: classnames_default()('components-visually-hidden', className)
+  }, props));
+}
+
+/* harmony default export */ var visually_hidden = (VisuallyHidden);
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/alignment-matrix-control/utils.js
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+var 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)
+
+var ALIGNMENT_LABEL = {
+  'top left': Object(external_this_wp_i18n_["__"])('Top Left'),
+  'top center': Object(external_this_wp_i18n_["__"])('Top Center'),
+  'top right': Object(external_this_wp_i18n_["__"])('Top Right'),
+  'center left': Object(external_this_wp_i18n_["__"])('Center Left'),
+  'center center': Object(external_this_wp_i18n_["__"])('Center Center'),
+  'center right': Object(external_this_wp_i18n_["__"])('Center Right'),
+  'bottom left': Object(external_this_wp_i18n_["__"])('Bottom Left'),
+  'bottom center': Object(external_this_wp_i18n_["__"])('Bottom Center'),
+  'bottom right': Object(external_this_wp_i18n_["__"])('Bottom Right')
+}; // Transforms GRID into a flat Array of values
+
+var ALIGNMENTS = Object(external_this_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) {
+  var 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) {
+  var valueId = transformValue(value).replace(' ', '-');
+  return "".concat(prefixId, "-").concat(valueId);
+}
+/**
+ * Retrieves the alignment index from a value.
+ *
+ * @param {string} alignment Value to check.
+ *
+ * @return {number} The index of a matching alignment.
+ */
+
+function getAlignmentIndex() {
+  var alignment = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'center';
+  var item = transformValue(alignment).replace('-', ' ');
+  var index = ALIGNMENTS.indexOf(item);
+  return index > -1 ? index : undefined;
+}
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/defineProperty.js
+var helpers_defineProperty = __webpack_require__(270);
+var defineProperty_default = /*#__PURE__*/__webpack_require__.n(helpers_defineProperty);
+
+// CONCATENATED MODULE: ./node_modules/@emotion/memoize/dist/memoize.browser.esm.js
+function memoize(fn) {
+  var cache = {};
+  return function (arg) {
+    if (cache[arg] === undefined) cache[arg] = fn(arg);
+    return cache[arg];
+  };
+}
+
+/* harmony default export */ var memoize_browser_esm = (memoize);
+
+// CONCATENATED MODULE: ./node_modules/@emotion/is-prop-valid/dist/is-prop-valid.browser.esm.js
+
+
+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 is_prop_valid_browser_esm_index = memoize_browser_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 is_prop_valid_browser_esm = (is_prop_valid_browser_esm_index);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/inheritsLoose.js
+var inheritsLoose = __webpack_require__(145);
+var inheritsLoose_default = /*#__PURE__*/__webpack_require__.n(inheritsLoose);
+
+// CONCATENATED MODULE: ./node_modules/@emotion/sheet/dist/sheet.browser.esm.js
+/*
+
+Based off glamor's StyleSheet, thanks Sunil ❤️
+
+high performance StyleSheet for css-in-js systems
+
+- uses multiple style tags behind the scenes for millions of rules
+- uses `insertRule` for appending in production for *much* faster performance
+
+// usage
+
+import { StyleSheet } from '@emotion/sheet'
+
+let styleSheet = new StyleSheet({ key: '', container: document.head })
+
+styleSheet.insert('#box { border: 1px solid red; }')
+- appends a css rule into the stylesheet
+
+styleSheet.flush()
+- empties the stylesheet of all its contents
+
+*/
+// $FlowFixMe
+function sheetForTag(tag) {
+  if (tag.sheet) {
+    // $FlowFixMe
+    return tag.sheet;
+  } // this weirdness brought to you by firefox
+
+  /* istanbul ignore next */
+
+
+  for (var i = 0; i < document.styleSheets.length; i++) {
+    if (document.styleSheets[i].ownerNode === tag) {
+      // $FlowFixMe
+      return document.styleSheets[i];
+    }
+  }
+}
+
+function createStyleElement(options) {
+  var tag = document.createElement('style');
+  tag.setAttribute('data-emotion', options.key);
+
+  if (options.nonce !== undefined) {
+    tag.setAttribute('nonce', options.nonce);
+  }
+
+  tag.appendChild(document.createTextNode(''));
+  return tag;
+}
+
+var StyleSheet =
+/*#__PURE__*/
+function () {
+  function StyleSheet(options) {
+    this.isSpeedy = options.speedy === undefined ? "production" === 'production' : options.speedy;
+    this.tags = [];
+    this.ctr = 0;
+    this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets
+
+    this.key = options.key;
+    this.container = options.container;
+    this.before = null;
+  }
+
+  var _proto = StyleSheet.prototype;
+
+  _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 {
-        clearInterval(this.autoRefresh);
-      }
-    }
-  }, {
-    key: "throttledRefresh",
-    value: function throttledRefresh(event) {
-      window.cancelAnimationFrame(this.rafHandle);
-
-      if (event && event.type === 'scroll' && this.contentNode.current.contains(event.target)) {
-        return;
-      }
-
-      this.rafHandle = window.requestAnimationFrame(this.refresh);
-    }
-    /**
-     * Calling refreshOnAnchorMove
-     * will only refresh the popover position if the anchor moves.
-     */
-
-  }, {
-    key: "refreshOnAnchorMove",
-    value: function refreshOnAnchorMove() {
-      var anchorRect = this.getAnchorRect(this.anchorNode.current);
-      var didAnchorRectChange = !external_this_wp_isShallowEqual_default()(anchorRect, this.anchorRect);
-
-      if (didAnchorRectChange) {
-        this.anchorRect = anchorRect;
-        this.computePopoverPosition(this.state.popoverSize, anchorRect);
-      }
-    }
-    /**
-     * Calling `refresh()` will force the Popover to recalculate its size and
-     * position. This is useful when a DOM change causes the anchor node to change
-     * position.
-     */
-
-  }, {
-    key: "refresh",
-    value: function refresh() {
-      var anchorRect = this.getAnchorRect(this.anchorNode.current);
-      var contentRect = this.contentNode.current.getBoundingClientRect();
-      var popoverSize = {
-        width: contentRect.width,
-        height: contentRect.height
-      };
-      var didPopoverSizeChange = !this.state.popoverSize || popoverSize.width !== this.state.popoverSize.width || popoverSize.height !== this.state.popoverSize.height;
-
-      if (didPopoverSizeChange) {
-        this.setState({
-          popoverSize: popoverSize,
-          isReadyToAnimate: true
-        });
-      }
-
-      this.anchorRect = anchorRect;
-      this.computePopoverPosition(popoverSize, anchorRect);
-    }
-  }, {
-    key: "focus",
-    value: function focus() {
-      var focusOnMount = this.props.focusOnMount;
-
-      if (!focusOnMount || !this.contentNode.current) {
-        return;
-      }
-
-      if (focusOnMount === 'firstElement') {
-        // Find first tabbable node within content and shift focus, falling
-        // back to the popover panel itself.
-        var firstTabbable = external_this_wp_dom_["focus"].tabbable.find(this.contentNode.current)[0];
-
-        if (firstTabbable) {
-          firstTabbable.focus();
+        before = this.tags[this.tags.length - 1].nextSibling;
+      }
+
+      this.container.insertBefore(_tag, before);
+      this.tags.push(_tag);
+    }
+
+    var tag = this.tags[this.tags.length - 1];
+
+    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
+        // 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);
+      } catch (e) {
+        if (false) {}
+      }
+    } else {
+      tag.appendChild(document.createTextNode(rule));
+    }
+
+    this.ctr++;
+  };
+
+  _proto.flush = function flush() {
+    // $FlowFixMe
+    this.tags.forEach(function (tag) {
+      return tag.parentNode.removeChild(tag);
+    });
+    this.tags = [];
+    this.ctr = 0;
+  };
+
+  return StyleSheet;
+}();
+
+
+
+// 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 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 = (cache_browser_esm_createCache);
+
+// CONCATENATED MODULE: ./node_modules/@emotion/utils/dist/utils.browser.esm.js
+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);
+  }
+};
+
+
+
+// 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);
+
+// 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 = memoize_browser_esm(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 {
-          this.contentNode.current.focus();
-        }
-
-        return;
-      }
-
-      if (focusOnMount === 'container') {
-        // Focus the popover panel itself so items in the popover are easily
-        // accessed via keyboard navigation.
-        this.contentNode.current.focus();
-      }
-    }
-  }, {
-    key: "getAnchorRect",
-    value: function getAnchorRect(anchor) {
-      var _this$props = this.props,
-          getAnchorRect = _this$props.getAnchorRect,
-          anchorRect = _this$props.anchorRect;
-
-      if (anchorRect) {
-        return anchorRect;
-      }
-
-      if (getAnchorRect) {
-        return getAnchorRect(anchor);
-      }
-
-      if (!anchor || !anchor.parentNode) {
-        return;
-      }
-
-      var rect = anchor.parentNode.getBoundingClientRect(); // subtract padding
-
-      var _window$getComputedSt = window.getComputedStyle(anchor.parentNode),
-          paddingTop = _window$getComputedSt.paddingTop,
-          paddingBottom = _window$getComputedSt.paddingBottom;
-
-      var topPad = parseInt(paddingTop, 10);
-      var bottomPad = parseInt(paddingBottom, 10);
-      return {
-        x: rect.left,
-        y: rect.top + topPad,
-        width: rect.width,
-        height: rect.height - topPad - bottomPad,
-        left: rect.left,
-        right: rect.right,
-        top: rect.top + topPad,
-        bottom: rect.bottom - bottomPad
-      };
-    }
-  }, {
-    key: "computePopoverPosition",
-    value: function computePopoverPosition(popoverSize, anchorRect) {
-      var _this$props2 = this.props,
-          _this$props2$position = _this$props2.position,
-          position = _this$props2$position === void 0 ? 'top' : _this$props2$position,
-          expandOnMobile = _this$props2.expandOnMobile;
-
-      var newPopoverPosition = utils_computePopoverPosition(anchorRect, popoverSize, position, expandOnMobile);
-
-      if (this.state.yAxis !== newPopoverPosition.yAxis || this.state.xAxis !== newPopoverPosition.xAxis || this.state.popoverLeft !== newPopoverPosition.popoverLeft || this.state.popoverTop !== newPopoverPosition.popoverTop || this.state.contentHeight !== newPopoverPosition.contentHeight || this.state.contentWidth !== newPopoverPosition.contentWidth || this.state.isMobile !== newPopoverPosition.isMobile) {
-        this.setState(newPopoverPosition);
-      }
-    }
-  }, {
-    key: "maybeClose",
-    value: function maybeClose(event) {
-      var _this$props3 = this.props,
-          onKeyDown = _this$props3.onKeyDown,
-          onClose = _this$props3.onClose; // Close on escape
-
-      if (event.keyCode === external_this_wp_keycodes_["ESCAPE"] && onClose) {
-        event.stopPropagation();
-        onClose();
-      } // Preserve original content prop behavior
-
-
-      if (onKeyDown) {
-        onKeyDown(event);
-      }
-    }
-  }, {
-    key: "render",
-    value: function render() {
-      var _this3 = this;
-
-      var _this$props4 = this.props,
-          headerTitle = _this$props4.headerTitle,
-          onClose = _this$props4.onClose,
-          children = _this$props4.children,
-          className = _this$props4.className,
-          _this$props4$onClickO = _this$props4.onClickOutside,
-          onClickOutside = _this$props4$onClickO === void 0 ? onClose : _this$props4$onClickO,
-          noArrow = _this$props4.noArrow,
-          position = _this$props4.position,
-          range = _this$props4.range,
-          focusOnMount = _this$props4.focusOnMount,
-          getAnchorRect = _this$props4.getAnchorRect,
-          expandOnMobile = _this$props4.expandOnMobile,
-          _this$props4$animate = _this$props4.animate,
-          animate = _this$props4$animate === void 0 ? true : _this$props4$animate,
-          contentProps = Object(objectWithoutProperties["a" /* default */])(_this$props4, ["headerTitle", "onClose", "children", "className", "onClickOutside", "noArrow", "position", "range", "focusOnMount", "getAnchorRect", "expandOnMobile", "animate"]);
-
-      var _this$state = this.state,
-          popoverLeft = _this$state.popoverLeft,
-          popoverTop = _this$state.popoverTop,
-          yAxis = _this$state.yAxis,
-          xAxis = _this$state.xAxis,
-          contentHeight = _this$state.contentHeight,
-          contentWidth = _this$state.contentWidth,
-          popoverSize = _this$state.popoverSize,
-          isMobile = _this$state.isMobile,
-          isReadyToAnimate = _this$state.isReadyToAnimate; // Compute the animation position
-
-      var yAxisMapping = {
-        top: 'bottom',
-        bottom: 'top'
-      };
-      var xAxisMapping = {
-        left: 'right',
-        right: 'left'
-      };
-      var animateYAxis = yAxisMapping[yAxis] || 'middle';
-      var animateXAxis = xAxisMapping[xAxis] || 'center';
-      var classes = classnames_default()('components-popover', className, 'is-' + yAxis, 'is-' + xAxis, {
-        'is-mobile': isMobile,
-        'is-without-arrow': noArrow || xAxis === 'center' && yAxis === 'middle'
-      }); // Disable reason: We care to capture the _bubbled_ events from inputs
-      // within popover as inferring close intent.
-
-      /* eslint-disable jsx-a11y/no-static-element-interactions */
-
-      var content = Object(external_this_wp_element_["createElement"])(detect_outside, {
-        onClickOutside: onClickOutside
-      }, Object(external_this_wp_element_["createElement"])(build_module_animate, {
-        type: animate && isReadyToAnimate ? 'appear' : null,
-        options: {
-          origin: animateYAxis + ' ' + animateXAxis
-        }
-      }, function (_ref2) {
-        var animateClassName = _ref2.className;
-        return Object(external_this_wp_element_["createElement"])(isolated_event_container, Object(esm_extends["a" /* default */])({
-          className: classnames_default()(classes, animateClassName),
-          style: {
-            top: !isMobile && popoverTop ? popoverTop + 'px' : undefined,
-            left: !isMobile && popoverLeft ? popoverLeft + 'px' : undefined,
-            visibility: popoverSize ? undefined : 'hidden'
-          }
-        }, contentProps, {
-          onKeyDown: _this3.maybeClose
-        }), isMobile && Object(external_this_wp_element_["createElement"])("div", {
-          className: "components-popover__header"
-        }, Object(external_this_wp_element_["createElement"])("span", {
-          className: "components-popover__header-title"
-        }, headerTitle), Object(external_this_wp_element_["createElement"])(icon_button, {
-          className: "components-popover__close",
-          icon: "no-alt",
-          onClick: onClose
-        })), Object(external_this_wp_element_["createElement"])("div", {
-          ref: _this3.contentNode,
-          className: "components-popover__content",
-          style: {
-            maxHeight: !isMobile && contentHeight ? contentHeight + 'px' : undefined,
-            maxWidth: !isMobile && contentWidth ? contentWidth + 'px' : undefined
-          },
-          tabIndex: "-1"
-        }, children));
+          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
+  };
+};
+
+
+
+// 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 serialize_browser_esm_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 EmotionCacheContext = Object(external_this_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' ? cache_browser_esm() : null);
+var ThemeContext = Object(external_this_React_["createContext"])({});
+var CacheProvider = EmotionCacheContext.Provider;
+
+var core_browser_esm_withEmotionCache = function withEmotionCache(func) {
+  var render = function render(props, ref) {
+    return Object(external_this_React_["createElement"])(EmotionCacheContext.Consumer, null, function (cache) {
+      return func(props, cache, ref);
+    });
+  }; // $FlowFixMe
+
+
+  return Object(external_this_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 core_browser_esm_hasOwnProperty = Object.prototype.hasOwnProperty;
+
+var core_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 = getRegisteredStyles(cache.registered, registeredStyles, props.className);
+  } else if (props.className != null) {
+    className = props.className + " ";
+  }
+
+  var serialized = serialize_browser_esm_serializeStyles(registeredStyles);
+
+  if (false) { var labelFromStack; }
+
+  var rules = insertStyles(cache, serialized, typeof type === 'string');
+  className += cache.key + "-" + serialized.name;
+  var newProps = {};
+
+  for (var key in props) {
+    if (core_browser_esm_hasOwnProperty.call(props, key) && key !== 'css' && key !== typePropName && ( true || false)) {
+      newProps[key] = props[key];
+    }
+  }
+
+  newProps.ref = ref;
+  newProps.className = className;
+  var ele = Object(external_this_React_["createElement"])(type, newProps);
+
+  return ele;
+};
+
+var Emotion =
+/* #__PURE__ */
+core_browser_esm_withEmotionCache(function (props, cache, ref) {
+  // use Context.read for the theme when it's stable
+  if (typeof props.css === 'function') {
+    return Object(external_this_React_["createElement"])(ThemeContext.Consumer, null, function (theme) {
+      return core_browser_esm_render(cache, props, theme, ref);
+    });
+  }
+
+  return core_browser_esm_render(cache, props, null, ref);
+});
+
+if (false) {} // $FlowFixMe
+
+
+var core_browser_esm_jsx = function jsx(type, props) {
+  var args = arguments;
+
+  if (props == null || !core_browser_esm_hasOwnProperty.call(props, 'css')) {
+    // $FlowFixMe
+    return external_this_React_["createElement"].apply(undefined, args);
+  }
+
+  if (false) {}
+
+  var argsLength = args.length;
+  var createElementArgArray = new Array(argsLength);
+  createElementArgArray[0] = Emotion;
+  var newProps = {};
+
+  for (var key in props) {
+    if (core_browser_esm_hasOwnProperty.call(props, key)) {
+      newProps[key] = props[key];
+    }
+  }
+
+  newProps[typePropName] = type;
+
+  if (false) { var match, error; }
+
+  createElementArgArray[1] = newProps;
+
+  for (var i = 2; i < argsLength; i++) {
+    createElementArgArray[i] = args[i];
+  } // $FlowFixMe
+
+
+  return external_this_React_["createElement"].apply(null, createElementArgArray);
+};
+
+var warnedAboutCssPropForGlobal = false;
+var Global =
+/* #__PURE__ */
+core_browser_esm_withEmotionCache(function (props, cache) {
+  if (false) {}
+
+  var styles = props.styles;
+
+  if (typeof styles === 'function') {
+    return Object(external_this_React_["createElement"])(ThemeContext.Consumer, null, function (theme) {
+      var serialized = serialize_browser_esm_serializeStyles([styles(theme)]);
+      return Object(external_this_React_["createElement"])(core_browser_esm_InnerGlobal, {
+        serialized: serialized,
+        cache: cache
+      });
+    });
+  }
+
+  var serialized = serialize_browser_esm_serializeStyles([styles]);
+  return Object(external_this_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_default()(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 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
+      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_this_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 = getRegisteredStyles(registered, registeredStyles, className);
+
+  if (registeredStyles.length < 2) {
+    return className;
+  }
+
+  return rawClassName + css(registeredStyles);
+}
+
+var ClassNames = core_browser_esm_withEmotionCache(function (props, context) {
+  return Object(external_this_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 = serialize_browser_esm_serializeStyles(args, context.registered);
+
+      {
+        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;
+
+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 styled_base_browser_esm_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 styled_base_browser_esm_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { styled_base_browser_esm_ownKeys(source, true).forEach(function (key) { defineProperty_default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { styled_base_browser_esm_ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
+var 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 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 = core_browser_esm_withEmotionCache(function (props, context, ref) {
+      return Object(external_this_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 = getRegisteredStyles(context.registered, classInterpolations, props.className);
+        } else if (props.className != null) {
+          className = props.className + " ";
+        }
+
+        var serialized = serialize_browser_esm_serializeStyles(styles.concat(classInterpolations), context.registered, mergedProps);
+        var rules = 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_this_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 ? styled_base_browser_esm_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__(66);
+var tinycolor_default = /*#__PURE__*/__webpack_require__.n(tinycolor);
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/colors-values.js
+
+
+function colors_values_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 colors_values_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { colors_values_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty["a" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { colors_values_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+var 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
+ */
+
+var G2 = {
+  blue: {
+    medium: {
+      focus: '#007cba',
+      focusDark: '#fff'
+    }
+  },
+  darkGray: {
+    primary: '#1e1e1e'
+  },
+  mediumGray: {
+    text: '#757575'
+  },
+  lightGray: {
+    ui: '#949494',
+    secondary: '#ccc',
+    tertiary: '#e7e8e9'
+  }
+};
+var 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'
+};
+var 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)
+};
+var 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)
+};
+var 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'
+};
+var 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/.
+
+var 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'
+  }
+};
+var ALERT = {
+  yellow: '#f0b849',
+  red: '#d94f4f',
+  green: '#4ab866'
+};
+var ADMIN = {
+  theme: "var( --wp-admin-theme-color, ".concat(BLUE.wordpress[700], ")"),
+  themeDark10: "var( --wp-admin-theme-color-darker-10, ".concat(BLUE.medium.focus, ")")
+}; // Namespaced values for raw colors hex codes
+
+var UI = {
+  theme: ADMIN.theme,
+  background: BASE.white,
+  backgroundDisabled: LIGHT_GRAY[200],
+  border: G2.darkGray.primary,
+  borderFocus: ADMIN.themeDark10,
+  borderDisabled: DARK_GRAY[700],
+  borderLight: LIGHT_GRAY[600],
+  label: DARK_GRAY[500],
+  textDisabled: DARK_GRAY[150],
+  textDark: BASE.white,
+  textLight: BASE.black
+};
+var COLORS = colors_values_objectSpread({}, BASE, {
+  darkGray: Object(external_this_lodash_["merge"])({}, DARK_GRAY, G2.darkGray),
+  darkOpacity: DARK_OPACITY,
+  darkOpacityLight: DARK_OPACITY_LIGHT,
+  mediumGray: G2.mediumGray,
+  lightGray: Object(external_this_lodash_["merge"])({}, LIGHT_GRAY, G2.lightGray),
+  lightGrayLight: LIGHT_OPACITY_LIGHT,
+  blue: Object(external_this_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/colors.js
+/**
+ * External dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+/**
+ * Generating a CSS complient 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() {
+  var hexValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
+  var alpha = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
+
+  var _tinycolor$toRgb = tinycolor_default()(hexValue).toRgb(),
+      r = _tinycolor$toRgb.r,
+      g = _tinycolor$toRgb.g,
+      b = _tinycolor$toRgb.b;
+
+  return "rgba(".concat(r, ", ").concat(g, ", ").concat(b, ", ").concat(alpha, ")");
+}
+/**
+ * Retrieves a color from the color palette.
+ *
+ * @param {string} value The value to retrieve.
+ * @return {string} The color (or fallback, if not found).
+ *
+ * @example
+ * color( 'blue.wordpress.700' )
+ * // #00669b
+ */
+
+function colors_color(value) {
+  var fallbackColor = '#000';
+  return Object(external_this_lodash_["get"])(COLORS, value, fallbackColor);
+}
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/reduce-motion.js
+/**
+ * Allows users to opt-out of animations via OS-level preferences.
+ *
+ * @param {string} prop CSS Property name
+ * @return {string} Generated CSS code for the reduced style
+ */
+function reduceMotion() {
+  var prop = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'transition';
+  var style;
+
+  switch (prop) {
+    case 'transition':
+      style = 'transition-duration: 0ms;';
+      break;
+
+    case 'animation':
+      style = 'animation-duration: 1ms;';
+      break;
+
+    default:
+      style = "\n\t\t\t\tanimation-duration: 1ms;\n\t\t\t\ttransition-duration: 0ms;\n\t\t\t";
+  }
+
+  return "\n\t\t@media ( prefers-reduced-motion: reduce ) {\n\t\t\t".concat(style, ";\n\t\t}\n\t");
+}
+
+// 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;
+
+var rootBase = function rootBase() {
+  return alignment_matrix_control_styles_ref;
+};
+
+var alignment_matrix_control_styles_rootSize = function rootSize(_ref2) {
+  var _ref2$size = _ref2.size,
+      size = _ref2$size === void 0 ? 92 : _ref2$size;
+  return /*#__PURE__*/css_browser_esm("grid-template-rows:repeat( 3,calc( ", size, "px / 3 ) );width:", size, "px;" + ( true ? "" : undefined));
+};
+
+var Root = styled_base_browser_esm("div", {
+  target: "e1od1u4s0",
+  label: "Root"
+})(rootBase, ";border:1px solid transparent;cursor:pointer;grid-template-columns:auto;", alignment_matrix_control_styles_rootSize, ";" + ( true ? "" : undefined));
+var 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);
+
+var alignment_matrix_control_styles_pointActive = function pointActive(_ref3) {
+  var isActive = _ref3.isActive;
+  var boxShadow = isActive ? "0 0 0 2px ".concat(colors_color('black')) : null;
+  var pointColor = isActive ? colors_color('black') : colors_color('lightGray.800');
+  var pointColorHover = isActive ? colors_color('black') : colors_color('blue.medium.focus');
+  return /*#__PURE__*/css_browser_esm("box-shadow:", boxShadow, ";color:", pointColor, ";*:hover > &{color:", pointColorHover, ";}" + ( true ? "" : undefined));
+};
+
+var alignment_matrix_control_styles_pointBase = function pointBase(props) {
+  return /*#__PURE__*/css_browser_esm("background:currentColor;box-sizing:border-box;display:grid;margin:auto;transition:all 120ms linear;", reduceMotion('transition'), " ", alignment_matrix_control_styles_pointActive(props),  true ? "" : undefined);
+};
+var Point = styled_base_browser_esm("span", {
+  target: "e1od1u4s2",
+  label: "Point"
+})("height:6px;width:6px;", alignment_matrix_control_styles_pointBase,  true ? "" : undefined);
+var 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
+
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+function cell_Cell(_ref) {
+  var _ref$isActive = _ref.isActive,
+      isActive = _ref$isActive === void 0 ? false : _ref$isActive,
+      value = _ref.value,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["isActive", "value"]);
+
+  var tooltipText = ALIGNMENT_LABEL[value];
+  return Object(external_this_wp_element_["createElement"])(build_module_tooltip["a" /* default */], {
+    text: tooltipText
+  }, Object(external_this_wp_element_["createElement"])(CompositeItem["a" /* CompositeItem */], Object(esm_extends["a" /* default */])({
+    as: Cell,
+    role: "gridcell"
+  }, props), Object(external_this_wp_element_["createElement"])(visually_hidden, null, value), Object(external_this_wp_element_["createElement"])(Point, {
+    isActive: isActive,
+    role: "presentation"
+  })));
+}
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/rtl.js
+/**
+ * External dependencies
+ */
+
+
+var LOWER_LEFT_REGEXP = new RegExp(/-left/g);
+var LOWER_RIGHT_REGEXP = new RegExp(/-right/g);
+var UPPER_LEFT_REGEXP = new RegExp(/Left/g);
+var UPPER_RIGHT_REGEXP = new RegExp(/Right/g);
+/**
+ * Checks to see whether the document is set to rtl.
+ *
+ * @return {boolean} Whether document is RTL.
+ */
+
+function getRTL() {
+  return !!(document && document.documentElement.dir === 'rtl');
+}
+/**
+ * Simple hook to retrieve RTL direction value
+ *
+ * @return {boolean} Whether document is RTL.
+ */
+
+function useRTL() {
+  return getRTL();
+}
+/**
+ * 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 {Object} ltrStyles
+ *
+ * @return {Object} Converted ltr -> rtl styles
+ */
+
+
+var rtl_convertLTRToRTL = function convertLTRToRTL() {
+  var ltrStyles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+  return Object(external_this_lodash_["mapKeys"])(ltrStyles, function (_value, key) {
+    return getConvertedKey(key);
+  });
+};
+/**
+ * A higher-order function that create an incredibly basic ltr -> rtl style converter for CSS objects.
+ *
+ * @param {Object} ltrStyles Ltr styles. Converts and renders from ltr -> rtl styles, if applicable.
+ * @param {null|Object} rtlStyles Rtl styles. Renders if provided.
+ *
+ * @return {Function} A function to output CSS styles for Emotion's renderer
+ */
+
+function rtl() {
+  var ltrStyles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+  var rtlStyles = arguments.length > 1 ? arguments[1] : undefined;
+  return function () {
+    var isRTL = getRTL();
+
+    if (rtlStyles) {
+      return isRTL ? /*#__PURE__*/css_browser_esm(rtlStyles,  true ? "" : undefined) : /*#__PURE__*/css_browser_esm(ltrStyles,  true ? "" : undefined);
+    }
+
+    return isRTL ? /*#__PURE__*/css_browser_esm(rtl_convertLTRToRTL(ltrStyles),  true ? "" : undefined) : /*#__PURE__*/css_browser_esm(ltrStyles,  true ? "" : undefined);
+  };
+}
+
+// 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
+ */
+
+
+
+var alignment_matrix_control_icon_styles_rootSize = function rootSize() {
+  var padding = 1.5;
+  var size = 24;
+  return /*#__PURE__*/css_browser_esm({
+    gridTemplateRows: "repeat( 3, calc( ".concat(size - padding * 2, "px / 3))"),
+    padding: padding,
+    maxHeight: size,
+    maxWidth: size
+  },  true ? "" : undefined);
+};
+
+var alignment_matrix_control_icon_styles_rootPointerEvents = function rootPointerEvents(_ref) {
+  var disablePointerEvents = _ref.disablePointerEvents;
+  return /*#__PURE__*/css_browser_esm({
+    pointerEvents: disablePointerEvents ? 'none' : null
+  },  true ? "" : undefined);
+};
+
+var 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);
+var 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, ";", alignment_matrix_control_icon_styles_rootPointerEvents, ";" + ( true ? "" : undefined));
+
+var alignment_matrix_control_icon_styles_pointActive = function pointActive(_ref2) {
+  var isActive = _ref2.isActive;
+  var boxShadow = isActive ? "0 0 0 1px currentColor" : null;
+  return /*#__PURE__*/css_browser_esm("box-shadow:", boxShadow, ";color:currentColor;*:hover > &{color:currentColor;}" + ( true ? "" : undefined));
+};
+
+var alignment_matrix_control_icon_styles_Point = styled_base_browser_esm("span", {
+  target: "elqsdmc2",
+  label: "Point"
+})("height:2px;width:2px;", alignment_matrix_control_styles_pointBase, ";", alignment_matrix_control_icon_styles_pointActive, ";" + ( true ? "" : undefined));
+var alignment_matrix_control_icon_styles_Cell = Cell;
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/alignment-matrix-control/icon.js
+
+
+
+
+
+function icon_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 icon_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { icon_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty["a" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { icon_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+var BASE_SIZE = 24;
+function AlignmentMatrixControlIcon(_ref) {
+  var className = _ref.className,
+      _ref$disablePointerEv = _ref.disablePointerEvents,
+      disablePointerEvents = _ref$disablePointerEv === void 0 ? true : _ref$disablePointerEv,
+      _ref$size = _ref.size,
+      size = _ref$size === void 0 ? BASE_SIZE : _ref$size,
+      _ref$style = _ref.style,
+      style = _ref$style === void 0 ? {} : _ref$style,
+      _ref$value = _ref.value,
+      value = _ref$value === void 0 ? 'center' : _ref$value,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["className", "disablePointerEvents", "size", "style", "value"]);
+
+  var alignIndex = getAlignmentIndex(value);
+  var scale = (size / BASE_SIZE).toFixed(2);
+  var classes = classnames_default()('component-alignment-matrix-control-icon', className);
+
+  var styles = icon_objectSpread({}, style, {
+    transform: "scale(".concat(scale, ")")
+  });
+
+  return Object(external_this_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(function (align, index) {
+    var isActive = alignIndex === index;
+    return Object(external_this_wp_element_["createElement"])(alignment_matrix_control_icon_styles_Cell, {
+      key: align
+    }, Object(external_this_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) {
+  var instanceId = Object(external_this_wp_compose_["useInstanceId"])(AlignmentMatrixControl, 'alignment-matrix-control');
+  return id || instanceId;
+}
+
+function AlignmentMatrixControl(_ref) {
+  var className = _ref.className,
+      id = _ref.id,
+      _ref$label = _ref.label,
+      label = _ref$label === void 0 ? Object(external_this_wp_i18n_["__"])('Alignment Matrix Control') : _ref$label,
+      _ref$defaultValue = _ref.defaultValue,
+      defaultValue = _ref$defaultValue === void 0 ? 'center center' : _ref$defaultValue,
+      value = _ref.value,
+      _ref$onChange = _ref.onChange,
+      onChange = _ref$onChange === void 0 ? external_this_lodash_["noop"] : _ref$onChange,
+      _ref$width = _ref.width,
+      width = _ref$width === void 0 ? 92 : _ref$width,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["className", "id", "label", "defaultValue", "value", "onChange", "width"]);
+
+  var _useState = Object(external_this_wp_element_["useState"])(value !== null && value !== void 0 ? value : defaultValue),
+      _useState2 = Object(slicedToArray["a" /* default */])(_useState, 1),
+      immutableDefaultValue = _useState2[0];
+
+  var isRTL = useRTL();
+  var baseId = useBaseId(id);
+  var initialCurrentId = getItemId(baseId, immutableDefaultValue);
+  var composite = Object(CompositeState_3a25dcee["g" /* u */])({
+    baseId: baseId,
+    currentId: initialCurrentId,
+    rtl: isRTL
+  });
+
+  var handleOnChange = function handleOnChange(nextValue) {
+    onChange(nextValue);
+  };
+
+  Object(external_this_wp_element_["useEffect"])(function () {
+    if (typeof value !== 'undefined') {
+      composite.setCurrentId(getItemId(baseId, value));
+    }
+  }, [value, composite.setCurrentId]);
+  var classes = classnames_default()('component-alignment-matrix-control', className);
+  return Object(external_this_wp_element_["createElement"])(Composite["a" /* Composite */], Object(esm_extends["a" /* default */])({}, props, composite, {
+    "aria-label": label,
+    as: Root,
+    className: classes,
+    role: "grid",
+    width: width
+  }), GRID.map(function (cells, index) {
+    return Object(external_this_wp_element_["createElement"])(CompositeGroup, Object(esm_extends["a" /* default */])({}, composite, {
+      as: Row,
+      role: "row",
+      key: index
+    }), cells.map(function (cell) {
+      var cellId = getItemId(baseId, cell);
+      var isActive = composite.currentId === cellId;
+      return Object(external_this_wp_element_["createElement"])(cell_Cell, Object(esm_extends["a" /* default */])({}, composite, {
+        id: cellId,
+        isActive: isActive,
+        key: cell,
+        value: cell,
+        onFocus: function onFocus() {
+          return handleOnChange(cell);
+        }
       }));
-      /* eslint-enable jsx-a11y/no-static-element-interactions */
-      // Apply focus to element as long as focusOnMount is truthy; false is
-      // the only "disabled" value.
-
-      if (focusOnMount) {
-        content = Object(external_this_wp_element_["createElement"])(FocusManaged, null, content);
-      }
-
-      return Object(external_this_wp_element_["createElement"])(context_Consumer, null, function (_ref3) {
-        var getSlot = _ref3.getSlot;
-
-        // In case there is no slot context in which to render,
-        // default to an in-place rendering.
-        if (getSlot && getSlot(SLOT_NAME)) {
-          content = Object(external_this_wp_element_["createElement"])(slot_fill_fill, {
-            name: SLOT_NAME
-          }, content);
-        }
-
-        return Object(external_this_wp_element_["createElement"])("span", {
-          ref: _this3.anchorNode
-        }, content, isMobile && expandOnMobile && Object(external_this_wp_element_["createElement"])(scroll_lock, null));
-      });
-    }
-  }]);
-
-  return Popover;
-}(external_this_wp_element_["Component"]);
-
-popover_Popover.defaultProps = {
-  focusOnMount: 'firstElement',
-  noArrow: false
-};
-var PopoverContainer = popover_Popover;
-
-PopoverContainer.Slot = function () {
-  return Object(external_this_wp_element_["createElement"])(slot_fill_slot, {
-    bubblesVirtually: true,
-    name: SLOT_NAME
-  });
-};
-
-/* harmony default export */ var popover = (PopoverContainer);
+    }));
+  }));
+}
+AlignmentMatrixControl.Icon = AlignmentMatrixControlIcon;
+
+// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/animate/index.js
+var animate = __webpack_require__(160);
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/base-control/index.js
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+function BaseControl(_ref) {
+  var id = _ref.id,
+      label = _ref.label,
+      hideLabelFromVision = _ref.hideLabelFromVision,
+      help = _ref.help,
+      className = _ref.className,
+      children = _ref.children;
+  return Object(external_this_wp_element_["createElement"])("div", {
+    className: classnames_default()('components-base-control', className)
+  }, Object(external_this_wp_element_["createElement"])("div", {
+    className: "components-base-control__field"
+  }, label && id && (hideLabelFromVision ? Object(external_this_wp_element_["createElement"])(visually_hidden, {
+    as: "label",
+    htmlFor: id
+  }, label) : Object(external_this_wp_element_["createElement"])("label", {
+    className: "components-base-control__label",
+    htmlFor: id
+  }, label)), label && !id && (hideLabelFromVision ? Object(external_this_wp_element_["createElement"])(visually_hidden, {
+    as: "label"
+  }, label) : Object(external_this_wp_element_["createElement"])(BaseControl.VisualLabel, null, label)), children), !!help && Object(external_this_wp_element_["createElement"])("p", {
+    id: id + '__help',
+    className: "components-base-control__help"
+  }, help));
+}
+
+BaseControl.VisualLabel = function (_ref2) {
+  var className = _ref2.className,
+      children = _ref2.children;
+  className = classnames_default()('components-base-control__label', className);
+  return Object(external_this_wp_element_["createElement"])("span", {
+    className: className
+  }, children);
+};
+
+/* harmony default export */ var base_control = (BaseControl);
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/angle-picker-control/index.js
+
+
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+function getAngle(centerX, centerY, pointX, pointY) {
+  var y = pointY - centerY;
+  var x = pointX - centerX;
+  var angleInRadians = Math.atan2(y, x);
+  var angleInDeg = Math.round(angleInRadians * (180 / Math.PI)) + 90;
+
+  if (angleInDeg < 0) {
+    return 360 + angleInDeg;
+  }
+
+  return angleInDeg;
+}
+
+var angle_picker_control_AngleCircle = function AngleCircle(_ref) {
+  var value = _ref.value,
+      onChange = _ref.onChange,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["value", "onChange"]);
+
+  var angleCircleRef = Object(external_this_wp_element_["useRef"])();
+  var angleCircleCenter = Object(external_this_wp_element_["useRef"])();
+
+  var setAngleCircleCenter = function setAngleCircleCenter() {
+    var rect = angleCircleRef.current.getBoundingClientRect();
+    angleCircleCenter.current = {
+      x: rect.x + rect.width / 2,
+      y: rect.y + rect.height / 2
+    };
+  };
+
+  var changeAngleToPosition = function changeAngleToPosition(event) {
+    var _angleCircleCenter$cu = angleCircleCenter.current,
+        centerX = _angleCircleCenter$cu.x,
+        centerY = _angleCircleCenter$cu.y; // Prevent (drag) mouse events from selecting and accidentally
+    // triggering actions from other elements.
+
+    event.preventDefault();
+    onChange(getAngle(centerX, centerY, event.clientX, event.clientY));
+  };
+
+  var _useDragging = Object(external_this_wp_compose_["__experimentalUseDragging"])({
+    onDragStart: function onDragStart(event) {
+      setAngleCircleCenter();
+      changeAngleToPosition(event);
+    },
+    onDragMove: changeAngleToPosition,
+    onDragEnd: changeAngleToPosition
+  }),
+      startDrag = _useDragging.startDrag,
+      isDragging = _useDragging.isDragging;
+
+  return (
+    /* eslint-disable jsx-a11y/no-static-element-interactions */
+    Object(external_this_wp_element_["createElement"])("div", Object(esm_extends["a" /* default */])({
+      ref: angleCircleRef,
+      onMouseDown: startDrag,
+      className: "components-angle-picker-control__angle-circle",
+      style: isDragging ? {
+        cursor: 'grabbing'
+      } : undefined
+    }, props), Object(external_this_wp_element_["createElement"])("div", {
+      style: value ? {
+        transform: "rotate(".concat(value, "deg)")
+      } : undefined,
+      className: "components-angle-picker-control__angle-circle-indicator-wrapper"
+    }, Object(external_this_wp_element_["createElement"])("span", {
+      className: "components-angle-picker-control__angle-circle-indicator"
+    })))
+    /* eslint-enable jsx-a11y/no-static-element-interactions */
+
+  );
+};
+
+function AnglePickerControl(_ref2) {
+  var value = _ref2.value,
+      _onChange = _ref2.onChange,
+      _ref2$label = _ref2.label,
+      label = _ref2$label === void 0 ? Object(external_this_wp_i18n_["__"])('Angle') : _ref2$label;
+  var instanceId = Object(external_this_wp_compose_["useInstanceId"])(AnglePickerControl);
+  var inputId = "components-angle-picker-control__input-".concat(instanceId);
+  return Object(external_this_wp_element_["createElement"])(base_control, {
+    label: label,
+    id: inputId,
+    className: "components-angle-picker-control"
+  }, Object(external_this_wp_element_["createElement"])(angle_picker_control_AngleCircle, {
+    value: value,
+    onChange: _onChange,
+    "aria-hidden": "true"
+  }), Object(external_this_wp_element_["createElement"])("input", {
+    className: "components-angle-picker-control__input-field",
+    type: "number",
+    id: inputId,
+    onChange: function onChange(event) {
+      var unprocessedValue = event.target.value;
+      var inputValue = unprocessedValue !== '' ? parseInt(event.target.value, 10) : 0;
+
+      _onChange(inputValue);
+    },
+    value: value,
+    min: 0,
+    max: 360,
+    step: "1"
+  }));
+}
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js
+var classCallCheck = __webpack_require__(20);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js
+var assertThisInitialized = __webpack_require__(12);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/createClass.js
+var createClass = __webpack_require__(19);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js
+var possibleConstructorReturn = __webpack_require__(23);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js
+var getPrototypeOf = __webpack_require__(16);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js + 1 modules
+var inherits = __webpack_require__(22);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js + 2 modules
+var toConsumableArray = __webpack_require__(18);
+
+// EXTERNAL MODULE: external {"this":["wp","keycodes"]}
+var external_this_wp_keycodes_ = __webpack_require__(21);
+
+// EXTERNAL MODULE: external {"this":["wp","richText"]}
+var external_this_wp_richText_ = __webpack_require__(25);
+
+// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/button/index.js
+var build_module_button = __webpack_require__(34);
+
+// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/popover/index.js + 2 modules
+var popover = __webpack_require__(112);
 
 // EXTERNAL MODULE: external {"this":["wp","a11y"]}
-var external_this_wp_a11y_ = __webpack_require__(48);
+var external_this_wp_a11y_ = __webpack_require__(54);
 
 // CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/higher-order/with-spoken-messages/index.js
 
@@ -27373,6 +21600,10 @@
 
 
 
+function _createSuper(Derived) { return function () { var Super = Object(getPrototypeOf["a" /* default */])(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf["a" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn["a" /* default */])(this, result); }; }
+
+function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
+
 /**
  * External dependencies
  */
@@ -27388,52 +21619,51 @@
  * A Higher Order Component used to be provide a unique instance ID by
  * component.
  *
- * @param {WPElement} WrappedComponent  The wrapped component.
- *
- * @return {Component} Component with an instanceId prop.
+ * @param {WPComponent} WrappedComponent  The wrapped component.
+ *
+ * @return {WPComponent} The component to be rendered.
  */
 
 /* harmony default export */ var with_spoken_messages = (Object(external_this_wp_compose_["createHigherOrderComponent"])(function (WrappedComponent) {
-  return (
-    /*#__PURE__*/
-    function (_Component) {
-      Object(inherits["a" /* default */])(_class, _Component);
-
-      function _class() {
-        var _this;
-
-        Object(classCallCheck["a" /* default */])(this, _class);
-
-        _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(_class).apply(this, arguments));
-        _this.debouncedSpeak = Object(external_lodash_["debounce"])(_this.speak.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this))), 500);
-        return _this;
-      }
-
-      Object(createClass["a" /* default */])(_class, [{
-        key: "speak",
-        value: function speak(message) {
-          var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'polite';
-
-          Object(external_this_wp_a11y_["speak"])(message, type);
-        }
-      }, {
-        key: "componentWillUnmount",
-        value: function componentWillUnmount() {
-          this.debouncedSpeak.cancel();
-        }
-      }, {
-        key: "render",
-        value: function render() {
-          return Object(external_this_wp_element_["createElement"])(WrappedComponent, Object(esm_extends["a" /* default */])({}, this.props, {
-            speak: this.speak,
-            debouncedSpeak: this.debouncedSpeak
-          }));
-        }
-      }]);
-
-      return _class;
-    }(external_this_wp_element_["Component"])
-  );
+  return /*#__PURE__*/function (_Component) {
+    Object(inherits["a" /* default */])(_class, _Component);
+
+    var _super = _createSuper(_class);
+
+    function _class() {
+      var _this;
+
+      Object(classCallCheck["a" /* default */])(this, _class);
+
+      _this = _super.apply(this, arguments);
+      _this.debouncedSpeak = Object(external_this_lodash_["debounce"])(_this.speak.bind(Object(assertThisInitialized["a" /* default */])(_this)), 500);
+      return _this;
+    }
+
+    Object(createClass["a" /* default */])(_class, [{
+      key: "speak",
+      value: function speak(message) {
+        var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'polite';
+
+        Object(external_this_wp_a11y_["speak"])(message, type);
+      }
+    }, {
+      key: "componentWillUnmount",
+      value: function componentWillUnmount() {
+        this.debouncedSpeak.cancel();
+      }
+    }, {
+      key: "render",
+      value: function render() {
+        return Object(external_this_wp_element_["createElement"])(WrappedComponent, Object(esm_extends["a" /* default */])({}, this.props, {
+          speak: this.speak,
+          debouncedSpeak: this.debouncedSpeak
+        }));
+      }
+    }]);
+
+    return _class;
+  }(external_this_wp_element_["Component"]);
 }, 'withSpokenMessages'));
 
 // CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/autocomplete/index.js
@@ -27447,109 +21677,103 @@
 
 
 
-
-/**
- * External dependencies
- */
-
-
-/**
- * WordPress dependencies
- */
-
-
-
-
-
-
-
-/**
- * Internal dependencies
- */
-
+function autocomplete_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf["a" /* default */])(Derived), result; if (autocomplete_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf["a" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn["a" /* default */])(this, result); }; }
+
+function autocomplete_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+
+
+/**
+ * Internal dependencies
+ */
 
 
 
 
 /**
  * A raw completer option.
+ *
  * @typedef {*} CompleterOption
  */
 
 /**
  * @callback FnGetOptions
  *
- * @returns {(CompleterOption[]|Promise.<CompleterOption[]>)} The completer options or a promise for them.
+ * @return {(CompleterOption[]|Promise.<CompleterOption[]>)} The completer options or a promise for them.
  */
 
 /**
  * @callback FnGetOptionKeywords
  * @param {CompleterOption} option a completer option.
  *
- * @returns {string[]} list of key words to search.
+ * @return {string[]} list of key words to search.
  */
 
 /**
  * @callback FnIsOptionDisabled
  * @param {CompleterOption} option a completer option.
  *
- * @returns {string[]} whether or not the given option is disabled.
+ * @return {string[]} whether or not the given option is disabled.
  */
 
 /**
  * @callback FnGetOptionLabel
  * @param {CompleterOption} option a completer option.
  *
- * @returns {(string|Array.<(string|Component)>)} list of react components to render.
- */
-
-/**
- * @callback FnAllowNode
- * @param {Node} textNode check if the completer can handle this text node.
- *
- * @returns {boolean} true if the completer can handle this text node.
+ * @return {(string|Array.<(string|Component)>)} list of react components to render.
  */
 
 /**
  * @callback FnAllowContext
- * @param {Range} before the range before the auto complete trigger and query.
- * @param {Range} after the range after the autocomplete trigger and query.
- *
- * @returns {boolean} true if the completer can handle these ranges.
+ * @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 {'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
+ *
+ * @typedef {(string|WPElement|Object)} OptionCompletionValue
  */
 
 /**
  * @callback FnGetOptionCompletion
  * @param {CompleterOption} value the value of the completer option.
- * @param {Range} range the nodes included in the autocomplete trigger and query.
- * @param {String} query the text value of the autocomplete query.
- *
- * @returns {(OptionCompletion|OptionCompletionValue)} the completion for the given option. If an
+ * @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} Completer
- * @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.
+ * @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 {?FnAllowNode} allowNode filter the allowed text nodes in the autocomplete.
  * @property {?FnAllowContext} allowContext filter the context under which the autocomplete activates.
  * @property {FnGetOptionCompletion} getOptionCompletion get the completion associated with a given option.
  */
@@ -27570,7 +21794,7 @@
     }
 
     var isMatch = keywords.some(function (keyword) {
-      return search.test(Object(external_lodash_["deburr"])(keyword));
+      return search.test(Object(external_this_lodash_["deburr"])(keyword));
     });
 
     if (!isMatch) {
@@ -27587,29 +21811,132 @@
   return filtered;
 }
 
-function getCaretRect() {
-  var range = window.getSelection().getRangeAt(0);
-
-  if (range) {
-    return Object(external_this_wp_dom_["getRectangleFromRange"])(range);
-  }
-}
-
-var autocomplete_Autocomplete =
-/*#__PURE__*/
-function (_Component) {
+function getRange() {
+  var selection = window.getSelection();
+  return selection.rangeCount ? selection.getRangeAt(0) : null;
+}
+
+var autocomplete_getAutoCompleterUI = function getAutoCompleterUI(autocompleter) {
+  var useItems = autocompleter.useItems ? autocompleter.useItems : function (filterValue) {
+    var _useState = Object(external_this_wp_element_["useState"])([]),
+        _useState2 = Object(slicedToArray["a" /* default */])(_useState, 2),
+        items = _useState2[0],
+        setItems = _useState2[1];
+    /*
+     * 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_this_wp_element_["useLayoutEffect"])(function () {
+      var options = autocompleter.options,
+          isDebounced = autocompleter.isDebounced;
+      var loadOptions = Object(external_this_lodash_["debounce"])(function () {
+        var promise = Promise.resolve(typeof options === 'function' ? options(filterValue) : options).then(function (optionsData) {
+          if (promise.canceled) {
+            return;
+          }
+
+          var keyedOptions = optionsData.map(function (optionData, optionIndex) {
+            return {
+              key: "".concat(autocompleter.name, "-").concat(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
+
+          var search = new RegExp('(?:\\b|\\s|^)' + Object(external_this_lodash_["escapeRegExp"])(filterValue), 'i');
+          setItems(filterOptions(search, keyedOptions));
+        });
+        return promise;
+      }, isDebounced ? 250 : 0);
+      var promise = loadOptions();
+      return function () {
+        loadOptions.cancel();
+
+        if (promise) {
+          promise.canceled = true;
+        }
+      };
+    }, [filterValue]);
+    return [items];
+  };
+
+  function AutocompleterUI(_ref) {
+    var filterValue = _ref.filterValue,
+        instanceId = _ref.instanceId,
+        listBoxId = _ref.listBoxId,
+        className = _ref.className,
+        selectedIndex = _ref.selectedIndex,
+        onChangeOptions = _ref.onChangeOptions,
+        onSelect = _ref.onSelect,
+        onReset = _ref.onReset;
+
+    var _useItems = useItems(filterValue),
+        _useItems2 = Object(slicedToArray["a" /* default */])(_useItems, 1),
+        items = _useItems2[0];
+
+    Object(external_this_wp_element_["useLayoutEffect"])(function () {
+      onChangeOptions(items);
+    }, [items]);
+
+    if (!items.length > 0) {
+      return null;
+    }
+
+    return Object(external_this_wp_element_["createElement"])(popover["a" /* default */], {
+      focusOnMount: false,
+      onClose: onReset,
+      position: "top right",
+      className: "components-autocomplete__popover",
+      anchorRef: getRange()
+    }, Object(external_this_wp_element_["createElement"])("div", {
+      id: listBoxId,
+      role: "listbox",
+      className: "components-autocomplete__results"
+    }, Object(external_this_lodash_["map"])(items, function (option, index) {
+      return Object(external_this_wp_element_["createElement"])(build_module_button["a" /* default */], {
+        key: option.key,
+        id: "components-autocomplete-item-".concat(instanceId, "-").concat(option.key),
+        role: "option",
+        "aria-selected": index === selectedIndex,
+        disabled: option.isDisabled,
+        className: classnames_default()('components-autocomplete__result', className, {
+          'is-selected': index === selectedIndex
+        }),
+        onClick: function onClick() {
+          return onSelect(option);
+        }
+      }, option.label);
+    })));
+  }
+
+  return AutocompleterUI;
+};
+
+var autocomplete_Autocomplete = /*#__PURE__*/function (_Component) {
   Object(inherits["a" /* default */])(Autocomplete, _Component);
 
+  var _super = autocomplete_createSuper(Autocomplete);
+
   Object(createClass["a" /* default */])(Autocomplete, null, [{
     key: "getInitialState",
     value: function getInitialState() {
       return {
-        search: /./,
         selectedIndex: 0,
-        suppress: undefined,
-        open: undefined,
-        query: undefined,
-        filteredOptions: []
+        filteredOptions: [],
+        filterValue: '',
+        autocompleter: null,
+        AutocompleterUI: null
       };
     }
   }]);
@@ -27619,33 +21946,26 @@
 
     Object(classCallCheck["a" /* default */])(this, Autocomplete);
 
-    _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(Autocomplete).apply(this, arguments));
-    _this.bindNode = _this.bindNode.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.select = _this.select.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.reset = _this.reset.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.resetWhenSuppressed = _this.resetWhenSuppressed.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.handleKeyDown = _this.handleKeyDown.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.debouncedLoadOptions = Object(external_lodash_["debounce"])(_this.loadOptions, 250);
+    _this = _super.apply(this, arguments);
+    _this.select = _this.select.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.reset = _this.reset.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.onChangeOptions = _this.onChangeOptions.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.handleKeyDown = _this.handleKeyDown.bind(Object(assertThisInitialized["a" /* default */])(_this));
     _this.state = _this.constructor.getInitialState();
     return _this;
   }
 
   Object(createClass["a" /* default */])(Autocomplete, [{
-    key: "bindNode",
-    value: function bindNode(node) {
-      this.node = node;
-    }
-  }, {
     key: "insertCompletion",
     value: function insertCompletion(replacement) {
       var _this$state = this.state,
-          open = _this$state.open,
-          query = _this$state.query;
+          autocompleter = _this$state.autocompleter,
+          filterValue = _this$state.filterValue;
       var _this$props = this.props,
           record = _this$props.record,
           onChange = _this$props.onChange;
       var end = record.start;
-      var start = end - open.triggerPrefix.length - query.length;
+      var start = end - autocompleter.triggerPrefix.length - filterValue.length;
       var toInsert = Object(external_this_wp_richText_["create"])({
         html: Object(external_this_wp_element_["renderToString"])(replacement)
       });
@@ -27656,25 +21976,25 @@
     value: function select(option) {
       var onReplace = this.props.onReplace;
       var _this$state2 = this.state,
-          open = _this$state2.open,
-          query = _this$state2.query;
-
-      var _ref = open || {},
-          getOptionCompletion = _ref.getOptionCompletion;
+          autocompleter = _this$state2.autocompleter,
+          filterValue = _this$state2.filterValue;
+
+      var _ref2 = autocompleter || {},
+          getOptionCompletion = _ref2.getOptionCompletion;
 
       if (option.isDisabled) {
         return;
       }
 
       if (getOptionCompletion) {
-        var completion = getOptionCompletion(option.value, query);
-
-        var _ref2 = undefined === completion.action || undefined === completion.value ? {
+        var completion = getOptionCompletion(option.value, filterValue);
+
+        var _ref3 = undefined === completion.action || undefined === completion.value ? {
           action: 'insert-at-caret',
           value: completion
         } : completion,
-            action = _ref2.action,
-            value = _ref2.value;
+            action = _ref3.action,
+            value = _ref3.value;
 
         if ('replace' === action) {
           onReplace([value]);
@@ -27690,28 +22010,7 @@
   }, {
     key: "reset",
     value: function reset() {
-      var isMounted = !!this.node; // Autocompletions may replace the block containing this component,
-      // so we make sure it is mounted before resetting the state.
-
-      if (isMounted) {
-        this.setState(this.constructor.getInitialState());
-      }
-    }
-  }, {
-    key: "resetWhenSuppressed",
-    value: function resetWhenSuppressed() {
-      var _this$state3 = this.state,
-          open = _this$state3.open,
-          suppress = _this$state3.suppress;
-
-      if (open && suppress === open.idx) {
-        this.reset();
-      }
-    }
-  }, {
-    key: "handleFocusOutside",
-    value: function handleFocusOutside() {
-      this.reset();
+      this.setState(this.constructor.getInitialState());
     }
   }, {
     key: "announce",
@@ -27723,7 +22022,9 @@
       }
 
       if (!!filteredOptions.length) {
-        debouncedSpeak(Object(external_this_wp_i18n_["sprintf"])(Object(external_this_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.', filteredOptions.length), filteredOptions.length), 'assertive');
+        debouncedSpeak(Object(external_this_wp_i18n_["sprintf"])(
+        /* translators: %d: number of results. */
+        Object(external_this_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.', filteredOptions.length), filteredOptions.length), 'assertive');
       } else {
         debouncedSpeak(Object(external_this_wp_i18n_["__"])('No results.'), 'assertive');
       }
@@ -27731,94 +22032,28 @@
     /**
      * Load options for an autocompleter.
      *
-     * @param {Completer} completer The autocompleter.
-     * @param {string}    query     The query, if any.
+     * @param {Array} filteredOptions
      */
 
   }, {
-    key: "loadOptions",
-    value: function loadOptions(completer, query) {
-      var _this2 = this;
-
-      var options = completer.options;
-      /*
-       * 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.
-       */
-
-      var promise = this.activePromise = Promise.resolve(typeof options === 'function' ? options(query) : options).then(function (optionsData) {
-        var _this2$setState;
-
-        if (promise !== _this2.activePromise) {
-          // Another promise has become active since this one was asked to resolve, so do nothing,
-          // or else we might end triggering a race condition updating the state.
-          return;
-        }
-
-        var keyedOptions = optionsData.map(function (optionData, optionIndex) {
-          return {
-            key: "".concat(completer.idx, "-").concat(optionIndex),
-            value: optionData,
-            label: completer.getOptionLabel(optionData),
-            keywords: completer.getOptionKeywords ? completer.getOptionKeywords(optionData) : [],
-            isDisabled: completer.isOptionDisabled ? completer.isOptionDisabled(optionData) : false
-          };
-        });
-        var filteredOptions = filterOptions(_this2.state.search, keyedOptions);
-        var selectedIndex = filteredOptions.length === _this2.state.filteredOptions.length ? _this2.state.selectedIndex : 0;
-
-        _this2.setState((_this2$setState = {}, Object(defineProperty["a" /* default */])(_this2$setState, 'options_' + completer.idx, keyedOptions), Object(defineProperty["a" /* default */])(_this2$setState, "filteredOptions", filteredOptions), Object(defineProperty["a" /* default */])(_this2$setState, "selectedIndex", selectedIndex), _this2$setState));
-
-        _this2.announce(filteredOptions);
-      });
+    key: "onChangeOptions",
+    value: function onChangeOptions(filteredOptions) {
+      var selectedIndex = filteredOptions.length === this.state.filteredOptions.length ? this.state.selectedIndex : 0;
+      this.setState({
+        filteredOptions: filteredOptions,
+        selectedIndex: selectedIndex
+      });
+      this.announce(filteredOptions);
     }
   }, {
     key: "handleKeyDown",
     value: function handleKeyDown(event) {
-      var _this$state4 = this.state,
-          open = _this$state4.open,
-          suppress = _this$state4.suppress,
-          selectedIndex = _this$state4.selectedIndex,
-          filteredOptions = _this$state4.filteredOptions;
-
-      if (!open) {
-        return;
-      }
-
-      if (suppress === open.idx) {
-        switch (event.keyCode) {
-          // cancel popup suppression on CTRL+SPACE
-          case external_this_wp_keycodes_["SPACE"]:
-            var ctrlKey = event.ctrlKey,
-                shiftKey = event.shiftKey,
-                altKey = event.altKey,
-                metaKey = event.metaKey;
-
-            if (ctrlKey && !(shiftKey || altKey || metaKey)) {
-              this.setState({
-                suppress: undefined
-              });
-              event.preventDefault();
-              event.stopPropagation();
-            }
-
-            break;
-          // reset on cursor movement
-
-          case external_this_wp_keycodes_["UP"]:
-          case external_this_wp_keycodes_["DOWN"]:
-          case external_this_wp_keycodes_["LEFT"]:
-          case external_this_wp_keycodes_["RIGHT"]:
-            this.reset();
-        }
-
+      var _this$state3 = this.state,
+          autocompleter = _this$state3.autocompleter,
+          selectedIndex = _this$state3.selectedIndex,
+          filteredOptions = _this$state3.filteredOptions;
+
+      if (!autocompleter) {
         return;
       }
 
@@ -27845,7 +22080,8 @@
 
         case external_this_wp_keycodes_["ESCAPE"]:
           this.setState({
-            suppress: open.idx
+            autocompleter: null,
+            AutocompleterUI: null
           });
           break;
 
@@ -27868,43 +22104,22 @@
       event.stopPropagation();
     }
   }, {
-    key: "toggleKeyEvents",
-    value: function toggleKeyEvents(isListening) {
-      // This exists because we must capture ENTER key presses before RichText.
-      // It seems that react fires the simulated capturing events after the
-      // native browser event has already bubbled so we can't stopPropagation
-      // and avoid RichText getting the event from TinyMCE, hence we must
-      // register a native event handler.
-      var handler = isListening ? 'addEventListener' : 'removeEventListener';
-      this.node[handler]('keydown', this.handleKeyDown, true);
-    }
-  }, {
     key: "componentDidUpdate",
-    value: function componentDidUpdate(prevProps, prevState) {
+    value: function componentDidUpdate(prevProps) {
       var _this$props2 = this.props,
           record = _this$props2.record,
           completers = _this$props2.completers;
       var prevRecord = prevProps.record;
-      var prevOpen = prevState.open;
-
-      if (!this.state.open !== !prevOpen) {
-        this.toggleKeyEvents(!!this.state.open);
-      }
 
       if (Object(external_this_wp_richText_["isCollapsed"])(record)) {
-        var text = Object(external_lodash_["deburr"])(Object(external_this_wp_richText_["getTextContent"])(Object(external_this_wp_richText_["slice"])(record, 0)));
-        var prevText = Object(external_lodash_["deburr"])(Object(external_this_wp_richText_["getTextContent"])(Object(external_this_wp_richText_["slice"])(prevRecord, 0)));
+        var text = Object(external_this_lodash_["deburr"])(Object(external_this_wp_richText_["getTextContent"])(Object(external_this_wp_richText_["slice"])(record, 0)));
+        var prevText = Object(external_this_lodash_["deburr"])(Object(external_this_wp_richText_["getTextContent"])(Object(external_this_wp_richText_["slice"])(prevRecord, 0)));
 
         if (text !== prevText) {
           var textAfterSelection = Object(external_this_wp_richText_["getTextContent"])(Object(external_this_wp_richText_["slice"])(record, undefined, Object(external_this_wp_richText_["getTextContent"])(record).length));
-          var allCompleters = Object(external_lodash_["map"])(completers, function (completer, idx) {
-            return Object(objectSpread["a" /* default */])({}, completer, {
-              idx: idx
-            });
-          });
-          var open = Object(external_lodash_["find"])(allCompleters, function (_ref3) {
-            var triggerPrefix = _ref3.triggerPrefix,
-                allowContext = _ref3.allowContext;
+          var autocompleter = Object(external_this_lodash_["find"])(completers, function (_ref4) {
+            var triggerPrefix = _ref4.triggerPrefix,
+                allowContext = _ref4.allowContext;
             var index = text.lastIndexOf(triggerPrefix);
 
             if (index === -1) {
@@ -27918,157 +22133,6054 @@
             return /^\S*$/.test(text.slice(index + triggerPrefix.length));
           });
 
-          if (!open) {
+          if (!autocompleter) {
             this.reset();
             return;
           }
 
-          var safeTrigger = Object(external_lodash_["escapeRegExp"])(open.triggerPrefix);
+          var safeTrigger = Object(external_this_lodash_["escapeRegExp"])(autocompleter.triggerPrefix);
           var match = text.match(new RegExp("".concat(safeTrigger, "(\\S*)$")));
           var query = match && match[1];
-          var _this$state5 = this.state,
-              wasOpen = _this$state5.open,
-              wasSuppress = _this$state5.suppress,
-              wasQuery = _this$state5.query;
-
-          if (open && (!wasOpen || open.idx !== wasOpen.idx || query !== wasQuery)) {
-            if (open.isDebounced) {
-              this.debouncedLoadOptions(open, query);
-            } else {
-              this.loadOptions(open, query);
-            }
-          } // create a regular expression to filter the options
-
-
-          var search = open ? new RegExp('(?:\\b|\\s|^)' + Object(external_lodash_["escapeRegExp"])(query), 'i') : /./; // filter the options we already have
-
-          var filteredOptions = open ? filterOptions(search, this.state['options_' + open.idx]) : []; // check if we should still suppress the popover
-
-          var suppress = open && wasSuppress === open.idx ? wasSuppress : undefined; // update the state
-
-          if (wasOpen || open) {
-            this.setState({
-              selectedIndex: 0,
-              filteredOptions: filteredOptions,
-              suppress: suppress,
-              search: search,
-              open: open,
-              query: query
-            });
-          } // announce the count of filtered options but only if they have loaded
-
-
-          if (open && this.state['options_' + open.idx]) {
-            this.announce(filteredOptions);
-          }
-        }
-      }
-    }
-  }, {
-    key: "componentWillUnmount",
-    value: function componentWillUnmount() {
-      this.toggleKeyEvents(false);
-      this.debouncedLoadOptions.cancel();
+          this.setState({
+            autocompleter: autocompleter,
+            AutocompleterUI: autocompleter !== this.state.autocompleter ? autocomplete_getAutoCompleterUI(autocompleter) : this.state.AutocompleterUI,
+            filterValue: query
+          });
+        }
+      }
     }
   }, {
     key: "render",
     value: function render() {
-      var _this3 = this;
-
       var _this$props3 = this.props,
           children = _this$props3.children,
-          instanceId = _this$props3.instanceId;
-      var _this$state6 = this.state,
-          open = _this$state6.open,
-          suppress = _this$state6.suppress,
-          selectedIndex = _this$state6.selectedIndex,
-          filteredOptions = _this$state6.filteredOptions;
-
-      var _ref4 = filteredOptions[selectedIndex] || {},
-          _ref4$key = _ref4.key,
-          selectedKey = _ref4$key === void 0 ? '' : _ref4$key;
-
-      var _ref5 = open || {},
-          className = _ref5.className,
-          idx = _ref5.idx;
-
-      var isExpanded = suppress !== idx && filteredOptions.length > 0;
+          instanceId = _this$props3.instanceId,
+          isSelected = _this$props3.isSelected;
+      var _this$state4 = this.state,
+          autocompleter = _this$state4.autocompleter,
+          selectedIndex = _this$state4.selectedIndex,
+          filteredOptions = _this$state4.filteredOptions,
+          AutocompleterUI = _this$state4.AutocompleterUI,
+          filterValue = _this$state4.filterValue;
+
+      var _ref5 = filteredOptions[selectedIndex] || {},
+          _ref5$key = _ref5.key,
+          selectedKey = _ref5$key === void 0 ? '' : _ref5$key;
+
+      var _ref6 = autocompleter || {},
+          className = _ref6.className;
+
+      var isExpanded = !!autocompleter && filteredOptions.length > 0;
       var listBoxId = isExpanded ? "components-autocomplete-listbox-".concat(instanceId) : null;
-      var activeId = isExpanded ? "components-autocomplete-item-".concat(instanceId, "-").concat(selectedKey) : null; // Disable reason: Clicking the editor should reset the autocomplete when the menu is suppressed
-
-      /* eslint-disable jsx-a11y/no-static-element-interactions, jsx-a11y/onclick-has-role, jsx-a11y/click-events-have-key-events */
-
-      return Object(external_this_wp_element_["createElement"])("div", {
-        ref: this.bindNode,
-        onClick: this.resetWhenSuppressed,
-        className: "components-autocomplete"
-      }, children({
+      var activeId = isExpanded ? "components-autocomplete-item-".concat(instanceId, "-").concat(selectedKey) : null;
+      return Object(external_this_wp_element_["createElement"])(external_this_wp_element_["Fragment"], null, children({
         isExpanded: isExpanded,
         listBoxId: listBoxId,
-        activeId: activeId
-      }), isExpanded && Object(external_this_wp_element_["createElement"])(popover, {
-        focusOnMount: false,
-        onClose: this.reset,
-        position: "top right",
-        className: "components-autocomplete__popover",
-        getAnchorRect: getCaretRect
-      }, Object(external_this_wp_element_["createElement"])("div", {
-        id: listBoxId,
-        role: "listbox",
-        className: "components-autocomplete__results"
-      }, isExpanded && Object(external_lodash_["map"])(filteredOptions, function (option, index) {
-        return Object(external_this_wp_element_["createElement"])(build_module_button, {
-          key: option.key,
-          id: "components-autocomplete-item-".concat(instanceId, "-").concat(option.key),
-          role: "option",
-          "aria-selected": index === selectedIndex,
-          disabled: option.isDisabled,
-          className: classnames_default()('components-autocomplete__result', className, {
-            'is-selected': index === selectedIndex
-          }),
-          onClick: function onClick() {
-            return _this3.select(option);
-          }
-        }, option.label);
-      }))));
-      /* eslint-enable jsx-a11y/no-static-element-interactions, jsx-a11y/onclick-has-role, jsx-a11y/click-events-have-key-events */
+        activeId: activeId,
+        onKeyDown: this.handleKeyDown
+      }), isSelected && AutocompleterUI && Object(external_this_wp_element_["createElement"])(AutocompleterUI, {
+        className: className,
+        filterValue: filterValue,
+        instanceId: instanceId,
+        listBoxId: listBoxId,
+        selectedIndex: selectedIndex,
+        onChangeOptions: this.onChangeOptions,
+        onSelect: this.select,
+        onReset: this.onReset
+      }));
     }
   }]);
 
   return Autocomplete;
 }(external_this_wp_element_["Component"]);
-/* harmony default export */ var autocomplete = (Object(external_this_wp_compose_["compose"])([with_spoken_messages, external_this_wp_compose_["withInstanceId"], with_focus_outside])(autocomplete_Autocomplete));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/base-control/index.js
-
-
-/**
- * External dependencies
- */
-
-
-function BaseControl(_ref) {
-  var id = _ref.id,
-      label = _ref.label,
-      help = _ref.help,
+/* harmony default export */ var autocomplete = (Object(external_this_wp_compose_["compose"])([with_spoken_messages, external_this_wp_compose_["withInstanceId"]])(autocomplete_Autocomplete));
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/flex/styles/flex-styles.js
+
+
+function flex_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 flex_styles_alignStyle = function alignStyle(_ref2) {
+  var align = _ref2.align;
+  var aligns = {
+    top: 'flex-start',
+    bottom: 'flex-end'
+  };
+  var value = aligns[align] || align;
+  return /*#__PURE__*/css_browser_esm({
+    alignItems: value
+  },  true ? "" : undefined);
+};
+
+var flex_styles_justifyStyle = function justifyStyle(_ref3) {
+  var justify = _ref3.justify,
+      isReversed = _ref3.isReversed;
+  var justifies = {
+    left: 'flex-start',
+    right: 'flex-end'
+  };
+  var value = justifies[justify] || justify;
+
+  if (isReversed && justifies[justify]) {
+    value = justify === 'left' ? justifies.right : justifies.left;
+  }
+
+  return /*#__PURE__*/css_browser_esm({
+    justifyContent: value
+  },  true ? "" : undefined);
+};
+
+var flex_styles_gapStyle = function gapStyle(_ref4) {
+  var gap = _ref4.gap,
+      isReversed = _ref4.isReversed;
+  var base = 4;
+  var value = typeof gap === 'number' ? base * gap : base;
+  var dir = isReversed ? 'left' : 'right';
+  var padding = "padding-".concat(dir);
+  return /*#__PURE__*/css_browser_esm("> *{", padding, ":", value, "px;&:last-child{", padding, ":0;}}" + ( true ? "" : undefined));
+};
+
+var flex_styles_ref =  true ? {
+  name: "8kj89b",
+  styles: "flex-direction:row-reverse;"
+} : undefined;
+
+var reversedStyles = function reversedStyles(_ref5) {
+  var isReversed = _ref5.isReversed;
+  if (!isReversed) return '';
+  return flex_styles_ref;
+};
+
+var Flex = styled_base_browser_esm("div", {
+  target: "eboqfv50",
+  label: "Flex"
+})("box-sizing:border-box;display:flex;", flex_styles_alignStyle, ";", flex_styles_justifyStyle, ";", flex_styles_gapStyle, ";", reversedStyles, ";" + ( true ? "" : undefined));
+var Item = styled_base_browser_esm("div", {
+  target: "eboqfv51",
+  label: "Item"
+})( true ? {
+  name: "13luw5d",
+  styles: "box-sizing:border-box;min-width:0;max-width:100%;"
+} : undefined);
+var Block = /*#__PURE__*/styled_base_browser_esm(Item, {
+  target: "eboqfv52",
+  label: "Block"
+})( true ? {
+  name: "1rr4qq7",
+  styles: "flex:1;"
+} : undefined);
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/flex/item.js
+
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+function FlexItem(_ref, ref) {
+  var className = _ref.className,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["className"]);
+
+  var classes = classnames_default()('components-flex__item', className);
+  return Object(external_this_wp_element_["createElement"])(Item, Object(esm_extends["a" /* default */])({}, props, {
+    className: classes,
+    ref: ref
+  }));
+}
+
+/* harmony default export */ var flex_item = (Object(external_this_wp_element_["forwardRef"])(FlexItem));
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/flex/block.js
+
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+function FlexBlock(_ref, ref) {
+  var className = _ref.className,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["className"]);
+
+  var classes = classnames_default()('components-flex__block', className);
+  return Object(external_this_wp_element_["createElement"])(Block, Object(esm_extends["a" /* default */])({}, props, {
+    className: classes,
+    ref: ref
+  }));
+}
+
+/* harmony default export */ var block = (Object(external_this_wp_element_["forwardRef"])(FlexBlock));
+
+// CONCATENATED MODULE: ./node_modules/react-use-gesture/dist/react-use-gesture.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 velocity
+ * @param delta the difference between current and previous vectors
+ * @param delta_t the time offset
+ * @param len the length of the delta vector
+ * @returns velocity
+ */
+
+function calculateVelocity(delta, delta_t, len) {
+  len = len || Math.hypot.apply(Math, delta);
+  return delta_t ? len / delta_t : 0;
+}
+/**
+ * Calculates velocities vector
+ * @template T the expected vector type
+ * @param delta the difference between current and previous vectors
+ * @param delta_t the time offset
+ * @returns velocities vector
+ */
+
+function calculateVelocities(delta, delta_t) {
+  return delta_t ? delta.map(function (v) {
+    return v / delta_t;
+  }) : Array(delta.length).fill(0);
+}
+/**
+ * Calculates distance
+ * @param movement the difference between current and initial vectors
+ * @returns distance
+ */
+
+function calculateDistance(movement) {
+  return Math.hypot.apply(Math, movement);
+}
+/**
+ * Calculates direction
+ * @template T the expected vector type
+ * @param delta
+ * @param len
+ * @returns direction
+ */
+
+function calculateDirection(delta, len) {
+  len = len || Math.hypot.apply(Math, delta) || 1;
+  return delta.map(function (v) {
+    return v / len;
+  });
+}
+/**
+ * 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, delta_t) {
+  var len = Math.hypot.apply(Math, delta);
+  return {
+    velocities: calculateVelocities(delta, delta_t),
+    velocity: calculateVelocity(delta, delta_t, len),
+    distance: calculateDistance(movement),
+    direction: calculateDirection(delta, len)
+  };
+}
+function getIntentionalDisplacement(movement, threshold) {
+  var abs = Math.abs(movement);
+  return abs >= threshold ? Math.sign(movement) * threshold : false;
+}
+
+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 _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(n);
+  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) {
+  var i = 0;
+
+  if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) {
+    if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) 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.");
+  }
+
+  i = o[Symbol.iterator]();
+  return i.next.bind(i);
+}
+
+// blank function
+function noop() {} // returns a function that chains all functions given as parameters
+
+var chainFns = function chainFns() {
+  for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {
+    fns[_key] = arguments[_key];
+  }
+
+  return function () {
+    for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
+      args[_key2] = arguments[_key2];
+    }
+
+    return fns.forEach(function (fn) {
+      return fn.apply(void 0, args);
+    });
+  };
+};
+var def = {
+  array: function array(value) {
+    return Array.isArray(value) ? value : [value, value];
+  },
+  withDefault: function withDefault(value, defaultIfUndefined) {
+    return value !== void 0 ? value : defaultIfUndefined;
+  }
+};
+function matchKeysFromObject(obj, matchingObject) {
+  var o = {};
+  Object.entries(obj).forEach(function (_ref) {
+    var key = _ref[0],
+        value = _ref[1];
+    return (value !== void 0 || key in matchingObject) && (o[key] = value);
+  });
+  return o;
+}
+function valueFn(v) {
+  return typeof v === 'function' ? v() : v;
+}
+
+function getInitialState() {
+  // common initial state for all gestures
+  var initialCommon = {
+    _active: false,
+    _blocked: false,
+    _intentional: [false, false],
+    _movement: [0, 0],
+    _initial: [0, 0],
+    _lastEventType: undefined,
+    event: undefined,
+    // currentTarget: undefined,
+    // pointerId: undefined,
+    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
+  }; // initial state for coordinates-based gestures
+
+  var initialCoordinates = {
+    axis: undefined,
+    xy: [0, 0],
+    vxvy: [0, 0],
+    velocity: 0,
+    distance: 0
+  }; // initial state for distance and angle-based gestures (pinch)
+
+  var initialDistanceAngle = {
+    da: [0, 0],
+    vdva: [0, 0],
+    origin: undefined,
+    turns: 0
+  }; // initial state object (used by the gesture controller)
+
+  return {
+    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
+    },
+    drag: _extends({}, initialCommon, {}, initialCoordinates, {
+      _isTap: true,
+      _delayedEvent: false,
+      tap: false,
+      swipe: [0, 0]
+    }),
+    pinch: _extends({}, initialCommon, {}, initialDistanceAngle),
+    wheel: _extends({}, initialCommon, {}, initialCoordinates),
+    move: _extends({}, initialCommon, {}, initialCoordinates),
+    scroll: _extends({}, initialCommon, {}, initialCoordinates)
+  };
+}
+
+var setListeners = function setListeners(add) {
+  return function (el, listeners, options) {
+    var action = add ? 'addEventListener' : 'removeEventListener';
+    listeners.forEach(function (_ref) {
+      var eventName = _ref[0],
+          fn = _ref[1];
+      return el[action](eventName, fn, options);
+    });
+  };
+};
+/**
+ * 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;
+  }
+}
+var addListeners = /*#__PURE__*/setListeners(true);
+var removeListeners = /*#__PURE__*/setListeners(false);
+/**
+ * Gets modifier keys from event
+ * @param event
+ * @returns modifier keys
+ */
+
+function getModifierKeys(event) {
+  var shiftKey = event.shiftKey,
+      altKey = event.altKey,
+      metaKey = event.metaKey,
+      ctrlKey = event.ctrlKey;
+  return {
+    shiftKey: shiftKey,
+    altKey: altKey,
+    metaKey: metaKey,
+    ctrlKey: ctrlKey
+  };
+}
+
+function getTouchEvents(event) {
+  if ('touches' in event) {
+    var touches = event.touches,
+        changedTouches = event.changedTouches;
+    return touches.length > 0 ? touches : changedTouches;
+  }
+
+  return null;
+}
+
+function getGenericEventData(event) {
+  var buttons = 'buttons' in event ? event.buttons : 0;
+  var touchEvents = getTouchEvents(event);
+  var touches = touchEvents && touchEvents.length || 0;
+  var down = touches > 0 || buttons > 0;
+  return _extends({
+    touches: touches,
+    down: down,
+    buttons: buttons
+  }, getModifierKeys(event));
+}
+/**
+ * Gets scroll event values
+ * @param event
+ * @returns scroll event values
+ */
+
+function getScrollEventValues(event) {
+  // 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 {
+    values: [scrollX || scrollLeft || 0, scrollY || scrollTop || 0]
+  };
+}
+/**
+ * Gets wheel event values.
+ * @param event
+ * @returns wheel event values
+ */
+
+function getWheelEventValues(event) {
+  var deltaX = event.deltaX,
+      deltaY = event.deltaY; //TODO implement polyfill ?
+  // https://developer.mozilla.org/en-US/docs/Web/Events/wheel#Polyfill
+
+  return {
+    values: [deltaX, deltaY]
+  };
+}
+/**
+ * Gets pointer event values.
+ * @param event
+ * @returns pointer event values
+ */
+
+function getPointerEventValues(event) {
+  var touchEvents = getTouchEvents(event);
+
+  var _ref2 = touchEvents ? touchEvents[0] : event,
+      clientX = _ref2.clientX,
+      clientY = _ref2.clientY;
+
+  return {
+    values: [clientX, clientY]
+  };
+}
+var WEBKIT_DISTANCE_SCALE_FACTOR = 260;
+/**
+ * Gets webkit gesture event values.
+ * @param event
+ * @returns webkit gesture event values
+ */
+
+function getWebkitGestureEventValues(event) {
+  return {
+    values: [event.scale * WEBKIT_DISTANCE_SCALE_FACTOR, event.rotation]
+  };
+}
+/**
+ * Gets two touches event data
+ * @param event
+ * @returns two touches event data
+ */
+
+function getTwoTouchesEventData(event) {
+  var touches = event.touches;
+  var dx = touches[1].clientX - touches[0].clientX;
+  var dy = touches[1].clientY - touches[0].clientY;
+  var values = [Math.hypot(dx, dy), -(Math.atan2(dx, dy) * 180) / Math.PI];
+  var origin = [(touches[1].clientX + touches[0].clientX) / 2, (touches[1].clientY + touches[0].clientY) / 2];
+  return {
+    values: values,
+    origin: origin
+  };
+}
+
+/**
+ * The controller will keep track of the state for all gestures and also keep
+ * track of timeouts, and window listeners.
+ *
+ * @template BinderType the type the bind function should return
+ */
+
+var Controller = function Controller() {
+  var _this = this;
+
+  this.state = getInitialState(); // state for all gestures
+
+  this.timeouts = {}; // keeping track of timeouts for debounced gestures (such as move, scroll, wheel)
+
+  this.domListeners = []; // when config.domTarget is set, we attach events directly to the dom
+
+  this.windowListeners = {}; // keeps track of window listeners added by gestures (drag only at the moment)
+
+  this.bindings = {}; // an object holding the handlers associated to the gestures
+
+  /**
+   * Function ran on component unmount: cleans timeouts and removes dom listeners set by the bind function.
+   */
+
+  this.clean = function () {
+    _this.resetBindings();
+
+    Object.values(_this.timeouts).forEach(clearTimeout);
+    Object.keys(_this.windowListeners).forEach(function (stateKey) {
+      return _this.removeWindowListeners(stateKey);
+    });
+  };
+  /**
+   * Function run every time the bind function is run (ie on every render).
+   * Resets the binding object and remove dom listeners attached to config.domTarget
+   */
+
+
+  this.resetBindings = function () {
+    _this.bindings = {};
+
+    var domTarget = _this.getDomTarget();
+
+    if (domTarget) {
+      removeListeners(domTarget, _this.domListeners, _this.config.eventOptions);
+      _this.domListeners = [];
+    }
+  };
+  /**
+   * Returns the domTarget element and parses a ref if needed.
+   */
+
+
+  this.getDomTarget = function () {
+    var domTarget = _this.config.domTarget;
+    return domTarget && 'current' in domTarget ? domTarget.current : domTarget;
+  };
+  /**
+   * Commodity function to let recognizers simply add listeners to config.window.
+   */
+
+
+  this.addWindowListeners = function (stateKey, listeners) {
+    if (!_this.config.window) return; // we use this.windowListeners to keep track of the listeners we add
+
+    _this.windowListeners[stateKey] = listeners;
+    addListeners(_this.config.window, listeners, _this.config.eventOptions);
+  };
+  /**
+   * Commodity function to let recognizers simply remove listeners to config.window.
+   */
+
+
+  this.removeWindowListeners = function (stateKey) {
+    if (!_this.config.window) return;
+    var listeners = _this.windowListeners[stateKey];
+
+    if (listeners) {
+      removeListeners(_this.config.window, listeners, _this.config.eventOptions);
+      delete _this.windowListeners[stateKey];
+    }
+  };
+  /**
+   * When config.domTarget is set, this function will add dom listeners to it
+   */
+
+
+  this.addDomTargetListeners = function (target) {
+    /** We iterate on the entries of this.binding for each event, then we chain
+     * the array of functions mapped to it and push them to this.domListeners
+     */
+    Object.entries(_this.bindings).forEach(function (_ref) {
+      var event = _ref[0],
+          fns = _ref[1];
+
+      _this.domListeners.push([event.substr(2).toLowerCase(), chainFns.apply(void 0, fns)]);
+    });
+    addListeners(target, _this.domListeners, _this.config.eventOptions);
+  };
+  /**
+   * this.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.
+   */
+
+
+  this.addBindings = function (eventNames, fn) {
+    var eventNamesArray = !Array.isArray(eventNames) ? [eventNames] : eventNames;
+    eventNamesArray.forEach(function (eventName) {
+      if (_this.bindings[eventName]) _this.bindings[eventName].push(fn);else _this.bindings[eventName] = [fn];
+    });
+  };
+  /**
+   * getBindings will return an object that will be bound by users
+   * to the react component they want to interact with.
+   */
+
+
+  this.getBindings = function () {
+    var bindings = {};
+    var captureString = _this.config.captureString;
+    Object.entries(_this.bindings).forEach(function (_ref2) {
+      var event = _ref2[0],
+          fns = _ref2[1];
+      var fnsArray = Array.isArray(fns) ? fns : [fns];
+      var key = event + captureString;
+      bindings[key] = chainFns.apply(void 0, fnsArray);
+    });
+    return bindings;
+  };
+
+  this.getBind = function () {
+    // If config.domTarget is set we add event listeners to it and return the clean function.
+    if (_this.config.domTarget) {
+      var domTarget = _this.getDomTarget();
+
+      domTarget && _this.addDomTargetListeners(domTarget);
+      return _this.clean;
+    } // If not, we return an object that contains gesture handlers mapped to react handler event keys.
+
+
+    return _this.getBindings();
+  };
+};
+
+/**
+ * @private
+ *
+ * Utility hook called by all gesture hooks and that will be responsible for the internals.
+ *
+ * @param {Partial<InternalHandlers>} handlers
+ * @param {RecognizerClasses} classes
+ * @param {InternalConfig} config
+ * @param {NativeHandlersPartial} nativeHandlers - native handlers such as onClick, onMouseDown, etc.
+ * @returns {(...args: any[]) => HookReturnType<Config>}
+ */
+
+function useRecognizers(handlers, classes, config, nativeHandlers) {
+  // The gesture controller keeping track of all gesture states
+  var controller = external_this_React_default.a.useMemo(function () {
+    var current = new Controller();
+    /**
+     * The bind function will create gesture recognizers and return the right
+     * bind object depending on whether `domTarget` was specified in the config object.
+     */
+
+    var bind = function bind() {
+      current.resetBindings();
+
+      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
+        args[_key] = arguments[_key];
+      }
+
+      for (var _iterator = _createForOfIteratorHelperLoose(classes), _step; !(_step = _iterator()).done;) {
+        var RecognizerClass = _step.value;
+        new RecognizerClass(current, args).addBindings();
+      } // we also add event bindings for native handlers
+
+
+      if (controller.nativeRefs) {
+        for (var eventName in controller.nativeRefs) {
+          current.addBindings(eventName, // @ts-ignore we're cheating when it comes to event type :(
+          controller.nativeRefs[eventName]);
+        }
+      }
+
+      return current.getBind();
+    };
+
+    return {
+      nativeRefs: nativeHandlers,
+      current: current,
+      bind: bind
+    };
+  }, []); // We reassign the config and handlers to the controller on every render.
+
+  controller.current.config = config;
+  controller.current.handlers = handlers; // We assign nativeHandlers, otherwise they won't be refreshed on the next render.
+
+  controller.nativeRefs = nativeHandlers; // Run controller clean functions on unmount.
+
+  external_this_React_default.a.useEffect(function () {
+    return controller.current.clean;
+  }, []);
+  return controller.bind;
+}
+
+/**
+ * @private
+ * Recognizer abstract class.
+ *
+ * @protected
+ * @abstract
+ * @type {StateKey<T>} whether the Recognizer should deal with coordinates or distance / angle
+ */
+
+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(stateKey, controller, args) {
+    var _this = this;
+
+    if (args === void 0) {
+      args = [];
+    }
+
+    this.stateKey = stateKey;
+    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;
+      }
+
+      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]);
+    }; // Convenience method to add window listeners for a given gesture
+
+
+    this.addWindowListeners = function (listeners) {
+      _this.controller.addWindowListeners(_this.stateKey, listeners);
+    }; // Convenience method to remove window listeners for a given gesture
+
+
+    this.removeWindowListeners = function () {
+      _this.controller.removeWindowListeners(_this.stateKey);
+    };
+    /**
+     * Returns the reinitialized start state for the gesture.
+     * Should be common to all gestures.
+     *
+     * @param {Vector2} values
+     * @param {UseGestureEvent} event
+     * @returns - the start state for the gesture
+     */
+
+
+    this.getStartGestureState = function (values, event) {
+      return _extends({}, getInitialState()[_this.stateKey], {
+        _active: true,
+        values: values,
+        initial: values,
+        offset: _this.state.offset,
+        lastOffset: _this.state.offset,
+        startTime: event.timeStamp
+      });
+    }; // Runs rubberband on a vector
+
+
+    this.rubberband = function (vector, rubberband) {
+      var bounds = _this.config.bounds;
+      /**
+       * [x, y]: [rubberband(x, min, max), rubberband(y, min, max)]
+       */
+
+      return vector.map(function (v, i) {
+        return rubberbandIfOutOfBounds(v, bounds[i][0], bounds[i][1], rubberband[i]);
+      });
+    };
+    /**
+     * Fires the gesture handler
+     *
+     * @param {boolean} [forceFlag] - if true, then the handler will fire even if the gesture is not intentional
+     */
+
+
+    this.fireGestureHandler = function (forceFlag) {
+      /**
+       * 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 do fire the handler.
+
+
+      var _this$state$_intentio = _this.state._intentional,
+          intentionalX = _this$state$_intentio[0],
+          intentionalY = _this$state$_intentio[1];
+      if (!forceFlag && intentionalX === false && intentionalY === false) return null;
+      var _this$state = _this.state,
+          _active = _this$state._active,
+          active = _this$state.active;
+      _this.state.active = _active;
+      _this.state.first = _active && !active; // `first` is true when the gesture becomes active
+
+      _this.state.last = active && !_active; // `last` is true when the gesture becomes inactive
+
+      _this.controller.state.shared[_this.ingKey] = _active; // Sets dragging, pinching, etc. to the gesture active state
+
+      var state = _extends({}, _this.controller.state.shared, {}, _this.state, {}, _this.mapStateValues(_this.state)); // @ts-ignore
+
+
+      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; // Cleans the gesture when the gesture is no longer active.
+
+      if (!_active) _this.clean();
+      return state;
+    };
+  } // Returns the gesture config
+
+
+  var _proto = Recognizer.prototype;
+
+  // Conveninence method to update the shared state
+  _proto.updateSharedState = function updateSharedState(sharedState) {
+    Object.assign(this.controller.state.shared, sharedState);
+  } // Conveninence method to update the gesture state
+  ;
+
+  _proto.updateGestureState = function updateGestureState(gestureState) {
+    Object.assign(this.state, gestureState);
+  }
+  /**
+   * Returns a generic, common payload for all gestures from an event.
+   *
+   * @param {UseGestureEvent} event
+   * @param {boolean} [isStartEvent]
+   * @returns - the generic gesture payload
+   */
+  ;
+
+  _proto.getGenericPayload = function getGenericPayload(event, isStartEvent) {
+    var timeStamp = event.timeStamp,
+        type = event.type;
+    var _this$state2 = this.state,
+        values = _this$state2.values,
+        startTime = _this$state2.startTime;
+    return {
+      _lastEventType: type,
+      event: event,
+      timeStamp: timeStamp,
+      elapsedTime: isStartEvent ? 0 : timeStamp - startTime,
+      args: this.args,
+      previous: values
+    };
+  }
+  /**
+   * 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, _state) {
+    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, state) {
+    if (state === void 0) {
+      state = this.state;
+    }
+
+    var _this$config = this.config,
+        initial = _this$config.initial,
+        threshold = _this$config.threshold,
+        rubberband = _this$config.rubberband;
+    var t0 = threshold[0],
+        t1 = threshold[1];
+    var _state2 = state,
+        _initial = _state2._initial,
+        _active = _state2._active,
+        intentional = _state2._intentional,
+        lastOffset = _state2.lastOffset,
+        prevMovement = _state2.movement;
+    var i0 = intentional[0],
+        i1 = intentional[1];
+
+    var _this$getInternalMove = this.getInternalMovement(values, state),
+        _m0 = _this$getInternalMove[0],
+        _m1 = _this$getInternalMove[1];
+    /**
+     * For both dimensions of the gesture, check its intentionality on each frame.
+     */
+
+
+    if (i0 === false) {
+      i0 = getIntentionalDisplacement(_m0, t0);
+    }
+
+    if (i1 === false) {
+      i1 = getIntentionalDisplacement(_m1, t1);
+    } // Get gesture specific state properties based on intentionality and movement.
+
+
+    var intentionalityCheck = this.checkIntentionality([i0, i1], [_m0, _m1], state);
+    var _intentional = intentionalityCheck._intentional,
+        _blocked = intentionalityCheck._blocked;
+    var _i0 = _intentional[0],
+        _i1 = _intentional[1];
+    var _movement = [_m0, _m1];
+    if (_i0 !== false && intentional[0] === false) _initial[0] = valueFn(initial)[0];
+    if (_i1 !== false && intentional[1] === false) _initial[1] = valueFn(initial)[1];
+    /**
+     * If the gesture has been blocked (from gesture specific checkIntentionality),
+     * stop right there.
+     */
+
+    if (_blocked) return _extends({}, intentionalityCheck, {
+      _movement: _movement,
+      delta: [0, 0]
+    });
+    /**
+     * 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 = [_i0 !== false ? _m0 - _i0 : valueFn(initial)[0], _i1 !== false ? _m1 - _i1 : valueFn(initial)[1]];
+    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 = this.rubberband(addV(movement, _initial), _rubberband); // rubberbanded movement
+
+    return _extends({}, intentionalityCheck, {
+      _initial: _initial,
+      _movement: _movement,
+      movement: movement,
+      offset: this.rubberband(offset, _rubberband),
+      delta: subV(movement, prevMovement)
+    });
+  } // Cleans the gesture. Can be overriden by gestures.
+  ;
+
+  _proto.clean = function clean() {
+    this.clearTimeout();
+    this.removeWindowListeners();
+  };
+
+  _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];
+    }
+  }]);
+
+  return Recognizer;
+}();
+
+/**
+ * @private
+ * Abstract class for coordinates-based gesture recongizers
+ * @abstract
+ * @class CoordinatesRecognizer
+ * @extends {Recognizer<T>}
+ * @template T
+ */
+
+var CoordinatesRecognizer = /*#__PURE__*/function (_Recognizer) {
+  _inheritsLoose(CoordinatesRecognizer, _Recognizer);
+
+  function CoordinatesRecognizer() {
+    return _Recognizer.apply(this, arguments) || this;
+  }
+
+  var _proto = CoordinatesRecognizer.prototype;
+
+  /**
+   * Returns the real movement (without taking intentionality into acount)
+   */
+  _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.
+   *
+   * @param {[FalseOrNumber, FalseOrNumber]} _intentional
+   * @param {Vector2} _movement
+   * @param {PartialGestureState<T>} state
+   */
+  ;
+
+  _proto.checkIntentionality = function checkIntentionality(_intentional, _movement, state) {
+    var _intentional2 = _intentional,
+        _ix = _intentional2[0],
+        _iy = _intentional2[1];
+    var intentionalMovement = _ix !== false || _iy !== false;
+    var axis = state.axis;
+    var _blocked = false; // If the movement is intentional, we can compute axis.
+
+    if (intentionalMovement) {
+      var _movement$map = _movement.map(Math.abs),
+          absX = _movement$map[0],
+          absY = _movement$map[1];
+
+      var _this$config = this.config,
+          configAxis = _this$config.axis,
+          lockDirection = _this$config.lockDirection; // We make sure we only set axis value if it hadn't been detected before.
+
+      axis = axis || (absX > absY ? 'x' : absX < absY ? 'y' : undefined);
+
+      if (!!configAxis || lockDirection) {
+        if (!!axis) {
+          // If the detected axis doesn't match the config axis we block the gesture
+          if (!!configAxis && axis !== configAxis) _blocked = true;else {
+            // Otherwise we prevent the gesture from updating the unwanted axis.
+            var lockedIndex = axis === 'x' ? 1 : 0;
+            _intentional[lockedIndex] = false;
+          }
+        } else {
+          // Until we've detected the axis, we prevent the hnadler from updating.
+          _intentional = [false, false];
+        }
+      }
+    }
+
+    return {
+      _intentional: _intentional,
+      _blocked: _blocked,
+      axis: axis
+    };
+  };
+
+  _proto.getKinematics = function getKinematics(values, event) {
+    var timeStamp = this.state.timeStamp;
+    var movementDetection = this.getMovement(values, this.state);
+    var _blocked = movementDetection._blocked,
+        delta = movementDetection.delta,
+        movement = movementDetection.movement;
+    if (_blocked) return movementDetection;
+    var delta_t = event.timeStamp - timeStamp;
+    var kinematics = calculateAllKinematics(movement, delta, delta_t);
+    return _extends({
+      values: values,
+      delta: delta
+    }, movementDetection, {}, kinematics);
+  };
+
+  _proto.mapStateValues = function mapStateValues(state) {
+    return {
+      xy: state.values,
+      vxvy: state.velocities
+    };
+  };
+
+  return CoordinatesRecognizer;
+}(Recognizer);
+
+var TAP_DISTANCE_THRESHOLD = 3;
+var SWIPE_MAX_ELAPSED_TIME = 220;
+var FILTER_REPEATED_EVENTS_DELAY = 200;
+
+var DragRecognizer = /*#__PURE__*/function (_CoordinatesRecognize) {
+  _inheritsLoose(DragRecognizer, _CoordinatesRecognize);
+
+  function DragRecognizer(controller, args) {
+    var _this;
+
+    _this = _CoordinatesRecognize.call(this, 'drag', controller, args) || this;
+    _this.ingKey = 'dragging';
+    _this.wasTouch = false;
+
+    _this.isEventTypeTouch = function (type) {
+      return !!type && type.indexOf('touch') === 0;
+    };
+
+    _this.dragShouldStart = function (event) {
+      var _getGenericEventData = getGenericEventData(event),
+          touches = _getGenericEventData.touches;
+
+      var _lastEventType = _this.state._lastEventType;
+      /**
+       * This tries to filter out mouse events triggered by touch screens
+       * */
+      // If the previous gesture was touch-based, and the current one is mouse based,
+      // this means that we might be dealing with mouse simulated events if they're close to
+      // each other. We're only doing this check when we're not using pointer events.
+
+      if (!_this.controller.config.pointer && _this.isEventTypeTouch(_lastEventType) && !_this.isEventTypeTouch(event.type)) {
+        var delay = Math.abs(event.timeStamp - _this.state.startTime);
+        if (delay < FILTER_REPEATED_EVENTS_DELAY) return false;
+      }
+
+      return _this.enabled && touches < 2;
+    };
+
+    _this.setPointers = function (event) {
+      var currentTarget = event.currentTarget,
+          pointerId = event.pointerId;
+      if (currentTarget) currentTarget.setPointerCapture(pointerId);
+
+      _this.updateGestureState({
+        currentTarget: currentTarget,
+        pointerId: pointerId
+      });
+    };
+
+    _this.removePointers = function () {
+      var _this$state = _this.state,
+          currentTarget = _this$state.currentTarget,
+          pointerId = _this$state.pointerId;
+      if (currentTarget && pointerId) currentTarget.releasePointerCapture(pointerId);
+    };
+
+    _this.setListeners = function (isTouch) {
+      _this.removeWindowListeners();
+
+      var dragListeners = isTouch ? [['touchmove', _this.onDragChange], ['touchend', _this.onDragEnd], ['touchcancel', _this.onDragEnd]] : [['mousemove', _this.onDragChange], ['mouseup', _this.onDragEnd]];
+
+      _this.addWindowListeners(dragListeners);
+    };
+
+    _this.onDragStart = function (event) {
+      if (!_this.dragShouldStart(event)) return; // if pointers events
+
+      if (_this.controller.config.pointer) _this.setPointers(event);else _this.setListeners(_this.isEventTypeTouch(event.type));
+
+      if (_this.config.delay > 0) {
+        _this.state._delayedEvent = true;
+        if (typeof event.persist === 'function') event.persist();
+
+        _this.setTimeout(function () {
+          return _this.startDrag(event);
+        }, _this.config.delay);
+      } else {
+        _this.startDrag(event);
+      }
+    };
+
+    _this.onDragChange = function (event) {
+      var canceled = _this.state.canceled;
+      if (canceled) return;
+
+      if (!_this.state._active) {
+        if (_this.state._delayedEvent) {
+          _this.clearTimeout();
+
+          _this.startDrag(event);
+        }
+
+        return;
+      }
+
+      var genericEventData = getGenericEventData(event);
+
+      if (!genericEventData.down) {
+        _this.onDragEnd(event);
+
+        return;
+      }
+
+      _this.updateSharedState(genericEventData);
+
+      var _getPointerEventValue = getPointerEventValues(event),
+          values = _getPointerEventValue.values;
+
+      var kinematics = _this.getKinematics(values, event);
+
+      var _isTap = _this.state._isTap;
+      if (_isTap && calculateDistance(kinematics._movement) >= TAP_DISTANCE_THRESHOLD) _isTap = false;
+
+      _this.updateGestureState(_extends({}, _this.getGenericPayload(event), {}, kinematics, {
+        _isTap: _isTap,
+        cancel: function cancel() {
+          return _this.onCancel();
+        }
+      }));
+
+      _this.fireGestureHandler();
+    };
+
+    _this.onDragEnd = function (event) {
+      _this.state._active = false;
+
+      _this.updateSharedState({
+        down: false,
+        buttons: 0,
+        touches: 0
+      });
+
+      var _this$state2 = _this.state,
+          _isTap = _this$state2._isTap,
+          values = _this$state2.values,
+          _this$state2$velociti = _this$state2.velocities,
+          vx = _this$state2$velociti[0],
+          vy = _this$state2$velociti[1],
+          _this$state2$movement = _this$state2.movement,
+          mx = _this$state2$movement[0],
+          my = _this$state2$movement[1],
+          _this$state2$_intenti = _this$state2._intentional,
+          ix = _this$state2$_intenti[0],
+          iy = _this$state2$_intenti[1];
+
+      var endState = _extends({}, _this.getGenericPayload(event), {}, _this.getMovement(values));
+
+      var elapsedTime = endState.elapsedTime;
+      var _this$config = _this.config,
+          _this$config$swipeVel = _this$config.swipeVelocity,
+          svx = _this$config$swipeVel[0],
+          svy = _this$config$swipeVel[1],
+          _this$config$swipeDis = _this$config.swipeDistance,
+          sx = _this$config$swipeDis[0],
+          sy = _this$config$swipeDis[1];
+      var swipe = [0, 0];
+
+      if (elapsedTime < SWIPE_MAX_ELAPSED_TIME) {
+        if (ix !== false && Math.abs(vx) > svx && Math.abs(mx) > sx) swipe[0] = Math.sign(vx);
+        if (iy !== false && Math.abs(vy) > svy && Math.abs(my) > sy) swipe[1] = Math.sign(vy);
+      }
+
+      _this.updateGestureState(_extends({
+        event: event
+      }, endState, {
+        tap: _isTap,
+        swipe: swipe
+      }));
+
+      _this.fireGestureHandler(_this.config.filterTaps && _this.state._isTap);
+    };
+
+    _this.clean = function () {
+      _CoordinatesRecognize.prototype.clean.call(_assertThisInitialized(_this));
+
+      _this.state._delayedEvent = false;
+      if (_this.controller.config.pointer) _this.removePointers();
+    };
+
+    _this.onCancel = function () {
+      _this.updateGestureState({
+        canceled: true,
+        cancel: noop
+      });
+
+      _this.state._active = false;
+
+      _this.updateSharedState({
+        down: false,
+        buttons: 0,
+        touches: 0
+      });
+
+      requestAnimationFrame(function () {
+        return _this.fireGestureHandler();
+      });
+    };
+
+    return _this;
+  }
+
+  var _proto = DragRecognizer.prototype;
+
+  _proto.startDrag = function startDrag(event) {
+    var _this2 = this;
+
+    var _getPointerEventValue2 = getPointerEventValues(event),
+        values = _getPointerEventValue2.values;
+
+    this.updateSharedState(getGenericEventData(event));
+
+    var startState = _extends({}, this.getStartGestureState(values, event), {}, this.getGenericPayload(event, true));
+
+    this.updateGestureState(_extends({}, startState, {}, this.getMovement(values, startState), {
+      cancel: function cancel() {
+        return _this2.onCancel();
+      }
+    }));
+    this.fireGestureHandler();
+  };
+
+  _proto.addBindings = function addBindings() {
+    if (this.controller.config.pointer) {
+      this.controller.addBindings('onPointerDown', this.onDragStart);
+      this.controller.addBindings('onPointerMove', this.onDragChange);
+      this.controller.addBindings(['onPointerUp', 'onPointerCancel'], this.onDragEnd);
+    } else {
+      this.controller.addBindings(['onTouchStart', 'onMouseDown'], this.onDragStart);
+    }
+  };
+
+  return DragRecognizer;
+}(CoordinatesRecognizer);
+
+var DEFAULT_DRAG_DELAY = 180;
+var DEFAULT_RUBBERBAND = 0.15;
+var DEFAULT_SWIPE_VELOCITY = 0.5;
+var DEFAULT_SWIPE_DISTANCE = 60;
+var defaultWindow = typeof window !== 'undefined' ? window : undefined;
+var defaultCoordinatesOptions = {
+  lockDirection: false,
+  axis: undefined,
+  bounds: undefined
+};
+/**
+ * @private
+ *
+ * Returns the internal generic option object.
+ *
+ * @param {Partial<GenericOptions>} [config={}]
+ * @returns {InternalGenericOptions}
+ */
+
+function getInternalGenericOptions(config) {
+  if (config === void 0) {
+    config = {};
+  }
+
+  var _config = config,
+      _config$eventOptions = _config.eventOptions;
+  _config$eventOptions = _config$eventOptions === void 0 ? {} : _config$eventOptions;
+
+  var _config$eventOptions$ = _config$eventOptions.passive,
+      passive = _config$eventOptions$ === void 0 ? true : _config$eventOptions$,
+      _config$eventOptions$2 = _config$eventOptions.capture,
+      capture = _config$eventOptions$2 === void 0 ? false : _config$eventOptions$2,
+      _config$eventOptions$3 = _config$eventOptions.pointer,
+      pointer = _config$eventOptions$3 === void 0 ? false : _config$eventOptions$3,
+      _config$window = _config.window,
+      window = _config$window === void 0 ? defaultWindow : _config$window,
+      _config$domTarget = _config.domTarget,
+      domTarget = _config$domTarget === void 0 ? undefined : _config$domTarget,
+      _config$enabled = _config.enabled,
+      enabled = _config$enabled === void 0 ? true : _config$enabled,
+      restConfig = _objectWithoutPropertiesLoose(_config, ["eventOptions", "window", "domTarget", "enabled"]);
+
+  return _extends({}, restConfig, {
+    enabled: enabled,
+    domTarget: domTarget,
+    window: window,
+    // passive is always true if there's no domTarget
+    eventOptions: {
+      passive: !domTarget || !!passive,
+      capture: !!capture
+    },
+    captureString: capture ? 'Capture' : '',
+    pointer: !!pointer
+  });
+}
+function getInternalGestureOptions(gestureConfig) {
+  var _gestureConfig$thresh = gestureConfig.threshold,
+      threshold = _gestureConfig$thresh === void 0 ? undefined : _gestureConfig$thresh,
+      _gestureConfig$rubber = gestureConfig.rubberband,
+      rubberband = _gestureConfig$rubber === void 0 ? 0 : _gestureConfig$rubber,
+      _gestureConfig$enable = gestureConfig.enabled,
+      enabled = _gestureConfig$enable === void 0 ? true : _gestureConfig$enable,
+      _gestureConfig$initia = gestureConfig.initial,
+      initial = _gestureConfig$initia === void 0 ? [0, 0] : _gestureConfig$initia;
+  if (typeof rubberband === 'boolean') rubberband = rubberband ? DEFAULT_RUBBERBAND : 0;
+  if (threshold === void 0) threshold = 0;
+  return {
+    enabled: enabled,
+    initial: initial,
+    threshold: def.array(threshold),
+    rubberband: def.array(rubberband)
+  };
+}
+function getInternalCoordinatesOptions(coordinatesConfig) {
+  if (coordinatesConfig === void 0) {
+    coordinatesConfig = {};
+  }
+
+  var _coordinatesConfig = coordinatesConfig,
+      axis = _coordinatesConfig.axis,
+      lockDirection = _coordinatesConfig.lockDirection,
+      _coordinatesConfig$bo = _coordinatesConfig.bounds,
+      bounds = _coordinatesConfig$bo === void 0 ? {} : _coordinatesConfig$bo,
+      internalOptions = _objectWithoutPropertiesLoose(_coordinatesConfig, ["axis", "lockDirection", "bounds"]);
+
+  var boundsArray = [[def.withDefault(bounds.left, -Infinity), def.withDefault(bounds.right, Infinity)], [def.withDefault(bounds.top, -Infinity), def.withDefault(bounds.bottom, Infinity)]];
+  return _extends({}, getInternalGestureOptions(internalOptions), {}, defaultCoordinatesOptions, {}, matchKeysFromObject({
+    axis: axis,
+    lockDirection: lockDirection
+  }, coordinatesConfig), {
+    bounds: boundsArray
+  });
+}
+function getInternalDistanceAngleOptions(distanceAngleConfig) {
+  if (distanceAngleConfig === void 0) {
+    distanceAngleConfig = {};
+  }
+
+  var _distanceAngleConfig = distanceAngleConfig,
+      _distanceAngleConfig$ = _distanceAngleConfig.distanceBounds,
+      distanceBounds = _distanceAngleConfig$ === void 0 ? {} : _distanceAngleConfig$,
+      _distanceAngleConfig$2 = _distanceAngleConfig.angleBounds,
+      angleBounds = _distanceAngleConfig$2 === void 0 ? {} : _distanceAngleConfig$2,
+      internalOptions = _objectWithoutPropertiesLoose(_distanceAngleConfig, ["distanceBounds", "angleBounds"]);
+
+  var boundsArray = [[def.withDefault(distanceBounds.min, -Infinity), def.withDefault(distanceBounds.max, Infinity)], [def.withDefault(angleBounds.min, -Infinity), def.withDefault(angleBounds.max, Infinity)]];
+  return _extends({}, getInternalGestureOptions(internalOptions), {
+    bounds: boundsArray
+  });
+}
+function getInternalDragOptions(dragConfig) {
+  if (dragConfig === void 0) {
+    dragConfig = {};
+  }
+
+  var _dragConfig = dragConfig,
+      enabled = _dragConfig.enabled,
+      threshold = _dragConfig.threshold,
+      bounds = _dragConfig.bounds,
+      rubberband = _dragConfig.rubberband,
+      initial = _dragConfig.initial,
+      dragOptions = _objectWithoutPropertiesLoose(_dragConfig, ["enabled", "threshold", "bounds", "rubberband", "initial"]);
+
+  var _dragOptions$swipeVel = dragOptions.swipeVelocity,
+      swipeVelocity = _dragOptions$swipeVel === void 0 ? DEFAULT_SWIPE_VELOCITY : _dragOptions$swipeVel,
+      _dragOptions$swipeDis = dragOptions.swipeDistance,
+      swipeDistance = _dragOptions$swipeDis === void 0 ? DEFAULT_SWIPE_DISTANCE : _dragOptions$swipeDis,
+      _dragOptions$delay = dragOptions.delay,
+      delay = _dragOptions$delay === void 0 ? false : _dragOptions$delay,
+      _dragOptions$filterTa = dragOptions.filterTaps,
+      filterTaps = _dragOptions$filterTa === void 0 ? false : _dragOptions$filterTa,
+      axis = dragOptions.axis,
+      lockDirection = dragOptions.lockDirection;
+
+  if (threshold === void 0) {
+    threshold = Math.max(0, filterTaps ? 3 : 0, lockDirection || axis ? 1 : 0);
+  } else {
+    filterTaps = true;
+  }
+
+  var internalCoordinatesOptions = getInternalCoordinatesOptions(matchKeysFromObject({
+    enabled: enabled,
+    threshold: threshold,
+    bounds: bounds,
+    rubberband: rubberband,
+    axis: axis,
+    lockDirection: lockDirection,
+    initial: initial
+  }, dragConfig));
+  return _extends({}, internalCoordinatesOptions, {
+    filterTaps: filterTaps || internalCoordinatesOptions.threshold[0] + internalCoordinatesOptions.threshold[1] > 0,
+    swipeVelocity: def.array(swipeVelocity),
+    swipeDistance: def.array(swipeDistance),
+    delay: typeof delay === 'number' ? delay : delay ? DEFAULT_DRAG_DELAY : 0
+  });
+}
+
+/**
+ * @public
+ *
+ * Drag hook.
+ *
+ * @param {Handler<'drag'>} handler - the function fired every time the drag gesture updates
+ * @param {(Config | {})} [config={}] - the config object including generic options and drag options
+ * @returns {(...args: any[]) => HookReturnType<Config>}
+ */
+
+function useDrag(handler, config) {
+  if (config === void 0) {
+    config = {};
+  }
+
+  var _config = config,
+      domTarget = _config.domTarget,
+      eventOptions = _config.eventOptions,
+      window = _config.window,
+      drag = _objectWithoutPropertiesLoose(_config, ["domTarget", "eventOptions", "window"]);
+  /**
+   * TODO: at the moment we recompute the config object at every render
+   * this could probably be optimized
+   */
+
+
+  var mergedConfig = _extends({}, getInternalGenericOptions({
+    domTarget: domTarget,
+    eventOptions: eventOptions,
+    window: window
+  }), {
+    drag: getInternalDragOptions(drag)
+  });
+
+  return useRecognizers({
+    drag: handler
+  }, [DragRecognizer], mergedConfig);
+}
+
+/**
+ * @private
+ * Abstract class for distance/angle-based gesture recongizers
+ * @abstract
+ * @class DistanceAngleRecognizer
+ * @extends {Recognizer<T>}
+ * @template T
+ */
+
+var DistanceAngleRecognizer = /*#__PURE__*/function (_Recognizer) {
+  _inheritsLoose(DistanceAngleRecognizer, _Recognizer);
+
+  function DistanceAngleRecognizer() {
+    return _Recognizer.apply(this, arguments) || this;
+  }
+
+  var _proto = DistanceAngleRecognizer.prototype;
+
+  /**
+   * Returns the real movement (without taking intentionality into acount)
+   */
+  _proto.getInternalMovement = function getInternalMovement(_ref, state) {
+    var d = _ref[0],
+        a = _ref[1];
+    var da = state.values,
+        turns = state.turns,
+        initial = state.initial; // angle might not be defined when ctrl wheel is used for zoom only
+    // in that case we set it to the previous angle value
+
+    a = a !== void 0 ? a : da[1];
+    var delta_a = a - da[1];
+    /**
+     * The angle value might jump from 179deg to -179deg when we actually want to
+     * read 181deg to ensure continuity. To make that happen, we detect when the jump
+     * is supsiciously high (ie > 270deg) and increase the `turns` value
+     */
+
+    var newTurns = Math.abs(delta_a) > 270 ? turns + Math.sign(delta_a) : turns; // we update the angle difference to its corrected value
+
+    var movement_d = d - initial[0];
+    var movement_a = a - 360 * newTurns - initial[1];
+    return [movement_d, movement_a];
+  };
+
+  _proto.getKinematics = function getKinematics(values, event) {
+    var _this$state = this.state,
+        timeStamp = _this$state.timeStamp,
+        initial = _this$state.initial;
+    var movementDetection = this.getMovement(values, this.state);
+    var delta = movementDetection.delta,
+        movement = movementDetection.movement;
+    var turns = (values[1] - movement[1] - initial[1]) / 360;
+    var delta_t = event.timeStamp - timeStamp;
+    var kinematics = calculateAllKinematics(movement, delta, delta_t);
+    return _extends({
+      values: values,
+      delta: delta,
+      turns: turns
+    }, movementDetection, {}, kinematics);
+  };
+
+  _proto.mapStateValues = function mapStateValues(state) {
+    return {
+      da: state.values,
+      vdva: state.velocities
+    };
+  };
+
+  return DistanceAngleRecognizer;
+}(Recognizer);
+
+var PinchRecognizer = /*#__PURE__*/function (_DistanceAngleRecogni) {
+  _inheritsLoose(PinchRecognizer, _DistanceAngleRecogni);
+
+  function PinchRecognizer(controller, args) {
+    var _this;
+
+    _this = _DistanceAngleRecogni.call(this, 'pinch', controller, args) || this;
+    _this.ingKey = 'pinching';
+
+    _this.pinchShouldStart = function (event) {
+      var _getGenericEventData = getGenericEventData(event),
+          touches = _getGenericEventData.touches;
+
+      return _this.enabled && touches === 2;
+    };
+
+    _this.onPinchStart = function (event) {
+      if (!_this.pinchShouldStart(event)) return;
+
+      var _getTwoTouchesEventDa = getTwoTouchesEventData(event),
+          values = _getTwoTouchesEventDa.values,
+          origin = _getTwoTouchesEventDa.origin;
+
+      _this.updateSharedState(getGenericEventData(event));
+
+      var startState = _extends({}, _this.getStartGestureState(values, event), {}, _this.getGenericPayload(event, true));
+
+      _this.updateGestureState(_extends({}, startState, {}, _this.getMovement(values, startState), {
+        origin: origin,
+        cancel: function cancel() {
+          return _this.onCancel();
+        }
+      }));
+
+      _this.fireGestureHandler();
+    };
+
+    _this.onPinchChange = function (event) {
+      var _this$state = _this.state,
+          canceled = _this$state.canceled,
+          timeStamp = _this$state.timeStamp,
+          _active = _this$state._active;
+      if (canceled || !_active) return;
+      var genericEventData = getGenericEventData(event);
+      if (genericEventData.touches !== 2 || event.timeStamp === timeStamp) return;
+
+      _this.updateSharedState(genericEventData);
+
+      var _getTwoTouchesEventDa2 = getTwoTouchesEventData(event),
+          values = _getTwoTouchesEventDa2.values,
+          origin = _getTwoTouchesEventDa2.origin;
+
+      var kinematics = _this.getKinematics(values, event);
+
+      _this.updateGestureState(_extends({}, _this.getGenericPayload(event), {}, kinematics, {
+        origin: origin,
+        cancel: function cancel() {
+          return _this.onCancel();
+        }
+      }));
+
+      _this.fireGestureHandler();
+    };
+
+    _this.onPinchEnd = function (event) {
+      if (!_this.state.active) return;
+      _this.state._active = false;
+
+      _this.updateSharedState({
+        down: false,
+        touches: 0
+      });
+
+      _this.updateGestureState(_extends({
+        event: event
+      }, _this.getGenericPayload(event), {}, _this.getMovement(_this.state.values)));
+
+      _this.fireGestureHandler();
+    };
+
+    _this.onCancel = function () {
+      _this.state._active = false;
+
+      _this.updateGestureState({
+        canceled: true,
+        cancel: noop
+      });
+
+      _this.updateSharedState({
+        down: false,
+        touches: 0
+      });
+
+      requestAnimationFrame(function () {
+        return _this.fireGestureHandler();
+      });
+    };
+    /**
+     * PINCH WITH WEBKIT GESTURES
+     */
+
+
+    _this.onGestureStart = function (event) {
+      if (!_this.enabled) return;
+      event.preventDefault();
+
+      var _getWebkitGestureEven = getWebkitGestureEventValues(event),
+          values = _getWebkitGestureEven.values;
+
+      _this.updateSharedState(getGenericEventData(event));
+
+      var startState = _extends({}, _this.getStartGestureState(values, event), {}, _this.getGenericPayload(event, true));
+
+      _this.updateGestureState(_extends({}, startState, {}, _this.getMovement(values, startState), {
+        cancel: function cancel() {
+          return _this.onCancel();
+        }
+      }));
+
+      _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);
+
+      var _getWebkitGestureEven2 = getWebkitGestureEventValues(event),
+          values = _getWebkitGestureEven2.values;
+
+      var kinematics = _this.getKinematics(values, event);
+
+      _this.updateGestureState(_extends({}, _this.getGenericPayload(event), {}, kinematics, {
+        cancel: function cancel() {
+          return _this.onCancel();
+        }
+      }));
+
+      _this.fireGestureHandler();
+    };
+
+    _this.onGestureEnd = function (event) {
+      event.preventDefault();
+      if (!_this.state.active) return;
+      _this.state._active = false;
+
+      _this.updateSharedState({
+        down: false,
+        touches: 0
+      });
+
+      _this.updateGestureState(_extends({
+        event: event
+      }, _this.getGenericPayload(event), {}, _this.getMovement(_this.state.values)));
+
+      _this.fireGestureHandler();
+    };
+
+    _this.updateTouchData = function (event) {
+      if (!_this.enabled || event.touches.length !== 2 || !_this.state._active) return;
+
+      var _getTwoTouchesEventDa3 = getTwoTouchesEventData(event),
+          origin = _getTwoTouchesEventDa3.origin;
+
+      _this.state.origin = origin;
+    };
+    /**
+     * PINCH WITH WHEEL
+     */
+
+
+    _this.wheelShouldRun = function (event) {
+      return _this.enabled && event.ctrlKey;
+    };
+
+    _this.getWheelValuesFromEvent = function (event) {
+      var _getWheelEventValues = getWheelEventValues(event),
+          _getWheelEventValues$ = _getWheelEventValues.values,
+          delta_d = _getWheelEventValues$[1];
+
+      var _this$state$values = _this.state.values,
+          prev_d = _this$state$values[0],
+          prev_a = _this$state$values[1];
+      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: [0, delta_d]
+      };
+    };
+
+    _this.onWheel = function (event) {
+      if (!_this.wheelShouldRun(event)) return;
+
+      _this.clearTimeout();
+
+      _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 (!_this.controller.config.eventOptions.passive) {
+        event.preventDefault();
+      } else if (false) {}
+
+      _this.updateSharedState(getGenericEventData(event));
+
+      var startState = _extends({}, _this.getStartGestureState(values, event), {}, _this.getGenericPayload(event, true), {
+        initial: _this.state.values
+      });
+
+      _this.updateGestureState(_extends({}, startState, {}, _this.getMovement(values, startState), {
+        offset: values,
+        delta: delta,
+        origin: origin
+      }));
+
+      _this.fireGestureHandler();
+    };
+
+    _this.onWheelChange = function (event) {
+      var genericEventData = getGenericEventData(event);
+
+      _this.updateSharedState(genericEventData);
+
+      var _this$getWheelValuesF2 = _this.getWheelValuesFromEvent(event),
+          values = _this$getWheelValuesF2.values,
+          origin = _this$getWheelValuesF2.origin,
+          delta = _this$getWheelValuesF2.delta;
+
+      var kinematics = _this.getKinematics(values, event);
+
+      _this.updateGestureState(_extends({}, _this.getGenericPayload(event), {}, kinematics, {
+        origin: origin,
+        delta: delta
+      }));
+
+      _this.fireGestureHandler();
+    };
+
+    _this.onWheelEnd = function () {
+      _this.state._active = false;
+
+      _this.updateGestureState(_this.getMovement(_this.state.values));
+
+      _this.fireGestureHandler();
+    };
+
+    return _this;
+  }
+
+  var _proto = PinchRecognizer.prototype;
+
+  _proto.addBindings = function addBindings() {
+    // 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 && supportsGestureEvents()) {
+      this.controller.addBindings('onGestureStart', this.onGestureStart);
+      this.controller.addBindings('onGestureChange', this.onGestureChange);
+      this.controller.addBindings(['onGestureEnd', 'onTouchCancel'], this.onGestureEnd);
+      this.controller.addBindings(['onTouchStart', 'onTouchMove'], this.updateTouchData);
+    } else {
+      this.controller.addBindings('onTouchStart', this.onPinchStart);
+      this.controller.addBindings('onTouchMove', this.onPinchChange);
+      this.controller.addBindings(['onTouchEnd', 'onTouchCancel'], this.onPinchEnd);
+      this.controller.addBindings('onWheel', this.onWheel);
+    }
+  };
+
+  return PinchRecognizer;
+}(DistanceAngleRecognizer);
+
+/**
+ * @public
+ *
+ * Pinch hook.
+ *
+ * @param {Handler<'pinch'>} handler - the function fired every time the pinch gesture updates
+ * @param {(Config | {})} [config={}] - the config object including generic options and pinch options
+ * @returns {(...args: any[]) => HookReturnType<Config>}
+ */
+
+function usePinch(handler, config) {
+  if (config === void 0) {
+    config = {};
+  }
+
+  var _config = config,
+      domTarget = _config.domTarget,
+      eventOptions = _config.eventOptions,
+      window = _config.window,
+      pinch = _objectWithoutPropertiesLoose(_config, ["domTarget", "eventOptions", "window"]);
+  /**
+   * TODO: at the moment we recompute the config object at every render
+   * this could probably be optimized
+   */
+
+
+  var mergedConfig = _extends({}, getInternalGenericOptions({
+    domTarget: domTarget,
+    eventOptions: eventOptions,
+    window: window
+  }), {
+    pinch: getInternalDistanceAngleOptions(pinch)
+  });
+
+  return useRecognizers({
+    pinch: handler
+  }, [PinchRecognizer], mergedConfig);
+}
+
+var WheelRecognizer = /*#__PURE__*/function (_CoordinatesRecognize) {
+  _inheritsLoose(WheelRecognizer, _CoordinatesRecognize);
+
+  function WheelRecognizer(controller, args) {
+    var _this;
+
+    _this = _CoordinatesRecognize.call(this, 'wheel', controller, args) || this;
+    _this.ingKey = 'wheeling';
+    _this.debounced = true;
+
+    _this.wheelShouldRun = function (event) {
+      if (event.ctrlKey && 'pinch' in _this.controller.handlers) return false;
+      return _this.enabled;
+    };
+
+    _this.getValuesFromEvent = function (event) {
+      var prevValues = _this.state.values;
+
+      var _getWheelEventValues = getWheelEventValues(event),
+          values = _getWheelEventValues.values;
+
+      return {
+        values: addV(values, prevValues)
+      };
+    };
+
+    _this.onWheel = function (event) {
+      if (!_this.wheelShouldRun(event)) return;
+
+      _this.clearTimeout();
+
+      _this.setTimeout(_this.onWheelEnd);
+
+      if (!_this.state._active) _this.onWheelStart(event);else _this.onWheelChange(event);
+    };
+
+    _this.onWheelStart = function (event) {
+      var _this$getValuesFromEv = _this.getValuesFromEvent(event),
+          values = _this$getValuesFromEv.values;
+
+      _this.updateSharedState(getGenericEventData(event));
+
+      var startState = _extends({}, _this.getStartGestureState(values, event), {}, _this.getGenericPayload(event, true), {
+        initial: _this.state.values
+      });
+
+      var movementDetection = _this.getMovement(values, startState);
+
+      var delta = movementDetection.delta;
+
+      _this.updateGestureState(_extends({}, startState, {}, movementDetection, {
+        distance: calculateDistance(delta),
+        direction: calculateDirection(delta)
+      }));
+
+      _this.fireGestureHandler();
+    };
+
+    _this.onWheelChange = function (event) {
+      var genericEventData = getGenericEventData(event);
+
+      _this.updateSharedState(genericEventData);
+
+      var _this$getValuesFromEv2 = _this.getValuesFromEvent(event),
+          values = _this$getValuesFromEv2.values;
+
+      var kinematics = _this.getKinematics(values, event);
+
+      _this.updateGestureState(_extends({}, _this.getGenericPayload(event), {}, kinematics));
+
+      _this.fireGestureHandler();
+    };
+
+    _this.onWheelEnd = function () {
+      _this.state._active = false;
+
+      _this.updateGestureState(_extends({}, _this.getMovement(_this.state.values), {
+        velocities: [0, 0],
+        velocity: 0
+      }));
+
+      _this.fireGestureHandler();
+    };
+
+    return _this;
+  }
+
+  var _proto = WheelRecognizer.prototype;
+
+  _proto.addBindings = function addBindings() {
+    this.controller.addBindings('onWheel', this.onWheel);
+  };
+
+  return WheelRecognizer;
+}(CoordinatesRecognizer);
+
+/**
+ * @public
+ *
+ * Wheel hook.
+ *
+ * @param {Handler<'wheel'>} handler - the function fired every time the wheel gesture updates
+ * @param {(Config | {})} [config={}] - the config object including generic options and wheel options
+ * @returns {(...args: any[]) => HookReturnType<Config>}
+ */
+
+function useWheel(handler, config) {
+  if (config === void 0) {
+    config = {};
+  }
+
+  var _config = config,
+      domTarget = _config.domTarget,
+      eventOptions = _config.eventOptions,
+      window = _config.window,
+      wheel = _objectWithoutPropertiesLoose(_config, ["domTarget", "eventOptions", "window"]);
+  /**
+   * TODO: at the moment we recompute the config object at every render
+   * this could probably be optimized
+   */
+
+
+  var mergedConfig = _extends({}, getInternalGenericOptions({
+    domTarget: domTarget,
+    eventOptions: eventOptions,
+    window: window
+  }), {
+    wheel: getInternalCoordinatesOptions(wheel)
+  });
+
+  return useRecognizers({
+    wheel: handler
+  }, [WheelRecognizer], mergedConfig);
+}
+
+var MoveRecognizer = /*#__PURE__*/function (_CoordinatesRecognize) {
+  _inheritsLoose(MoveRecognizer, _CoordinatesRecognize);
+
+  function MoveRecognizer(controller, args) {
+    var _this;
+
+    _this = _CoordinatesRecognize.call(this, 'move', controller, args) || this;
+    _this.ingKey = 'moving';
+    _this.debounced = true;
+
+    _this.moveShouldRun = function () {
+      return _this.enabled;
+    };
+
+    _this.onMove = function (event) {
+      if (!_this.moveShouldRun()) return;
+
+      _this.clearTimeout();
+
+      _this.setTimeout(_this.onMoveEnd);
+
+      if (!_this.state._active) _this.onMoveStart(event);else _this.onMoveChange(event);
+    };
+
+    _this.onMoveStart = function (event) {
+      var _getPointerEventValue = getPointerEventValues(event),
+          values = _getPointerEventValue.values;
+
+      _this.updateSharedState(getGenericEventData(event));
+
+      var startState = _extends({}, _this.getStartGestureState(values, event), {}, _this.getGenericPayload(event, true));
+
+      _this.updateGestureState(_extends({}, startState, {}, _this.getMovement(values, startState)));
+
+      _this.fireGestureHandler();
+    };
+
+    _this.onMoveChange = function (event) {
+      var genericEventData = getGenericEventData(event);
+
+      _this.updateSharedState(genericEventData);
+
+      var _getPointerEventValue2 = getPointerEventValues(event),
+          values = _getPointerEventValue2.values;
+
+      var kinematics = _this.getKinematics(values, event);
+
+      _this.updateGestureState(_extends({}, _this.getGenericPayload(event), {}, kinematics));
+
+      _this.fireGestureHandler();
+    };
+
+    _this.onMoveEnd = function () {
+      _this.state._active = false;
+
+      _this.updateGestureState(_extends({}, _this.getMovement(_this.state.values), {
+        velocities: [0, 0],
+        velocity: 0
+      }));
+
+      _this.fireGestureHandler();
+    };
+
+    _this.onPointerEnter = function (event) {
+      _this.controller.state.shared.hovering = true;
+      if (!_this.controller.config.enabled) return;
+
+      if (_this.controller.config.hover.enabled) {
+        var _getPointerEventValue3 = getPointerEventValues(event),
+            values = _getPointerEventValue3.values;
+
+        var state = _extends({}, _this.controller.state.shared, {}, _this.state, {}, _this.getGenericPayload(event, true), {
+          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) {
+        var _getPointerEventValue4 = getPointerEventValues(event),
+            values = _getPointerEventValue4.values;
+
+        var state = _extends({}, _this.controller.state.shared, {}, _this.state, {}, _this.getGenericPayload(event), {
+          values: values,
+          active: false
+        });
+
+        _this.controller.handlers.hover(_extends({}, state, {}, _this.mapStateValues(state)));
+      }
+    };
+
+    return _this;
+  }
+
+  var _proto = MoveRecognizer.prototype;
+
+  _proto.addBindings = function addBindings() {
+    if (this.controller.config.pointer) {
+      if ('move' in this.controller.handlers) {
+        this.controller.addBindings('onPointerMove', this.onMove);
+      }
+
+      if ('hover' in this.controller.handlers) {
+        this.controller.addBindings('onPointerEnter', this.onPointerEnter);
+        this.controller.addBindings('onPointerLeave', this.onPointerLeave);
+      }
+    } else {
+      if ('move' in this.controller.handlers) {
+        this.controller.addBindings('onMouseMove', this.onMove);
+      }
+
+      if ('hover' in this.controller.handlers) {
+        this.controller.addBindings('onMouseEnter', this.onPointerEnter);
+        this.controller.addBindings('onMouseLeave', this.onPointerLeave);
+      }
+    }
+  };
+
+  return MoveRecognizer;
+}(CoordinatesRecognizer);
+
+/**
+ * @public
+ *
+ * Move hook.
+ *
+ * @param {Handler<'move'>} handler - the function fired every time the move gesture updates
+ * @param {(Config | {})} [config={}] - the config object including generic options and move options
+ * @returns {(...args: any[]) => HookReturnType<Config>}
+ */
+
+function useMove(handler, config) {
+  if (config === void 0) {
+    config = {};
+  }
+
+  var _config = config,
+      domTarget = _config.domTarget,
+      eventOptions = _config.eventOptions,
+      window = _config.window,
+      move = _objectWithoutPropertiesLoose(_config, ["domTarget", "eventOptions", "window"]);
+  /**
+   * TODO: at the moment we recompute the config object at every render
+   * this could probably be optimized
+   */
+
+
+  var mergedConfig = _extends({}, getInternalGenericOptions({
+    domTarget: domTarget,
+    eventOptions: eventOptions,
+    window: window
+  }), {
+    move: getInternalCoordinatesOptions(move)
+  });
+
+  return useRecognizers({
+    move: handler
+  }, [MoveRecognizer], mergedConfig);
+}
+
+/**
+ * @public
+ *
+ * Hover hook.
+ *
+ * @param {Handler<'hover'>} handler - the function fired every time the hover gesture updates
+ * @param {(Config | {})} [config={}] - the config object including generic options and hover options
+ * @returns {(...args: any[]) => HookReturnType<Config>}
+ */
+
+function useHover(handler, config) {
+  if (config === void 0) {
+    config = {};
+  }
+
+  var _config = config,
+      domTarget = _config.domTarget,
+      eventOptions = _config.eventOptions,
+      window = _config.window,
+      hover = _objectWithoutPropertiesLoose(_config, ["domTarget", "eventOptions", "window"]);
+  /**
+   * TODO: at the moment we recompute the config object at every render
+   * this could probably be optimized
+   */
+
+
+  var mergedConfig = _extends({}, getInternalGenericOptions({
+    domTarget: domTarget,
+    eventOptions: eventOptions,
+    window: window
+  }), {
+    hover: _extends({
+      enabled: true
+    }, hover)
+  });
+
+  return useRecognizers({
+    hover: handler
+  }, [MoveRecognizer], mergedConfig);
+}
+
+var ScrollRecognizer = /*#__PURE__*/function (_CoordinatesRecognize) {
+  _inheritsLoose(ScrollRecognizer, _CoordinatesRecognize);
+
+  function ScrollRecognizer(controller, args) {
+    var _this;
+
+    _this = _CoordinatesRecognize.call(this, 'scroll', controller, args) || this;
+    _this.ingKey = 'scrolling';
+    _this.debounced = true;
+
+    _this.scrollShouldRun = function () {
+      return _this.enabled;
+    };
+
+    _this.onScroll = function (event) {
+      if (!_this.scrollShouldRun()) return;
+
+      _this.clearTimeout();
+
+      _this.setTimeout(_this.onScrollEnd);
+
+      if (!_this.state._active) _this.onScrollStart(event);else _this.onScrollChange(event);
+    };
+
+    _this.onScrollStart = function (event) {
+      var _getScrollEventValues = getScrollEventValues(event),
+          values = _getScrollEventValues.values;
+
+      _this.updateSharedState(getGenericEventData(event));
+
+      var startState = _extends({}, _this.getStartGestureState(values, event), {}, _this.getGenericPayload(event, true), {
+        initial: _this.state.values
+      });
+
+      var movementDetection = _this.getMovement(values, startState);
+
+      var delta = movementDetection.delta;
+
+      _this.updateGestureState(_extends({}, startState, {}, movementDetection, {
+        distance: calculateDistance(delta),
+        direction: calculateDirection(delta)
+      }));
+
+      _this.fireGestureHandler();
+    };
+
+    _this.onScrollChange = function (event) {
+      var genericEventData = getGenericEventData(event);
+
+      _this.updateSharedState(genericEventData);
+
+      var _getScrollEventValues2 = getScrollEventValues(event),
+          values = _getScrollEventValues2.values;
+
+      var kinematics = _this.getKinematics(values, event);
+
+      _this.updateGestureState(_extends({}, _this.getGenericPayload(event), {}, kinematics));
+
+      _this.fireGestureHandler();
+    };
+
+    _this.onScrollEnd = function () {
+      _this.state._active = false;
+
+      _this.updateGestureState(_extends({}, _this.getMovement(_this.state.values), {
+        velocities: [0, 0],
+        velocity: 0
+      }));
+
+      _this.fireGestureHandler();
+    };
+
+    return _this;
+  }
+
+  var _proto = ScrollRecognizer.prototype;
+
+  _proto.addBindings = function addBindings() {
+    this.controller.addBindings('onScroll', this.onScroll);
+  };
+
+  return ScrollRecognizer;
+}(CoordinatesRecognizer);
+
+/**
+ * @public
+ *
+ * Scroll hook.
+ *
+ * @param {Handler<'scroll'>} handler - the function fired every time the scroll gesture updates
+ * @param {(Config | {})} [config={}] - the config object including generic options and scroll options
+ * @returns {(...args: any[]) => HookReturnType<Config>}
+ */
+
+function useScroll(handler, config) {
+  if (config === void 0) {
+    config = {};
+  }
+
+  var _config = config,
+      domTarget = _config.domTarget,
+      eventOptions = _config.eventOptions,
+      window = _config.window,
+      scroll = _objectWithoutPropertiesLoose(_config, ["domTarget", "eventOptions", "window"]);
+  /**
+   * TODO: at the moment we recompute the config object at every render
+   * this could probably be optimized
+   */
+
+
+  var mergedConfig = _extends({}, getInternalGenericOptions({
+    domTarget: domTarget,
+    eventOptions: eventOptions,
+    window: window
+  }), {
+    scroll: getInternalCoordinatesOptions(scroll)
+  });
+
+  return useRecognizers({
+    scroll: handler
+  }, [ScrollRecognizer], mergedConfig);
+}
+
+/**
+ * @public
+ *
+ * The most complete gesture hook, allowing support for multiple gestures.
+ *
+ * @param {UserHandlersPartial} 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 = {};
+  }
+
+  /**
+   * If handlers contains {onDragStart, onDrag, onDragEnd, onMoveStart, onMove}
+   * actions will include 'onDrag' and 'onMove.
+   */
+  var _React$useState = external_this_React_default.a.useState(function () {
+    return new Set(Object.keys(handlers).map(function (k) {
+      return k.replace(/End|Start/, '');
+    }));
+  }),
+      actions = _React$useState[0];
+  /**
+   * Here we compute the derived internal config based on the provided config object.
+   * We decompose the config into its generic and gesture options and compute each.
+   * TODO: this is currently done on every render!
+   */
+
+
+  var _config = config,
+      drag = _config.drag,
+      wheel = _config.wheel,
+      move = _config.move,
+      scroll = _config.scroll,
+      pinch = _config.pinch,
+      hover = _config.hover,
+      restConfig = _objectWithoutPropertiesLoose(_config, ["drag", "wheel", "move", "scroll", "pinch", "hover"]);
+
+  var mergedConfig = getInternalGenericOptions(restConfig);
+  var classes = [];
+  var internalHandlers = {}; // will hold reference to native handlers such as onClick, onMouseDown, etc.
+
+  var _nativeHandlers = _extends({}, handlers);
+
+  if (actions.has('onDrag')) {
+    classes.push(DragRecognizer);
+    internalHandlers.drag = includeStartEndHandlers(handlers, 'onDrag', _nativeHandlers);
+    mergedConfig.drag = getInternalDragOptions(drag);
+  }
+
+  if (actions.has('onWheel')) {
+    classes.push(WheelRecognizer);
+    internalHandlers.wheel = includeStartEndHandlers(handlers, 'onWheel', _nativeHandlers);
+    mergedConfig.wheel = getInternalCoordinatesOptions(wheel);
+  }
+
+  if (actions.has('onScroll')) {
+    classes.push(ScrollRecognizer);
+    internalHandlers.scroll = includeStartEndHandlers(handlers, 'onScroll', _nativeHandlers);
+    mergedConfig.scroll = getInternalCoordinatesOptions(scroll);
+  }
+
+  if (actions.has('onMove')) {
+    classes.push(MoveRecognizer);
+    internalHandlers.move = includeStartEndHandlers(handlers, 'onMove', _nativeHandlers);
+    mergedConfig.move = getInternalCoordinatesOptions(move);
+  }
+
+  if (actions.has('onPinch')) {
+    classes.push(PinchRecognizer);
+    internalHandlers.pinch = includeStartEndHandlers(handlers, 'onPinch', _nativeHandlers);
+    mergedConfig.pinch = getInternalDistanceAngleOptions(pinch);
+  }
+
+  if (actions.has('onHover')) {
+    if (!actions.has('onMove')) classes.push(MoveRecognizer);
+    internalHandlers.hover = handlers.onHover;
+    mergedConfig.hover = _extends({
+      enabled: true
+    }, hover);
+    delete _nativeHandlers.onHover;
+  }
+
+  return useRecognizers(internalHandlers, classes, mergedConfig, _nativeHandlers);
+}
+/**
+ * @private
+ *
+ * This utility function will integrate start and end handlers into the regular
+ * handler function by using first and last conditions.
+ *
+ * @param {UserHandlersPartial} handlers - the handlers function object
+ * @param {HandlerKey} handlerKey - the key for which to integrate start and end handlers
+ * @returns
+ */
+
+function includeStartEndHandlers(handlers, handlerKey, _nativeHandlers) {
+  var startKey = handlerKey + 'Start';
+  var endKey = handlerKey + 'End';
+  delete _nativeHandlers[handlerKey];
+  delete _nativeHandlers[startKey];
+  delete _nativeHandlers[endKey];
+
+  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;
+}
+
+
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/flex/index.js
+
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+function FlexComponent(_ref, ref) {
+  var _ref$align = _ref.align,
+      align = _ref$align === void 0 ? 'center' : _ref$align,
       className = _ref.className,
-      children = _ref.children;
-  return Object(external_this_wp_element_["createElement"])("div", {
-    className: classnames_default()('components-base-control', className)
-  }, Object(external_this_wp_element_["createElement"])("div", {
-    className: "components-base-control__field"
-  }, label && id && Object(external_this_wp_element_["createElement"])("label", {
-    className: "components-base-control__label",
-    htmlFor: id
-  }, label), label && !id && Object(external_this_wp_element_["createElement"])("span", {
-    className: "components-base-control__label"
-  }, label), children), !!help && Object(external_this_wp_element_["createElement"])("p", {
-    id: id + '__help',
-    className: "components-base-control__help"
-  }, help));
-}
-
-/* harmony default export */ var base_control = (BaseControl);
+      _ref$gap = _ref.gap,
+      gap = _ref$gap === void 0 ? 2 : _ref$gap,
+      _ref$justify = _ref.justify,
+      justify = _ref$justify === void 0 ? 'space-between' : _ref$justify,
+      _ref$isReversed = _ref.isReversed,
+      isReversed = _ref$isReversed === void 0 ? false : _ref$isReversed,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["align", "className", "gap", "justify", "isReversed"]);
+
+  var classes = classnames_default()('components-flex', className);
+  return Object(external_this_wp_element_["createElement"])(Flex, Object(esm_extends["a" /* default */])({}, props, {
+    align: align,
+    className: classes,
+    ref: ref,
+    gap: gap,
+    justify: justify,
+    isReversed: isReversed
+  }));
+}
+
+var flex_Flex = Object(external_this_wp_element_["forwardRef"])(FlexComponent);
+/* harmony default export */ var flex = (flex_Flex);
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/input-control/state.js
+
+
+
+function state_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 state_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { state_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty["a" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { state_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+var initialStateReducer = function initialStateReducer(state) {
+  return state;
+};
+
+var initialInputControlState = {
+  _event: {},
+  error: null,
+  initialValue: '',
+  isDirty: false,
+  isDragEnabled: false,
+  isDragging: false,
+  isPressEnterToChange: false,
+  value: ''
+};
+var 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'
+};
+var inputControlActionTypes = actionTypes;
+/**
+ * Prepares initialState for the reducer.
+ *
+ * @param {Object} initialState The initial state.
+ * @return {Object} Prepared initialState for the reducer
+ */
+
+function mergeInitialState() {
+  var initialState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialInputControlState;
+  var value = initialState.value;
+  return state_objectSpread({}, 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.
+ */
+
+
+var state_composeStateReducers = function composeStateReducers() {
+  for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {
+    fns[_key] = arguments[_key];
+  }
+
+  return function () {
+    for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
+      args[_key2] = arguments[_key2];
+    }
+
+    return fns.reduceRight(function (state, fn) {
+      var fnState = fn.apply(void 0, args);
+      return Object(external_this_lodash_["isEmpty"])(fnState) ? state : state_objectSpread({}, 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 function (state, action) {
+    var nextState = state_objectSpread({}, state);
+
+    var type = action.type,
+        payload = action.payload;
+
+    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:
+        if (payload.value !== state.value) {
+          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() {
+  var stateReducer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialStateReducer;
+  var initialState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : initialInputControlState;
+
+  var _useReducer = Object(external_this_wp_element_["useReducer"])(inputControlStateReducer(stateReducer), mergeInitialState(initialState)),
+      _useReducer2 = Object(slicedToArray["a" /* default */])(_useReducer, 2),
+      state = _useReducer2[0],
+      dispatch = _useReducer2[1];
+
+  var createChangeEvent = function createChangeEvent(type) {
+    return function (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: type,
+        payload: {
+          value: nextValue,
+          event: event
+        }
+      });
+    };
+  };
+
+  var createKeyEvent = function createKeyEvent(type) {
+    return function (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: type,
+        payload: {
+          event: event
+        }
+      });
+    };
+  };
+
+  var createDragEvent = function createDragEvent(type) {
+    return function (dragProps) {
+      dispatch({
+        type: type,
+        payload: dragProps
+      });
+    };
+  };
+  /**
+   * Actions for the reducer
+   */
+
+
+  var change = createChangeEvent(actionTypes.CHANGE);
+  var inValidate = createChangeEvent(actionTypes.INVALIDATE);
+  var reset = createChangeEvent(actionTypes.RESET);
+  var commit = createChangeEvent(actionTypes.COMMIT);
+  var update = createChangeEvent(actionTypes.UPDATE);
+  var dragStart = createDragEvent(actionTypes.DRAG_START);
+  var drag = createDragEvent(actionTypes.DRAG);
+  var dragEnd = createDragEvent(actionTypes.DRAG_END);
+  var pressUp = createKeyEvent(actionTypes.PRESS_UP);
+  var pressDown = createKeyEvent(actionTypes.PRESS_DOWN);
+  var pressEnter = createKeyEvent(actionTypes.PRESS_ENTER);
+  return {
+    change: change,
+    commit: commit,
+    dispatch: dispatch,
+    drag: drag,
+    dragEnd: dragEnd,
+    dragStart: dragStart,
+    inValidate: inValidate,
+    pressDown: pressDown,
+    pressEnter: pressEnter,
+    pressUp: pressUp,
+    reset: reset,
+    state: state,
+    update: update
+  };
+}
+
+// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js
+function _taggedTemplateLiteral(strings, raw) {
+  if (!raw) {
+    raw = strings.slice(0);
+  }
+
+  return Object.freeze(Object.defineProperties(strings, {
+    raw: {
+      value: Object.freeze(raw)
+    }
+  }));
+}
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/text/styles/font-family.js
+var fontFamily = "font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto,\nOxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;";
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/text/styles/emotion-css.js
+/**
+ * External dependencies
+ */
+
+/* harmony default export */ var emotion_css = (css_browser_esm);
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/text/styles/text-mixins.js
+
+
+function _templateObject9() {
+  var data = _taggedTemplateLiteral(["\n\t", "\n\t", "\n"]);
+
+  _templateObject9 = function _templateObject9() {
+    return data;
+  };
+
+  return data;
+}
+
+function _templateObject8() {
+  var data = _taggedTemplateLiteral(["\n\t\t\t\t", "\n\t\t\t\t", "\n\t\t\t"]);
+
+  _templateObject8 = function _templateObject8() {
+    return data;
+  };
+
+  return data;
+}
+
+function _templateObject7() {
+  var data = _taggedTemplateLiteral(["\n\t\t\t\t", "\n\t\t\t\t", "\n\t\t\t"]);
+
+  _templateObject7 = function _templateObject7() {
+    return data;
+  };
+
+  return data;
+}
+
+function _templateObject6() {
+  var data = _taggedTemplateLiteral(["\n\t\t\t\t", "\n\t\t\t"]);
+
+  _templateObject6 = function _templateObject6() {
+    return data;
+  };
+
+  return data;
+}
+
+function _templateObject5() {
+  var data = _taggedTemplateLiteral(["\n\t\t\t\t", "\n\t\t\t\t", "\n\t\t\t"]);
+
+  _templateObject5 = function _templateObject5() {
+    return data;
+  };
+
+  return data;
+}
+
+function _templateObject4() {
+  var data = _taggedTemplateLiteral(["\n\t\t\t\t", "\n\t\t\t\t", "\n\t\t\t"]);
+
+  _templateObject4 = function _templateObject4() {
+    return data;
+  };
+
+  return data;
+}
+
+function _templateObject3() {
+  var data = _taggedTemplateLiteral(["\n\t\t\t\t", "\n\t\t\t\t", "\n\t\t\t"]);
+
+  _templateObject3 = function _templateObject3() {
+    return data;
+  };
+
+  return data;
+}
+
+function _templateObject2() {
+  var data = _taggedTemplateLiteral(["\n\t\t\t\t", "\n\t\t\t\t", "\n\t\t\t"]);
+
+  _templateObject2 = function _templateObject2() {
+    return data;
+  };
+
+  return data;
+}
+
+function _templateObject() {
+  var data = _taggedTemplateLiteral(["\n\t\t\t\t", "\n\t\t\t\t", "\n\t\t\t"]);
+
+  _templateObject = function _templateObject() {
+    return data;
+  };
+
+  return data;
+}
+
+/**
+ * Internal dependencies
+ */
+
+
+var fontWeightNormal = "font-weight: 400;";
+var fontWeightSemibold = "font-weight: 600;";
+var text_mixins_title = "\n  ".concat(fontWeightNormal, "\n");
+var titleLarge = "\n\tfont-size: 32px;\n\tline-height: 40px;\n";
+var titleMedium = "\n\tfont-size: 24px;\n\tline-height: 32px;\n";
+var titleSmall = "\n\tfont-size: 20px;\n\tline-height: 28px;\n";
+var subtitle = "\n\t".concat(fontWeightSemibold, "\n\tfont-size: 14px;\n\tline-height: 20px;\n");
+var subtitleLarge = "\n\tfont-size: 16px;\n\tline-height: 24px;\n";
+var subtitleSmall = "\n\tfont-size: 14px;\n\tline-height: 20px;\n";
+var text_mixins_body = "\n\t".concat(fontWeightNormal, "\n");
+var bodyLarge = "\n\tfont-size: 16px;\n\tline-height: 24px;\n";
+var bodySmall = "\n\tfont-size: 14px;\n\tline-height: 20px;\n";
+var text_mixins_button = "\n  ".concat(fontWeightSemibold, "\n  font-size: 14px;\n  line-height: 20px;\n");
+var caption = "\n\t".concat(fontWeightNormal, "\n\tfont-size: 12px;\n\tline-height: 16px;\n");
+var text_mixins_label = "\n\t".concat(fontWeightSemibold, "\n\tfont-size: 12px;\n\tline-height: 16px;\n");
+/**
+ * @typedef {'title.large'|'title.medium'|'title.small'|'subtitle'|'subtitle.small'|'body'|'body.large'|'body.small'|'button'|'caption'|'label'} TextVariant
+ */
+
+/**
+ * @param {TextVariant} variantName
+ */
+
+var text_mixins_variant = function variant() {
+  var variantName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'body';
+
+  switch (variantName) {
+    case 'title.large':
+      return emotion_css(_templateObject(), text_mixins_title, titleLarge);
+
+    case 'title.medium':
+      return emotion_css(_templateObject2(), text_mixins_title, titleMedium);
+
+    case 'title.small':
+      return emotion_css(_templateObject3(), text_mixins_title, titleSmall);
+
+    case 'subtitle':
+      return emotion_css(_templateObject4(), subtitle, subtitleLarge);
+
+    case 'subtitle.small':
+      return emotion_css(_templateObject5(), subtitle, subtitleSmall);
+
+    case 'body':
+      return emotion_css(_templateObject6(), text_mixins_body);
+
+    case 'body.large':
+      return emotion_css(_templateObject7(), text_mixins_body, bodyLarge);
+
+    case 'body.small':
+      return emotion_css(_templateObject8(), text_mixins_body, bodySmall);
+
+    case 'button':
+      return text_mixins_button;
+
+    case 'caption':
+      return caption;
+
+    case 'label':
+      return text_mixins_label;
+  }
+};
+/**
+ * @typedef {Object} TextProps
+ * @property {TextVariant} variant one of TextVariant to be used
+ */
+
+/**
+ * @param {TextProps} props
+ */
+
+
+var text_mixins_text = function text(props) {
+  return emotion_css(_templateObject9(), fontFamily, text_mixins_variant(props.variant));
+};
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/text/index.js
+
+
+/**
+ * Internal dependencies
+ */
+
+
+var Text = styled_base_browser_esm("p", {
+  target: "e15wbhsk0",
+  label: "Text"
+})("\n\tbox-sizing: border-box;\n\tmargin: 0;\n", text_mixins_text,  true ? "" : undefined);
+
+/* harmony default export */ var build_module_text = (Text);
+
+// 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 FLOATING_LABEL_TRANSITION_SPEED = '60ms';
+
+var input_control_styles_rootFloatLabelStyles = function rootFloatLabelStyles(_ref3) {
+  var isFloatingLabel = _ref3.isFloatingLabel;
+  var paddingTop = isFloatingLabel ? 5 : 0;
+  return /*#__PURE__*/css_browser_esm({
+    paddingTop: paddingTop
+  },  true ? "" : undefined);
+};
+
+var input_control_styles_ref =  true ? {
+  name: "r6z5ec",
+  styles: "z-index:1;"
+} : undefined;
+
+var rootFocusedStyles = function rootFocusedStyles(_ref4) {
+  var isFocused = _ref4.isFocused;
+  if (!isFocused) return '';
+  return input_control_styles_ref;
+};
+
+var input_control_styles_Root = styled_base_browser_esm("div", {
+  target: "e1cr7zh10",
+  label: "Root"
+})("box-sizing:border-box;position:relative;border-radius:2px;", input_control_styles_rootFloatLabelStyles, ";", rootFocusedStyles, ";" + ( true ? "" : undefined));
+
+var input_control_styles_containerDisabledStyle = function containerDisabledStyle(_ref5) {
+  var disabled = _ref5.disabled;
+  var backgroundColor = disabled ? colors_color('ui.backgroundDisabled') : colors_color('ui.background');
+  return /*#__PURE__*/css_browser_esm({
+    backgroundColor: backgroundColor
+  },  true ? "" : undefined);
+};
+
+var Container = styled_base_browser_esm("div", {
+  target: "e1cr7zh11",
+  label: "Container"
+})("align-items:center;box-sizing:border-box;border-radius:inherit;display:flex;position:relative;", input_control_styles_containerDisabledStyle, ";" + ( true ? "" : undefined));
+
+var input_control_styles_disabledStyles = function disabledStyles(_ref6) {
+  var disabled = _ref6.disabled;
+  if (!disabled) return '';
+  return /*#__PURE__*/css_browser_esm({
+    color: colors_color('ui.textDisabled')
+  },  true ? "" : undefined);
+};
+
+var input_control_styles_fontSizeStyles = function fontSizeStyles(_ref7) {
+  var size = _ref7.size;
+  var sizes = {
+    default: '13px',
+    small: '11px'
+  };
+  var fontSize = sizes[size];
+  var fontSizeMobile = '16px';
+  if (!fontSize) return '';
+  return /*#__PURE__*/css_browser_esm("font-size:", fontSizeMobile, ";@media ( min-width:600px ){font-size:", fontSize, ";}" + ( true ? "" : undefined));
+};
+
+var input_control_styles_sizeStyles = function sizeStyles(_ref8) {
+  var size = _ref8.size;
+  var sizes = {
+    default: {
+      height: 30,
+      lineHeight: 1,
+      minHeight: 30
+    },
+    small: {
+      height: 24,
+      lineHeight: 1,
+      minHeight: 24
+    }
+  };
+  var style = sizes[size] || sizes.default;
+  return /*#__PURE__*/css_browser_esm(style,  true ? "" : undefined);
+};
+
+var input_control_styles_placeholderStyles = function placeholderStyles(_ref9) {
+  var isFilled = _ref9.isFilled,
+      isFloating = _ref9.isFloating,
+      isFloatingLabel = _ref9.isFloatingLabel;
+  var opacity = 1;
+
+  if (isFloatingLabel) {
+    if (!isFilled && !isFloating) {
+      opacity = 0;
+    }
+  }
+
+  return /*#__PURE__*/css_browser_esm("&::placeholder{opacity:", opacity, ";}&::-webkit-input-placeholder{line-height:normal;}" + ( true ? "" : undefined));
+};
+
+var input_control_styles_dragStyles = function dragStyles(_ref10) {
+  var isDragging = _ref10.isDragging,
+      dragCursor = _ref10.dragCursor;
+  var defaultArrowStyles = '';
+  var 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
+
+
+var 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_color('black'), ";display:block;outline:none;padding-left:8px;padding-right:8px;width:100%;", input_control_styles_dragStyles, ";", input_control_styles_disabledStyles, ";", input_control_styles_fontSizeStyles, ";", input_control_styles_sizeStyles, ";", input_control_styles_placeholderStyles, ";}" + ( true ? "" : undefined));
+
+var input_control_styles_laberColor = function laberColor(_ref11) {
+  var isFloatingLabel = _ref11.isFloatingLabel,
+      isFilled = _ref11.isFilled,
+      isFloating = _ref11.isFloating;
+  var isPlaceholder = isFloatingLabel && !isFilled;
+  var textColor = isPlaceholder || isFloating ? colors_color('ui.textDisabled') : 'currentColor';
+  return /*#__PURE__*/css_browser_esm({
+    color: textColor
+  },  true ? "" : undefined);
+};
+
+var input_control_styles_labelFontSize = function labelFontSize(_ref12) {
+  var isFloatingLabel = _ref12.isFloatingLabel,
+      size = _ref12.size;
+  var sizes = {
+    default: '13px',
+    small: '11px'
+  };
+  var fontSize = sizes[size];
+  var lineHeight = isFloatingLabel ? 1.2 : null;
+  return /*#__PURE__*/css_browser_esm({
+    fontSize: fontSize,
+    lineHeight: lineHeight
+  },  true ? "" : undefined);
+};
+
+var input_control_styles_labelPosition = function labelPosition(_ref13) {
+  var isFloatingLabel = _ref13.isFloatingLabel,
+      isFloating = _ref13.isFloating,
+      size = _ref13.size;
+  var paddingBottom = isFloatingLabel ? 0 : 4;
+  var position = isFloatingLabel ? 'absolute' : null;
+  var pointerEvents = isFloating ? null : 'none';
+  var isSmall = size === 'small';
+  var offsetTop = isSmall ? 1 : 2;
+  var offset = isSmall ? '-1px' : '-3px';
+  var marginTop = isFloating ? 0 : offsetTop;
+  var marginLeft = isFloatingLabel ? 8 : 0;
+  var transform = isFloating ? "translate( 0, calc(-100% + ".concat(offset, ") ) scale( 0.75 )") : 'translate( 0, -50%) scale(1)';
+
+  if (!isFloatingLabel) {
+    transform = null;
+  }
+
+  var transition = isFloatingLabel ? "transform ".concat(FLOATING_LABEL_TRANSITION_SPEED, " linear") : null;
+  return /*#__PURE__*/css_browser_esm({
+    marginTop: marginTop,
+    paddingBottom: paddingBottom,
+    position: position,
+    pointerEvents: pointerEvents,
+    transition: transition,
+    transform: transform
+  }, rtl({
+    marginLeft: marginLeft
+  })(), rtl({
+    transformOrigin: 'top left'
+  }, {
+    transformOrigin: 'top right'
+  })(),  true ? "" : undefined);
+};
+
+var input_control_styles_ref2 =  true ? {
+  name: "fjfd5j",
+  styles: "max-width:calc( 100% - 10px );overflow:hidden;text-overflow:ellipsis;white-space:nowrap;"
+} : undefined;
+
+var labelTruncation = function labelTruncation(_ref14) {
+  var isFloating = _ref14.isFloating;
+  if (isFloating) return '';
+  return input_control_styles_ref2;
+};
+
+var BaseLabel = /*#__PURE__*/styled_base_browser_esm(build_module_text, {
+  target: "e1cr7zh13",
+  label: "BaseLabel"
+})("&&&{box-sizing:border-box;display:block;margin:0;max-width:100%;padding:0;pointer-events:none;top:50%;transition:transform ", FLOATING_LABEL_TRANSITION_SPEED, " linear,max-width ", FLOATING_LABEL_TRANSITION_SPEED, " linear;z-index:1;", input_control_styles_laberColor, ";", input_control_styles_labelFontSize, ";", input_control_styles_labelPosition, ";", labelTruncation, ";", reduceMotion('transition'), ";", rtl({
+  left: 0
+}), "}" + ( true ? "" : undefined));
+
+var input_control_styles_Label = function Label(props) {
+  return Object(external_this_wp_element_["createElement"])(BaseLabel, Object(esm_extends["a" /* default */])({}, props, {
+    as: "label"
+  }));
+};
+
+var input_control_styles_fieldsetTopStyles = function fieldsetTopStyles(_ref15) {
+  var isFloatingLabel = _ref15.isFloatingLabel;
+  var top = isFloatingLabel ? -5 : 0;
+  return /*#__PURE__*/css_browser_esm({
+    top: top
+  },  true ? "" : undefined);
+};
+
+var input_control_styles_fieldsetFocusedStyles = function fieldsetFocusedStyles(_ref16) {
+  var disabled = _ref16.disabled,
+      isFocused = _ref16.isFocused;
+  var borderColor = isFocused ? colors_color('ui.borderFocus') : colors_color('ui.border');
+
+  if (disabled) {
+    borderColor = 'ui.borderDisabled';
+  }
+
+  var borderWidth = isFocused ? 2 : 1;
+  var borderStyle = 'solid';
+  return /*#__PURE__*/css_browser_esm({
+    borderColor: borderColor,
+    borderStyle: borderStyle,
+    borderWidth: borderWidth
+  },  true ? "" : undefined);
+};
+
+var Fieldset = styled_base_browser_esm("fieldset", {
+  target: "e1cr7zh14",
+  label: "Fieldset"
+})("&&&{box-sizing:border-box;border-radius:inherit;bottom:0;left:0;margin:0;padding:0;pointer-events:none;position:absolute;right:0;", input_control_styles_fieldsetFocusedStyles, ";", input_control_styles_fieldsetTopStyles, ";", rtl({
+  paddingLeft: 2
+}), "}" + ( true ? "" : undefined));
+
+var input_control_styles_legendSize = function legendSize(_ref17) {
+  var isFloating = _ref17.isFloating,
+      size = _ref17.size;
+  var maxWidth = isFloating ? 1000 : 0.01;
+  var sizes = {
+    default: 9.75,
+    small: 8.25
+  };
+  var fontSize = sizes[size];
+  return /*#__PURE__*/css_browser_esm({
+    fontSize: fontSize,
+    maxWidth: maxWidth
+  },  true ? "" : undefined);
+};
+
+var Legend = styled_base_browser_esm("legend", {
+  target: "e1cr7zh15",
+  label: "Legend"
+})("&&&{box-sizing:border-box;display:block;height:11px;line-height:11px;margin:0;padding:0;transition:max-width ", FLOATING_LABEL_TRANSITION_SPEED, " linear;visibility:hidden;width:auto;", input_control_styles_legendSize, ";", reduceMotion('transition'), ";}" + ( true ? "" : undefined));
+
+var BaseLegendText = /*#__PURE__*/styled_base_browser_esm(build_module_text, {
+  target: "e1cr7zh16",
+  label: "BaseLegendText"
+})("box-sizing:border-box;display:inline-block;", rtl({
+  paddingLeft: 4,
+  paddingRight: 5
+}),  true ? "" : undefined);
+
+var input_control_styles_LegendText = function LegendText(props) {
+  return Object(external_this_wp_element_["createElement"])(BaseLegendText, Object(esm_extends["a" /* default */])({}, props, {
+    as: "span"
+  }));
+};
+var 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(_ref) {
+  var _ref$disabled = _ref.disabled,
+      disabled = _ref$disabled === void 0 ? false : _ref$disabled,
+      _ref$isFloating = _ref.isFloating,
+      isFloating = _ref$isFloating === void 0 ? false : _ref$isFloating,
+      _ref$isFloatingLabel = _ref.isFloatingLabel,
+      isFloatingLabel = _ref$isFloatingLabel === void 0 ? false : _ref$isFloatingLabel,
+      _ref$isFocused = _ref.isFocused,
+      isFocused = _ref$isFocused === void 0 ? false : _ref$isFocused,
+      label = _ref.label,
+      _ref$size = _ref.size,
+      size = _ref$size === void 0 ? 'default' : _ref$size;
+  return Object(external_this_wp_element_["createElement"])(Fieldset, {
+    "aria-hidden": "true",
+    className: "components-input-control__backdrop",
+    disabled: disabled,
+    isFloatingLabel: isFloatingLabel,
+    isFocused: isFocused
+  }, isFloatingLabel && Object(external_this_wp_element_["createElement"])(Legend, {
+    "aria-hidden": "true",
+    className: "components-input-control__backdrop-label",
+    isFloating: isFloating,
+    size: size
+  }, Object(external_this_wp_element_["createElement"])(input_control_styles_LegendText, {
+    className: "components-input-control__backdrop-text"
+  }, label)));
+}
+
+var MemoizedBackdrop = Object(external_this_wp_element_["memo"])(Backdrop);
+/* harmony default export */ var backdrop = (MemoizedBackdrop);
+
+// 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) {
+  var 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) {
+  var dragCursor = getDragCursor(dragDirection);
+  Object(external_this_wp_element_["useEffect"])(function () {
+    if (isDragging) {
+      document.documentElement.style.cursor = dragCursor;
+      document.documentElement.style.pointerEvents = 'none';
+    } else {
+      document.documentElement.style.cursor = null;
+      document.documentElement.style.pointerEvents = null;
+    }
+  }, [isDragging]);
+  return dragCursor;
+}
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/values.js
+/**
+ * Determines if a value is null or undefined.
+ *
+ * @param {any} value The value to check.
+ * @return {boolean} Whether value is null or undefined.
+ */
+function isValueDefined(value) {
+  return value !== undefined && value !== null;
+}
+/**
+ * Determines if a value is empty, null, or undefined.
+ *
+ * @param {any} value The value to check.
+ * @return {boolean} Whether value is empty.
+ */
+
+function isValueEmpty(value) {
+  var isEmptyString = value === '';
+  return !isValueDefined(value) || isEmptyString;
+}
+/**
+ * Attempts to get a defined/non-null value from a collection of arguments.
+ *
+ * @param {Array<any>} values Values to derive from.
+ * @param {any} fallbackValue Fallback value if there are no defined values.
+ * @return {any} A defined value or the fallback value.
+ */
+
+function getDefinedValue() {
+  var _values$find;
+
+  var values = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
+  var fallbackValue = arguments.length > 1 ? arguments[1] : undefined;
+  return (_values$find = values.find(isValueDefined)) !== null && _values$find !== void 0 ? _values$find : fallbackValue;
+}
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/input-control/input-field.js
+
+
+
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+function InputField(_ref, ref) {
+  var _ref$disabled = _ref.disabled,
+      disabled = _ref$disabled === void 0 ? false : _ref$disabled,
+      _ref$dragDirection = _ref.dragDirection,
+      dragDirection = _ref$dragDirection === void 0 ? 'n' : _ref$dragDirection,
+      _ref$dragThreshold = _ref.dragThreshold,
+      dragThreshold = _ref$dragThreshold === void 0 ? 10 : _ref$dragThreshold,
+      id = _ref.id,
+      _ref$isDragEnabled = _ref.isDragEnabled,
+      isDragEnabled = _ref$isDragEnabled === void 0 ? false : _ref$isDragEnabled,
+      _ref$isFloating = _ref.isFloating,
+      isFloating = _ref$isFloating === void 0 ? false : _ref$isFloating,
+      _ref$isFloatingLabelS = _ref.isFloatingLabelSet,
+      isFloatingLabelSet = _ref$isFloatingLabelS === void 0 ? false : _ref$isFloatingLabelS,
+      _ref$isPressEnterToCh = _ref.isPressEnterToChange,
+      isPressEnterToChange = _ref$isPressEnterToCh === void 0 ? false : _ref$isPressEnterToCh,
+      _ref$onBlur = _ref.onBlur,
+      onBlur = _ref$onBlur === void 0 ? external_this_lodash_["noop"] : _ref$onBlur,
+      _ref$onChange = _ref.onChange,
+      onChange = _ref$onChange === void 0 ? external_this_lodash_["noop"] : _ref$onChange,
+      _ref$onDrag = _ref.onDrag,
+      onDrag = _ref$onDrag === void 0 ? external_this_lodash_["noop"] : _ref$onDrag,
+      _ref$onDragEnd = _ref.onDragEnd,
+      onDragEnd = _ref$onDragEnd === void 0 ? external_this_lodash_["noop"] : _ref$onDragEnd,
+      _ref$onDragStart = _ref.onDragStart,
+      onDragStart = _ref$onDragStart === void 0 ? external_this_lodash_["noop"] : _ref$onDragStart,
+      _ref$onFocus = _ref.onFocus,
+      onFocus = _ref$onFocus === void 0 ? external_this_lodash_["noop"] : _ref$onFocus,
+      _ref$onKeyDown = _ref.onKeyDown,
+      onKeyDown = _ref$onKeyDown === void 0 ? external_this_lodash_["noop"] : _ref$onKeyDown,
+      onUpdateValue = _ref.onUpdateValue,
+      _ref$onValidate = _ref.onValidate,
+      onValidate = _ref$onValidate === void 0 ? external_this_lodash_["noop"] : _ref$onValidate,
+      _ref$size = _ref.size,
+      size = _ref$size === void 0 ? 'default' : _ref$size,
+      _ref$stateReducer = _ref.stateReducer,
+      stateReducer = _ref$stateReducer === void 0 ? function (state) {
+    return state;
+  } : _ref$stateReducer,
+      valueProp = _ref.value,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["disabled", "dragDirection", "dragThreshold", "id", "isDragEnabled", "isFloating", "isFloatingLabelSet", "isPressEnterToChange", "onBlur", "onChange", "onDrag", "onDragEnd", "onDragStart", "onFocus", "onKeyDown", "onUpdateValue", "onValidate", "size", "stateReducer", "value"]);
+
+  var _useInputControlState = useInputControlStateReducer(stateReducer, {
+    isDragEnabled: isDragEnabled,
+    value: valueProp,
+    isPressEnterToChange: isPressEnterToChange
+  }),
+      state = _useInputControlState.state,
+      change = _useInputControlState.change,
+      commit = _useInputControlState.commit,
+      drag = _useInputControlState.drag,
+      dragEnd = _useInputControlState.dragEnd,
+      dragStart = _useInputControlState.dragStart,
+      invalidate = _useInputControlState.invalidate,
+      pressDown = _useInputControlState.pressDown,
+      pressEnter = _useInputControlState.pressEnter,
+      pressUp = _useInputControlState.pressUp,
+      reset = _useInputControlState.reset,
+      update = _useInputControlState.update;
+
+  var _event = state._event,
+      value = state.value,
+      isDragging = state.isDragging,
+      isDirty = state.isDirty;
+  var valueRef = Object(external_this_wp_element_["useRef"])(value);
+  var dragCursor = useDragCursor(isDragging, dragDirection);
+  Object(external_this_wp_element_["useEffect"])(function () {
+    /**
+     * Handles syncing incoming value changes with internal state.
+     * This effectively enables a "controlled" state.
+     * https://reactjs.org/docs/forms.html#controlled-components
+     */
+    if (valueProp !== valueRef.current) {
+      update(valueProp);
+      valueRef.current = valueProp; // Quick return to avoid firing the onChange callback
+
+      return;
+    }
+    /**
+     * Fires the onChange callback when internal state value changes.
+     */
+
+
+    if (value !== valueRef.current && !isDirty) {
+      onChange(value, {
+        event: _event
+      });
+      onUpdateValue(!isValueEmpty(value));
+      valueRef.current = value;
+    }
+  }, [value, isDirty, valueProp]);
+
+  var handleOnBlur = function handleOnBlur(event) {
+    onBlur(event);
+    /**
+     * If isPressEnterToChange is set, this commits the value to
+     * the onChange callback.
+     */
+
+    if (isPressEnterToChange && isDirty) {
+      if (!isValueEmpty(value)) {
+        handleOnCommit({
+          target: {
+            value: value
+          }
+        }, event);
+      } else {
+        reset(valueProp);
+      }
+    }
+  };
+
+  var handleOnFocus = function handleOnFocus(event) {
+    onFocus(event);
+  };
+
+  var handleOnChange = function handleOnChange(event) {
+    var nextValue = event.target.value;
+    change(nextValue, event);
+  };
+
+  var handleOnCommit = function handleOnCommit(event) {
+    var nextValue = event.target.value;
+
+    try {
+      onValidate(nextValue, {
+        event: event
+      });
+      commit(nextValue, event);
+    } catch (err) {
+      invalidate(err, {
+        event: event
+      });
+    }
+  };
+
+  var handleOnKeyDown = function handleOnKeyDown(event) {
+    var keyCode = event.keyCode;
+    onKeyDown(event);
+
+    switch (keyCode) {
+      case external_this_wp_keycodes_["UP"]:
+        pressUp(event);
+        break;
+
+      case external_this_wp_keycodes_["DOWN"]:
+        pressDown(event);
+        break;
+
+      case external_this_wp_keycodes_["ENTER"]:
+        pressEnter(event);
+
+        if (isPressEnterToChange) {
+          event.preventDefault();
+          handleOnCommit(event);
+        }
+
+        break;
+    }
+  };
+
+  var dragGestureProps = useDrag(function (dragProps) {
+    var distance = dragProps.distance,
+        dragging = dragProps.dragging,
+        event = dragProps.event;
+    if (!isDragEnabled) return;
+    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
+  });
+  return Object(external_this_wp_element_["createElement"])(input_control_styles_Input, Object(esm_extends["a" /* default */])({}, props, dragGestureProps(), {
+    className: "components-input-control__input",
+    disabled: disabled,
+    dragCursor: dragCursor,
+    isDragging: isDragging,
+    id: id,
+    isFloating: isFloating,
+    isFloatingLabel: isFloatingLabelSet,
+    onBlur: handleOnBlur,
+    onChange: handleOnChange,
+    onFocus: handleOnFocus,
+    onKeyDown: handleOnKeyDown,
+    ref: ref,
+    size: size,
+    value: value
+  }));
+}
+
+var ForwardedComponent = Object(external_this_wp_element_["forwardRef"])(InputField);
+/* harmony default export */ var input_field = (ForwardedComponent);
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/input-control/label.js
+
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+function label_Label(_ref) {
+  var children = _ref.children,
+      hideLabelFromVision = _ref.hideLabelFromVision,
+      htmlFor = _ref.htmlFor,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["children", "hideLabelFromVision", "htmlFor"]);
+
+  if (!children) return null;
+
+  if (hideLabelFromVision) {
+    return Object(external_this_wp_element_["createElement"])(visually_hidden, {
+      as: "label",
+      htmlFor: htmlFor
+    }, children);
+  }
+
+  return Object(external_this_wp_element_["createElement"])(input_control_styles_Label, Object(esm_extends["a" /* default */])({
+    htmlFor: htmlFor
+  }, props), children);
+}
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/input-control/index.js
+
+
+
+
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+
+function useUniqueId(idProp) {
+  var instanceId = Object(external_this_wp_compose_["useInstanceId"])(InputControl);
+  var id = "inspector-input-control-".concat(instanceId);
+  return idProp || id;
+}
+
+function InputControl(_ref, ref) {
+  var _ref$__unstableStateR = _ref.__unstableStateReducer,
+      stateReducer = _ref$__unstableStateR === void 0 ? function (state) {
+    return state;
+  } : _ref$__unstableStateR,
+      children = _ref.children,
+      className = _ref.className,
+      _ref$disabled = _ref.disabled,
+      disabled = _ref$disabled === void 0 ? false : _ref$disabled,
+      _ref$hideLabelFromVis = _ref.hideLabelFromVision,
+      hideLabelFromVision = _ref$hideLabelFromVis === void 0 ? false : _ref$hideLabelFromVis,
+      idProp = _ref.id,
+      _ref$isPressEnterToCh = _ref.isPressEnterToChange,
+      isPressEnterToChange = _ref$isPressEnterToCh === void 0 ? false : _ref$isPressEnterToCh,
+      _ref$isFloatingLabel = _ref.isFloatingLabel,
+      isFloatingLabel = _ref$isFloatingLabel === void 0 ? false : _ref$isFloatingLabel,
+      label = _ref.label,
+      _ref$onBlur = _ref.onBlur,
+      onBlur = _ref$onBlur === void 0 ? external_this_lodash_["noop"] : _ref$onBlur,
+      _ref$onChange = _ref.onChange,
+      onChange = _ref$onChange === void 0 ? external_this_lodash_["noop"] : _ref$onChange,
+      _ref$onFocus = _ref.onFocus,
+      onFocus = _ref$onFocus === void 0 ? external_this_lodash_["noop"] : _ref$onFocus,
+      _ref$onValidate = _ref.onValidate,
+      onValidate = _ref$onValidate === void 0 ? external_this_lodash_["noop"] : _ref$onValidate,
+      _ref$onKeyDown = _ref.onKeyDown,
+      onKeyDown = _ref$onKeyDown === void 0 ? external_this_lodash_["noop"] : _ref$onKeyDown,
+      _ref$size = _ref.size,
+      size = _ref$size === void 0 ? 'default' : _ref$size,
+      suffix = _ref.suffix,
+      value = _ref.value,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["__unstableStateReducer", "children", "className", "disabled", "hideLabelFromVision", "id", "isPressEnterToChange", "isFloatingLabel", "label", "onBlur", "onChange", "onFocus", "onValidate", "onKeyDown", "size", "suffix", "value"]);
+
+  var _useState = Object(external_this_wp_element_["useState"])(false),
+      _useState2 = Object(slicedToArray["a" /* default */])(_useState, 2),
+      isFocused = _useState2[0],
+      setIsFocused = _useState2[1];
+
+  var _useState3 = Object(external_this_wp_element_["useState"])(!isValueEmpty(value)),
+      _useState4 = Object(slicedToArray["a" /* default */])(_useState3, 2),
+      isFilled = _useState4[0],
+      setIsFilled = _useState4[1];
+
+  var id = useUniqueId(idProp);
+  var classes = classnames_default()('components-input-control', className);
+
+  var handleOnBlur = function handleOnBlur(event) {
+    onBlur(event);
+    setIsFocused(false);
+  };
+
+  var handleOnFocus = function handleOnFocus(event) {
+    onFocus(event);
+    setIsFocused(true);
+  };
+
+  var isInputFilled = isFilled || !isValueEmpty(value);
+  var isFloating = isFloatingLabel ? isInputFilled || isFocused : false;
+  var isFloatingLabelSet = !hideLabelFromVision && isFloatingLabel && label;
+  return Object(external_this_wp_element_["createElement"])(input_control_styles_Root, {
+    className: classes,
+    isFloatingLabel: isFloatingLabelSet,
+    isFocused: isFocused
+  }, Object(external_this_wp_element_["createElement"])(label_Label, {
+    className: "components-input-control__label",
+    hideLabelFromVision: hideLabelFromVision,
+    htmlFor: id,
+    isFilled: isFilled,
+    isFloating: isFloating,
+    isFloatingLabel: isFloatingLabel,
+    size: size
+  }, label), Object(external_this_wp_element_["createElement"])(Container, {
+    className: "components-input-control__container",
+    disabled: disabled,
+    isFocused: isFocused
+  }, Object(external_this_wp_element_["createElement"])(input_field, Object(esm_extends["a" /* default */])({}, props, {
+    className: "components-input-control__input",
+    disabled: disabled,
+    id: id,
+    isFloating: isFloating,
+    isFloatingLabelSet: isFloatingLabelSet,
+    isPressEnterToChange: isPressEnterToChange,
+    onBlur: handleOnBlur,
+    onChange: onChange,
+    onFocus: handleOnFocus,
+    onKeyDown: onKeyDown,
+    onUpdateValue: setIsFilled,
+    onValidate: onValidate,
+    ref: ref,
+    setIsFocused: setIsFocused,
+    size: size,
+    stateReducer: stateReducer,
+    value: value
+  })), suffix && Object(external_this_wp_element_["createElement"])(Suffix, {
+    className: "components-input-control__suffix"
+  }, suffix), Object(external_this_wp_element_["createElement"])(backdrop, {
+    "aria-hidden": "true",
+    disabled: disabled,
+    isFloating: isFloating,
+    isFloatingLabel: isFloatingLabelSet,
+    isFocused: isFocused,
+    label: label,
+    size: size
+  }), children));
+}
+/* harmony default export */ var input_control = (Object(external_this_wp_element_["forwardRef"])(InputControl));
+
+// 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;
+
+var htmlArrowStyles = function htmlArrowStyles(_ref2) {
+  var hideHTMLArrows = _ref2.hideHTMLArrows;
+  if (!hideHTMLArrows) return "";
+  return number_control_styles_ref;
+};
+
+var 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 {any} value The incoming value.
+ *
+ * @return {number} The parsed number value.
+ */
+
+function getNumber(value) {
+  var number = Number(value);
+  return isNaN(number) ? 0 : number;
+}
+/**
+ * Safely adds 2 values.
+ *
+ * @param {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(function (sum, arg) {
+    return sum + getNumber(arg);
+  }, 0);
+}
+/**
+ * Safely subtracts 2 values.
+ *
+ * @param {number|string} args Values to subtract together.
+ *
+ * @return {number} The difference of the 2 values.
+ */
+
+function subtract() {
+  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
+    args[_key2] = arguments[_key2];
+  }
+
+  return args.reduce(function (diff, arg, index) {
+    var value = getNumber(arg);
+    return index === 0 ? value : diff - value;
+  });
+}
+/**
+ * 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) {
+  var 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() {
+  var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
+  var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Infinity;
+  var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Infinity;
+  var step = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
+  var baseValue = getNumber(value);
+  var stepValue = getNumber(step);
+  var precision = getPrecision(step);
+  var rounded = Math.round(baseValue / stepValue) * stepValue;
+  var clampedValue = Object(external_this_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 {any} args Arguments for roundClamp().
+ * @property {number} value The value.
+ * @property {number} min The minimum range.
+ * @property {number} max The maximum range.
+ * @property {number} step A multiplier for the value.
+ *
+ * @return {string} The rounded and clamped value.
+ */
+
+function roundClampString() {
+  return roundClamp.apply(void 0, arguments).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(_ref) {
+  var _ref$isShiftStepEnabl = _ref.isShiftStepEnabled,
+      isShiftStepEnabled = _ref$isShiftStepEnabl === void 0 ? true : _ref$isShiftStepEnabl,
+      _ref$shiftStep = _ref.shiftStep,
+      shiftStep = _ref$shiftStep === void 0 ? 10 : _ref$shiftStep,
+      _ref$step = _ref.step,
+      step = _ref$step === void 0 ? 1 : _ref$step;
+
+  var _useState = Object(external_this_wp_element_["useState"])(false),
+      _useState2 = Object(slicedToArray["a" /* default */])(_useState, 2),
+      isShiftKey = _useState2[0],
+      setIsShiftKey = _useState2[1];
+
+  Object(external_this_wp_element_["useEffect"])(function () {
+    var handleShiftKeyToggle = function handleShiftKeyToggle(event) {
+      setIsShiftKey(event.shiftKey);
+    };
+
+    window.addEventListener('keydown', handleShiftKeyToggle);
+    window.addEventListener('keyup', handleShiftKeyToggle);
+    return function () {
+      window.removeEventListener('keydown', handleShiftKeyToggle);
+      window.removeEventListener('keyup', handleShiftKeyToggle);
+    };
+  }, []);
+  var 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(_ref, ref) {
+  var _ref$__unstableStateR = _ref.__unstableStateReducer,
+      stateReducer = _ref$__unstableStateR === void 0 ? function (state) {
+    return state;
+  } : _ref$__unstableStateR,
+      className = _ref.className,
+      _ref$dragDirection = _ref.dragDirection,
+      dragDirection = _ref$dragDirection === void 0 ? 'n' : _ref$dragDirection,
+      _ref$hideHTMLArrows = _ref.hideHTMLArrows,
+      hideHTMLArrows = _ref$hideHTMLArrows === void 0 ? false : _ref$hideHTMLArrows,
+      _ref$isDragEnabled = _ref.isDragEnabled,
+      isDragEnabled = _ref$isDragEnabled === void 0 ? true : _ref$isDragEnabled,
+      _ref$isShiftStepEnabl = _ref.isShiftStepEnabled,
+      isShiftStepEnabled = _ref$isShiftStepEnabl === void 0 ? true : _ref$isShiftStepEnabl,
+      label = _ref.label,
+      _ref$max = _ref.max,
+      max = _ref$max === void 0 ? Infinity : _ref$max,
+      _ref$min = _ref.min,
+      min = _ref$min === void 0 ? -Infinity : _ref$min,
+      _ref$shiftStep = _ref.shiftStep,
+      shiftStep = _ref$shiftStep === void 0 ? 10 : _ref$shiftStep,
+      _ref$step = _ref.step,
+      step = _ref$step === void 0 ? 1 : _ref$step,
+      _ref$type = _ref.type,
+      typeProp = _ref$type === void 0 ? 'number' : _ref$type,
+      valueProp = _ref.value,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["__unstableStateReducer", "className", "dragDirection", "hideHTMLArrows", "isDragEnabled", "isShiftStepEnabled", "label", "max", "min", "shiftStep", "step", "type", "value"]);
+
+  var isRtl = useRTL();
+  var baseValue = roundClamp(0, min, max, step);
+  var jumpStep = use_jump_step({
+    step: step,
+    shiftStep: shiftStep,
+    isShiftStepEnabled: isShiftStepEnabled
+  });
+  var autoComplete = typeProp === 'number' ? 'off' : null;
+  var 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
+   */
+
+  var numberControlStateReducer = function numberControlStateReducer(state, action) {
+    var type = action.type,
+        payload = action.payload;
+    var event = payload === null || payload === void 0 ? void 0 : payload.event;
+    var currentValue = state.value;
+    /**
+     * Handles custom UP and DOWN Keyboard events
+     */
+
+    if (type === inputControlActionTypes.PRESS_UP || type === inputControlActionTypes.PRESS_DOWN) {
+      var enableShift = event.shiftKey && isShiftStepEnabled;
+      var incrementalValue = enableShift ? parseFloat(shiftStep) * parseFloat(step) : parseFloat(step);
+      var nextValue = isValueEmpty(currentValue) ? baseValue : currentValue;
+
+      if (event === null || event === void 0 ? 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) {
+      var delta = payload.delta,
+          shiftKey = payload.shiftKey;
+
+      var _delta = Object(slicedToArray["a" /* default */])(delta, 2),
+          x = _delta[0],
+          y = _delta[1];
+
+      var modifier = shiftKey ? parseFloat(shiftStep) * parseFloat(step) : parseFloat(step);
+      var directionModifier;
+      var directionBaseValue;
+
+      switch (dragDirection) {
+        case 'n':
+          directionBaseValue = y;
+          directionModifier = -1;
+          break;
+
+        case 'e':
+          directionBaseValue = x;
+          directionModifier = isRtl ? -1 : 1;
+          break;
+
+        case 's':
+          directionBaseValue = y;
+          directionModifier = 1;
+          break;
+
+        case 'w':
+          directionBaseValue = x;
+          directionModifier = isRtl ? 1 : -1;
+          break;
+      }
+
+      var distance = directionBaseValue * modifier * directionModifier;
+
+      var _nextValue;
+
+      if (distance !== 0) {
+        _nextValue = roundClamp(add(currentValue, distance), min, max, modifier);
+        state.value = _nextValue;
+      }
+    }
+    /**
+     * Handles ENTER key press and submit
+     */
+
+
+    if (type === inputControlActionTypes.PRESS_ENTER || type === inputControlActionTypes.SUBMIT) {
+      state.value = roundClamp(currentValue, min, max);
+    }
+
+    return state;
+  };
+
+  return Object(external_this_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: state_composeStateReducers(numberControlStateReducer, stateReducer)
+  }));
+}
+/* harmony default export */ var number_control = (Object(external_this_wp_element_["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
+ */
+
+
+var unit_control_styles_Root = styled_base_browser_esm("div", {
+  target: "e1agakv00",
+  label: "Root"
+})( true ? {
+  name: "1bt0omd",
+  styles: "box-sizing:border-box;position:relative;"
+} : undefined);
+
+var unit_control_styles_paddingStyles = function paddingStyles(_ref2) {
+  var disableUnits = _ref2.disableUnits;
+  var value = disableUnits ? 3 : 24;
+  return /*#__PURE__*/css_browser_esm(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;
+
+var arrowStyles = function arrowStyles(_ref3) {
+  var disableUnits = _ref3.disableUnits;
+  if (disableUnits) return '';
+  return unit_control_styles_ref;
+}; // TODO: Resolve need to use &&& to increase specificity
+// https://github.com/WordPress/gutenberg/issues/18483
+
+
+var ValueInput = /*#__PURE__*/styled_base_browser_esm(number_control, {
+  target: "e1agakv01",
+  label: "ValueInput"
+})("&&&{input{appearance:none;-moz-appearance:textfield;display:block;width:100%;", arrowStyles, ";", unit_control_styles_paddingStyles, ";}}" + ( true ? "" : undefined));
+
+var unit_control_styles_unitSizeStyles = function unitSizeStyles(_ref4) {
+  var size = _ref4.size;
+  var 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);
+};
+
+var unit_control_styles_baseUnitLabelStyles = function baseUnitLabelStyles(props) {
+  return /*#__PURE__*/css_browser_esm("appearance:none;background:transparent;border-radius:2px;border:none;box-sizing:border-box;color:", colors_color('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({
+    borderTopLeftRadius: 0,
+    borderBottomLeftRadius: 0
+  })(), " ", rtl({
+    right: 0
+  })(), " ", unit_control_styles_unitSizeStyles(props),  true ? "" : undefined);
+};
+
+var UnitLabel = styled_base_browser_esm("div", {
+  target: "e1agakv02",
+  label: "UnitLabel"
+})("&&&{pointer-events:none;", unit_control_styles_baseUnitLabelStyles, ";}" + ( true ? "" : undefined));
+var UnitSelect = styled_base_browser_esm("select", {
+  target: "e1agakv03",
+  label: "UnitSelect"
+})("&&&{", unit_control_styles_baseUnitLabelStyles, ";cursor:pointer;border:1px solid transparent;&:hover{background-color:", colors_color('lightGray.300'), ";}&:focus{border-color:", colors_color('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
+ */
+
+var CSS_UNITS = [{
+  value: 'px',
+  label: 'px',
+  default: 0
+}, {
+  value: '%',
+  label: '%',
+  default: 10
+}, {
+  value: 'em',
+  label: 'em',
+  default: 0
+}, {
+  value: 'rem',
+  label: 'rem',
+  default: 0
+}, {
+  value: 'vw',
+  label: 'vw',
+  default: 10
+}, {
+  value: 'vh',
+  label: 'vh',
+  default: 10
+}];
+var 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) {
+  var initialValue = unit ? "".concat(value).concat(unit) : value;
+  return parseUnit(initialValue, units);
+}
+/**
+ * Checks if units are defined.
+ *
+ * @param {any} units Units to check.
+ * @return {boolean} Whether units are defined.
+ */
+
+function hasUnits(units) {
+  return !Object(external_this_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) {
+  var units = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : CSS_UNITS;
+  var value = String(initialValue).trim();
+  var num = parseFloat(value, 10);
+  num = isNaN(num) ? '' : num;
+  var unitMatch = value.match(/[\d.\-\+]*\s*(.*)/)[1];
+  var unit = unitMatch !== undefined ? unitMatch : '';
+  unit = unit.toLowerCase();
+
+  if (hasUnits(units)) {
+    var match = units.find(function (item) {
+      return item.value === unit;
+    });
+    unit = match === null || match === void 0 ? void 0 : match.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) {
+  var _parseUnit = parseUnit(next, units),
+      _parseUnit2 = Object(slicedToArray["a" /* default */])(_parseUnit, 2),
+      parsedValue = _parseUnit2[0],
+      parsedUnit = _parseUnit2[1];
+
+  var baseValue = parsedValue;
+  var 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 (hasUnits(units) && !baseUnit) {
+    var _units$;
+
+    baseUnit = (_units$ = units[0]) === null || _units$ === void 0 ? void 0 : _units$.value;
+  }
+
+  return [baseValue, baseUnit];
+}
+
+// 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(_ref) {
+  var className = _ref.className,
+      _ref$isTabbable = _ref.isTabbable,
+      isTabbable = _ref$isTabbable === void 0 ? true : _ref$isTabbable,
+      _ref$options = _ref.options,
+      options = _ref$options === void 0 ? CSS_UNITS : _ref$options,
+      _ref$onChange = _ref.onChange,
+      onChange = _ref$onChange === void 0 ? external_this_lodash_["noop"] : _ref$onChange,
+      _ref$size = _ref.size,
+      size = _ref$size === void 0 ? 'default' : _ref$size,
+      _ref$value = _ref.value,
+      value = _ref$value === void 0 ? 'px' : _ref$value,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["className", "isTabbable", "options", "onChange", "size", "value"]);
+
+  if (!hasUnits(options)) {
+    return Object(external_this_wp_element_["createElement"])(UnitLabel, {
+      className: "components-unit-control__unit-label",
+      size: size
+    }, value);
+  }
+
+  var handleOnChange = function handleOnChange(event) {
+    var unitValue = event.target.value;
+    var data = options.find(function (option) {
+      return option.value === unitValue;
+    });
+    onChange(unitValue, {
+      event: event,
+      data: data
+    });
+  };
+
+  var classes = classnames_default()('components-unit-control__select', className);
+  return Object(external_this_wp_element_["createElement"])(UnitSelect, Object(esm_extends["a" /* default */])({
+    className: classes,
+    onChange: handleOnChange,
+    size: size,
+    tabIndex: isTabbable ? null : '-1',
+    value: value
+  }, props), options.map(function (option) {
+    return Object(external_this_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
+
+
+
+function use_controlled_state_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 use_controlled_state_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { use_controlled_state_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty["a" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { use_controlled_state_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+var 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.
+ *
+ * @param {any} currentState The current value.
+ * @param {Object} options Additional options for the hook.
+ * @param {any} options.initial The initial state.
+ * @param {any} options.fallback The state to use when no state is defined.
+ *
+ * @return {[*, Function]} The controlled value and the value setter.
+ */
+
+function useControlledState(currentState) {
+  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultOptions;
+
+  var _defaultOptions$optio = use_controlled_state_objectSpread({}, defaultOptions, {}, options),
+      initial = _defaultOptions$optio.initial,
+      fallback = _defaultOptions$optio.fallback;
+
+  var _useState = Object(external_this_wp_element_["useState"])(currentState),
+      _useState2 = Object(slicedToArray["a" /* default */])(_useState, 2),
+      internalState = _useState2[0],
+      setInternalState = _useState2[1];
+
+  var hasCurrentState = isValueDefined(currentState);
+  var state = getDefinedValue([currentState, internalState, initial], fallback);
+
+  var setState = function setState(nextState) {
+    if (!hasCurrentState) {
+      setInternalState(nextState);
+    }
+  };
+
+  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(_ref, ref) {
+  var _ref$__unstableStateR = _ref.__unstableStateReducer,
+      stateReducer = _ref$__unstableStateR === void 0 ? function (state) {
+    return state;
+  } : _ref$__unstableStateR,
+      _ref$autoComplete = _ref.autoComplete,
+      autoComplete = _ref$autoComplete === void 0 ? 'off' : _ref$autoComplete,
+      className = _ref.className,
+      _ref$disabled = _ref.disabled,
+      disabled = _ref$disabled === void 0 ? false : _ref$disabled,
+      _ref$disableUnits = _ref.disableUnits,
+      disableUnits = _ref$disableUnits === void 0 ? false : _ref$disableUnits,
+      _ref$isPressEnterToCh = _ref.isPressEnterToChange,
+      isPressEnterToChange = _ref$isPressEnterToCh === void 0 ? false : _ref$isPressEnterToCh,
+      _ref$isResetValueOnUn = _ref.isResetValueOnUnitChange,
+      isResetValueOnUnitChange = _ref$isResetValueOnUn === void 0 ? false : _ref$isResetValueOnUn,
+      _ref$isUnitSelectTabb = _ref.isUnitSelectTabbable,
+      isUnitSelectTabbable = _ref$isUnitSelectTabb === void 0 ? false : _ref$isUnitSelectTabb,
+      label = _ref.label,
+      _ref$onChange = _ref.onChange,
+      onChange = _ref$onChange === void 0 ? external_this_lodash_["noop"] : _ref$onChange,
+      _ref$onUnitChange = _ref.onUnitChange,
+      onUnitChange = _ref$onUnitChange === void 0 ? external_this_lodash_["noop"] : _ref$onUnitChange,
+      _ref$size = _ref.size,
+      size = _ref$size === void 0 ? 'default' : _ref$size,
+      style = _ref.style,
+      unitProp = _ref.unit,
+      _ref$units = _ref.units,
+      units = _ref$units === void 0 ? CSS_UNITS : _ref$units,
+      valueProp = _ref.value,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["__unstableStateReducer", "autoComplete", "className", "disabled", "disableUnits", "isPressEnterToChange", "isResetValueOnUnitChange", "isUnitSelectTabbable", "label", "onChange", "onUnitChange", "size", "style", "unit", "units", "value"]);
+
+  var _getParsedValue = getParsedValue(valueProp, unitProp, units),
+      _getParsedValue2 = Object(slicedToArray["a" /* default */])(_getParsedValue, 2),
+      value = _getParsedValue2[0],
+      initialUnit = _getParsedValue2[1];
+
+  var _useControlledState = use_controlled_state(unitProp, {
+    initial: initialUnit
+  }),
+      _useControlledState2 = Object(slicedToArray["a" /* default */])(_useControlledState, 2),
+      unit = _useControlledState2[0],
+      setUnit = _useControlledState2[1];
+
+  var classes = classnames_default()('components-unit-control', className);
+
+  var handleOnChange = function handleOnChange(next, changeProps) {
+    /**
+     * Customizing the onChange callback.
+     * This allows as to broadcast a combined value+unit to onChange.
+     */
+    var _getValidParsedUnit = getValidParsedUnit(next, units, value, unit),
+        _getValidParsedUnit2 = Object(slicedToArray["a" /* default */])(_getValidParsedUnit, 2),
+        parsedValue = _getValidParsedUnit2[0],
+        parsedUnit = _getValidParsedUnit2[1];
+
+    var nextValue = "".concat(parsedValue).concat(parsedUnit);
+    onChange(nextValue, changeProps);
+  };
+
+  var handleOnUnitChange = function handleOnUnitChange(next, changeProps) {
+    var data = changeProps.data;
+    var nextValue = "".concat(value).concat(next);
+
+    if (isResetValueOnUnitChange && (data === null || data === void 0 ? void 0 : data.default) !== undefined) {
+      nextValue = "".concat(data.default).concat(next);
+    }
+
+    onChange(nextValue, changeProps);
+    onUnitChange(next, changeProps);
+    setUnit(next);
+  };
+  /**
+   * "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
+   */
+
+
+  var unitControlStateReducer = function unitControlStateReducer(state, action) {
+    var type = action.type,
+        payload = action.payload;
+    var event = payload === null || payload === void 0 ? void 0 : payload.event;
+    /**
+     * Customizes the commit interaction.
+     *
+     * This occurs when pressing ENTER to fire a change.
+     * By intercepting the state change, we can parse the incoming
+     * value to determine if the unit needs to be updated.
+     */
+
+    if (type === inputControlActionTypes.COMMIT) {
+      var _event$target;
+
+      var valueToParse = event === null || event === void 0 ? void 0 : (_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.value;
+
+      var _getValidParsedUnit3 = getValidParsedUnit(valueToParse, units, value, unit),
+          _getValidParsedUnit4 = Object(slicedToArray["a" /* default */])(_getValidParsedUnit3, 2),
+          parsedValue = _getValidParsedUnit4[0],
+          parsedUnit = _getValidParsedUnit4[1];
+
+      state.value = parsedValue; // Update unit if the incoming parsed unit is different.
+
+      if (unit !== parsedUnit) {
+        handleOnUnitChange(parsedUnit, {
+          event: event
+        });
+      }
+    }
+
+    return state;
+  };
+
+  var inputSuffix = !disableUnits ? Object(external_this_wp_element_["createElement"])(UnitSelectControl, {
+    disabled: disabled,
+    isTabbable: isUnitSelectTabbable,
+    options: units,
+    onChange: handleOnUnitChange,
+    size: size,
+    value: unit
+  }) : null;
+  return Object(external_this_wp_element_["createElement"])(unit_control_styles_Root, {
+    className: "components-unit-control-wrapper",
+    style: style
+  }, Object(external_this_wp_element_["createElement"])(ValueInput, Object(esm_extends["a" /* default */])({
+    "aria-label": label,
+    type: isPressEnterToChange ? 'text' : 'number'
+  }, props, {
+    autoComplete: autoComplete,
+    className: classes,
+    disabled: disabled,
+    disableUnits: disableUnits,
+    isPressEnterToChange: isPressEnterToChange,
+    label: label,
+    onChange: handleOnChange,
+    ref: ref,
+    size: size,
+    suffix: inputSuffix,
+    value: value,
+    __unstableStateReducer: state_composeStateReducers(unitControlStateReducer, stateReducer)
+  })));
+}
+
+var ForwardedUnitControl = Object(external_this_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
+ */
+
+
+
+var 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);
+var Header = /*#__PURE__*/styled_base_browser_esm(flex_Flex, {
+  target: "e7pk0lh1",
+  label: "Header"
+})("color:", colors_color('ui.label'), ";padding-bottom:8px;" + ( true ? "" : undefined));
+var HeaderControlWrapper = /*#__PURE__*/styled_base_browser_esm(flex_Flex, {
+  target: "e7pk0lh2",
+  label: "HeaderControlWrapper"
+})( true ? {
+  name: "19de7qh",
+  styles: "min-height:30px;"
+} : undefined);
+var UnitControlWrapper = styled_base_browser_esm("div", {
+  target: "e7pk0lh3",
+  label: "UnitControlWrapper"
+})( true ? {
+  name: "zypm0w",
+  styles: "box-sizing:border-box;max-width:80px;"
+} : undefined);
+var LayoutContainer = /*#__PURE__*/styled_base_browser_esm(flex_Flex, {
+  target: "e7pk0lh4",
+  label: "LayoutContainer"
+})( true ? {
+  name: "39f89t",
+  styles: "justify-content:center;padding-top:8px;"
+} : undefined);
+var Layout = /*#__PURE__*/styled_base_browser_esm(flex_Flex, {
+  target: "e7pk0lh5",
+  label: "Layout"
+})( true ? {
+  name: "ojqyia",
+  styles: "position:relative;height:100%;width:100%;"
+} : 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;
+
+var box_control_styles_unitControlBorderRadiusStyles = function unitControlBorderRadiusStyles(_ref3) {
+  var isFirst = _ref3.isFirst,
+      isLast = _ref3.isLast,
+      isOnly = _ref3.isOnly;
+
+  if (isFirst) {
+    return rtl({
+      borderTopRightRadius: 0,
+      borderBottomRightRadius: 0
+    })();
+  }
+
+  if (isLast) {
+    return rtl({
+      borderTopLeftRadius: 0,
+      borderBottomLeftRadius: 0
+    })();
+  }
+
+  if (isOnly) {
+    return box_control_styles_ref;
+  }
+
+  return box_control_styles_ref2;
+};
+
+var box_control_styles_unitControlMarginStyles = function unitControlMarginStyles(_ref4) {
+  var isFirst = _ref4.isFirst;
+  var marginLeft = isFirst ? 0 : -1;
+  return rtl({
+    marginLeft: marginLeft
+  })();
+};
+
+var box_control_styles_UnitControl = /*#__PURE__*/styled_base_browser_esm(unit_control, {
+  target: "e7pk0lh6",
+  label: "UnitControl"
+})("max-width:60px;", box_control_styles_unitControlBorderRadiusStyles, ";", box_control_styles_unitControlMarginStyles, ";" + ( true ? "" : undefined));
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/box-control/unit-control.js
+
+
+
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+function BoxUnitControl(_ref) {
+  var isFirst = _ref.isFirst,
+      isLast = _ref.isLast,
+      isOnly = _ref.isOnly,
+      _ref$onHoverOn = _ref.onHoverOn,
+      onHoverOn = _ref$onHoverOn === void 0 ? external_this_lodash_["noop"] : _ref$onHoverOn,
+      _ref$onHoverOff = _ref.onHoverOff,
+      onHoverOff = _ref$onHoverOff === void 0 ? external_this_lodash_["noop"] : _ref$onHoverOff,
+      label = _ref.label,
+      value = _ref.value,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["isFirst", "isLast", "isOnly", "onHoverOn", "onHoverOff", "label", "value"]);
+
+  var bindHoverGesture = useHover(function (_ref2) {
+    var event = _ref2.event,
+        state = Object(objectWithoutProperties["a" /* default */])(_ref2, ["event"]);
+
+    if (state.hovering) {
+      onHoverOn(event, state);
+    } else {
+      onHoverOff(event, state);
+    }
+  });
+  return Object(external_this_wp_element_["createElement"])(UnitControlWrapper, Object(esm_extends["a" /* default */])({
+    "aria-label": label
+  }, bindHoverGesture()), Object(external_this_wp_element_["createElement"])(Tooltip, {
+    text: label
+  }, Object(external_this_wp_element_["createElement"])(box_control_styles_UnitControl, Object(esm_extends["a" /* default */])({
+    className: "component-box-control__unit-control",
+    hideHTMLArrows: true,
+    isFirst: isFirst,
+    isLast: isLast,
+    isOnly: isOnly,
+    isPressEnterToChange: true,
+    isFloatingLabel: true,
+    isResetValueOnUnitChange: false,
+    value: value
+  }, props))));
+}
+
+function Tooltip(_ref3) {
+  var children = _ref3.children,
+      text = _ref3.text;
+  if (!text) return children;
+  return Object(external_this_wp_element_["createElement"])(build_module_tooltip["a" /* default */], {
+    text: text,
+    position: "top"
+  }, children);
+}
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/box-control/utils.js
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+var LABELS = {
+  all: Object(external_this_wp_i18n_["__"])('All'),
+  top: Object(external_this_wp_i18n_["__"])('Top'),
+  bottom: Object(external_this_wp_i18n_["__"])('Bottom'),
+  left: Object(external_this_wp_i18n_["__"])('Left'),
+  right: Object(external_this_wp_i18n_["__"])('Right'),
+  mixed: Object(external_this_wp_i18n_["__"])('Mixed')
+};
+var DEFAULT_VALUES = {
+  top: null,
+  right: null,
+  bottom: null,
+  left: null
+};
+var 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(function (a, b) {
+    return arr.filter(function (v) {
+      return v === a;
+    }).length - arr.filter(function (v) {
+      return 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() {
+  var values = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+  var parsedValues = Object.values(values).map(parseUnit);
+  var allValues = parsedValues.map(function (value) {
+    return value[0];
+  });
+  var allUnits = parsedValues.map(function (value) {
+    return value[1];
+  });
+  var value = allValues.every(function (v) {
+    return v === allValues[0];
+  }) ? allValues[0] : '';
+  var 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.
+   */
+
+  var allValue = Object(external_this_lodash_["isNumber"])(value) ? "".concat(value).concat(unit) : null;
+  return allValue;
+}
+/**
+ * Checks to determine if values are mixed.
+ *
+ * @param {Object} values Box values.
+ * @return {boolean} Whether values are mixed.
+ */
+
+function isValuesMixed() {
+  var values = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+  var allValue = getAllValue(values);
+  var 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_this_lodash_["isEmpty"])(Object.values(values).filter(Boolean));
+}
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/box-control/all-input-control.js
+
+
+
+
+
+function all_input_control_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 all_input_control_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { all_input_control_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty["a" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { all_input_control_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+function AllInputControl(_ref) {
+  var _ref$onChange = _ref.onChange,
+      onChange = _ref$onChange === void 0 ? external_this_lodash_["noop"] : _ref$onChange,
+      _ref$onFocus = _ref.onFocus,
+      onFocus = _ref$onFocus === void 0 ? external_this_lodash_["noop"] : _ref$onFocus,
+      _ref$onHoverOn = _ref.onHoverOn,
+      onHoverOn = _ref$onHoverOn === void 0 ? external_this_lodash_["noop"] : _ref$onHoverOn,
+      _ref$onHoverOff = _ref.onHoverOff,
+      onHoverOff = _ref$onHoverOff === void 0 ? external_this_lodash_["noop"] : _ref$onHoverOff,
+      values = _ref.values,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["onChange", "onFocus", "onHoverOn", "onHoverOff", "values"]);
+
+  var allValue = getAllValue(values);
+  var hasValues = isValuesDefined(values);
+  var isMixed = hasValues && isValuesMixed(values);
+  var allPlaceholder = isMixed ? LABELS.mixed : null;
+
+  var handleOnFocus = function handleOnFocus(event) {
+    onFocus(event, {
+      side: 'all'
+    });
+  };
+
+  var handleOnChange = function handleOnChange(next) {
+    var nextValues = all_input_control_objectSpread({}, values);
+
+    nextValues.top = next;
+    nextValues.bottom = next;
+    nextValues.left = next;
+    nextValues.right = next;
+    onChange(nextValues);
+  };
+
+  var handleOnHoverOn = function handleOnHoverOn() {
+    onHoverOn({
+      top: true,
+      bottom: true,
+      left: true,
+      right: true
+    });
+  };
+
+  var handleOnHoverOff = function handleOnHoverOff() {
+    onHoverOff({
+      top: false,
+      bottom: false,
+      left: false,
+      right: false
+    });
+  };
+
+  return Object(external_this_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
+
+
+
+
+
+function input_controls_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 input_controls_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { input_controls_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty["a" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { input_controls_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+function BoxInputControls(_ref) {
+  var _ref$onChange = _ref.onChange,
+      onChange = _ref$onChange === void 0 ? external_this_lodash_["noop"] : _ref$onChange,
+      _ref$onFocus = _ref.onFocus,
+      onFocus = _ref$onFocus === void 0 ? external_this_lodash_["noop"] : _ref$onFocus,
+      _ref$onHoverOn = _ref.onHoverOn,
+      onHoverOn = _ref$onHoverOn === void 0 ? external_this_lodash_["noop"] : _ref$onHoverOn,
+      _ref$onHoverOff = _ref.onHoverOff,
+      onHoverOff = _ref$onHoverOff === void 0 ? external_this_lodash_["noop"] : _ref$onHoverOff,
+      values = _ref.values,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["onChange", "onFocus", "onHoverOn", "onHoverOff", "values"]);
+
+  var createHandleOnFocus = function createHandleOnFocus(side) {
+    return function (event) {
+      onFocus(event, {
+        side: side
+      });
+    };
+  };
+
+  var createHandleOnHoverOn = function createHandleOnHoverOn(side) {
+    return function () {
+      onHoverOn(Object(defineProperty["a" /* default */])({}, side, true));
+    };
+  };
+
+  var createHandleOnHoverOff = function createHandleOnHoverOff(side) {
+    return function () {
+      onHoverOff(Object(defineProperty["a" /* default */])({}, side, false));
+    };
+  };
+
+  var handleOnChange = function handleOnChange(nextValues) {
+    onChange(nextValues);
+  };
+
+  var top = values.top,
+      right = values.right,
+      bottom = values.bottom,
+      left = values.left;
+
+  var createHandleOnChange = function createHandleOnChange(side) {
+    return function (next, _ref2) {
+      var event = _ref2.event;
+      var altKey = event.altKey;
+
+      var nextValues = input_controls_objectSpread({}, 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);
+    };
+  };
+
+  return Object(external_this_wp_element_["createElement"])(LayoutContainer, {
+    className: "component-box-control__input-controls-wrapper"
+  }, Object(external_this_wp_element_["createElement"])(Layout, {
+    gap: 0,
+    align: "top",
+    className: "component-box-control__input-controls"
+  }, Object(external_this_wp_element_["createElement"])(BoxUnitControl, Object(esm_extends["a" /* default */])({}, props, {
+    isFirst: true,
+    value: top,
+    onChange: createHandleOnChange('top'),
+    onFocus: createHandleOnFocus('top'),
+    onHoverOn: createHandleOnHoverOn('top'),
+    onHoverOff: createHandleOnHoverOff('top'),
+    label: LABELS.top
+  })), Object(external_this_wp_element_["createElement"])(BoxUnitControl, Object(esm_extends["a" /* default */])({}, props, {
+    value: right,
+    onChange: createHandleOnChange('right'),
+    onFocus: createHandleOnFocus('right'),
+    onHoverOn: createHandleOnHoverOn('right'),
+    onHoverOff: createHandleOnHoverOff('right'),
+    label: LABELS.right
+  })), Object(external_this_wp_element_["createElement"])(BoxUnitControl, Object(esm_extends["a" /* default */])({}, props, {
+    value: bottom,
+    onChange: createHandleOnChange('bottom'),
+    onFocus: createHandleOnFocus('bottom'),
+    onHoverOn: createHandleOnHoverOn('bottom'),
+    onHoverOff: createHandleOnHoverOff('bottom'),
+    label: LABELS.bottom
+  })), Object(external_this_wp_element_["createElement"])(BoxUnitControl, Object(esm_extends["a" /* default */])({}, props, {
+    isLast: true,
+    value: left,
+    onChange: createHandleOnChange('left'),
+    onFocus: createHandleOnFocus('left'),
+    onHoverOn: createHandleOnHoverOn('left'),
+    onHoverOff: createHandleOnHoverOff('left'),
+    label: LABELS.left
+  }))));
+}
+
+// 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
+ */
+
+var 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);
+var 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);
+
+var box_control_icon_styles_strokeFocus = function strokeFocus(_ref) {
+  var isFocused = _ref.isFocused;
+  return /*#__PURE__*/css_browser_esm({
+    backgroundColor: 'currentColor',
+    opacity: isFocused ? 1 : 0.3
+  },  true ? "" : undefined);
+};
+
+var Stroke = styled_base_browser_esm("span", {
+  target: "eaw9yqk2",
+  label: "Stroke"
+})("box-sizing:border-box;display:block;pointer-events:none;position:absolute;", box_control_icon_styles_strokeFocus, ";" + ( true ? "" : undefined));
+
+var VerticalStroke = /*#__PURE__*/styled_base_browser_esm(Stroke, {
+  target: "eaw9yqk3",
+  label: "VerticalStroke"
+})( true ? {
+  name: "r820ty",
+  styles: "bottom:3px;top:3px;width:2px;"
+} : undefined);
+
+var HorizontalStroke = /*#__PURE__*/styled_base_browser_esm(Stroke, {
+  target: "eaw9yqk4",
+  label: "HorizontalStroke"
+})( true ? {
+  name: "1gteeqa",
+  styles: "height:2px;left:3px;right:3px;"
+} : undefined);
+
+var TopStroke = /*#__PURE__*/styled_base_browser_esm(HorizontalStroke, {
+  target: "eaw9yqk5",
+  label: "TopStroke"
+})( true ? {
+  name: "1etxbbi",
+  styles: "top:0;"
+} : undefined);
+var RightStroke = /*#__PURE__*/styled_base_browser_esm(VerticalStroke, {
+  target: "eaw9yqk6",
+  label: "RightStroke"
+})( true ? {
+  name: "19zs6va",
+  styles: "right:0;"
+} : undefined);
+var BottomStroke = /*#__PURE__*/styled_base_browser_esm(HorizontalStroke, {
+  target: "eaw9yqk7",
+  label: "BottomStroke"
+})( true ? {
+  name: "lh0t43",
+  styles: "bottom:0;"
+} : undefined);
+var 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
+ */
+
+var BASE_ICON_SIZE = 24;
+function BoxControlIcon(_ref) {
+  var _ref$size = _ref.size,
+      size = _ref$size === void 0 ? 24 : _ref$size,
+      _ref$side = _ref.side,
+      side = _ref$side === void 0 ? 'all' : _ref$side,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["size", "side"]);
+
+  var top = getSide(side, 'top');
+  var right = getSide(side, 'right');
+  var bottom = getSide(side, 'bottom');
+  var left = getSide(side, 'left'); // Simulates SVG Icon scaling
+
+  var scale = size / BASE_ICON_SIZE;
+  return Object(external_this_wp_element_["createElement"])(box_control_icon_styles_Root, Object(esm_extends["a" /* default */])({
+    style: {
+      transform: "scale(".concat(scale, ")")
+    }
+  }, props), Object(external_this_wp_element_["createElement"])(Viewbox, null, Object(external_this_wp_element_["createElement"])(TopStroke, {
+    isFocused: top
+  }), Object(external_this_wp_element_["createElement"])(RightStroke, {
+    isFocused: right
+  }), Object(external_this_wp_element_["createElement"])(BottomStroke, {
+    isFocused: bottom
+  }), Object(external_this_wp_element_["createElement"])(LeftStroke, {
+    isFocused: left
+  })));
+}
+
+function getSide(side, value) {
+  return side === 'all' || side === value;
+}
+
+// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/link.js
+var library_link = __webpack_require__(180);
+
+// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/link-off.js
+var link_off = __webpack_require__(205);
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/box-control/linked-button.js
+
+
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+function LinkedButton(_ref) {
+  var isLinked = _ref.isLinked,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["isLinked"]);
+
+  var linkedTooltipText = isLinked ? Object(external_this_wp_i18n_["__"])('Unlink Sides') : Object(external_this_wp_i18n_["__"])('Link Sides');
+  return Object(external_this_wp_element_["createElement"])(build_module_tooltip["a" /* default */], {
+    text: linkedTooltipText
+  }, Object(external_this_wp_element_["createElement"])("span", null, Object(external_this_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
+  }))));
+}
+
+// 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;
+
+var containerPositionStyles = function containerPositionStyles(_ref2) {
+  var isPositionAbsolute = _ref2.isPositionAbsolute;
+  if (!isPositionAbsolute) return '';
+  return box_control_visualizer_styles_ref;
+};
+
+var box_control_visualizer_styles_Container = styled_base_browser_esm("div", {
+  target: "e1df9b4q0",
+  label: "Container"
+})("box-sizing:border-box;position:relative;", containerPositionStyles, ";" + ( true ? "" : undefined));
+var Side = styled_base_browser_esm("div", {
+  target: "e1df9b4q1",
+  label: "Side"
+})("box-sizing:border-box;background:", colors_color('blue.wordpress.700'), ";background:", colors_color('ui.theme'), ";filter:brightness( 1 );opacity:0;position:absolute;pointer-events:none;transition:opacity 120ms linear;z-index:1;", function (_ref3) {
+  var isActive = _ref3.isActive;
+  return isActive && "\n\t\topacity: 0.3;\n\t";
+},  true ? "" : undefined);
+var TopView = /*#__PURE__*/styled_base_browser_esm(Side, {
+  target: "e1df9b4q2",
+  label: "TopView"
+})( true ? {
+  name: "1pb21am",
+  styles: "top:0;left:0;right:0;"
+} : undefined);
+var RightView = /*#__PURE__*/styled_base_browser_esm(Side, {
+  target: "e1df9b4q3",
+  label: "RightView"
+})("top:0;bottom:0;", rtl({
+  right: 0
+}), ";" + ( true ? "" : undefined));
+var BottomView = /*#__PURE__*/styled_base_browser_esm(Side, {
+  target: "e1df9b4q4",
+  label: "BottomView"
+})( true ? {
+  name: "w87m56",
+  styles: "bottom:0;left:0;right:0;"
+} : undefined);
+var LeftView = /*#__PURE__*/styled_base_browser_esm(Side, {
+  target: "e1df9b4q5",
+  label: "LeftView"
+})("top:0;bottom:0;", rtl({
+  left: 0
+}), ";" + ( true ? "" : undefined));
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/box-control/visualizer.js
+
+
+
+
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+function BoxControlVisualizer(_ref) {
+  var children = _ref.children,
+      _ref$showValues = _ref.showValues,
+      showValues = _ref$showValues === void 0 ? DEFAULT_VISUALIZER_VALUES : _ref$showValues,
+      _ref$values = _ref.values,
+      valuesProp = _ref$values === void 0 ? DEFAULT_VALUES : _ref$values,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["children", "showValues", "values"]);
+
+  var isPositionAbsolute = !children;
+  return Object(external_this_wp_element_["createElement"])(box_control_visualizer_styles_Container, Object(esm_extends["a" /* default */])({}, props, {
+    isPositionAbsolute: isPositionAbsolute,
+    "aria-hidden": "true"
+  }), Object(external_this_wp_element_["createElement"])(Sides, {
+    showValues: showValues,
+    values: valuesProp
+  }), children);
+}
+
+function Sides(_ref2) {
+  var _ref2$showValues = _ref2.showValues,
+      showValues = _ref2$showValues === void 0 ? DEFAULT_VISUALIZER_VALUES : _ref2$showValues,
+      values = _ref2.values;
+  var top = values.top,
+      right = values.right,
+      bottom = values.bottom,
+      left = values.left;
+  return Object(external_this_wp_element_["createElement"])(external_this_wp_element_["Fragment"], null, Object(external_this_wp_element_["createElement"])(Top, {
+    isVisible: showValues.top,
+    value: top
+  }), Object(external_this_wp_element_["createElement"])(Right, {
+    isVisible: showValues.right,
+    value: right
+  }), Object(external_this_wp_element_["createElement"])(Bottom, {
+    isVisible: showValues.bottom,
+    value: bottom
+  }), Object(external_this_wp_element_["createElement"])(Left, {
+    isVisible: showValues.left,
+    value: left
+  }));
+}
+
+function Top(_ref3) {
+  var _ref3$isVisible = _ref3.isVisible,
+      isVisible = _ref3$isVisible === void 0 ? false : _ref3$isVisible,
+      value = _ref3.value;
+  var height = value;
+  var animationProps = useSideAnimation(height);
+  var isActive = animationProps.isActive || isVisible;
+  return Object(external_this_wp_element_["createElement"])(TopView, {
+    isActive: isActive,
+    style: {
+      height: height
+    }
+  });
+}
+
+function Right(_ref4) {
+  var _ref4$isVisible = _ref4.isVisible,
+      isVisible = _ref4$isVisible === void 0 ? false : _ref4$isVisible,
+      value = _ref4.value;
+  var width = value;
+  var animationProps = useSideAnimation(width);
+  var isActive = animationProps.isActive || isVisible;
+  return Object(external_this_wp_element_["createElement"])(RightView, {
+    isActive: isActive,
+    style: {
+      width: width
+    }
+  });
+}
+
+function Bottom(_ref5) {
+  var _ref5$isVisible = _ref5.isVisible,
+      isVisible = _ref5$isVisible === void 0 ? false : _ref5$isVisible,
+      value = _ref5.value;
+  var height = value;
+  var animationProps = useSideAnimation(height);
+  var isActive = animationProps.isActive || isVisible;
+  return Object(external_this_wp_element_["createElement"])(BottomView, {
+    isActive: isActive,
+    style: {
+      height: height
+    }
+  });
+}
+
+function Left(_ref6) {
+  var _ref6$isVisible = _ref6.isVisible,
+      isVisible = _ref6$isVisible === void 0 ? false : _ref6$isVisible,
+      value = _ref6.value;
+  var width = value;
+  var animationProps = useSideAnimation(width);
+  var isActive = animationProps.isActive || isVisible;
+  return Object(external_this_wp_element_["createElement"])(LeftView, {
+    isActive: isActive,
+    style: {
+      width: width
+    }
+  });
+}
+/**
+ * Custom hook that renders the "flash" animation whenever the value changes.
+ *
+ * @param {string} value Value of (box) side.
+ */
+
+
+function useSideAnimation(value) {
+  var _useState = Object(external_this_wp_element_["useState"])(false),
+      _useState2 = Object(slicedToArray["a" /* default */])(_useState, 2),
+      isActive = _useState2[0],
+      setIsActive = _useState2[1];
+
+  var valueRef = Object(external_this_wp_element_["useRef"])(value);
+  var timeoutRef = Object(external_this_wp_element_["useRef"])();
+
+  var clearTimer = function clearTimer() {
+    if (timeoutRef.current) {
+      window.clearTimeout(timeoutRef.current);
+    }
+  };
+
+  Object(external_this_wp_element_["useEffect"])(function () {
+    if (value !== valueRef.current) {
+      setIsActive(true);
+      valueRef.current = value;
+      clearTimer();
+      timeoutRef.current = setTimeout(function () {
+        setIsActive(false);
+      }, 400);
+    }
+
+    return function () {
+      return clearTimer();
+    };
+  }, [value]);
+  return {
+    isActive: isActive
+  };
+}
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/box-control/index.js
+
+
+
+
+function box_control_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 box_control_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { box_control_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty["a" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { box_control_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+
+
+
+
+
+
+var defaultInputProps = {
+  min: 0
+};
+
+function box_control_useUniqueId(idProp) {
+  var instanceId = Object(external_this_wp_compose_["useInstanceId"])(BoxControl, 'inspector-box-control');
+  return idProp || instanceId;
+}
+
+function BoxControl(_ref) {
+  var idProp = _ref.id,
+      _ref$inputProps = _ref.inputProps,
+      inputProps = _ref$inputProps === void 0 ? defaultInputProps : _ref$inputProps,
+      _ref$onChange = _ref.onChange,
+      onChange = _ref$onChange === void 0 ? external_this_lodash_["noop"] : _ref$onChange,
+      _ref$onChangeShowVisu = _ref.onChangeShowVisualizer,
+      onChangeShowVisualizer = _ref$onChangeShowVisu === void 0 ? external_this_lodash_["noop"] : _ref$onChangeShowVisu,
+      _ref$label = _ref.label,
+      label = _ref$label === void 0 ? Object(external_this_wp_i18n_["__"])('Box Control') : _ref$label,
+      valuesProp = _ref.values,
+      units = _ref.units;
+
+  var _useControlledState = use_controlled_state(valuesProp),
+      _useControlledState2 = Object(slicedToArray["a" /* default */])(_useControlledState, 2),
+      values = _useControlledState2[0],
+      setValues = _useControlledState2[1];
+
+  var inputValues = values || DEFAULT_VALUES;
+  var hasInitialValue = isValuesDefined(valuesProp);
+
+  var _useState = Object(external_this_wp_element_["useState"])(hasInitialValue),
+      _useState2 = Object(slicedToArray["a" /* default */])(_useState, 2),
+      isDirty = _useState2[0],
+      setIsDirty = _useState2[1];
+
+  var _useState3 = Object(external_this_wp_element_["useState"])(!hasInitialValue || !isValuesMixed(inputValues)),
+      _useState4 = Object(slicedToArray["a" /* default */])(_useState3, 2),
+      isLinked = _useState4[0],
+      setIsLinked = _useState4[1];
+
+  var _useState5 = Object(external_this_wp_element_["useState"])(isLinked ? 'all' : 'top'),
+      _useState6 = Object(slicedToArray["a" /* default */])(_useState5, 2),
+      side = _useState6[0],
+      setSide = _useState6[1];
+
+  var id = box_control_useUniqueId(idProp);
+  var headingId = "".concat(id, "-heading");
+
+  var toggleLinked = function toggleLinked() {
+    setIsLinked(!isLinked);
+    setSide(!isLinked ? 'all' : 'top');
+  };
+
+  var handleOnFocus = function handleOnFocus(event, _ref2) {
+    var nextSide = _ref2.side;
+    setSide(nextSide);
+  };
+
+  var handleOnChange = function handleOnChange(nextValues) {
+    onChange(nextValues);
+    setValues(nextValues);
+    setIsDirty(true);
+  };
+
+  var handleOnHoverOn = function handleOnHoverOn() {
+    var next = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+    onChangeShowVisualizer(box_control_objectSpread({}, DEFAULT_VISUALIZER_VALUES, {}, next));
+  };
+
+  var handleOnHoverOff = function handleOnHoverOff() {
+    var next = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+    onChangeShowVisualizer(box_control_objectSpread({}, DEFAULT_VISUALIZER_VALUES, {}, next));
+  };
+
+  var handleOnReset = function handleOnReset() {
+    var initialValues = DEFAULT_VALUES;
+    onChange(initialValues);
+    setValues(initialValues);
+    setIsDirty(false);
+  };
+
+  var inputControlProps = box_control_objectSpread({}, inputProps, {
+    onChange: handleOnChange,
+    onFocus: handleOnFocus,
+    onHoverOn: handleOnHoverOn,
+    onHoverOff: handleOnHoverOff,
+    isLinked: isLinked,
+    units: units,
+    values: inputValues
+  });
+
+  return Object(external_this_wp_element_["createElement"])(box_control_styles_Root, {
+    id: id,
+    role: "region",
+    "aria-labelledby": headingId
+  }, Object(external_this_wp_element_["createElement"])(Header, {
+    className: "component-box-control__header"
+  }, Object(external_this_wp_element_["createElement"])(flex_item, null, Object(external_this_wp_element_["createElement"])(build_module_text, {
+    id: headingId,
+    className: "component-box-control__label"
+  }, label)), Object(external_this_wp_element_["createElement"])(flex_item, null, Object(external_this_wp_element_["createElement"])(build_module_button["a" /* default */], {
+    className: "component-box-control__reset-button",
+    isSecondary: true,
+    isSmall: true,
+    onClick: handleOnReset,
+    disabled: !isDirty
+  }, Object(external_this_wp_i18n_["__"])('Reset')))), Object(external_this_wp_element_["createElement"])(HeaderControlWrapper, {
+    className: "component-box-control__header-control-wrapper"
+  }, Object(external_this_wp_element_["createElement"])(flex_item, null, Object(external_this_wp_element_["createElement"])(BoxControlIcon, {
+    side: side
+  })), isLinked && Object(external_this_wp_element_["createElement"])(block, null, Object(external_this_wp_element_["createElement"])(AllInputControl, inputControlProps)), Object(external_this_wp_element_["createElement"])(flex_item, null, Object(external_this_wp_element_["createElement"])(LinkedButton, {
+    onClick: toggleLinked,
+    isLinked: isLinked
+  }))), !isLinked && Object(external_this_wp_element_["createElement"])(BoxInputControls, inputControlProps));
+}
+BoxControl.__Visualizer = BoxControlVisualizer;
 
 // CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/button-group/index.js
 
@@ -28079,19 +28191,330 @@
  * External dependencies
  */
 
-
-function ButtonGroup(_ref) {
+/**
+ * WordPress dependencies
+ */
+
+
+
+function ButtonGroup(_ref, ref) {
   var className = _ref.className,
       props = Object(objectWithoutProperties["a" /* default */])(_ref, ["className"]);
 
   var classes = classnames_default()('components-button-group', className);
-  return Object(external_this_wp_element_["createElement"])("div", Object(esm_extends["a" /* default */])({}, props, {
-    className: classes,
-    role: "group"
+  return Object(external_this_wp_element_["createElement"])("div", Object(esm_extends["a" /* default */])({
+    ref: ref,
+    role: "group",
+    className: classes
+  }, props));
+}
+
+/* harmony default export */ var button_group = (Object(external_this_wp_element_["forwardRef"])(ButtonGroup));
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/card/context.js
+/**
+ * WordPress dependencies
+ */
+
+var CardContext = Object(external_this_wp_element_["createContext"])({});
+var context_useCardContext = function useCardContext() {
+  return Object(external_this_wp_element_["useContext"])(CardContext);
+};
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/space.js
+var SPACE_GRID_BASE = 8;
+/**
+ * Creates a spacing CSS value (px) based on grid system values.
+ *
+ * @param {number} value Multiplier against the grid base value (8)
+ * @return {string} The spacing value (px).
+ */
+
+function space() {
+  var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
+  if (isNaN(value)) return "".concat(SPACE_GRID_BASE, "px");
+  return "".concat(SPACE_GRID_BASE * value, "px");
+}
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/card/styles/card-styles.js
+
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+var styleProps = {
+  borderColor: colors_color('lightGray.500'),
+  borderRadius: '3px',
+  backgroundShady: colors_color('lightGray.200')
+};
+var card_styles_borderColor = styleProps.borderColor,
+    borderRadius = styleProps.borderRadius,
+    backgroundShady = styleProps.backgroundShady;
+var CardUI = styled_base_browser_esm("div", {
+  target: "e1q7k77g0",
+  label: "CardUI"
+})("background:", colors_color('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));
+var HeaderUI = /*#__PURE__*/styled_base_browser_esm(flex, {
+  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));
+var 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));
+var BodyUI = styled_base_browser_esm("div", {
+  target: "e1q7k77g3",
+  label: "BodyUI"
+})("box-sizing:border-box;", bodySize, ";", handleShady, ";" + ( true ? "" : undefined));
+var FooterUI = /*#__PURE__*/styled_base_browser_esm(flex, {
+  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));
+var DividerUI = /*#__PURE__*/styled_base_browser_esm(external_this_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 "\n\t\t&.is-size {\n\t\t\t&-large {\n\t\t\t\tpadding: ".concat(space(3), " ").concat(space(4), ";\n\t\t\t}\n\t\t\t&-medium {\n\t\t\t\tpadding: ").concat(space(2), " ").concat(space(3), ";\n\t\t\t}\n\t\t\t&-small {\n\t\t\t\tpadding: ").concat(space(2), ";\n\t\t\t}\n\t\t\t&-extraSmall {\n\t\t\t\tpadding: ").concat(space(1), ";\n\t\t\t}\n\t\t}\n\t");
+}
+function headerFooterSizes() {
+  return "\n\t\t&.is-size {\n\t\t\t&-large {\n\t\t\t\tpadding: ".concat(space(3), " ").concat(space(4), ";\n\t\t\t}\n\t\t\t&-medium {\n\t\t\t\tpadding: ").concat(space(2), " ").concat(space(3), ";\n\t\t\t}\n\t\t\t&-small {\n\t\t\t\tpadding: ").concat(space(2), ";\n\t\t\t}\n\t\t\t&-extraSmall {\n\t\t\t\tpadding: ").concat(space(1), ";\n\t\t\t}\n\t\t}\n\t");
+}
+function handleBorderless() {
+  return "\n\t\t&.is-borderless {\n\t\t\tborder: none;\n\t\t}\n\t";
+}
+function handleShady() {
+  return "\n\t\t&.is-shady {\n\t\t\tbackground: ".concat(backgroundShady, ";\n\t\t}\n\t");
+}
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/card/index.js
+
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+var card_defaultProps = {
+  isBorderless: false,
+  isElevated: false,
+  size: 'medium'
+};
+function Card(props) {
+  var className = props.className,
+      isBorderless = props.isBorderless,
+      isElevated = props.isElevated,
+      size = props.size,
+      additionalProps = Object(objectWithoutProperties["a" /* default */])(props, ["className", "isBorderless", "isElevated", "size"]);
+
+  var Provider = CardContext.Provider;
+  var contextProps = {
+    isBorderless: isBorderless,
+    isElevated: isElevated,
+    size: size
+  };
+  var classes = classnames_default()('components-card', isBorderless && 'is-borderless', isElevated && 'is-elevated', size && "is-size-".concat(size), className);
+  return Object(external_this_wp_element_["createElement"])(Provider, {
+    value: contextProps
+  }, Object(external_this_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
+
+
+
+
+
+function body_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 body_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { body_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty["a" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { body_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+var body_defaultProps = {
+  isShady: false,
+  size: 'medium'
+};
+function CardBody(props) {
+  var className = props.className,
+      isShady = props.isShady,
+      additionalProps = Object(objectWithoutProperties["a" /* default */])(props, ["className", "isShady"]);
+
+  var mergedProps = body_objectSpread({}, body_defaultProps, {}, context_useCardContext(), {}, props);
+
+  var size = mergedProps.size;
+  var classes = classnames_default()('components-card__body', isShady && 'is-shady', size && "is-size-".concat(size), className);
+  return Object(external_this_wp_element_["createElement"])(BodyUI, Object(esm_extends["a" /* default */])({}, additionalProps, {
+    className: classes
   }));
 }
-
-/* harmony default export */ var button_group = (ButtonGroup);
+/* 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) {
+  var className = props.className,
+      additionalProps = Object(objectWithoutProperties["a" /* default */])(props, ["className"]);
+
+  var classes = classnames_default()('components-card__divider', className);
+  return Object(external_this_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
+
+
+
+
+
+function footer_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 footer_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { footer_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty["a" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { footer_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+var footer_defaultProps = {
+  isBorderless: false,
+  isShady: false,
+  size: 'medium'
+};
+function CardFooter(props) {
+  var className = props.className,
+      isShady = props.isShady,
+      additionalProps = Object(objectWithoutProperties["a" /* default */])(props, ["className", "isShady"]);
+
+  var mergedProps = footer_objectSpread({}, footer_defaultProps, {}, context_useCardContext(), {}, props);
+
+  var isBorderless = mergedProps.isBorderless,
+      size = mergedProps.size;
+  var classes = classnames_default()('components-card__footer', isBorderless && 'is-borderless', isShady && 'is-shady', size && "is-size-".concat(size), className);
+  return Object(external_this_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
+
+
+
+
+
+function header_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 header_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { header_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty["a" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { header_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+var header_defaultProps = {
+  isBorderless: false,
+  isShady: false,
+  size: 'medium'
+};
+function CardHeader(props) {
+  var className = props.className,
+      isShady = props.isShady,
+      additionalProps = Object(objectWithoutProperties["a" /* default */])(props, ["className", "isShady"]);
+
+  var mergedProps = header_objectSpread({}, header_defaultProps, {}, context_useCardContext(), {}, props);
+
+  var isBorderless = mergedProps.isBorderless,
+      size = mergedProps.size;
+  var classes = classnames_default()('components-card__header', isBorderless && 'is-borderless', isShady && 'is-shady', size && "is-size-".concat(size), className);
+  return Object(external_this_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) {
+  var className = props.className,
+      additionalProps = Object(objectWithoutProperties["a" /* default */])(props, ["className"]);
+
+  var classes = classnames_default()('components-card__media', className);
+  return Object(external_this_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__(137);
+
+// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/check.js
+var check = __webpack_require__(155);
 
 // CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/checkbox-control/index.js
 
@@ -28102,10 +28525,10 @@
  * WordPress dependencies
  */
 
-/**
- * Internal dependencies
- */
-
+
+/**
+ * Internal dependencies
+ */
 
 
 function CheckboxControl(_ref) {
@@ -28114,10 +28537,10 @@
       heading = _ref.heading,
       checked = _ref.checked,
       help = _ref.help,
-      instanceId = _ref.instanceId,
       onChange = _ref.onChange,
-      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["label", "className", "heading", "checked", "help", "instanceId", "onChange"]);
-
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["label", "className", "heading", "checked", "help", "onChange"]);
+
+  var instanceId = Object(external_this_wp_compose_["useInstanceId"])(CheckboxControl);
   var id = "inspector-checkbox-control-".concat(instanceId);
 
   var onChangeValue = function onChangeValue(event) {
@@ -28129,6 +28552,8 @@
     id: id,
     help: help,
     className: className
+  }, Object(external_this_wp_element_["createElement"])("span", {
+    className: "components-checkbox-control__input-container"
   }, Object(external_this_wp_element_["createElement"])("input", Object(esm_extends["a" /* default */])({
     id: id,
     className: "components-checkbox-control__input",
@@ -28137,160 +28562,76 @@
     onChange: onChangeValue,
     checked: checked,
     "aria-describedby": !!help ? id + '__help' : undefined
-  }, props)), Object(external_this_wp_element_["createElement"])("label", {
+  }, props)), checked ? Object(external_this_wp_element_["createElement"])(build_module_icon["a" /* default */], {
+    icon: check["a" /* default */],
+    className: "components-checkbox-control__checked",
+    role: "presentation"
+  }) : null), Object(external_this_wp_element_["createElement"])("label", {
     className: "components-checkbox-control__label",
     htmlFor: id
   }, label));
 }
 
-/* harmony default export */ var checkbox_control = (Object(external_this_wp_compose_["withInstanceId"])(CheckboxControl));
-
-// EXTERNAL MODULE: ./node_modules/clipboard/dist/clipboard.js
-var clipboard = __webpack_require__(221);
-var clipboard_default = /*#__PURE__*/__webpack_require__.n(clipboard);
-
 // CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/clipboard-button/index.js
 
 
 
 
-
-
-
-
-
-
-/**
- * External dependencies
- */
-
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-var clipboard_button_ClipboardButton =
-/*#__PURE__*/
-function (_Component) {
-  Object(inherits["a" /* default */])(ClipboardButton, _Component);
-
-  function ClipboardButton() {
-    var _this;
-
-    Object(classCallCheck["a" /* default */])(this, ClipboardButton);
-
-    _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(ClipboardButton).apply(this, arguments));
-    _this.bindContainer = _this.bindContainer.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.onCopy = _this.onCopy.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.getText = _this.getText.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    return _this;
-  }
-
-  Object(createClass["a" /* default */])(ClipboardButton, [{
-    key: "componentDidMount",
-    value: function componentDidMount() {
-      var container = this.container,
-          getText = this.getText,
-          onCopy = this.onCopy;
-      var button = container.firstChild;
-      this.clipboard = new clipboard_default.a(button, {
-        text: getText,
-        container: container
-      });
-      this.clipboard.on('success', onCopy);
-    }
-  }, {
-    key: "componentWillUnmount",
-    value: function componentWillUnmount() {
-      this.clipboard.destroy();
-      delete this.clipboard;
-      clearTimeout(this.onCopyTimeout);
-    }
-  }, {
-    key: "bindContainer",
-    value: function bindContainer(container) {
-      this.container = container;
-    }
-  }, {
-    key: "onCopy",
-    value: function onCopy(args) {
-      // Clearing selection will move focus back to the triggering button,
-      // ensuring that it is not reset to the body, and further that it is
-      // kept within the rendered node.
-      args.clearSelection();
-      var _this$props = this.props,
-          onCopy = _this$props.onCopy,
-          onFinishCopy = _this$props.onFinishCopy;
-
-      if (onCopy) {
-        onCopy(); // For convenience and consistency, ClipboardButton offers to call
-        // a secondary callback with delay. This is useful to reset
-        // consumers' state, e.g. to revert a label from "Copied" to
-        // "Copy".
-
-        if (onFinishCopy) {
-          clearTimeout(this.onCopyTimeout);
-          this.onCopyTimeout = setTimeout(onFinishCopy, 4000);
-        }
-      }
-    }
-  }, {
-    key: "getText",
-    value: function getText() {
-      var text = this.props.text;
-
-      if ('function' === typeof text) {
-        text = text();
-      }
-
-      return text;
-    }
-  }, {
-    key: "render",
-    value: function render() {
-      // Disable reason: Exclude from spread props passed to Button
-      // eslint-disable-next-line no-unused-vars
-      var _this$props2 = this.props,
-          className = _this$props2.className,
-          children = _this$props2.children,
-          onCopy = _this$props2.onCopy,
-          onFinishCopy = _this$props2.onFinishCopy,
-          text = _this$props2.text,
-          buttonProps = Object(objectWithoutProperties["a" /* default */])(_this$props2, ["className", "children", "onCopy", "onFinishCopy", "text"]);
-
-      var icon = buttonProps.icon;
-      var classes = classnames_default()('components-clipboard-button', className);
-      var ComponentToUse = icon ? icon_button : build_module_button; // 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.
-
-      var focusOnCopyEventTarget = function focusOnCopyEventTarget(event) {
-        event.target.focus();
-      };
-
-      return Object(external_this_wp_element_["createElement"])("span", {
-        ref: this.bindContainer,
-        onCopy: focusOnCopyEventTarget
-      }, Object(external_this_wp_element_["createElement"])(ComponentToUse, Object(esm_extends["a" /* default */])({}, buttonProps, {
-        className: classes
-      }), children));
-    }
-  }]);
-
-  return ClipboardButton;
-}(external_this_wp_element_["Component"]);
-
-/* harmony default export */ var clipboard_button = (clipboard_button_ClipboardButton);
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+function ClipboardButton(_ref) {
+  var className = _ref.className,
+      children = _ref.children,
+      onCopy = _ref.onCopy,
+      onFinishCopy = _ref.onFinishCopy,
+      text = _ref.text,
+      buttonProps = Object(objectWithoutProperties["a" /* default */])(_ref, ["className", "children", "onCopy", "onFinishCopy", "text"]);
+
+  var ref = Object(external_this_wp_element_["useRef"])();
+  var hasCopied = Object(external_this_wp_compose_["useCopyOnClick"])(ref, text);
+  var lastHasCopied = Object(external_this_wp_element_["useRef"])(hasCopied);
+  Object(external_this_wp_element_["useEffect"])(function () {
+    if (lastHasCopied.current === hasCopied) {
+      return;
+    }
+
+    if (hasCopied) {
+      onCopy();
+    } else if (onFinishCopy) {
+      onFinishCopy();
+    }
+
+    lastHasCopied.current = hasCopied;
+  }, [onCopy, onFinishCopy, hasCopied]);
+  var 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.
+
+  var focusOnCopyEventTarget = function focusOnCopyEventTarget(event) {
+    event.target.focus();
+  };
+
+  return Object(external_this_wp_element_["createElement"])(build_module_button["a" /* default */], Object(esm_extends["a" /* default */])({}, buttonProps, {
+    className: classes,
+    ref: ref,
+    onCopy: focusOnCopyEventTarget
+  }), children);
+}
 
 // CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/color-indicator/index.js
 
@@ -28317,141 +28658,6 @@
 
 /* harmony default export */ var color_indicator = (color_indicator_ColorIndicator);
 
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/dropdown/index.js
-
-
-
-
-
-
-
-
-/**
- * WordPress dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-
-var dropdown_Dropdown =
-/*#__PURE__*/
-function (_Component) {
-  Object(inherits["a" /* default */])(Dropdown, _Component);
-
-  function Dropdown() {
-    var _this;
-
-    Object(classCallCheck["a" /* default */])(this, Dropdown);
-
-    _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(Dropdown).apply(this, arguments));
-    _this.toggle = _this.toggle.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.close = _this.close.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.closeIfClickOutside = _this.closeIfClickOutside.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.containerRef = Object(external_this_wp_element_["createRef"])();
-    _this.state = {
-      isOpen: false
-    };
-    return _this;
-  }
-
-  Object(createClass["a" /* default */])(Dropdown, [{
-    key: "componentWillUnmount",
-    value: function componentWillUnmount() {
-      var isOpen = this.state.isOpen;
-      var onToggle = this.props.onToggle;
-
-      if (isOpen && onToggle) {
-        onToggle(false);
-      }
-    }
-  }, {
-    key: "componentDidUpdate",
-    value: function componentDidUpdate(prevProps, prevState) {
-      var isOpen = this.state.isOpen;
-      var onToggle = this.props.onToggle;
-
-      if (prevState.isOpen !== isOpen && onToggle) {
-        onToggle(isOpen);
-      }
-    }
-  }, {
-    key: "toggle",
-    value: function toggle() {
-      this.setState(function (state) {
-        return {
-          isOpen: !state.isOpen
-        };
-      });
-    }
-    /**
-     * Closes the dropdown if a click occurs outside the dropdown wrapper. This
-     * is intentionally distinct from `onClose` in that a click outside the
-     * popover may occur in the toggling of the dropdown via its toggle button.
-     * The correct behavior is to keep the dropdown closed.
-     *
-     * @param {MouseEvent} event Click event triggering `onClickOutside`.
-     */
-
-  }, {
-    key: "closeIfClickOutside",
-    value: function closeIfClickOutside(event) {
-      if (!this.containerRef.current.contains(event.target)) {
-        this.close();
-      }
-    }
-  }, {
-    key: "close",
-    value: function close() {
-      this.setState({
-        isOpen: false
-      });
-    }
-  }, {
-    key: "render",
-    value: function render() {
-      var isOpen = this.state.isOpen;
-      var _this$props = this.props,
-          renderContent = _this$props.renderContent,
-          renderToggle = _this$props.renderToggle,
-          _this$props$position = _this$props.position,
-          position = _this$props$position === void 0 ? 'bottom' : _this$props$position,
-          className = _this$props.className,
-          contentClassName = _this$props.contentClassName,
-          expandOnMobile = _this$props.expandOnMobile,
-          headerTitle = _this$props.headerTitle,
-          focusOnMount = _this$props.focusOnMount;
-      var args = {
-        isOpen: isOpen,
-        onToggle: this.toggle,
-        onClose: this.close
-      };
-      return Object(external_this_wp_element_["createElement"])("div", {
-        className: className,
-        ref: this.containerRef
-      }, renderToggle(args), isOpen && Object(external_this_wp_element_["createElement"])(popover, {
-        className: contentClassName,
-        position: position,
-        onClose: this.close,
-        onClickOutside: this.closeIfClickOutside,
-        expandOnMobile: expandOnMobile,
-        headerTitle: headerTitle,
-        focusOnMount: focusOnMount
-      }, renderContent(args)));
-    }
-  }]);
-
-  return Dropdown;
-}(external_this_wp_element_["Component"]);
-
-/* harmony default export */ var dropdown = (dropdown_Dropdown);
-
-// EXTERNAL MODULE: ./node_modules/tinycolor2/tinycolor.js
-var tinycolor = __webpack_require__(45);
-var tinycolor_default = /*#__PURE__*/__webpack_require__.n(tinycolor);
-
 // CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/color-picker/utils.js
 /**
  * Parts of this source were derived and modified from react-color,
@@ -28587,7 +28793,7 @@
   var keysToCheck = ['r', 'g', 'b', 'a', 'h', 's', 'l', 'v'];
   var checked = 0;
   var passed = 0;
-  Object(external_lodash_["each"])(keysToCheck, function (letter) {
+  Object(external_this_lodash_["each"])(keysToCheck, function (letter) {
     if (data[letter]) {
       checked += 1;
 
@@ -28688,106 +28894,62 @@
   };
 }
 
-// EXTERNAL MODULE: ./node_modules/mousetrap/mousetrap.js
-var mousetrap = __webpack_require__(222);
-var mousetrap_default = /*#__PURE__*/__webpack_require__.n(mousetrap);
-
-// EXTERNAL MODULE: ./node_modules/mousetrap/plugins/global-bind/mousetrap-global-bind.js
-var mousetrap_global_bind = __webpack_require__(259);
-
 // CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/keyboard-shortcuts/index.js
 
 
-
-
-
-
-
-
-/**
- * External dependencies
- */
-
-
-
-/**
- * WordPress dependencies
- */
-
-
-
-var keyboard_shortcuts_KeyboardShortcuts =
-/*#__PURE__*/
-function (_Component) {
-  Object(inherits["a" /* default */])(KeyboardShortcuts, _Component);
-
-  function KeyboardShortcuts() {
-    var _this;
-
-    Object(classCallCheck["a" /* default */])(this, KeyboardShortcuts);
-
-    _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(KeyboardShortcuts).apply(this, arguments));
-    _this.bindKeyTarget = _this.bindKeyTarget.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    return _this;
-  }
-
-  Object(createClass["a" /* default */])(KeyboardShortcuts, [{
-    key: "componentDidMount",
-    value: function componentDidMount() {
-      var _this2 = this;
-
-      var _this$keyTarget = this.keyTarget,
-          keyTarget = _this$keyTarget === void 0 ? document : _this$keyTarget;
-      this.mousetrap = new mousetrap_default.a(keyTarget);
-      Object(external_lodash_["forEach"])(this.props.shortcuts, function (callback, key) {
-        if (false) { var hasShift, hasAlt, modifiers, keys; }
-
-        var _this2$props = _this2.props,
-            bindGlobal = _this2$props.bindGlobal,
-            eventName = _this2$props.eventName;
-        var bindFn = bindGlobal ? 'bindGlobal' : 'bind';
-
-        _this2.mousetrap[bindFn](key, callback, eventName);
-      });
-    }
-  }, {
-    key: "componentWillUnmount",
-    value: function componentWillUnmount() {
-      this.mousetrap.reset();
-    }
-    /**
-     * When rendering with children, binds the wrapper node on which events
-     * will be bound.
-     *
-     * @param {Element} node Key event target.
-     */
-
-  }, {
-    key: "bindKeyTarget",
-    value: function bindKeyTarget(node) {
-      this.keyTarget = node;
-    }
-  }, {
-    key: "render",
-    value: function render() {
-      // Render as non-visual if there are no children pressed. Keyboard
-      // events will be bound to the document instead.
-      var children = this.props.children;
-
-      if (!external_this_wp_element_["Children"].count(children)) {
-        return null;
-      }
-
-      return Object(external_this_wp_element_["createElement"])("div", {
-        ref: this.bindKeyTarget
-      }, children);
-    }
-  }]);
-
-  return KeyboardShortcuts;
-}(external_this_wp_element_["Component"]);
-
-/* harmony default export */ var keyboard_shortcuts = (keyboard_shortcuts_KeyboardShortcuts);
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+function KeyboardShortcut(_ref) {
+  var target = _ref.target,
+      callback = _ref.callback,
+      shortcut = _ref.shortcut,
+      bindGlobal = _ref.bindGlobal,
+      eventName = _ref.eventName;
+  Object(external_this_wp_compose_["useKeyboardShortcut"])(shortcut, callback, {
+    bindGlobal: bindGlobal,
+    target: target,
+    eventName: eventName
+  });
+  return null;
+}
+
+function KeyboardShortcuts(_ref2) {
+  var children = _ref2.children,
+      shortcuts = _ref2.shortcuts,
+      bindGlobal = _ref2.bindGlobal,
+      eventName = _ref2.eventName;
+  var target = Object(external_this_wp_element_["useRef"])();
+  var element = Object(external_this_lodash_["map"])(shortcuts, function (callback, shortcut) {
+    return Object(external_this_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_this_wp_element_["Children"].count(children)) {
+    return element;
+  }
+
+  return Object(external_this_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
 
@@ -28798,6 +28960,10 @@
 
 
 
+function alpha_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf["a" /* default */])(Derived), result; if (alpha_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf["a" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn["a" /* default */])(this, result); }; }
+
+function alpha_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
+
 /**
  * Parts of this source were derived and modified from react-color,
  * released under the MIT license.
@@ -28836,29 +29002,30 @@
 
 
 
-/**
- * Internal dependencies
- */
-
-
-
-var alpha_Alpha =
-/*#__PURE__*/
-function (_Component) {
+
+/**
+ * Internal dependencies
+ */
+
+
+
+var alpha_Alpha = /*#__PURE__*/function (_Component) {
   Object(inherits["a" /* default */])(Alpha, _Component);
 
+  var _super = alpha_createSuper(Alpha);
+
   function Alpha() {
     var _this;
 
     Object(classCallCheck["a" /* default */])(this, Alpha);
 
-    _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(Alpha).apply(this, arguments));
+    _this = _super.apply(this, arguments);
     _this.container = Object(external_this_wp_element_["createRef"])();
-    _this.increase = _this.increase.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.decrease = _this.decrease.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.handleChange = _this.handleChange.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.handleMouseDown = _this.handleMouseDown.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.handleMouseUp = _this.handleMouseUp.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
+    _this.increase = _this.increase.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.decrease = _this.decrease.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.handleChange = _this.handleChange.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.handleMouseDown = _this.handleMouseDown.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.handleMouseUp = _this.handleMouseUp.bind(Object(assertThisInitialized["a" /* default */])(_this));
     return _this;
   }
 
@@ -28874,7 +29041,7 @@
       var _this$props = this.props,
           hsl = _this$props.hsl,
           _this$props$onChange = _this$props.onChange,
-          onChange = _this$props$onChange === void 0 ? external_lodash_["noop"] : _this$props$onChange;
+          onChange = _this$props$onChange === void 0 ? external_this_lodash_["noop"] : _this$props$onChange;
       amount = parseInt(amount * 100, 10);
       var change = {
         h: hsl.h,
@@ -28892,7 +29059,7 @@
       var _this$props2 = this.props,
           hsl = _this$props2.hsl,
           _this$props2$onChange = _this$props2.onChange,
-          onChange = _this$props2$onChange === void 0 ? external_lodash_["noop"] : _this$props2$onChange;
+          onChange = _this$props2$onChange === void 0 ? external_this_lodash_["noop"] : _this$props2$onChange;
       var intValue = parseInt(hsl.a * 100, 10) - parseInt(amount * 100, 10);
       var change = {
         h: hsl.h,
@@ -28907,7 +29074,7 @@
     key: "handleChange",
     value: function handleChange(e) {
       var _this$props$onChange2 = this.props.onChange,
-          onChange = _this$props$onChange2 === void 0 ? external_lodash_["noop"] : _this$props$onChange2;
+          onChange = _this$props$onChange2 === void 0 ? external_this_lodash_["noop"] : _this$props$onChange2;
       var change = calculateAlphaChange(e, this.props, this.container.current);
 
       if (change) {
@@ -29022,7 +29189,7 @@
 
   return Alpha;
 }(external_this_wp_element_["Component"]);
-/* harmony default export */ var alpha = (alpha_Alpha);
+/* harmony default export */ var color_picker_alpha = (Object(external_this_wp_compose_["pure"])(alpha_Alpha));
 
 // CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/color-picker/hue.js
 
@@ -29033,6 +29200,10 @@
 
 
 
+function hue_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf["a" /* default */])(Derived), result; if (hue_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf["a" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn["a" /* default */])(this, result); }; }
+
+function hue_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
+
 /**
  * Parts of this source were derived and modified from react-color,
  * released under the MIT license.
@@ -29078,23 +29249,24 @@
 
 
 
-var hue_Hue =
-/*#__PURE__*/
-function (_Component) {
+
+var hue_Hue = /*#__PURE__*/function (_Component) {
   Object(inherits["a" /* default */])(Hue, _Component);
 
+  var _super = hue_createSuper(Hue);
+
   function Hue() {
     var _this;
 
     Object(classCallCheck["a" /* default */])(this, Hue);
 
-    _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(Hue).apply(this, arguments));
+    _this = _super.apply(this, arguments);
     _this.container = Object(external_this_wp_element_["createRef"])();
-    _this.increase = _this.increase.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.decrease = _this.decrease.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.handleChange = _this.handleChange.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.handleMouseDown = _this.handleMouseDown.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.handleMouseUp = _this.handleMouseUp.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
+    _this.increase = _this.increase.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.decrease = _this.decrease.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.handleChange = _this.handleChange.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.handleMouseDown = _this.handleMouseDown.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.handleMouseUp = _this.handleMouseUp.bind(Object(assertThisInitialized["a" /* default */])(_this));
     return _this;
   }
 
@@ -29110,7 +29282,7 @@
       var _this$props = this.props,
           hsl = _this$props.hsl,
           _this$props$onChange = _this$props.onChange,
-          onChange = _this$props$onChange === void 0 ? external_lodash_["noop"] : _this$props$onChange;
+          onChange = _this$props$onChange === void 0 ? external_this_lodash_["noop"] : _this$props$onChange;
       var change = {
         h: hsl.h + amount >= 359 ? 359 : hsl.h + amount,
         s: hsl.s,
@@ -29127,7 +29299,7 @@
       var _this$props2 = this.props,
           hsl = _this$props2.hsl,
           _this$props2$onChange = _this$props2.onChange,
-          onChange = _this$props2$onChange === void 0 ? external_lodash_["noop"] : _this$props2$onChange;
+          onChange = _this$props2$onChange === void 0 ? external_this_lodash_["noop"] : _this$props2$onChange;
       var change = {
         h: hsl.h <= amount ? 0 : hsl.h - amount,
         s: hsl.s,
@@ -29141,7 +29313,7 @@
     key: "handleChange",
     value: function handleChange(e) {
       var _this$props$onChange2 = this.props.onChange,
-          onChange = _this$props$onChange2 === void 0 ? external_lodash_["noop"] : _this$props$onChange2;
+          onChange = _this$props$onChange2 === void 0 ? external_this_lodash_["noop"] : _this$props$onChange2;
       var change = calculateHueChange(e, this.props, this.container.current);
 
       if (change) {
@@ -29249,8 +29421,8 @@
         className: "components-color-picker__hue-pointer",
         style: pointerLocation,
         onKeyDown: this.preventKeyEvents
-      }), Object(external_this_wp_element_["createElement"])("p", {
-        className: "components-color-picker__hue-description screen-reader-text",
+      }), Object(external_this_wp_element_["createElement"])(visually_hidden, {
+        as: "p",
         id: "components-color-picker__hue-description-".concat(instanceId)
       }, Object(external_this_wp_i18n_["__"])('Move the arrow left or right to change hue.')))));
     }
@@ -29258,7 +29430,10 @@
 
   return Hue;
 }(external_this_wp_element_["Component"]);
-/* harmony default export */ var hue = (Object(external_this_wp_compose_["withInstanceId"])(hue_Hue));
+/* harmony default export */ var hue = (Object(external_this_wp_compose_["compose"])(external_this_wp_compose_["pure"], external_this_wp_compose_["withInstanceId"])(hue_Hue));
+
+// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/chevron-down.js
+var chevron_down = __webpack_require__(295);
 
 // CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/text-control/index.js
 
@@ -29274,18 +29449,18 @@
  */
 
 
-
 function TextControl(_ref) {
   var label = _ref.label,
+      hideLabelFromVision = _ref.hideLabelFromVision,
       value = _ref.value,
       help = _ref.help,
       className = _ref.className,
-      instanceId = _ref.instanceId,
       onChange = _ref.onChange,
       _ref$type = _ref.type,
       type = _ref$type === void 0 ? 'text' : _ref$type,
-      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["label", "value", "help", "className", "instanceId", "onChange", "type"]);
-
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["label", "hideLabelFromVision", "value", "help", "className", "onChange", "type"]);
+
+  var instanceId = Object(external_this_wp_compose_["useInstanceId"])(TextControl);
   var id = "inspector-text-control-".concat(instanceId);
 
   var onChangeValue = function onChangeValue(event) {
@@ -29294,6 +29469,7 @@
 
   return Object(external_this_wp_element_["createElement"])(base_control, {
     label: label,
+    hideLabelFromVision: hideLabelFromVision,
     id: id,
     help: help,
     className: className
@@ -29307,8 +29483,6 @@
   }, props)));
 }
 
-/* harmony default export */ var text_control = (Object(external_this_wp_compose_["withInstanceId"])(TextControl));
-
 // CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/color-picker/inputs.js
 
 
@@ -29320,97 +29494,110 @@
 
 
 
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-
-
-/**
- * Internal dependencies
- */
+function inputs_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf["a" /* default */])(Derived), result; if (inputs_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf["a" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn["a" /* default */])(this, result); }; }
+
+function inputs_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+
+
+
+/**
+ * Internal dependencies
+ */
+
 
 
 
 
 /* Wrapper for TextControl, only used to handle intermediate state while typing. */
 
-var inputs_Input =
-/*#__PURE__*/
-function (_Component) {
+var inputs_Input = /*#__PURE__*/function (_Component) {
   Object(inherits["a" /* default */])(Input, _Component);
 
-  function Input(_ref) {
+  var _super = inputs_createSuper(Input);
+
+  function Input() {
     var _this;
 
-    var value = _ref.value;
-
     Object(classCallCheck["a" /* default */])(this, Input);
 
-    _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(Input).apply(this, arguments));
-    _this.state = {
-      value: String(value).toLowerCase()
-    };
-    _this.handleBlur = _this.handleBlur.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.handleChange = _this.handleChange.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.handleKeyDown = _this.handleKeyDown.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
+    _this = _super.apply(this, arguments);
+    _this.handleBlur = _this.handleBlur.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.handleChange = _this.handleChange.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.handleKeyDown = _this.handleKeyDown.bind(Object(assertThisInitialized["a" /* default */])(_this));
     return _this;
   }
 
   Object(createClass["a" /* default */])(Input, [{
-    key: "componentWillReceiveProps",
-    value: function componentWillReceiveProps(nextProps) {
-      if (nextProps.value !== this.props.value) {
-        this.setState({
-          value: String(nextProps.value).toLowerCase()
-        });
-      }
-    }
-  }, {
     key: "handleBlur",
     value: function handleBlur() {
       var _this$props = this.props,
+          value = _this$props.value,
           valueKey = _this$props.valueKey,
-          onChange = _this$props.onChange;
-      var value = this.state.value;
-      onChange(Object(defineProperty["a" /* default */])({}, valueKey, value));
+          onChange = _this$props.onChange,
+          source = _this$props.source;
+      onChange({
+        source: source,
+        state: 'commit',
+        value: value,
+        valueKey: valueKey
+      });
     }
   }, {
     key: "handleChange",
     value: function handleChange(value) {
       var _this$props2 = this.props,
           valueKey = _this$props2.valueKey,
-          onChange = _this$props2.onChange; // Protect against expanding a value while we're typing.
-
-      if (value.length > 4) {
-        onChange(Object(defineProperty["a" /* default */])({}, valueKey, value));
-      }
-
-      this.setState({
-        value: value
-      });
+          onChange = _this$props2.onChange,
+          source = _this$props2.source;
+
+      if (value.length > 4 && isValidHex(value)) {
+        onChange({
+          source: source,
+          state: 'commit',
+          value: value,
+          valueKey: valueKey
+        });
+      } else {
+        onChange({
+          source: source,
+          state: 'draft',
+          value: value,
+          valueKey: valueKey
+        });
+      }
     }
   }, {
     key: "handleKeyDown",
-    value: function handleKeyDown(_ref2) {
-      var keyCode = _ref2.keyCode;
+    value: function handleKeyDown(_ref) {
+      var keyCode = _ref.keyCode;
 
       if (keyCode !== external_this_wp_keycodes_["ENTER"] && keyCode !== external_this_wp_keycodes_["UP"] && keyCode !== external_this_wp_keycodes_["DOWN"]) {
         return;
       }
 
-      var value = this.state.value;
       var _this$props3 = this.props,
+          value = _this$props3.value,
           valueKey = _this$props3.valueKey,
-          onChange = _this$props3.onChange;
-      onChange(Object(defineProperty["a" /* default */])({}, valueKey, value));
+          onChange = _this$props3.onChange,
+          source = _this$props3.source;
+      onChange({
+        source: source,
+        state: 'commit',
+        value: value,
+        valueKey: valueKey
+      });
     }
   }, {
     key: "render",
@@ -29419,10 +29606,10 @@
 
       var _this$props4 = this.props,
           label = _this$props4.label,
-          props = Object(objectWithoutProperties["a" /* default */])(_this$props4, ["label"]);
-
-      var value = this.state.value;
-      return Object(external_this_wp_element_["createElement"])(text_control, Object(esm_extends["a" /* default */])({
+          value = _this$props4.value,
+          props = Object(objectWithoutProperties["a" /* default */])(_this$props4, ["label", "value"]);
+
+      return Object(external_this_wp_element_["createElement"])(TextControl, Object(esm_extends["a" /* default */])({
         className: "components-color-picker__inputs-field",
         label: label,
         value: value,
@@ -29431,32 +29618,34 @@
         },
         onBlur: this.handleBlur,
         onKeyDown: this.handleKeyDown
-      }, Object(external_lodash_["omit"])(props, ['onChange', 'value', 'valueKey'])));
+      }, Object(external_this_lodash_["omit"])(props, ['onChange', 'valueKey', 'source'])));
     }
   }]);
 
   return Input;
 }(external_this_wp_element_["Component"]);
-
-var inputs_Inputs =
-/*#__PURE__*/
-function (_Component2) {
+var PureButton = Object(external_this_wp_compose_["pure"])(build_module_button["a" /* default */]);
+var inputs_Inputs = /*#__PURE__*/function (_Component2) {
   Object(inherits["a" /* default */])(Inputs, _Component2);
 
-  function Inputs(_ref3) {
+  var _super2 = inputs_createSuper(Inputs);
+
+  function Inputs(_ref2) {
     var _this3;
 
-    var hsl = _ref3.hsl;
+    var hsl = _ref2.hsl;
 
     Object(classCallCheck["a" /* default */])(this, Inputs);
 
-    _this3 = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(Inputs).apply(this, arguments));
+    _this3 = _super2.apply(this, arguments);
     var view = hsl.a === 1 ? 'hex' : 'rgb';
     _this3.state = {
       view: view
     };
-    _this3.toggleViews = _this3.toggleViews.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this3)));
-    _this3.handleChange = _this3.handleChange.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this3)));
+    _this3.toggleViews = _this3.toggleViews.bind(Object(assertThisInitialized["a" /* default */])(_this3));
+    _this3.resetDraftValues = _this3.resetDraftValues.bind(Object(assertThisInitialized["a" /* default */])(_this3));
+    _this3.handleChange = _this3.handleChange.bind(Object(assertThisInitialized["a" /* default */])(_this3));
+    _this3.normalizeValue = _this3.normalizeValue.bind(Object(assertThisInitialized["a" /* default */])(_this3));
     return _this3;
   }
 
@@ -29466,66 +29655,62 @@
       if (this.state.view === 'hex') {
         this.setState({
           view: 'rgb'
-        });
+        }, this.resetDraftValues);
         Object(external_this_wp_a11y_["speak"])(Object(external_this_wp_i18n_["__"])('RGB mode active'));
       } else if (this.state.view === 'rgb') {
         this.setState({
           view: 'hsl'
-        });
+        }, this.resetDraftValues);
         Object(external_this_wp_a11y_["speak"])(Object(external_this_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_this_wp_a11y_["speak"])(Object(external_this_wp_i18n_["__"])('Hex color mode active'));
         } else {
           this.setState({
             view: 'rgb'
-          });
+          }, this.resetDraftValues);
           Object(external_this_wp_a11y_["speak"])(Object(external_this_wp_i18n_["__"])('RGB mode active'));
         }
       }
     }
   }, {
+    key: "resetDraftValues",
+    value: function resetDraftValues() {
+      return this.props.onChange({
+        state: 'reset'
+      });
+    }
+  }, {
+    key: "normalizeValue",
+    value: function 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;
+    }
+  }, {
     key: "handleChange",
-    value: function handleChange(data) {
-      if (data.hex) {
-        if (isValidHex(data.hex)) {
-          this.props.onChange({
-            hex: data.hex,
-            source: 'hex'
-          });
-        }
-      } else if (data.r || data.g || data.b) {
-        this.props.onChange({
-          r: data.r || this.props.rgb.r,
-          g: data.g || this.props.rgb.g,
-          b: data.b || this.props.rgb.b,
-          source: 'rgb'
-        });
-      } else if (data.a) {
-        if (data.a < 0) {
-          data.a = 0;
-        } else if (data.a > 1) {
-          data.a = 1;
-        }
-
-        this.props.onChange({
-          h: this.props.hsl.h,
-          s: this.props.hsl.s,
-          l: this.props.hsl.l,
-          a: Math.round(data.a * 100) / 100,
-          source: 'rgb'
-        });
-      } else if (data.h || data.s || data.l) {
-        this.props.onChange({
-          h: data.h || this.props.hsl.h,
-          s: data.s || this.props.hsl.s,
-          l: data.l || this.props.hsl.l,
-          source: 'hsl'
-        });
-      }
+    value: function handleChange(_ref3) {
+      var source = _ref3.source,
+          state = _ref3.state,
+          value = _ref3.value,
+          valueKey = _ref3.valueKey;
+      this.props.onChange({
+        source: source,
+        state: state,
+        valueKey: valueKey,
+        value: this.normalizeValue(valueKey, value)
+      });
     }
   }, {
     key: "renderFields",
@@ -29537,17 +29722,20 @@
         return Object(external_this_wp_element_["createElement"])("div", {
           className: "components-color-picker__inputs-fields"
         }, Object(external_this_wp_element_["createElement"])(inputs_Input, {
+          source: this.state.view,
           label: Object(external_this_wp_i18n_["__"])('Color value in hexadecimal'),
           valueKey: "hex",
           value: this.props.hex,
           onChange: this.handleChange
         }));
       } else if (this.state.view === 'rgb') {
-        return Object(external_this_wp_element_["createElement"])("fieldset", null, Object(external_this_wp_element_["createElement"])("legend", {
-          className: "screen-reader-text"
-        }, Object(external_this_wp_i18n_["__"])('Color value in RGB')), Object(external_this_wp_element_["createElement"])("div", {
+        var legend = disableAlpha ? Object(external_this_wp_i18n_["__"])('Color value in RGB') : Object(external_this_wp_i18n_["__"])('Color value in RGBA');
+        return Object(external_this_wp_element_["createElement"])("fieldset", null, Object(external_this_wp_element_["createElement"])(visually_hidden, {
+          as: "legend"
+        }, legend), Object(external_this_wp_element_["createElement"])("div", {
           className: "components-color-picker__inputs-fields"
         }, Object(external_this_wp_element_["createElement"])(inputs_Input, {
+          source: this.state.view,
           label: "r",
           valueKey: "r",
           value: this.props.rgb.r,
@@ -29556,6 +29744,7 @@
           min: "0",
           max: "255"
         }), Object(external_this_wp_element_["createElement"])(inputs_Input, {
+          source: this.state.view,
           label: "g",
           valueKey: "g",
           value: this.props.rgb.g,
@@ -29564,6 +29753,7 @@
           min: "0",
           max: "255"
         }), Object(external_this_wp_element_["createElement"])(inputs_Input, {
+          source: this.state.view,
           label: "b",
           valueKey: "b",
           value: this.props.rgb.b,
@@ -29572,6 +29762,7 @@
           min: "0",
           max: "255"
         }), disableAlpha ? null : Object(external_this_wp_element_["createElement"])(inputs_Input, {
+          source: this.state.view,
           label: "a",
           valueKey: "a",
           value: this.props.rgb.a,
@@ -29579,14 +29770,17 @@
           type: "number",
           min: "0",
           max: "1",
-          step: "0.05"
+          step: "0.01"
         })));
       } else if (this.state.view === 'hsl') {
-        return Object(external_this_wp_element_["createElement"])("fieldset", null, Object(external_this_wp_element_["createElement"])("legend", {
-          className: "screen-reader-text"
-        }, Object(external_this_wp_i18n_["__"])('Color value in HSL')), Object(external_this_wp_element_["createElement"])("div", {
+        var _legend = disableAlpha ? Object(external_this_wp_i18n_["__"])('Color value in HSL') : Object(external_this_wp_i18n_["__"])('Color value in HSLA');
+
+        return Object(external_this_wp_element_["createElement"])("fieldset", null, Object(external_this_wp_element_["createElement"])(visually_hidden, {
+          as: "legend"
+        }, _legend), Object(external_this_wp_element_["createElement"])("div", {
           className: "components-color-picker__inputs-fields"
         }, Object(external_this_wp_element_["createElement"])(inputs_Input, {
+          source: this.state.view,
           label: "h",
           valueKey: "h",
           value: this.props.hsl.h,
@@ -29595,6 +29789,7 @@
           min: "0",
           max: "359"
         }), Object(external_this_wp_element_["createElement"])(inputs_Input, {
+          source: this.state.view,
           label: "s",
           valueKey: "s",
           value: this.props.hsl.s,
@@ -29603,6 +29798,7 @@
           min: "0",
           max: "100"
         }), Object(external_this_wp_element_["createElement"])(inputs_Input, {
+          source: this.state.view,
           label: "l",
           valueKey: "l",
           value: this.props.hsl.l,
@@ -29611,6 +29807,7 @@
           min: "0",
           max: "100"
         }), disableAlpha ? null : Object(external_this_wp_element_["createElement"])(inputs_Input, {
+          source: this.state.view,
           label: "a",
           valueKey: "a",
           value: this.props.hsl.a,
@@ -29628,9 +29825,10 @@
       return Object(external_this_wp_element_["createElement"])("div", {
         className: "components-color-picker__inputs-wrapper"
       }, this.renderFields(), Object(external_this_wp_element_["createElement"])("div", {
-        className: "components-color-picker__inputs-toggle"
-      }, Object(external_this_wp_element_["createElement"])(icon_button, {
-        icon: "arrow-down-alt2",
+        className: "components-color-picker__inputs-toggle-wrapper"
+      }, Object(external_this_wp_element_["createElement"])(PureButton, {
+        className: "components-color-picker__inputs-toggle",
+        icon: chevron_down["a" /* default */],
         label: Object(external_this_wp_i18n_["__"])('Change color format'),
         onClick: this.toggleViews
       })));
@@ -29661,6 +29859,10 @@
 
 
 
+function saturation_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf["a" /* default */])(Derived), result; if (saturation_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf["a" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn["a" /* default */])(this, result); }; }
+
+function saturation_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
+
 /**
  * Parts of this source were derived and modified from react-color,
  * released under the MIT license.
@@ -29706,26 +29908,28 @@
 
 
 
-var saturation_Saturation =
-/*#__PURE__*/
-function (_Component) {
+
+
+var saturation_Saturation = /*#__PURE__*/function (_Component) {
   Object(inherits["a" /* default */])(Saturation, _Component);
 
+  var _super = saturation_createSuper(Saturation);
+
   function Saturation(props) {
     var _this;
 
     Object(classCallCheck["a" /* default */])(this, Saturation);
 
-    _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(Saturation).call(this, props));
-    _this.throttle = Object(external_lodash_["throttle"])(function (fn, data, e) {
+    _this = _super.call(this, props);
+    _this.throttle = Object(external_this_lodash_["throttle"])(function (fn, data, e) {
       fn(data, e);
     }, 50);
     _this.container = Object(external_this_wp_element_["createRef"])();
-    _this.saturate = _this.saturate.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.brighten = _this.brighten.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.handleChange = _this.handleChange.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.handleMouseDown = _this.handleMouseDown.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.handleMouseUp = _this.handleMouseUp.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
+    _this.saturate = _this.saturate.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.brighten = _this.brighten.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.handleChange = _this.handleChange.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.handleMouseDown = _this.handleMouseDown.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.handleMouseUp = _this.handleMouseUp.bind(Object(assertThisInitialized["a" /* default */])(_this));
     return _this;
   }
 
@@ -29742,8 +29946,8 @@
       var _this$props = this.props,
           hsv = _this$props.hsv,
           _this$props$onChange = _this$props.onChange,
-          onChange = _this$props$onChange === void 0 ? external_lodash_["noop"] : _this$props$onChange;
-      var intSaturation = Object(external_lodash_["clamp"])(hsv.s + Math.round(amount * 100), 0, 100);
+          onChange = _this$props$onChange === void 0 ? external_this_lodash_["noop"] : _this$props$onChange;
+      var intSaturation = Object(external_this_lodash_["clamp"])(hsv.s + Math.round(amount * 100), 0, 100);
       var change = {
         h: hsv.h,
         s: intSaturation,
@@ -29760,8 +29964,8 @@
       var _this$props2 = this.props,
           hsv = _this$props2.hsv,
           _this$props2$onChange = _this$props2.onChange,
-          onChange = _this$props2$onChange === void 0 ? external_lodash_["noop"] : _this$props2$onChange;
-      var intValue = Object(external_lodash_["clamp"])(hsv.v + Math.round(amount * 100), 0, 100);
+          onChange = _this$props2$onChange === void 0 ? external_this_lodash_["noop"] : _this$props2$onChange;
+      var intValue = Object(external_this_lodash_["clamp"])(hsv.v + Math.round(amount * 100), 0, 100);
       var change = {
         h: hsv.h,
         s: hsv.s,
@@ -29775,7 +29979,7 @@
     key: "handleChange",
     value: function handleChange(e) {
       var _this$props$onChange2 = this.props.onChange,
-          onChange = _this$props$onChange2 === void 0 ? external_lodash_["noop"] : _this$props$onChange2;
+          onChange = _this$props$onChange2 === void 0 ? external_this_lodash_["noop"] : _this$props$onChange2;
       var change = calculateSaturationChange(e, this.props, this.container.current);
       this.throttle(onChange, change, e);
     }
@@ -29857,7 +30061,7 @@
           return _this2.saturate(-1);
         }
       };
-      /* eslint-disable jsx-a11y/no-static-element-interactions, jsx-a11y/no-noninteractive-element-interactions */
+      /* eslint-disable jsx-a11y/no-noninteractive-element-interactions */
 
       return Object(external_this_wp_element_["createElement"])(keyboard_shortcuts, {
         shortcuts: shortcuts
@@ -29875,23 +30079,22 @@
         className: "components-color-picker__saturation-white"
       }), Object(external_this_wp_element_["createElement"])("div", {
         className: "components-color-picker__saturation-black"
-      }), Object(external_this_wp_element_["createElement"])("button", {
+      }), Object(external_this_wp_element_["createElement"])(build_module_button["a" /* default */], {
         "aria-label": Object(external_this_wp_i18n_["__"])('Choose a shade'),
         "aria-describedby": "color-picker-saturation-".concat(instanceId),
         className: "components-color-picker__saturation-pointer",
         style: pointerLocation,
         onKeyDown: this.preventKeyEvents
-      }), Object(external_this_wp_element_["createElement"])("div", {
-        className: "screen-reader-text",
+      }), Object(external_this_wp_element_["createElement"])(visually_hidden, {
         id: "color-picker-saturation-".concat(instanceId)
       }, Object(external_this_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-static-element-interactions, jsx-a11y/no-noninteractive-element-interactions */
+      /* eslint-enable jsx-a11y/no-noninteractive-element-interactions */
     }
   }]);
 
   return Saturation;
 }(external_this_wp_element_["Component"]);
-/* harmony default export */ var saturation = (Object(external_this_wp_compose_["withInstanceId"])(saturation_Saturation));
+/* harmony default export */ var saturation = (Object(external_this_wp_compose_["compose"])(external_this_wp_compose_["pure"], external_this_wp_compose_["withInstanceId"])(saturation_Saturation));
 
 // CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/color-picker/index.js
 
@@ -29902,6 +30105,15 @@
 
 
 
+
+function color_picker_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf["a" /* default */])(Derived), result; if (color_picker_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf["a" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn["a" /* default */])(this, result); }; }
+
+function color_picker_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
+
+function color_picker_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 color_picker_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { color_picker_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty["a" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { color_picker_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
+
 /**
  * Parts of this source were derived and modified from react-color,
  * released under the MIT license.
@@ -29949,37 +30161,167 @@
 
 
 
-var color_picker_ColorPicker =
-/*#__PURE__*/
-function (_Component) {
+var toLowerCase = function toLowerCase(value) {
+  return String(value).toLowerCase();
+};
+
+var color_picker_isValueEmpty = function isValueEmpty(data) {
+  if (data.source === 'hex' && !data.hex) {
+    return true;
+  } else if (data.source === 'hsl' && (!data.h || !data.s || !data.l)) {
+    return true;
+  } else if (data.source === 'rgb' && (!data.r || !data.g || !data.b) && (!data.h || !data.s || !data.v || !data.a) && (!data.h || !data.s || !data.l || !data.a)) {
+    return true;
+  }
+
+  return false;
+};
+
+var color_picker_isValidColor = function isValidColor(colors) {
+  return 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 }
+ */
+
+
+var color_picker_dataToColors = function dataToColors(oldColors, _ref) {
+  var source = _ref.source,
+      valueKey = _ref.valueKey,
+      value = _ref.value;
+
+  if (source === 'hex') {
+    return Object(defineProperty["a" /* default */])({
+      source: source
+    }, source, value);
+  }
+
+  return color_picker_objectSpread({
+    source: source
+  }, color_picker_objectSpread({}, oldColors[source], {}, Object(defineProperty["a" /* default */])({}, valueKey, value)));
+};
+
+var color_picker_ColorPicker = /*#__PURE__*/function (_Component) {
   Object(inherits["a" /* default */])(ColorPicker, _Component);
 
-  function ColorPicker(_ref) {
+  var _super = color_picker_createSuper(ColorPicker);
+
+  function ColorPicker(_ref3) {
     var _this;
 
-    var _ref$color = _ref.color,
-        color = _ref$color === void 0 ? '0071a1' : _ref$color;
+    var _ref3$color = _ref3.color,
+        color = _ref3$color === void 0 ? '0071a1' : _ref3$color;
 
     Object(classCallCheck["a" /* default */])(this, ColorPicker);
 
-    _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(ColorPicker).apply(this, arguments));
-    _this.state = colorToState(color);
-    _this.handleChange = _this.handleChange.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
+    _this = _super.apply(this, arguments);
+    var colors = colorToState(color);
+    _this.state = color_picker_objectSpread({}, colors, {
+      draftHex: toLowerCase(colors.hex),
+      draftRgb: colors.rgb,
+      draftHsl: colors.hsl
+    });
+    _this.commitValues = _this.commitValues.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.setDraftValues = _this.setDraftValues.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.resetDraftValues = _this.resetDraftValues.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.handleInputChange = _this.handleInputChange.bind(Object(assertThisInitialized["a" /* default */])(_this));
     return _this;
   }
 
   Object(createClass["a" /* default */])(ColorPicker, [{
-    key: "handleChange",
-    value: function handleChange(data) {
+    key: "commitValues",
+    value: function commitValues(data) {
       var _this$props = this.props,
           oldHue = _this$props.oldHue,
           _this$props$onChangeC = _this$props.onChangeComplete,
-          onChangeComplete = _this$props$onChangeC === void 0 ? external_lodash_["noop"] : _this$props$onChangeC;
-      var isValidColor = simpleCheckForValidColor(data);
-
-      if (isValidColor) {
+          onChangeComplete = _this$props$onChangeC === void 0 ? external_this_lodash_["noop"] : _this$props$onChangeC;
+
+      if (color_picker_isValidColor(data)) {
         var colors = colorToState(data, data.h || oldHue);
-        this.setState(colors, Object(external_lodash_["debounce"])(Object(external_lodash_["partial"])(onChangeComplete, colors), 100));
+        this.setState(color_picker_objectSpread({}, colors, {
+          draftHex: toLowerCase(colors.hex),
+          draftHsl: colors.hsl,
+          draftRgb: colors.rgb
+        }), Object(external_this_lodash_["debounce"])(Object(external_this_lodash_["partial"])(onChangeComplete, colors), 100));
+      }
+    }
+  }, {
+    key: "resetDraftValues",
+    value: function resetDraftValues() {
+      this.setState({
+        draftHex: this.state.hex,
+        draftHsl: this.state.hsl,
+        draftRgb: this.state.rgb
+      });
+    }
+  }, {
+    key: "setDraftValues",
+    value: function 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;
+      }
+    }
+  }, {
+    key: "handleInputChange",
+    value: function handleInputChange(data) {
+      switch (data.state) {
+        case 'reset':
+          this.resetDraftValues();
+          break;
+
+        case 'commit':
+          var colors = color_picker_dataToColors(this.state, data);
+
+          if (!color_picker_isValueEmpty(colors)) {
+            this.commitValues(colors);
+          }
+
+          break;
+
+        case 'draft':
+          this.setDraftValues(color_picker_dataToColors(this.state, data));
+          break;
       }
     }
   }, {
@@ -29990,10 +30332,12 @@
           disableAlpha = _this$props2.disableAlpha;
       var _this$state = this.state,
           color = _this$state.color,
-          hex = _this$state.hex,
           hsl = _this$state.hsl,
           hsv = _this$state.hsv,
-          rgb = _this$state.rgb;
+          rgb = _this$state.rgb,
+          draftHex = _this$state.draftHex,
+          draftHsl = _this$state.draftHsl,
+          draftRgb = _this$state.draftRgb;
       var classes = classnames_default()(className, {
         'components-color-picker': true,
         'is-alpha-disabled': disableAlpha,
@@ -30006,7 +30350,7 @@
       }, Object(external_this_wp_element_["createElement"])(saturation, {
         hsl: hsl,
         hsv: hsv,
-        onChange: this.handleChange
+        onChange: this.commitValues
       })), Object(external_this_wp_element_["createElement"])("div", {
         className: "components-color-picker__body"
       }, Object(external_this_wp_element_["createElement"])("div", {
@@ -30022,16 +30366,16 @@
         className: "components-color-picker__toggles"
       }, Object(external_this_wp_element_["createElement"])(hue, {
         hsl: hsl,
-        onChange: this.handleChange
-      }), disableAlpha ? null : Object(external_this_wp_element_["createElement"])(alpha, {
+        onChange: this.commitValues
+      }), disableAlpha ? null : Object(external_this_wp_element_["createElement"])(color_picker_alpha, {
         rgb: rgb,
         hsl: hsl,
-        onChange: this.handleChange
+        onChange: this.commitValues
       }))), Object(external_this_wp_element_["createElement"])(inputs, {
-        rgb: rgb,
-        hsl: hsl,
-        hex: hex,
-        onChange: this.handleChange,
+        rgb: draftRgb,
+        hsl: draftHsl,
+        hex: draftHex,
+        onChange: this.handleInputChange,
         disableAlpha: disableAlpha
       })));
     }
@@ -30042,6 +30386,204 @@
 
 
 
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/dropdown/index.js
+
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+function useObservableState(initialState, onStateChange) {
+  var _useState = Object(external_this_wp_element_["useState"])(initialState),
+      _useState2 = Object(slicedToArray["a" /* default */])(_useState, 2),
+      state = _useState2[0],
+      setState = _useState2[1];
+
+  return [state, function (value) {
+    setState(value);
+
+    if (onStateChange) {
+      onStateChange(value);
+    }
+  }];
+}
+
+function Dropdown(_ref) {
+  var renderContent = _ref.renderContent,
+      renderToggle = _ref.renderToggle,
+      _ref$position = _ref.position,
+      position = _ref$position === void 0 ? 'bottom right' : _ref$position,
+      className = _ref.className,
+      contentClassName = _ref.contentClassName,
+      expandOnMobile = _ref.expandOnMobile,
+      headerTitle = _ref.headerTitle,
+      focusOnMount = _ref.focusOnMount,
+      popoverProps = _ref.popoverProps,
+      onClose = _ref.onClose,
+      onToggle = _ref.onToggle;
+  var containerRef = Object(external_this_wp_element_["useRef"])();
+
+  var _useObservableState = useObservableState(false, onToggle),
+      _useObservableState2 = Object(slicedToArray["a" /* default */])(_useObservableState, 2),
+      isOpen = _useObservableState2[0],
+      setIsOpen = _useObservableState2[1];
+
+  Object(external_this_wp_element_["useEffect"])(function () {
+    return function () {
+      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() {
+    if (!containerRef.current.contains(document.activeElement) && !document.activeElement.closest('[role="dialog"]')) {
+      close();
+    }
+  }
+
+  function close() {
+    if (onClose) {
+      onClose();
+    }
+
+    setIsOpen(false);
+  }
+
+  var args = {
+    isOpen: isOpen,
+    onToggle: toggle,
+    onClose: close
+  };
+  return Object(external_this_wp_element_["createElement"])("div", {
+    className: classnames_default()('components-dropdown', className),
+    ref: containerRef
+  }, renderToggle(args), isOpen && Object(external_this_wp_element_["createElement"])(popover["a" /* default */], Object(esm_extends["a" /* default */])({
+    position: position,
+    onClose: close,
+    onFocusOutside: closeIfFocusOutside,
+    expandOnMobile: expandOnMobile,
+    headerTitle: headerTitle,
+    focusOnMount: focusOnMount
+  }, popoverProps, {
+    anchorRef: 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(_ref) {
+  var className = _ref.className,
+      isSelected = _ref.isSelected,
+      selectedIconProps = _ref.selectedIconProps,
+      tooltipText = _ref.tooltipText,
+      additionalProps = Object(objectWithoutProperties["a" /* default */])(_ref, ["className", "isSelected", "selectedIconProps", "tooltipText"]);
+
+  var optionButton = Object(external_this_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_this_wp_element_["createElement"])("div", {
+    className: "components-circular-option-picker__option-wrapper"
+  }, tooltipText ? Object(external_this_wp_element_["createElement"])(build_module_tooltip["a" /* default */], {
+    text: tooltipText
+  }, optionButton) : optionButton, isSelected && Object(external_this_wp_element_["createElement"])(build_module_icon["a" /* default */], Object(esm_extends["a" /* default */])({
+    icon: check["a" /* default */]
+  }, selectedIconProps ? selectedIconProps : {})));
+}
+
+function DropdownLinkAction(_ref2) {
+  var buttonProps = _ref2.buttonProps,
+      className = _ref2.className,
+      dropdownProps = _ref2.dropdownProps,
+      linkText = _ref2.linkText;
+  return Object(external_this_wp_element_["createElement"])(Dropdown, Object(esm_extends["a" /* default */])({
+    className: classnames_default()('components-circular-option-picker__dropdown-link-action', className),
+    renderToggle: function renderToggle(_ref3) {
+      var isOpen = _ref3.isOpen,
+          onToggle = _ref3.onToggle;
+      return Object(external_this_wp_element_["createElement"])(build_module_button["a" /* default */], Object(esm_extends["a" /* default */])({
+        "aria-expanded": isOpen,
+        onClick: onToggle,
+        isLink: true
+      }, buttonProps), linkText);
+    }
+  }, dropdownProps));
+}
+
+function ButtonAction(_ref4) {
+  var className = _ref4.className,
+      children = _ref4.children,
+      additionalProps = Object(objectWithoutProperties["a" /* default */])(_ref4, ["className", "children"]);
+
+  return Object(external_this_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(_ref5) {
+  var actions = _ref5.actions,
+      className = _ref5.className,
+      options = _ref5.options,
+      children = _ref5.children;
+  return Object(external_this_wp_element_["createElement"])("div", {
+    className: classnames_default()('components-circular-option-picker', className)
+  }, options, children, actions && Object(external_this_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-palette/index.js
 
 
@@ -30055,105 +30597,4560 @@
  */
 
 
-/**
- * Internal dependencies
- */
-
-
-
+
+/**
+ * Internal dependencies
+ */
 
 
 
 function ColorPalette(_ref) {
-  var colors = _ref.colors,
+  var _ref$clearable = _ref.clearable,
+      clearable = _ref$clearable === void 0 ? true : _ref$clearable,
+      className = _ref.className,
+      colors = _ref.colors,
       _ref$disableCustomCol = _ref.disableCustomColors,
       disableCustomColors = _ref$disableCustomCol === void 0 ? false : _ref$disableCustomCol,
-      value = _ref.value,
       onChange = _ref.onChange,
-      className = _ref.className;
-
-  function applyOrUnset(color) {
+      value = _ref.value;
+  var clearColor = Object(external_this_wp_element_["useCallback"])(function () {
+    return onChange(undefined);
+  }, [onChange]);
+  var colorOptions = Object(external_this_wp_element_["useMemo"])(function () {
+    return Object(external_this_lodash_["map"])(colors, function (_ref2) {
+      var color = _ref2.color,
+          name = _ref2.name;
+      return Object(external_this_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_this_wp_i18n_["sprintf"])(Object(external_this_wp_i18n_["__"])('Color code: %s'), color),
+        style: {
+          backgroundColor: color,
+          color: color
+        },
+        onClick: value === color ? clearColor : function () {
+          return onChange(color);
+        },
+        "aria-label": name ? // translators: %s: The name of the color e.g: "vivid red".
+        Object(external_this_wp_i18n_["sprintf"])(Object(external_this_wp_i18n_["__"])('Color: %s'), name) : // translators: %s: color hex code e.g: "#f00".
+        Object(external_this_wp_i18n_["sprintf"])(Object(external_this_wp_i18n_["__"])('Color code: %s'), color)
+      });
+    });
+  }, [colors, value, onChange, clearColor]);
+
+  var renderCustomColorPicker = function renderCustomColorPicker() {
+    return Object(external_this_wp_element_["createElement"])(color_picker_ColorPicker, {
+      color: value,
+      onChangeComplete: function onChangeComplete(color) {
+        return onChange(color.hex);
+      },
+      disableAlpha: true
+    });
+  };
+
+  return Object(external_this_wp_element_["createElement"])(CircularOptionPicker, {
+    className: className,
+    options: colorOptions,
+    actions: Object(external_this_wp_element_["createElement"])(external_this_wp_element_["Fragment"], null, !disableCustomColors && Object(external_this_wp_element_["createElement"])(CircularOptionPicker.DropdownLinkAction, {
+      dropdownProps: {
+        renderContent: renderCustomColorPicker,
+        contentClassName: 'components-color-palette__picker'
+      },
+      buttonProps: {
+        'aria-label': Object(external_this_wp_i18n_["__"])('Custom color picker')
+      },
+      linkText: Object(external_this_wp_i18n_["__"])('Custom color')
+    }), !!clearable && Object(external_this_wp_element_["createElement"])(CircularOptionPicker.ButtonAction, {
+      onClick: clearColor
+    }, Object(external_this_wp_i18n_["__"])('Clear')))
+  });
+}
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js
+var objectWithoutPropertiesLoose = __webpack_require__(41);
+
+// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js
+function inheritsLoose_inheritsLoose(subClass, superClass) {
+  subClass.prototype = Object.create(superClass.prototype);
+  subClass.prototype.constructor = subClass;
+  subClass.__proto__ = superClass;
+}
+// EXTERNAL MODULE: ./node_modules/prop-types/index.js
+var prop_types = __webpack_require__(28);
+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__(194);
+
+// CONCATENATED MODULE: ./node_modules/compute-scroll-into-view/es/index.js
+function isElement(el) {
+  return el != null && typeof el === 'object' && el.nodeType === 1;
+}
+
+function canOverflow(overflow, skipOverflowHiddenElements) {
+  if (skipOverflowHiddenElements && overflow === 'hidden') {
+    return false;
+  }
+
+  return overflow !== 'visible' && overflow !== 'clip';
+}
+
+function getFrameElement(el) {
+  if (!el.ownerDocument || !el.ownerDocument.defaultView) {
+    return null;
+  }
+
+  try {
+    return el.ownerDocument.defaultView.frameElement;
+  } catch (e) {
+    return null;
+  }
+}
+
+function isHiddenByFrame(el) {
+  var frame = getFrameElement(el);
+
+  if (!frame) {
+    return false;
+  }
+
+  return frame.clientHeight < el.scrollHeight || frame.clientWidth < el.scrollWidth;
+}
+
+function isScrollable(el, skipOverflowHiddenElements) {
+  if (el.clientHeight < el.scrollHeight || el.clientWidth < el.scrollWidth) {
+    var style = getComputedStyle(el, null);
+    return canOverflow(style.overflowY, skipOverflowHiddenElements) || canOverflow(style.overflowX, skipOverflowHiddenElements) || isHiddenByFrame(el);
+  }
+
+  return false;
+}
+
+function alignNearest(scrollingEdgeStart, scrollingEdgeEnd, scrollingSize, scrollingBorderStart, scrollingBorderEnd, elementEdgeStart, elementEdgeEnd, elementSize) {
+  if (elementEdgeStart < scrollingEdgeStart && elementEdgeEnd > scrollingEdgeEnd || elementEdgeStart > scrollingEdgeStart && elementEdgeEnd < scrollingEdgeEnd) {
+    return 0;
+  }
+
+  if (elementEdgeStart <= scrollingEdgeStart && elementSize <= scrollingSize || elementEdgeEnd >= scrollingEdgeEnd && elementSize >= scrollingSize) {
+    return elementEdgeStart - scrollingEdgeStart - scrollingBorderStart;
+  }
+
+  if (elementEdgeEnd > scrollingEdgeEnd && elementSize < scrollingSize || elementEdgeStart < scrollingEdgeStart && elementSize > scrollingSize) {
+    return elementEdgeEnd - scrollingEdgeEnd + scrollingBorderEnd;
+  }
+
+  return 0;
+}
+
+/* harmony default export */ var es = (function (target, options) {
+  var scrollMode = options.scrollMode,
+      block = options.block,
+      inline = options.inline,
+      boundary = options.boundary,
+      skipOverflowHiddenElements = options.skipOverflowHiddenElements;
+  var checkBoundary = typeof boundary === 'function' ? boundary : function (node) {
+    return node !== boundary;
+  };
+
+  if (!isElement(target)) {
+    throw new TypeError('Invalid target');
+  }
+
+  var scrollingElement = document.scrollingElement || document.documentElement;
+  var frames = [];
+  var cursor = target;
+
+  while (isElement(cursor) && checkBoundary(cursor)) {
+    cursor = cursor.parentNode;
+
+    if (cursor === scrollingElement) {
+      frames.push(cursor);
+      break;
+    }
+
+    if (cursor === document.body && isScrollable(cursor) && !isScrollable(document.documentElement)) {
+      continue;
+    }
+
+    if (isScrollable(cursor, skipOverflowHiddenElements)) {
+      frames.push(cursor);
+    }
+  }
+
+  var viewportWidth = window.visualViewport ? visualViewport.width : innerWidth;
+  var viewportHeight = window.visualViewport ? visualViewport.height : innerHeight;
+  var viewportX = window.scrollX || pageXOffset;
+  var viewportY = window.scrollY || pageYOffset;
+
+  var _target$getBoundingCl = target.getBoundingClientRect(),
+      targetHeight = _target$getBoundingCl.height,
+      targetWidth = _target$getBoundingCl.width,
+      targetTop = _target$getBoundingCl.top,
+      targetRight = _target$getBoundingCl.right,
+      targetBottom = _target$getBoundingCl.bottom,
+      targetLeft = _target$getBoundingCl.left;
+
+  var targetBlock = block === 'start' || block === 'nearest' ? targetTop : block === 'end' ? targetBottom : targetTop + targetHeight / 2;
+  var targetInline = inline === 'center' ? targetLeft + targetWidth / 2 : inline === 'end' ? targetRight : targetLeft;
+  var computations = [];
+
+  for (var index = 0; index < frames.length; index++) {
+    var frame = frames[index];
+
+    var _frame$getBoundingCli = frame.getBoundingClientRect(),
+        height = _frame$getBoundingCli.height,
+        width = _frame$getBoundingCli.width,
+        top = _frame$getBoundingCli.top,
+        right = _frame$getBoundingCli.right,
+        bottom = _frame$getBoundingCli.bottom,
+        left = _frame$getBoundingCli.left;
+
+    if (scrollMode === 'if-needed' && targetTop >= 0 && targetLeft >= 0 && targetBottom <= viewportHeight && targetRight <= viewportWidth && targetTop >= top && targetBottom <= bottom && targetLeft >= left && targetRight <= right) {
+      return computations;
+    }
+
+    var frameStyle = getComputedStyle(frame);
+    var borderLeft = parseInt(frameStyle.borderLeftWidth, 10);
+    var borderTop = parseInt(frameStyle.borderTopWidth, 10);
+    var borderRight = parseInt(frameStyle.borderRightWidth, 10);
+    var borderBottom = parseInt(frameStyle.borderBottomWidth, 10);
+    var blockScroll = 0;
+    var inlineScroll = 0;
+    var scrollbarWidth = 'offsetWidth' in frame ? frame.offsetWidth - frame.clientWidth - borderLeft - borderRight : 0;
+    var scrollbarHeight = 'offsetHeight' in frame ? frame.offsetHeight - frame.clientHeight - borderTop - borderBottom : 0;
+
+    if (scrollingElement === frame) {
+      if (block === 'start') {
+        blockScroll = targetBlock;
+      } else if (block === 'end') {
+        blockScroll = targetBlock - viewportHeight;
+      } else if (block === 'nearest') {
+        blockScroll = alignNearest(viewportY, viewportY + viewportHeight, viewportHeight, borderTop, borderBottom, viewportY + targetBlock, viewportY + targetBlock + targetHeight, targetHeight);
+      } else {
+        blockScroll = targetBlock - viewportHeight / 2;
+      }
+
+      if (inline === 'start') {
+        inlineScroll = targetInline;
+      } else if (inline === 'center') {
+        inlineScroll = targetInline - viewportWidth / 2;
+      } else if (inline === 'end') {
+        inlineScroll = targetInline - viewportWidth;
+      } else {
+        inlineScroll = alignNearest(viewportX, viewportX + viewportWidth, viewportWidth, borderLeft, borderRight, viewportX + targetInline, viewportX + targetInline + targetWidth, targetWidth);
+      }
+
+      blockScroll = Math.max(0, blockScroll + viewportY);
+      inlineScroll = Math.max(0, inlineScroll + viewportX);
+    } else {
+      if (block === 'start') {
+        blockScroll = targetBlock - top - borderTop;
+      } else if (block === 'end') {
+        blockScroll = targetBlock - bottom + borderBottom + scrollbarHeight;
+      } else if (block === 'nearest') {
+        blockScroll = alignNearest(top, bottom, height, borderTop, borderBottom + scrollbarHeight, targetBlock, targetBlock + targetHeight, targetHeight);
+      } else {
+        blockScroll = targetBlock - (top + height / 2) + scrollbarHeight / 2;
+      }
+
+      if (inline === 'start') {
+        inlineScroll = targetInline - left - borderLeft;
+      } else if (inline === 'center') {
+        inlineScroll = targetInline - (left + width / 2) + scrollbarWidth / 2;
+      } else if (inline === 'end') {
+        inlineScroll = targetInline - right + borderRight + scrollbarWidth;
+      } else {
+        inlineScroll = alignNearest(left, right, width, borderLeft, borderRight + scrollbarWidth, targetInline, targetInline + targetWidth, targetWidth);
+      }
+
+      var scrollLeft = frame.scrollLeft,
+          scrollTop = frame.scrollTop;
+      blockScroll = Math.max(0, Math.min(scrollTop + blockScroll, frame.scrollHeight - height + scrollbarHeight));
+      inlineScroll = Math.max(0, Math.min(scrollLeft + inlineScroll, frame.scrollWidth - width + scrollbarWidth));
+      targetBlock += scrollTop - blockScroll;
+      targetInline += scrollLeft - inlineScroll;
+    }
+
+    computations.push({
+      el: frame,
+      top: blockScroll,
+      left: inlineScroll
+    });
+  }
+
+  return computations;
+});
+// 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 = es(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
+ * @return {Boolean} whether the parent is the child or the child is in the parent
+ */
+
+
+function isOrContainsNode(parent, child) {
+  return parent === child || parent.contains && parent.contains(child);
+}
+/**
+ * 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 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 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(_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) {
+  // then we assume this is react
+  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 {Document} document The document.
+ * @param {boolean} checkActiveElement Whether to also check activeElement.
+ *
+ * @returns {boolean} Whether or not the target is within downshift elements.
+ */
+
+
+function targetWithinDownshift(target, downshiftElements, document, checkActiveElement) {
+  if (checkActiveElement === void 0) {
+    checkActiveElement = true;
+  }
+
+  return downshiftElements.some(function (contextNode) {
+    return contextNode && (isOrContainsNode(contextNode, target) || checkActiveElement && isOrContainsNode(contextNode, document.activeElement));
+  });
+}
+
+function validateControlledUnchanged(state, prevProps, nextProps) {
+  if (true) {
+    return;
+  }
+
+  var warningDescription = "This prop should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled Downshift element for the lifetime of the component. More info: https://github.com/downshift-js/downshift#control-props";
+  Object.keys(state).forEach(function (propKey) {
+    if (prevProps[propKey] !== undefined && nextProps[propKey] === undefined) {
+      // eslint-disable-next-line no-console
+      console.error("downshift: A component has changed the controlled prop \"" + propKey + "\" to be uncontrolled. " + warningDescription);
+    } else if (prevProps[propKey] === undefined && nextProps[propKey] !== undefined) {
+      // eslint-disable-next-line no-console
+      console.error("downshift: A component has changed the uncontrolled prop \"" + propKey + "\" to be controlled. " + warningDescription);
+    }
+  });
+}
+
+var cleanupStatus = debounce(function () {
+  getStatusDiv().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();
+}
+/**
+ * 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 = /*#__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 downshift_esm_Downshift =
+/*#__PURE__*/
+function () {
+  var Downshift =
+  /*#__PURE__*/
+  function (_Component) {
+    inheritsLoose_inheritsLoose(Downshift, _Component);
+
+    function Downshift(_props) {
+      var _this = _Component.call(this, _props) || 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 || 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(Object(esm_extends["a" /* default */])({
+          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(Object(esm_extends["a" /* default */])({
+          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, Object(esm_extends["a" /* default */])({}, _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, Object(esm_extends["a" /* default */])({}, _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 = Object(objectWithoutPropertiesLoose["a" /* default */])(_ref, ["refKey", "ref"]);
+
+        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 Object(esm_extends["a" /* default */])((_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({
+            type: keyDownEscape,
+            selectedItem: null,
+            inputValue: ''
+          });
+        }
+      };
+      _this.buttonKeyDownHandlers = Object(esm_extends["a" /* default */])({}, _this.keyDownHandlers, {
+        ' ': function _(event) {
+          event.preventDefault();
+          this.toggleMenu({
+            type: keyDownSpaceButton
+          });
+        }
+      });
+      _this.inputKeyDownHandlers = Object(esm_extends["a" /* default */])({}, _this.keyDownHandlers, {
+        Home: function Home(event) {
+          var _this4 = this;
+
+          event.preventDefault();
+          var itemCount = this.getItemCount();
+
+          var _this$getState3 = this.getState(),
+              isOpen = _this$getState3.isOpen;
+
+          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;
+
+          event.preventDefault();
+          var itemCount = this.getItemCount();
+
+          var _this$getState4 = this.getState(),
+              isOpen = _this$getState4.isOpen;
+
+          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,
+            onPress = _ref3.onPress,
+            onKeyDown = _ref3.onKeyDown,
+            onKeyUp = _ref3.onKeyUp,
+            onBlur = _ref3.onBlur,
+            rest = Object(objectWithoutPropertiesLoose["a" /* default */])(_ref3, ["onClick", "onPress", "onKeyDown", "onKeyUp", "onBlur"]);
+
+        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 Object(esm_extends["a" /* default */])({
+          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(Object(assertThisInitialized["a" /* default */])(_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 Object(esm_extends["a" /* default */])({
+          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,
+            onChangeText = _ref4.onChangeText,
+            rest = Object(objectWithoutPropertiesLoose["a" /* default */])(_ref4, ["onKeyDown", "onBlur", "onChange", "onInput", "onChangeText"]);
+
+        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);
+        }
+        /* istanbul ignore if (react-native) */
+
+
+        return Object(esm_extends["a" /* default */])({
+          '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(Object(assertThisInitialized["a" /* default */])(_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 = Object(objectWithoutPropertiesLoose["a" /* default */])(_ref5, ["refKey", "ref"]);
+
+        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 Object(esm_extends["a" /* default */])((_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,
+            onPress = _ref7.onPress,
+            index = _ref7.index,
+            _ref7$item = _ref7.item,
+            item = _ref7$item === void 0 ?  true ?
+        /* istanbul ignore next */
+        undefined : undefined : _ref7$item,
+            rest = Object(objectWithoutPropertiesLoose["a" /* default */])(_ref7, ["onMouseMove", "onMouseDown", "onClick", "onPress", "index", "item"]);
+
+        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 Object(esm_extends["a" /* default */])({
+          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 Object(esm_extends["a" /* default */])({
+            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 Object(esm_extends["a" /* default */])({
+            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(Object(esm_extends["a" /* default */])({
+          itemToString: _this.props.itemToString,
+          previousResultCount: _this.previousResultCount,
+          resultCount: 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
+      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 () {
+          _this7.isMouseDown = true;
+        };
+
+        var onMouseUp = function (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.document);
+
+          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 () {
+          _this7.isTouchMove = false;
+        };
+
+        var onTouchMove = function () {
+          _this7.isTouchMove = true;
+        };
+
+        var onTouchEnd = function (event) {
+          var contextWithinDownshift = targetWithinDownshift(event.target, [_this7._rootNode, _this7._menuNode], _this7.props.environment.document, 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;
+      return scrollWhenOpen || currentHighlightedIndex !== prevHighlightedIndex;
+    };
+
+    _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 Object(external_this_React_["cloneElement"])(element, this.getRootProps(getElementProps(element)));
+      }
+      /* istanbul ignore else */
+
+
+      if (false) {}
+      /* istanbul ignore next */
+
+
+      return undefined;
+    };
+
+    return Downshift;
+  }(external_this_React_["Component"]);
+
+  Downshift.defaultProps = {
+    defaultHighlightedIndex: null,
+    defaultIsOpen: false,
+    getA11yStatusMessage: downshift_esm_getA11yStatusMessage,
+    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: typeof window === 'undefined'
+    /* istanbul ignore next (ssr) */
+    ? {} : window,
+    stateReducer: function stateReducer(state, stateToSet) {
+      return stateToSet;
+    },
+    suppressRefError: false,
+    scrollIntoView: downshift_esm_scrollIntoView
+  };
+  Downshift.stateChangeTypes = stateChangeTypes;
+  return Downshift;
+}();
+
+ false ? undefined : void 0;
+
+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 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, props, state, newState);
+
+    if (newState[key] !== state[key]) {
+      changes[key] = newState[key];
+    }
+  });
+
+  if (props.onStateChange && Object.keys(changes).length) {
+    props.onStateChange(Object(esm_extends["a" /* default */])({
+      type: type
+    }, changes));
+  }
+}
+
+function invokeOnChangeHandler(key, props, state, newState) {
+  var handler = "on" + capitalizeString(key) + "Change";
+
+  if (props[handler] && newState[key] !== undefined && newState[key] !== state[key]) {
+    props[handler](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);
+function getElementIds(_ref) {
+  var id = _ref.id,
+      labelId = _ref.labelId,
+      menuId = _ref.menuId,
+      getItemId = _ref.getItemId,
+      toggleButtonId = _ref.toggleButtonId;
+  var uniqueId = id === undefined ? "downshift-" + generateId() : id;
+  return {
+    labelId: labelId || uniqueId + "-label",
+    menuId: menuId || uniqueId + "-menu",
+    getItemId: getItemId || function (index) {
+      return uniqueId + "-item-" + index;
+    },
+    toggleButtonId: toggleButtonId || uniqueId + "-toggle-button"
+  };
+}
+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 getPropTypesValidator(caller, propTypes) {
+  // istanbul ignore next
+  return function (options) {
+    if (options === void 0) {
+      options = {};
+    }
+
+    Object.keys(propTypes).forEach(function (key) {
+      prop_types_default.a.checkPropTypes(propTypes, options, key, caller.name);
+    });
+  };
+}
+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_this_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_this_React_["useRef"])();
+  var actionRef = Object(external_this_React_["useRef"])();
+  var enhancedReducer = Object(external_this_React_["useCallback"])(function (state, action) {
+    actionRef.current = action;
+    state = getState(state, action.props);
+    var changes = reducer(state, action);
+    var newState = action.props.stateReducer(state, Object(esm_extends["a" /* default */])({}, action, {
+      changes: changes
+    }));
+    return newState;
+  }, [reducer]);
+
+  var _useReducer = Object(external_this_React_["useReducer"])(enhancedReducer, initialState),
+      state = _useReducer[0],
+      dispatch = _useReducer[1];
+
+  var propsRef = useLatestRef(props);
+  var dispatchWithProps = Object(external_this_React_["useCallback"])(function (action) {
+    return dispatch(Object(esm_extends["a" /* default */])({
+      props: propsRef.current
+    }, action));
+  }, [propsRef]);
+  var action = actionRef.current;
+  Object(external_this_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(reducer, initialState, props) {
+  var _useEnhancedReducer = useEnhancedReducer(reducer, initialState, props),
+      state = _useEnhancedReducer[0],
+      dispatch = _useEnhancedReducer[1];
+
+  return [getState(state, props), dispatch];
+}
+var downshift_esm_defaultProps = {
+  itemToString: downshift_esm_itemToString,
+  stateReducer: downshift_esm_stateReducer,
+  getA11ySelectionMessage: downshift_esm_getA11ySelectionMessage,
+  scrollIntoView: downshift_esm_scrollIntoView,
+  circularNavigation: false,
+  environment: typeof window === 'undefined'
+  /* istanbul ignore next (ssr) */
+  ? {} : window
+};
+function getDefaultValue(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(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(props, propKey, defaultStateValues);
+}
+function downshift_esm_getInitialState(props) {
+  var selectedItem = getInitialValue(props, 'selectedItem');
+  var isOpen = getInitialValue(props, 'isOpen');
+  var highlightedIndex = getInitialValue(props, 'highlightedIndex');
+  var inputValue = getInitialValue(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_this_React_["useRef"])({
+    isMouseDown: false,
+    isTouchMove: false
+  });
+  Object(external_this_React_["useEffect"])(function () {
+    // The same strategy for checking if a click occurred inside or outside downsift
+    // as in downshift.js.
+    var onMouseDown = function () {
+      mouseAndTouchTrackersRef.current.isMouseDown = true;
+    };
+
+    var onMouseUp = function (event) {
+      mouseAndTouchTrackersRef.current.isMouseDown = false;
+
+      if (isOpen && !targetWithinDownshift(event.target, downshiftElementRefs.map(function (ref) {
+        return ref.current;
+      }), environment.document)) {
+        handleBlur();
+      }
+    };
+
+    var onTouchStart = function () {
+      mouseAndTouchTrackersRef.current.isTouchMove = false;
+    };
+
+    var onTouchMove = function () {
+      mouseAndTouchTrackersRef.current.isTouchMove = true;
+    };
+
+    var onTouchEnd = function (event) {
+      if (isOpen && !mouseAndTouchTrackersRef.current.isTouchMove && !targetWithinDownshift(event.target, downshiftElementRefs.map(function (ref) {
+        return ref.current;
+      }), environment.document, false)) {
+        handleBlur();
+      }
+    };
+
+    environment.addEventListener('mousedown', onMouseDown);
+    environment.addEventListener('mouseup', onMouseUp);
+    environment.addEventListener('touchstart', onTouchStart);
+    environment.addEventListener('touchmove', onTouchMove);
+    environment.addEventListener('touchend', onTouchEnd);
     return function () {
-      return onChange(value === color ? undefined : color);
-    };
-  }
-
-  var customColorPickerLabel = Object(external_this_wp_i18n_["__"])('Custom color picker');
-
-  var classes = classnames_default()('components-color-palette', className);
+      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;
+}
+/**
+ * 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.
+ */
+
+function useGetterPropsCalledChecker() {
+  var isNotProduction = "production" !== 'production';
+  var isInitialMountRef = Object(external_this_React_["useRef"])(true);
+
+  for (var _len = arguments.length, propKeys = new Array(_len), _key = 0; _key < _len; _key++) {
+    propKeys[_key] = arguments[_key];
+  }
+
+  var getterPropsCalledRef = Object(external_this_React_["useRef"])(propKeys.reduce(function (acc, propKey) {
+    acc[propKey] = {};
+    return acc;
+  }, {}));
+  Object(external_this_React_["useEffect"])(function () {
+    if (!isNotProduction) {
+      return;
+    }
+
+    Object.keys(getterPropsCalledRef.current).forEach(function (propKey) {
+      var propCallInfo = getterPropsCalledRef.current[propKey];
+
+      if (isInitialMountRef.current) {
+        if (!Object.keys(propCallInfo).length) {
+          // eslint-disable-next-line no-console
+          console.error("downshift: You forgot to call the " + propKey + " getter function on your component / element.");
+          return;
+        }
+      }
+
+      var suppressRefError = propCallInfo.suppressRefError,
+          refKey = propCallInfo.refKey,
+          elementRef = propCallInfo.elementRef;
+
+      if ((!elementRef || !elementRef.current) && !suppressRefError) {
+        // eslint-disable-next-line no-console
+        console.error("downshift: The ref prop \"" + refKey + "\" from " + propKey + " was not applied correctly on your element.");
+      }
+    });
+    isInitialMountRef.current = false;
+  });
+  var setGetterPropCallInfo = Object(external_this_React_["useCallback"])(function (propKey, suppressRefError, refKey, elementRef) {
+    if (false) {}
+  }, []);
+  return setGetterPropCallInfo;
+}
+
+function getItemIndexByCharacterKey(keysSoFar, highlightedIndex, items, itemToStringParam, getItemNodeFromIndex) {
+  var lowerCasedItemStrings = items.map(function (item) {
+    return itemToStringParam(item).toLowerCase();
+  });
+  var lowerCasedKeysSoFar = keysSoFar.toLowerCase();
+
+  var isValid = function (itemString, index) {
+    var element = getItemNodeFromIndex(index);
+    return itemString.startsWith(lowerCasedKeysSoFar) && !(element && element.hasAttribute('disabled'));
+  };
+
+  for (var index = highlightedIndex + 1; index < lowerCasedItemStrings.length; index++) {
+    var itemString = lowerCasedItemStrings[index];
+
+    if (isValid(itemString, index)) {
+      return index;
+    }
+  }
+
+  for (var _index = 0; _index < highlightedIndex; _index++) {
+    var _itemString = lowerCasedItemStrings[_index];
+
+    if (isValid(_itemString, _index)) {
+      return _index;
+    }
+  }
+
+  return highlightedIndex;
+}
+
+var downshift_esm_propTypes = {
+  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 getA11yStatusMessage$1(_ref) {
+  var isOpen = _ref.isOpen,
+      resultCount = _ref.resultCount,
+      previousResultCount = _ref.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$1 = Object(esm_extends["a" /* default */])({}, downshift_esm_defaultProps, {
+  getA11yStatusMessage: getA11yStatusMessage$1
+});
+
+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 =  false ? undefined : 9;
+var ItemMouseMove =  false ? undefined : 10;
+var ItemClick =  false ? undefined : 11;
+var ToggleButtonClick =  false ? undefined : 12;
+var ToggleButtonKeyDownArrowDown =  false ? undefined : 13;
+var ToggleButtonKeyDownArrowUp =  false ? undefined : 14;
+var ToggleButtonKeyDownCharacter =  false ? undefined : 15;
+var FunctionToggleMenu =  false ? undefined : 16;
+var FunctionOpenMenu =  false ? undefined : 17;
+var FunctionCloseMenu =  false ? undefined : 18;
+var FunctionSetHighlightedIndex =  false ? undefined : 19;
+var FunctionSelectItem =  false ? undefined : 20;
+var FunctionSetInputValue =  false ? undefined : 21;
+var FunctionReset =  false ? undefined : 22;
+
+var stateChangeTypes$1 = /*#__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,
+  ItemMouseMove: ItemMouseMove,
+  ItemClick: ItemClick,
+  ToggleButtonClick: ToggleButtonClick,
+  ToggleButtonKeyDownArrowDown: ToggleButtonKeyDownArrowDown,
+  ToggleButtonKeyDownArrowUp: ToggleButtonKeyDownArrowUp,
+  ToggleButtonKeyDownCharacter: ToggleButtonKeyDownCharacter,
+  FunctionToggleMenu: FunctionToggleMenu,
+  FunctionOpenMenu: FunctionOpenMenu,
+  FunctionCloseMenu: FunctionCloseMenu,
+  FunctionSetHighlightedIndex: FunctionSetHighlightedIndex,
+  FunctionSelectItem: FunctionSelectItem,
+  FunctionSetInputValue: FunctionSetInputValue,
+  FunctionReset: FunctionReset
+});
+
+/* eslint-disable complexity */
+
+function downshiftSelectReducer(state, action) {
+  var type = action.type,
+      props = action.props,
+      shiftKey = action.shiftKey;
+  var changes;
+
+  switch (type) {
+    case ItemMouseMove:
+      changes = {
+        highlightedIndex: action.index
+      };
+      break;
+
+    case ItemClick:
+      changes = {
+        isOpen: getDefaultValue(props, 'isOpen'),
+        highlightedIndex: getDefaultValue(props, 'highlightedIndex'),
+        selectedItem: props.items[action.index]
+      };
+      break;
+
+    case ToggleButtonKeyDownCharacter:
+      {
+        var lowercasedKey = action.key;
+        var inputValue = "" + state.inputValue + lowercasedKey;
+        var itemIndex = getItemIndexByCharacterKey(inputValue, state.selectedItem ? props.items.indexOf(state.selectedItem) : -1, props.items, props.itemToString, action.getItemNodeFromIndex);
+        changes = Object(esm_extends["a" /* default */])({
+          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 = Object(esm_extends["a" /* default */])({
+        isOpen: getDefaultValue(props, 'isOpen'),
+        highlightedIndex: getDefaultValue(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(_inputValue, state.highlightedIndex, props.items, props.itemToString, action.getItemNodeFromIndex);
+        changes = Object(esm_extends["a" /* default */])({
+          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 MenuMouseLeave:
+      changes = {
+        highlightedIndex: -1
+      };
+      break;
+
+    case ToggleButtonClick:
+    case FunctionToggleMenu:
+      changes = {
+        isOpen: !state.isOpen,
+        highlightedIndex: state.isOpen ? -1 : getHighlightedIndexOnOpen(props, state, 0)
+      };
+      break;
+
+    case FunctionOpenMenu:
+      changes = {
+        isOpen: true,
+        highlightedIndex: getHighlightedIndexOnOpen(props, state, 0)
+      };
+      break;
+
+    case FunctionCloseMenu:
+      changes = {
+        isOpen: false
+      };
+      break;
+
+    case FunctionSetHighlightedIndex:
+      changes = {
+        highlightedIndex: action.highlightedIndex
+      };
+      break;
+
+    case FunctionSelectItem:
+      changes = {
+        selectedItem: action.selectedItem
+      };
+      break;
+
+    case FunctionSetInputValue:
+      changes = {
+        inputValue: action.inputValue
+      };
+      break;
+
+    case FunctionReset:
+      changes = {
+        highlightedIndex: getDefaultValue(props, 'highlightedIndex'),
+        isOpen: getDefaultValue(props, 'isOpen'),
+        selectedItem: getDefaultValue(props, 'selectedItem'),
+        inputValue: getDefaultValue(props, 'inputValue')
+      };
+      break;
+
+    default:
+      throw new Error('Reducer called without proper action type.');
+  }
+
+  return Object(esm_extends["a" /* default */])({}, state, changes);
+}
+/* eslint-enable complexity */
+
+var validatePropTypes =  true ?
+/* istanbul ignore next */
+null : undefined;
+useSelect.stateChangeTypes = stateChangeTypes$1;
+
+function useSelect(userProps) {
+  if (userProps === void 0) {
+    userProps = {};
+  }
+
+  /* istanbul ignore else */
+  if (false) {} // Props defaults and destructuring.
+
+
+  var props = Object(esm_extends["a" /* default */])({}, defaultProps$1, 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 = downshift_esm_getInitialState(props);
+
+  var _useControlledReducer = useControlledReducer(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_this_React_["useRef"])(null);
+  var menuRef = Object(external_this_React_["useRef"])(null);
+  var itemRefs = Object(external_this_React_["useRef"])();
+  itemRefs.current = {}; // used not to scroll when highlight by mouse.
+
+  var shouldScrollRef = Object(external_this_React_["useRef"])(true); // used not to trigger menu blur action in some scenarios.
+
+  var shouldBlurRef = Object(external_this_React_["useRef"])(true); // used to keep the inputValue clearTimeout object between renders.
+
+  var clearTimeoutRef = Object(external_this_React_["useRef"])(null); // prevent id re-generation between renders.
+
+  var elementIdsRef = Object(external_this_React_["useRef"])(getElementIds(props)); // used to keep track of how many items we had on previous cycle.
+
+  var previousResultCountRef = Object(external_this_React_["useRef"])();
+  var isInitialMountRef = Object(external_this_React_["useRef"])(true); // used for checking when props are moving from controlled to uncontrolled.
+
+  var prevPropsRef = Object(external_this_React_["useRef"])(props); // utility callback to get item element.
+
+  var latest = useLatestRef({
+    state: state,
+    props: props
+  }); // Some utils.
+
+  var getItemNodeFromIndex = function (index) {
+    return itemRefs.current[elementIdsRef.current.getItemId(index)];
+  }; // Effects.
+  // Sets a11y status message on changes in state.
+
+
+  Object(external_this_React_["useEffect"])(function () {
+    if (isInitialMountRef.current) {
+      return;
+    }
+
+    var previousResultCount = previousResultCountRef.current;
+    updateA11yStatus(function () {
+      return getA11yStatusMessage({
+        isOpen: isOpen,
+        highlightedIndex: highlightedIndex,
+        selectedItem: selectedItem,
+        inputValue: inputValue,
+        highlightedItem: items[highlightedIndex],
+        resultCount: items.length,
+        itemToString: itemToString,
+        previousResultCount: previousResultCount
+      });
+    }, environment.document); // eslint-disable-next-line react-hooks/exhaustive-deps
+  }, [isOpen, highlightedIndex, inputValue, items]); // Sets a11y status message on changes in selectedItem.
+
+  Object(external_this_React_["useEffect"])(function () {
+    if (isInitialMountRef.current) {
+      return;
+    }
+
+    var previousResultCount = previousResultCountRef.current;
+    updateA11yStatus(function () {
+      return getA11ySelectionMessage({
+        isOpen: isOpen,
+        highlightedIndex: highlightedIndex,
+        selectedItem: selectedItem,
+        inputValue: inputValue,
+        highlightedItem: items[highlightedIndex],
+        resultCount: items.length,
+        itemToString: itemToString,
+        previousResultCount: previousResultCount
+      });
+    }, environment.document); // eslint-disable-next-line react-hooks/exhaustive-deps
+  }, [selectedItem]); // Sets cleanup for the keysSoFar after 500ms.
+
+  Object(external_this_React_["useEffect"])(function () {
+    // init the clean function here as we need access to dispatch.
+    if (isInitialMountRef.current) {
+      clearTimeoutRef.current = debounce(function (outerDispatch) {
+        outerDispatch({
+          type: FunctionSetInputValue,
+          inputValue: ''
+        });
+      }, 500);
+    }
+
+    if (!inputValue) {
+      return;
+    }
+
+    clearTimeoutRef.current(dispatch); // eslint-disable-next-line react-hooks/exhaustive-deps
+  }, [inputValue]);
+  /* Controls the focus on the menu or the toggle button. */
+
+  Object(external_this_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]); // Scroll on highlighted item if change comes from keyboard.
+
+  Object(external_this_React_["useEffect"])(function () {
+    if (highlightedIndex < 0 || !isOpen || !Object.keys(itemRefs.current).length) {
+      return;
+    }
+
+    if (shouldScrollRef.current === false) {
+      shouldScrollRef.current = true;
+    } else {
+      scrollIntoView(getItemNodeFromIndex(highlightedIndex), menuRef.current);
+    } // eslint-disable-next-line react-hooks/exhaustive-deps
+
+  }, [highlightedIndex]);
+  Object(external_this_React_["useEffect"])(function () {
+    if (isInitialMountRef.current) {
+      return;
+    }
+
+    previousResultCountRef.current = items.length;
+  });
+  Object(external_this_React_["useEffect"])(function () {
+    if (isInitialMountRef.current) {
+      return;
+    }
+
+    validateControlledUnchanged(state, prevPropsRef.current, props);
+    prevPropsRef.current = props;
+  }, [state, props]); // 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_this_React_["useEffect"])(function () {
+    isInitialMountRef.current = false;
+  }, []); // Event handler functions.
+
+  var toggleButtonKeyDownHandlers = Object(external_this_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]);
+  var menuKeyDownHandlers = Object(external_this_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]); // Action functions.
+
+  var toggleMenu = Object(external_this_React_["useCallback"])(function () {
+    dispatch({
+      type: FunctionToggleMenu
+    });
+  }, [dispatch]);
+  var closeMenu = Object(external_this_React_["useCallback"])(function () {
+    dispatch({
+      type: FunctionCloseMenu
+    });
+  }, [dispatch]);
+  var openMenu = Object(external_this_React_["useCallback"])(function () {
+    dispatch({
+      type: FunctionOpenMenu
+    });
+  }, [dispatch]);
+  var setHighlightedIndex = Object(external_this_React_["useCallback"])(function (newHighlightedIndex) {
+    dispatch({
+      type: FunctionSetHighlightedIndex,
+      highlightedIndex: newHighlightedIndex
+    });
+  }, [dispatch]);
+  var selectItem = Object(external_this_React_["useCallback"])(function (newSelectedItem) {
+    dispatch({
+      type: FunctionSelectItem,
+      selectedItem: newSelectedItem
+    });
+  }, [dispatch]);
+  var reset = Object(external_this_React_["useCallback"])(function () {
+    dispatch({
+      type: FunctionReset
+    });
+  }, [dispatch]);
+  var setInputValue = Object(external_this_React_["useCallback"])(function (newInputValue) {
+    dispatch({
+      type: FunctionSetInputValue,
+      inputValue: newInputValue
+    });
+  }, [dispatch]); // Getter functions.
+
+  var getLabelProps = Object(external_this_React_["useCallback"])(function (labelProps) {
+    return Object(esm_extends["a" /* default */])({
+      id: elementIdsRef.current.labelId,
+      htmlFor: elementIdsRef.current.toggleButtonId
+    }, labelProps);
+  }, []);
+  var getMenuProps = Object(external_this_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 = Object(objectWithoutPropertiesLoose["a" /* default */])(_ref, ["onMouseLeave", "refKey", "onKeyDown", "onBlur", "ref"]);
+
+    var _ref2 = _temp2 === void 0 ? {} : _temp2,
+        _ref2$suppressRefErro = _ref2.suppressRefError,
+        suppressRefError = _ref2$suppressRefErro === void 0 ? false : _ref2$suppressRefErro;
+
+    var latestState = latest.current.state;
+    setGetterPropCallInfo('getMenuProps', suppressRefError, refKey, menuRef);
+    return Object(esm_extends["a" /* default */])((_extends2 = {}, _extends2[refKey] = handleRefs(ref, function (menuNode) {
+      menuRef.current = menuNode;
+    }), _extends2.id = elementIdsRef.current.menuId, _extends2.role = 'listbox', _extends2['aria-labelledby'] = elementIdsRef.current.labelId, _extends2.tabIndex = -1, _extends2), latestState.isOpen && latestState.highlightedIndex > -1 && {
+      'aria-activedescendant': elementIdsRef.current.getItemId(latestState.highlightedIndex)
+    }, {
+      onMouseLeave: callAllEventHandlers(onMouseLeave, function menuHandleMouseLeave() {
+        dispatch({
+          type: MenuMouseLeave
+        });
+      }),
+      onKeyDown: callAllEventHandlers(onKeyDown, 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
+          });
+        }
+      }),
+      onBlur: callAllEventHandlers(onBlur, 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
+          });
+        }
+      })
+    }, rest);
+  }, [dispatch, latest, menuKeyDownHandlers, mouseAndTouchTrackersRef, setGetterPropCallInfo]);
+  var getToggleButtonProps = Object(external_this_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 = Object(objectWithoutPropertiesLoose["a" /* default */])(_ref3, ["onClick", "onKeyDown", "refKey", "ref"]);
+
+    var _ref4 = _temp4 === void 0 ? {} : _temp4,
+        _ref4$suppressRefErro = _ref4.suppressRefError,
+        suppressRefError = _ref4$suppressRefErro === void 0 ? false : _ref4$suppressRefErro;
+
+    var toggleButtonHandleClick = function () {
+      dispatch({
+        type: ToggleButtonClick
+      });
+    };
+
+    var toggleButtonHandleKeyDown = function (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 = Object(esm_extends["a" /* default */])((_extends3 = {}, _extends3[refKey] = handleRefs(ref, function (toggleButtonNode) {
+      toggleButtonRef.current = toggleButtonNode;
+    }), _extends3.id = elementIdsRef.current.toggleButtonId, _extends3['aria-haspopup'] = 'listbox', _extends3['aria-expanded'] = latest.current.state.isOpen, _extends3['aria-labelledby'] = elementIdsRef.current.labelId + " " + elementIdsRef.current.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]);
+  var getItemProps = Object(external_this_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 = Object(objectWithoutPropertiesLoose["a" /* default */])(_ref5, ["item", "index", "onMouseMove", "onClick", "refKey", "ref"]);
+
+    var _latest$current = latest.current,
+        latestState = _latest$current.state,
+        latestProps = _latest$current.props;
+
+    var itemHandleMouseMove = function () {
+      if (index === latestState.highlightedIndex) {
+        return;
+      }
+
+      shouldScrollRef.current = false;
+      dispatch({
+        type: ItemMouseMove,
+        index: index
+      });
+    };
+
+    var itemHandleClick = function () {
+      dispatch({
+        type: ItemClick,
+        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 = Object(esm_extends["a" /* default */])((_extends4 = {
+      role: 'option',
+      'aria-selected': "" + (itemIndex === latestState.highlightedIndex),
+      id: elementIdsRef.current.getItemId(itemIndex)
+    }, _extends4[refKey] = handleRefs(ref, function (itemNode) {
+      if (itemNode) {
+        itemRefs.current[elementIdsRef.current.getItemId(itemIndex)] = itemNode;
+      }
+    }), _extends4), rest);
+
+    if (!rest.disabled) {
+      itemProps.onMouseMove = callAllEventHandlers(onMouseMove, itemHandleMouseMove);
+      itemProps.onClick = callAllEventHandlers(onClick, itemHandleClick);
+    }
+
+    return itemProps;
+  }, [dispatch, latest]);
+  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$1 =  false ? undefined : 8;
+var ItemMouseMove$1 =  false ? undefined : 9;
+var ItemClick$1 =  false ? undefined : 10;
+var ToggleButtonClick$1 =  false ? undefined : 11;
+var FunctionToggleMenu$1 =  false ? undefined : 12;
+var FunctionOpenMenu$1 =  false ? undefined : 13;
+var FunctionCloseMenu$1 =  false ? undefined : 14;
+var FunctionSetHighlightedIndex$1 =  false ? undefined : 15;
+var FunctionSelectItem$1 =  false ? undefined : 16;
+var FunctionSetInputValue$1 =  false ? undefined : 17;
+var FunctionReset$1 =  false ? undefined : 18;
+var ControlledPropUpdatedSelectedItem =  false ? undefined : 19;
+
+var stateChangeTypes$2 = /*#__PURE__*/Object.freeze({
+  __proto__: null,
+  InputKeyDownArrowDown: InputKeyDownArrowDown,
+  InputKeyDownArrowUp: InputKeyDownArrowUp,
+  InputKeyDownEscape: InputKeyDownEscape,
+  InputKeyDownHome: InputKeyDownHome,
+  InputKeyDownEnd: InputKeyDownEnd,
+  InputKeyDownEnter: InputKeyDownEnter,
+  InputChange: InputChange,
+  InputBlur: InputBlur,
+  MenuMouseLeave: MenuMouseLeave$1,
+  ItemMouseMove: ItemMouseMove$1,
+  ItemClick: ItemClick$1,
+  ToggleButtonClick: ToggleButtonClick$1,
+  FunctionToggleMenu: FunctionToggleMenu$1,
+  FunctionOpenMenu: FunctionOpenMenu$1,
+  FunctionCloseMenu: FunctionCloseMenu$1,
+  FunctionSetHighlightedIndex: FunctionSetHighlightedIndex$1,
+  FunctionSelectItem: FunctionSelectItem$1,
+  FunctionSetInputValue: FunctionSetInputValue$1,
+  FunctionReset: FunctionReset$1,
+  ControlledPropUpdatedSelectedItem: ControlledPropUpdatedSelectedItem
+});
+
+function getElementIds$1(_ref) {
+  var id = _ref.id,
+      inputId = _ref.inputId,
+      rest = Object(objectWithoutPropertiesLoose["a" /* default */])(_ref, ["id", "inputId"]);
+
+  var uniqueId = id === undefined ? "downshift-" + generateId() : id;
+  return Object(esm_extends["a" /* default */])({
+    inputId: inputId || uniqueId + "-input"
+  }, getElementIds(Object(esm_extends["a" /* default */])({
+    id: id
+  }, rest)));
+}
+function getInitialState$1(props) {
+  var initialState = downshift_esm_getInitialState(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 Object(esm_extends["a" /* default */])({}, 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$1(reducer, initialState, props) {
+  var previousSelectedItemRef = Object(external_this_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_this_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];
+}
+var defaultProps$2 = Object(esm_extends["a" /* default */])({}, downshift_esm_defaultProps, {
+  getA11yStatusMessage: downshift_esm_getA11yStatusMessage,
+  circularNavigation: true
+});
+
+/* eslint-disable complexity */
+
+function downshiftUseComboboxReducer(state, action) {
+  var type = action.type,
+      props = action.props,
+      shiftKey = action.shiftKey;
+  var changes;
+
+  switch (type) {
+    case ItemMouseMove$1:
+      changes = {
+        highlightedIndex: action.index
+      };
+      break;
+
+    case ItemClick$1:
+      changes = {
+        isOpen: getDefaultValue(props, 'isOpen'),
+        highlightedIndex: getDefaultValue(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: true
+        };
+      }
+
+      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: true
+        };
+      }
+
+      break;
+
+    case InputKeyDownEnter:
+      changes = Object(esm_extends["a" /* default */])({}, state.highlightedIndex >= 0 && {
+        selectedItem: props.items[state.highlightedIndex],
+        isOpen: getDefaultValue(props, 'isOpen'),
+        highlightedIndex: getDefaultValue(props, 'highlightedIndex'),
+        inputValue: props.itemToString(props.items[state.highlightedIndex])
+      });
+      break;
+
+    case InputKeyDownEscape:
+      changes = {
+        isOpen: false,
+        selectedItem: null,
+        highlightedIndex: -1,
+        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 = Object(esm_extends["a" /* default */])({
+        isOpen: false
+      }, state.highlightedIndex >= 0 && {
+        selectedItem: props.items[state.highlightedIndex],
+        inputValue: props.itemToString(props.items[state.highlightedIndex]),
+        highlightedIndex: -1
+      });
+      break;
+
+    case InputChange:
+      changes = {
+        isOpen: true,
+        highlightedIndex: getDefaultValue(props, 'highlightedIndex'),
+        inputValue: action.inputValue
+      };
+      break;
+
+    case MenuMouseLeave$1:
+      changes = {
+        highlightedIndex: -1
+      };
+      break;
+
+    case ToggleButtonClick$1:
+    case FunctionToggleMenu$1:
+      changes = {
+        isOpen: !state.isOpen,
+        highlightedIndex: state.isOpen ? -1 : getHighlightedIndexOnOpen(props, state, 0)
+      };
+      break;
+
+    case FunctionOpenMenu$1:
+      changes = {
+        isOpen: true,
+        highlightedIndex: getHighlightedIndexOnOpen(props, state, 0)
+      };
+      break;
+
+    case FunctionCloseMenu$1:
+      changes = {
+        isOpen: false
+      };
+      break;
+
+    case FunctionSetHighlightedIndex$1:
+      changes = {
+        highlightedIndex: action.highlightedIndex
+      };
+      break;
+
+    case FunctionSelectItem$1:
+      changes = {
+        selectedItem: action.selectedItem,
+        inputValue: props.itemToString(action.selectedItem)
+      };
+      break;
+
+    case ControlledPropUpdatedSelectedItem:
+    case FunctionSetInputValue$1:
+      changes = {
+        inputValue: action.inputValue
+      };
+      break;
+
+    case FunctionReset$1:
+      changes = {
+        highlightedIndex: getDefaultValue(props, 'highlightedIndex'),
+        isOpen: getDefaultValue(props, 'isOpen'),
+        selectedItem: getDefaultValue(props, 'selectedItem'),
+        inputValue: getDefaultValue(props, 'inputValue')
+      };
+      break;
+
+    default:
+      throw new Error('Reducer called without proper action type.');
+  }
+
+  return Object(esm_extends["a" /* default */])({}, state, changes);
+}
+/* eslint-enable complexity */
+
+var validatePropTypes$1 =  true ?
+/* istanbul ignore next */
+null : undefined;
+useCombobox.stateChangeTypes = stateChangeTypes$2;
+
+function useCombobox(userProps) {
+  if (userProps === void 0) {
+    userProps = {};
+  }
+
+  /* istanbul ignore else */
+  if (false) {} // Props defaults and destructuring.
+
+
+  var props = Object(esm_extends["a" /* default */])({}, defaultProps$2, 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$1(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_this_React_["useRef"])(null);
+  var itemRefs = Object(external_this_React_["useRef"])();
+  var inputRef = Object(external_this_React_["useRef"])(null);
+  var toggleButtonRef = Object(external_this_React_["useRef"])(null);
+  var comboboxRef = Object(external_this_React_["useRef"])(null);
+  itemRefs.current = {}; // used not to scroll on highlight by mouse.
+
+  var shouldScrollRef = Object(external_this_React_["useRef"])(true);
+  var isInitialMountRef = Object(external_this_React_["useRef"])(true); // prevent id re-generation between renders.
+
+  var elementIdsRef = Object(external_this_React_["useRef"])(getElementIds$1(props)); // used to keep track of how many items we had on previous cycle.
+
+  var previousResultCountRef = Object(external_this_React_["useRef"])(); // used for checking when props are moving from controlled to uncontrolled.
+
+  var prevPropsRef = Object(external_this_React_["useRef"])(props); // utility callback to get item element.
+
+  var latest = useLatestRef({
+    state: state,
+    props: props
+  });
+
+  var getItemNodeFromIndex = function (index) {
+    return itemRefs.current[elementIdsRef.current.getItemId(index)];
+  }; // Effects.
+  // Sets a11y status message on changes in state.
+
+
+  Object(external_this_React_["useEffect"])(function () {
+    if (isInitialMountRef.current) {
+      return;
+    }
+
+    var previousResultCount = previousResultCountRef.current;
+    updateA11yStatus(function () {
+      return getA11yStatusMessage({
+        isOpen: isOpen,
+        highlightedIndex: highlightedIndex,
+        selectedItem: selectedItem,
+        inputValue: inputValue,
+        highlightedItem: items[highlightedIndex],
+        resultCount: items.length,
+        itemToString: itemToString,
+        previousResultCount: previousResultCount
+      });
+    }, environment.document); // eslint-disable-next-line react-hooks/exhaustive-deps
+  }, [isOpen, highlightedIndex, inputValue, items]); // Sets a11y status message on changes in selectedItem.
+
+  Object(external_this_React_["useEffect"])(function () {
+    if (isInitialMountRef.current) {
+      return;
+    }
+
+    var previousResultCount = previousResultCountRef.current;
+    updateA11yStatus(function () {
+      return getA11ySelectionMessage({
+        isOpen: isOpen,
+        highlightedIndex: highlightedIndex,
+        selectedItem: selectedItem,
+        inputValue: inputValue,
+        highlightedItem: items[highlightedIndex],
+        resultCount: items.length,
+        itemToString: itemToString,
+        previousResultCount: previousResultCount
+      });
+    }, environment.document); // eslint-disable-next-line react-hooks/exhaustive-deps
+  }, [selectedItem]); // Scroll on highlighted item if change comes from keyboard.
+
+  Object(external_this_React_["useEffect"])(function () {
+    if (highlightedIndex < 0 || !isOpen || !Object.keys(itemRefs.current).length) {
+      return;
+    }
+
+    if (shouldScrollRef.current === false) {
+      shouldScrollRef.current = true;
+    } else {
+      scrollIntoView(getItemNodeFromIndex(highlightedIndex), menuRef.current);
+    } // eslint-disable-next-line react-hooks/exhaustive-deps
+
+  }, [highlightedIndex]); // Controls the focus on the menu or the toggle button.
+
+  Object(external_this_React_["useEffect"])(function () {
+    // Don't focus menu on first render.
+    if (isInitialMountRef.current) {
+      // Unless it was initialised as open.
+      if (initialIsOpen || defaultIsOpen || isOpen) {
+        if (inputRef.current) {
+          inputRef.current.focus();
+        }
+      }
+    } // eslint-disable-next-line react-hooks/exhaustive-deps
+
+  }, [isOpen]);
+  Object(external_this_React_["useEffect"])(function () {
+    if (isInitialMountRef.current) {
+      return;
+    }
+
+    previousResultCountRef.current = items.length;
+  });
+  Object(external_this_React_["useEffect"])(function () {
+    if (isInitialMountRef.current) {
+      return;
+    }
+
+    validateControlledUnchanged(state, prevPropsRef.current, props);
+    prevPropsRef.current = props;
+  }, [state, props]); // Add mouse/touch events to document.
+
+  var mouseAndTouchTrackersRef = useMouseAndTouchTracker(isOpen, [comboboxRef, menuRef, toggleButtonRef], environment, function () {
+    dispatch({
+      type: InputBlur
+    });
+  });
+  var setGetterPropCallInfo = useGetterPropsCalledChecker('getInputProps', 'getComboboxProps', 'getMenuProps'); // Make initial ref false.
+
+  Object(external_this_React_["useEffect"])(function () {
+    isInitialMountRef.current = false;
+  }, []);
+  /* Event handler functions */
+
+  var inputKeyDownHandlers = Object(external_this_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) {
+        event.preventDefault();
+        dispatch({
+          type: InputKeyDownHome,
+          getItemNodeFromIndex: getItemNodeFromIndex
+        });
+      },
+      End: function End(event) {
+        event.preventDefault();
+        dispatch({
+          type: InputKeyDownEnd,
+          getItemNodeFromIndex: getItemNodeFromIndex
+        });
+      },
+      Escape: function Escape() {
+        dispatch({
+          type: InputKeyDownEscape
+        });
+      },
+      Enter: function Enter(event) {
+        // if IME composing, wait for next Enter keydown event.
+        if (event.which === 229) {
+          return;
+        }
+
+        var latestState = latest.current.state;
+
+        if (latestState.isOpen && latestState.highlightedIndex > -1) {
+          event.preventDefault();
+          dispatch({
+            type: InputKeyDownEnter,
+            getItemNodeFromIndex: getItemNodeFromIndex
+          });
+        }
+      }
+    };
+  }, [dispatch, latest]); // Getter props.
+
+  var getLabelProps = Object(external_this_React_["useCallback"])(function (labelProps) {
+    return Object(esm_extends["a" /* default */])({
+      id: elementIdsRef.current.labelId,
+      htmlFor: elementIdsRef.current.inputId
+    }, labelProps);
+  }, []);
+  var getMenuProps = Object(external_this_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 = Object(objectWithoutPropertiesLoose["a" /* default */])(_ref, ["onMouseLeave", "refKey", "ref"]);
+
+    var _ref2 = _temp2 === void 0 ? {} : _temp2,
+        _ref2$suppressRefErro = _ref2.suppressRefError,
+        suppressRefError = _ref2$suppressRefErro === void 0 ? false : _ref2$suppressRefErro;
+
+    setGetterPropCallInfo('getMenuProps', suppressRefError, refKey, menuRef);
+    return Object(esm_extends["a" /* default */])((_extends2 = {}, _extends2[refKey] = handleRefs(ref, function (menuNode) {
+      menuRef.current = menuNode;
+    }), _extends2.id = elementIdsRef.current.menuId, _extends2.role = 'listbox', _extends2['aria-labelledby'] = elementIdsRef.current.labelId, _extends2.onMouseLeave = callAllEventHandlers(onMouseLeave, function () {
+      dispatch({
+        type: MenuMouseLeave$1
+      });
+    }), _extends2), rest);
+  }, [dispatch, setGetterPropCallInfo]);
+  var getItemProps = Object(external_this_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,
+        onPress = _ref3.onPress,
+        rest = Object(objectWithoutPropertiesLoose["a" /* default */])(_ref3, ["item", "index", "refKey", "ref", "onMouseMove", "onClick", "onPress"]);
+
+    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;
+    return Object(esm_extends["a" /* default */])((_extends3 = {}, _extends3[refKey] = handleRefs(ref, function (itemNode) {
+      if (itemNode) {
+        itemRefs.current[elementIdsRef.current.getItemId(itemIndex)] = itemNode;
+      }
+    }), _extends3.role = 'option', _extends3['aria-selected'] = "" + (itemIndex === latestState.highlightedIndex), _extends3.id = elementIdsRef.current.getItemId(itemIndex), _extends3), !rest.disabled && (_ref4 = {
+      onMouseMove: callAllEventHandlers(onMouseMove, function itemHandleMouseMove() {
+        if (index === latestState.highlightedIndex) {
+          return;
+        }
+
+        shouldScrollRef.current = false;
+        dispatch({
+          type: ItemMouseMove$1,
+          index: index
+        });
+      })
+    }, _ref4[onSelectKey] = callAllEventHandlers(customClickHandler, function itemHandleClick() {
+      dispatch({
+        type: ItemClick$1,
+        index: index
+      });
+
+      if (inputRef.current) {
+        inputRef.current.focus();
+      }
+    }), _ref4), rest);
+  }, [dispatch, latest]);
+  var getToggleButtonProps = Object(external_this_React_["useCallback"])(function (_temp4) {
+    var _extends4;
+
+    var _ref5 = _temp4 === void 0 ? {} : _temp4,
+        onClick = _ref5.onClick,
+        onPress = _ref5.onPress,
+        _ref5$refKey = _ref5.refKey,
+        refKey = _ref5$refKey === void 0 ? 'ref' : _ref5$refKey,
+        ref = _ref5.ref,
+        rest = Object(objectWithoutPropertiesLoose["a" /* default */])(_ref5, ["onClick", "onPress", "refKey", "ref"]);
+
+    var toggleButtonHandleClick = function () {
+      dispatch({
+        type: ToggleButtonClick$1
+      });
+
+      if (!latest.current.state.isOpen && inputRef.current) {
+        inputRef.current.focus();
+      }
+    };
+
+    return Object(esm_extends["a" /* default */])((_extends4 = {}, _extends4[refKey] = handleRefs(ref, function (toggleButtonNode) {
+      toggleButtonRef.current = toggleButtonNode;
+    }), _extends4.id = elementIdsRef.current.toggleButtonId, _extends4.tabIndex = -1, _extends4), !rest.disabled && Object(esm_extends["a" /* default */])({}, {
+      onClick: callAllEventHandlers(onClick, toggleButtonHandleClick)
+    }), rest);
+  }, [dispatch, latest]);
+  var getInputProps = Object(external_this_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,
+        onChangeText = _ref6.onChangeText,
+        _ref6$refKey = _ref6.refKey,
+        refKey = _ref6$refKey === void 0 ? 'ref' : _ref6$refKey,
+        ref = _ref6.ref,
+        rest = Object(objectWithoutPropertiesLoose["a" /* default */])(_ref6, ["onKeyDown", "onChange", "onInput", "onBlur", "onChangeText", "refKey", "ref"]);
+
+    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 (event) {
+      var key = normalizeArrowKey(event);
+
+      if (key && inputKeyDownHandlers[key]) {
+        inputKeyDownHandlers[key](event);
+      }
+    };
+
+    var inputHandleChange = function (event) {
+      dispatch({
+        type: InputChange,
+        inputValue: event.target.value
+      });
+    };
+
+    var inputHandleBlur = function () {
+      /* istanbul ignore else */
+      if (!mouseAndTouchTrackersRef.current.isMouseDown) {
+        dispatch({
+          type: InputBlur
+        });
+      }
+    };
+    /* 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);
+    }
+    /* istanbul ignore if (react-native) */
+
+
+    return Object(esm_extends["a" /* default */])((_extends5 = {}, _extends5[refKey] = handleRefs(ref, function (inputNode) {
+      inputRef.current = inputNode;
+    }), _extends5.id = elementIdsRef.current.inputId, _extends5['aria-autocomplete'] = 'list', _extends5['aria-controls'] = elementIdsRef.current.menuId, _extends5), latestState.isOpen && latestState.highlightedIndex > -1 && {
+      'aria-activedescendant': elementIdsRef.current.getItemId(latestState.highlightedIndex)
+    }, {
+      'aria-labelledby': elementIdsRef.current.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]);
+  var getComboboxProps = Object(external_this_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 = Object(objectWithoutPropertiesLoose["a" /* default */])(_ref8, ["refKey", "ref"]);
+
+    var _ref9 = _temp8 === void 0 ? {} : _temp8,
+        _ref9$suppressRefErro = _ref9.suppressRefError,
+        suppressRefError = _ref9$suppressRefErro === void 0 ? false : _ref9$suppressRefErro;
+
+    setGetterPropCallInfo('getComboboxProps', suppressRefError, refKey, comboboxRef);
+    return Object(esm_extends["a" /* default */])((_extends6 = {}, _extends6[refKey] = handleRefs(ref, function (comboboxNode) {
+      comboboxRef.current = comboboxNode;
+    }), _extends6.role = 'combobox', _extends6['aria-haspopup'] = 'listbox', _extends6['aria-owns'] = elementIdsRef.current.menuId, _extends6['aria-expanded'] = latest.current.state.isOpen, _extends6), rest);
+  }, [latest, setGetterPropCallInfo]); // returns
+
+  var toggleMenu = Object(external_this_React_["useCallback"])(function () {
+    dispatch({
+      type: FunctionToggleMenu$1
+    });
+  }, [dispatch]);
+  var closeMenu = Object(external_this_React_["useCallback"])(function () {
+    dispatch({
+      type: FunctionCloseMenu$1
+    });
+  }, [dispatch]);
+  var openMenu = Object(external_this_React_["useCallback"])(function () {
+    dispatch({
+      type: FunctionOpenMenu$1
+    });
+  }, [dispatch]);
+  var setHighlightedIndex = Object(external_this_React_["useCallback"])(function (newHighlightedIndex) {
+    dispatch({
+      type: FunctionSetHighlightedIndex$1,
+      highlightedIndex: newHighlightedIndex
+    });
+  }, [dispatch]);
+  var selectItem = Object(external_this_React_["useCallback"])(function (newSelectedItem) {
+    dispatch({
+      type: FunctionSelectItem$1,
+      selectedItem: newSelectedItem
+    });
+  }, [dispatch]);
+  var setInputValue = Object(external_this_React_["useCallback"])(function (newInputValue) {
+    dispatch({
+      type: FunctionSetInputValue$1,
+      inputValue: newInputValue
+    });
+  }, [dispatch]);
+  var reset = Object(external_this_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$1(props, propKey) {
+  return getInitialValue(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$1(props, propKey) {
+  return getDefaultValue(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$2(props) {
+  var activeIndex = getInitialValue$1(props, 'activeIndex');
+  var selectedItems = getInitialValue$1(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 !== '' && ( // 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 downshift_esm_getA11yRemovalMessage(selectionParameters) {
+  var removedSelectedItem = selectionParameters.removedSelectedItem,
+      itemToStringLocal = selectionParameters.itemToString;
+  return itemToStringLocal(removedSelectedItem) + " has been removed.";
+}
+
+var propTypes$2 = {
+  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 defaultProps$3 = {
+  itemToString: downshift_esm_defaultProps.itemToString,
+  stateReducer: downshift_esm_defaultProps.stateReducer,
+  environment: downshift_esm_defaultProps.environment,
+  getA11yRemovalMessage: downshift_esm_getA11yRemovalMessage,
+  keyNavigationNext: 'ArrowRight',
+  keyNavigationPrevious: 'ArrowLeft'
+};
+
+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$2 =  false ? undefined : 12;
+
+var stateChangeTypes$3 = /*#__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$2
+});
+
+/* 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 = Object(esm_extends["a" /* default */])({
+          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 = Object(esm_extends["a" /* default */])({
+          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$2:
+      changes = {
+        activeIndex: getDefaultValue$1(props, 'activeIndex'),
+        selectedItems: getDefaultValue$1(props, 'selectedItems')
+      };
+      break;
+
+    default:
+      throw new Error('Reducer called without proper action type.');
+  }
+
+  return Object(esm_extends["a" /* default */])({}, state, changes);
+}
+
+useMultipleSelection.stateChangeTypes = stateChangeTypes$3;
+
+function useMultipleSelection(userProps) {
+  if (userProps === void 0) {
+    userProps = {};
+  }
+
+  // Props defaults and destructuring.
+  var props = Object(esm_extends["a" /* default */])({}, defaultProps$3, userProps);
+
+  var getA11yRemovalMessage = props.getA11yRemovalMessage,
+      itemToString = props.itemToString,
+      environment = props.environment,
+      keyNavigationNext = props.keyNavigationNext,
+      keyNavigationPrevious = props.keyNavigationPrevious; // Reducer init.
+
+  var _useControlledReducer = useControlledReducer(downshiftMultipleSelectionReducer, getInitialState$2(props), props),
+      state = _useControlledReducer[0],
+      dispatch = _useControlledReducer[1];
+
+  var activeIndex = state.activeIndex,
+      selectedItems = state.selectedItems; // Refs.
+
+  var isInitialMountRef = Object(external_this_React_["useRef"])(true);
+  var dropdownRef = Object(external_this_React_["useRef"])(null);
+  var previousSelectedItemsRef = Object(external_this_React_["useRef"])(selectedItems);
+  var selectedItemRefs = Object(external_this_React_["useRef"])();
+  selectedItemRefs.current = []; // used for checking when props are moving from controlled to uncontrolled.
+
+  var prevPropsRef = Object(external_this_React_["useRef"])(props);
+  var latest = useLatestRef({
+    state: state,
+    props: props
+  }); // Effects.
+
+  /* Sets a11y status message on changes in selectedItem. */
+
+  Object(external_this_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_this_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]);
+  Object(external_this_React_["useEffect"])(function () {
+    if (isInitialMountRef.current) {
+      return;
+    }
+
+    validateControlledUnchanged(state, prevPropsRef.current, props);
+    prevPropsRef.current = props;
+  }, [state, props]);
+  var setGetterPropCallInfo = useGetterPropsCalledChecker('getDropdownProps'); // Make initial ref false.
+
+  Object(external_this_React_["useEffect"])(function () {
+    isInitialMountRef.current = false;
+  }, []); // Event handler functions.
+
+  var selectedItemKeyDownHandlers = Object(external_this_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_this_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_this_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 = Object(objectWithoutPropertiesLoose["a" /* default */])(_ref3, ["refKey", "ref", "onClick", "onKeyDown", "selectedItem", "index"]);
+
+    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!');
+    }
+
+    return Object(esm_extends["a" /* default */])((_extends2 = {}, _extends2[refKey] = handleRefs(ref, function (selectedItemNode) {
+      if (selectedItemNode) {
+        selectedItemRefs.current.push(selectedItemNode);
+      }
+    }), _extends2.tabIndex = index === latestState.activeIndex ? 0 : -1, _extends2.onClick = callAllEventHandlers(onClick, function selectedItemHandleClick() {
+      dispatch({
+        type: SelectedItemClick,
+        index: index
+      });
+    }), _extends2.onKeyDown = callAllEventHandlers(onKeyDown, function selectedItemHandleKeyDown(event) {
+      var key = normalizeArrowKey(event);
+
+      if (key && selectedItemKeyDownHandlers[key]) {
+        selectedItemKeyDownHandlers[key](event);
+      }
+    }), _extends2), rest);
+  }, [dispatch, latest, selectedItemKeyDownHandlers]);
+  var getDropdownProps = Object(external_this_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 = Object(objectWithoutPropertiesLoose["a" /* default */])(_ref4, ["refKey", "ref", "onKeyDown", "onClick", "preventKeyAction"]);
+
+    var _ref5 = _temp3 === void 0 ? {} : _temp3,
+        _ref5$suppressRefErro = _ref5.suppressRefError,
+        suppressRefError = _ref5$suppressRefErro === void 0 ? false : _ref5$suppressRefErro;
+
+    setGetterPropCallInfo('getDropdownProps', suppressRefError, refKey, dropdownRef);
+    return Object(esm_extends["a" /* default */])((_extends3 = {}, _extends3[refKey] = handleRefs(ref, function (dropdownNode) {
+      if (dropdownNode) {
+        dropdownRef.current = dropdownNode;
+      }
+    }), _extends3), !preventKeyAction && {
+      onKeyDown: callAllEventHandlers(onKeyDown, function dropdownHandleKeyDown(event) {
+        var key = normalizeArrowKey(event);
+
+        if (key && dropdownKeyDownHandlers[key]) {
+          dropdownKeyDownHandlers[key](event);
+        }
+      }),
+      onClick: callAllEventHandlers(onClick, function dropdownHandleClick() {
+        dispatch({
+          type: DropdownClick
+        });
+      })
+    }, rest);
+  }, [dispatch, dropdownKeyDownHandlers, setGetterPropCallInfo]); // returns
+
+  var addSelectedItem = Object(external_this_React_["useCallback"])(function (selectedItem) {
+    dispatch({
+      type: FunctionAddSelectedItem,
+      selectedItem: selectedItem
+    });
+  }, [dispatch]);
+  var removeSelectedItem = Object(external_this_React_["useCallback"])(function (selectedItem) {
+    dispatch({
+      type: FunctionRemoveSelectedItem,
+      selectedItem: selectedItem
+    });
+  }, [dispatch]);
+  var setSelectedItems = Object(external_this_React_["useCallback"])(function (newSelectedItems) {
+    dispatch({
+      type: FunctionSetSelectedItems,
+      selectedItems: newSelectedItems
+    });
+  }, [dispatch]);
+  var setActiveIndex = Object(external_this_React_["useCallback"])(function (newActiveIndex) {
+    dispatch({
+      type: FunctionSetActiveIndex,
+      activeIndex: newActiveIndex
+    });
+  }, [dispatch]);
+  var reset = Object(external_this_React_["useCallback"])(function () {
+    dispatch({
+      type: FunctionReset$2
+    });
+  }, [dispatch]);
+  return {
+    getSelectedItemProps: getSelectedItemProps,
+    getDropdownProps: getDropdownProps,
+    addSelectedItem: addSelectedItem,
+    removeSelectedItem: removeSelectedItem,
+    setSelectedItems: setSelectedItems,
+    setActiveIndex: setActiveIndex,
+    reset: reset,
+    selectedItems: selectedItems,
+    activeIndex: activeIndex
+  };
+}
+
+/* harmony default export */ var downshift_esm = (downshift_esm_Downshift);
+
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/custom-select-control/index.js
+
+
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+var custom_select_control_itemToString = function itemToString(item) {
+  return 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.
+
+
+var custom_select_control_stateReducer = function stateReducer(_ref, _ref2) {
+  var selectedItem = _ref.selectedItem;
+  var type = _ref2.type,
+      changes = _ref2.changes,
+      items = _ref2.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(_ref3) {
+  var className = _ref3.className,
+      hideLabelFromVision = _ref3.hideLabelFromVision,
+      label = _ref3.label,
+      items = _ref3.options,
+      onSelectedItemChange = _ref3.onChange,
+      _selectedItem = _ref3.value;
+
+  var _useSelect = useSelect({
+    initialSelectedItem: items[0],
+    items: items,
+    itemToString: custom_select_control_itemToString,
+    onSelectedItemChange: onSelectedItemChange,
+    selectedItem: _selectedItem,
+    stateReducer: custom_select_control_stateReducer
+  }),
+      getLabelProps = _useSelect.getLabelProps,
+      getToggleButtonProps = _useSelect.getToggleButtonProps,
+      getMenuProps = _useSelect.getMenuProps,
+      getItemProps = _useSelect.getItemProps,
+      isOpen = _useSelect.isOpen,
+      highlightedIndex = _useSelect.highlightedIndex,
+      selectedItem = _useSelect.selectedItem;
+
+  var 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_this_wp_element_["createElement"])("div", {
-    className: classes
-  }, Object(external_lodash_["map"])(colors, function (_ref2) {
-    var color = _ref2.color,
-        name = _ref2.name;
-    var style = {
-      color: color
-    };
-    var itemClasses = classnames_default()('components-color-palette__item', {
-      'is-active': value === color
-    });
-    return Object(external_this_wp_element_["createElement"])("div", {
-      key: color,
-      className: "components-color-palette__item-wrapper"
-    }, Object(external_this_wp_element_["createElement"])(build_module_tooltip, {
-      text: name || // translators: %s: color hex code e.g: "#f00".
-      Object(external_this_wp_i18n_["sprintf"])(Object(external_this_wp_i18n_["__"])('Color code: %s'), color)
-    }, Object(external_this_wp_element_["createElement"])("button", {
-      type: "button",
-      className: itemClasses,
-      style: style,
-      onClick: applyOrUnset(color),
-      "aria-label": name ? // translators: %s: The name of the color e.g: "vivid red".
-      Object(external_this_wp_i18n_["sprintf"])(Object(external_this_wp_i18n_["__"])('Color: %s'), name) : // translators: %s: color hex code e.g: "#f00".
-      Object(external_this_wp_i18n_["sprintf"])(Object(external_this_wp_i18n_["__"])('Color code: %s'), color),
-      "aria-pressed": value === color
-    })), value === color && Object(external_this_wp_element_["createElement"])(dashicon_Dashicon, {
-      icon: "saved"
-    }));
-  }), Object(external_this_wp_element_["createElement"])("div", {
-    className: "components-color-palette__custom-clear-wrapper"
-  }, !disableCustomColors && Object(external_this_wp_element_["createElement"])(dropdown, {
-    className: "components-color-palette__custom-color",
-    contentClassName: "components-color-palette__picker",
-    renderToggle: function renderToggle(_ref3) {
-      var isOpen = _ref3.isOpen,
-          onToggle = _ref3.onToggle;
-      return Object(external_this_wp_element_["createElement"])(build_module_button, {
-        "aria-expanded": isOpen,
-        onClick: onToggle,
-        "aria-label": customColorPickerLabel,
-        isLink: true
-      }, Object(external_this_wp_i18n_["__"])('Custom Color'));
-    },
-    renderContent: function renderContent() {
-      return Object(external_this_wp_element_["createElement"])(color_picker_ColorPicker, {
-        color: value,
-        onChangeComplete: function onChangeComplete(color) {
-          return onChange(color.hex);
-        },
-        disableAlpha: true
-      });
-    }
-  }), Object(external_this_wp_element_["createElement"])(build_module_button, {
-    className: "components-color-palette__clear",
-    type: "button",
-    onClick: function onClick() {
-      return onChange(undefined);
-    },
-    isSmall: true,
-    isDefault: true
-  }, Object(external_this_wp_i18n_["__"])('Clear'))));
-}
+    className: classnames_default()('components-custom-select-control', className)
+  }, hideLabelFromVision ? Object(external_this_wp_element_["createElement"])(visually_hidden, 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_this_wp_element_["createElement"])("label", getLabelProps({
+    className: 'components-custom-select-control__label'
+  }), label), Object(external_this_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_this_wp_element_["createElement"])(build_module_icon["a" /* default */], {
+    icon: chevron_down["a" /* default */],
+    className: "components-custom-select-control__button-icon"
+  })), Object(external_this_wp_element_["createElement"])("ul", menuProps, isOpen && items.map(function (item, index) {
+    return (// eslint-disable-next-line react/jsx-key
+      Object(external_this_wp_element_["createElement"])("li", getItemProps({
+        item: item,
+        index: index,
+        key: item.key,
+        className: classnames_default()(item.className, 'components-custom-select-control__item', {
+          'is-highlighted': index === highlightedIndex
+        }),
+        style: item.style
+      }), item === selectedItem && Object(external_this_wp_element_["createElement"])(build_module_icon["a" /* default */], {
+        icon: check["a" /* default */],
+        className: "components-custom-select-control__item-icon"
+      }), item.name)
+    );
+  })));
+}
+
+// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/dashicon/index.js
+var dashicon = __webpack_require__(148);
 
 // EXTERNAL MODULE: ./node_modules/react-dates/initialize.js
-var initialize = __webpack_require__(260);
-
-// EXTERNAL MODULE: external "moment"
-var external_moment_ = __webpack_require__(29);
-var external_moment_default = /*#__PURE__*/__webpack_require__.n(external_moment_);
-
-// EXTERNAL MODULE: ./node_modules/react-dates/index.js
-var react_dates = __webpack_require__(223);
+var initialize = __webpack_require__(305);
+
+// EXTERNAL MODULE: external {"this":"moment"}
+var external_this_moment_ = __webpack_require__(43);
+var external_this_moment_default = /*#__PURE__*/__webpack_require__.n(external_this_moment_);
+
+// EXTERNAL MODULE: ./node_modules/react-dates/lib/components/DayPickerSingleDateController.js
+var DayPickerSingleDateController = __webpack_require__(271);
+var DayPickerSingleDateController_default = /*#__PURE__*/__webpack_require__.n(DayPickerSingleDateController);
 
 // CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/date-time/date.js
 
@@ -30164,9 +35161,15 @@
 
 
 
-/**
- * External dependencies
- */
+function date_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf["a" /* default */])(Derived), result; if (date_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf["a" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn["a" /* default */])(this, result); }; }
+
+function date_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
+
+/**
+ * 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
 
 
 /**
@@ -30184,33 +35187,62 @@
   return document.documentElement.dir === 'rtl';
 };
 
-var date_DatePicker =
-/*#__PURE__*/
-function (_Component) {
+var date_DatePicker = /*#__PURE__*/function (_Component) {
   Object(inherits["a" /* default */])(DatePicker, _Component);
 
+  var _super = date_createSuper(DatePicker);
+
   function DatePicker() {
     var _this;
 
     Object(classCallCheck["a" /* default */])(this, DatePicker);
 
-    _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(DatePicker).apply(this, arguments));
-    _this.onChangeMoment = _this.onChangeMoment.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
+    _this = _super.apply(this, arguments);
+    _this.onChangeMoment = _this.onChangeMoment.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.nodeRef = Object(external_this_wp_element_["createRef"])();
+    _this.keepFocusInside = _this.keepFocusInside.bind(Object(assertThisInitialized["a" /* default */])(_this));
     return _this;
   }
+  /*
+   * 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.
+   */
+
 
   Object(createClass["a" /* default */])(DatePicker, [{
+    key: "keepFocusInside",
+    value: function keepFocusInside() {
+      if (!this.nodeRef.current) {
+        return;
+      } // If focus was lost.
+
+
+      if (!document.activeElement || !this.nodeRef.current.contains(document.activeElement)) {
+        // Retrieve the focus region div.
+        var focusRegion = this.nodeRef.current.querySelector('.DayPicker_focusRegion');
+
+        if (!focusRegion) {
+          return;
+        } // Keep the focus on focus region.
+
+
+        focusRegion.focus();
+      }
+    }
+  }, {
     key: "onChangeMoment",
     value: function onChangeMoment(newDate) {
       var _this$props = this.props,
           currentDate = _this$props.currentDate,
           onChange = _this$props.onChange; // If currentDate is null, use now as momentTime to designate hours, minutes, seconds.
 
-      var momentDate = currentDate ? external_moment_default()(currentDate) : external_moment_default()();
+      var momentDate = currentDate ? external_this_moment_default()(currentDate) : external_this_moment_default()();
       var momentTime = {
         hours: momentDate.hours(),
         minutes: momentDate.minutes(),
-        seconds: momentDate.seconds()
+        seconds: 0
       };
       onChange(newDate.set(momentTime).format(TIMEZONELESS_FORMAT));
     }
@@ -30219,7 +35251,7 @@
      * 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 object for selected date or null.
+     * @return {?moment.Moment} Moment object for selected date or null.
      */
 
   }, {
@@ -30229,7 +35261,7 @@
         return null;
       }
 
-      return currentDate ? external_moment_default()(currentDate) : external_moment_default()();
+      return currentDate ? external_this_moment_default()(currentDate) : external_this_moment_default()();
     }
   }, {
     key: "render",
@@ -30239,8 +35271,9 @@
           isInvalidDate = _this$props2.isInvalidDate;
       var momentDate = this.getMomentDate(currentDate);
       return Object(external_this_wp_element_["createElement"])("div", {
-        className: "components-datetime__date"
-      }, Object(external_this_wp_element_["createElement"])(react_dates["DayPickerSingleDateController"], {
+        className: "components-datetime__date",
+        ref: this.nodeRef
+      }, Object(external_this_wp_element_["createElement"])(DayPickerSingleDateController_default.a, {
         date: momentDate,
         daySize: 30,
         focused: true,
@@ -30256,7 +35289,9 @@
         isRTL: date_isRTL(),
         isOutsideRange: function isOutsideRange(date) {
           return isInvalidDate && isInvalidDate(date.toDate());
-        }
+        },
+        onPrevMonthClick: this.keepFocusInside,
+        onNextMonthClick: this.keepFocusInside
       }));
     }
   }]);
@@ -30275,21 +35310,26 @@
 
 
 
-/**
- * External dependencies
- */
-
-
-
-/**
- * WordPress dependencies
- */
-
-
-
-/**
- * Internal dependencies
- */
+function time_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf["a" /* default */])(Derived), result; if (time_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf["a" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn["a" /* default */])(this, result); }; }
+
+function time_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
+
+/**
+ * External dependencies
+ */
+
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+/**
+ * Internal dependencies
+ */
+
 
 
 /**
@@ -30298,39 +35338,40 @@
 
 var time_TIMEZONELESS_FORMAT = 'YYYY-MM-DDTHH:mm:ss';
 
-var time_TimePicker =
-/*#__PURE__*/
-function (_Component) {
+var time_TimePicker = /*#__PURE__*/function (_Component) {
   Object(inherits["a" /* default */])(TimePicker, _Component);
 
+  var _super = time_createSuper(TimePicker);
+
   function TimePicker() {
     var _this;
 
     Object(classCallCheck["a" /* default */])(this, TimePicker);
 
-    _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(TimePicker).apply(this, arguments));
+    _this = _super.apply(this, arguments);
     _this.state = {
       day: '',
       month: '',
       year: '',
       hours: '',
       minutes: '',
-      am: true,
+      am: '',
       date: null
     };
-    _this.updateMonth = _this.updateMonth.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.onChangeMonth = _this.onChangeMonth.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.updateDay = _this.updateDay.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.onChangeDay = _this.onChangeDay.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.updateYear = _this.updateYear.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.onChangeYear = _this.onChangeYear.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.updateHours = _this.updateHours.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.updateMinutes = _this.updateMinutes.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.onChangeHours = _this.onChangeHours.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.onChangeMinutes = _this.onChangeMinutes.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.renderMonth = _this.renderMonth.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.renderDay = _this.renderDay.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.renderDayMonthFormat = _this.renderDayMonthFormat.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
+    _this.changeDate = _this.changeDate.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.updateMonth = _this.updateMonth.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.onChangeMonth = _this.onChangeMonth.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.updateDay = _this.updateDay.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.onChangeDay = _this.onChangeDay.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.updateYear = _this.updateYear.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.onChangeYear = _this.onChangeYear.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.updateHours = _this.updateHours.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.updateMinutes = _this.updateMinutes.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.onChangeHours = _this.onChangeHours.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.onChangeMinutes = _this.onChangeMinutes.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.renderMonth = _this.renderMonth.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.renderDay = _this.renderDay.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.renderDayMonthFormat = _this.renderDayMonthFormat.bind(Object(assertThisInitialized["a" /* default */])(_this));
     return _this;
   }
 
@@ -30350,6 +35391,22 @@
         this.syncState(this.props);
       }
     }
+    /**
+     * 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.
+     */
+
+  }, {
+    key: "changeDate",
+    value: function changeDate(newDate) {
+      var dateWithStartOfMinutes = newDate.clone().startOf('minute');
+      this.setState({
+        date: dateWithStartOfMinutes
+      });
+      this.props.onChange(newDate.format(time_TIMEZONELESS_FORMAT));
+    }
   }, {
     key: "getMaxHours",
     value: function getMaxHours() {
@@ -30365,14 +35422,14 @@
     value: function syncState(_ref) {
       var currentTime = _ref.currentTime,
           is12Hour = _ref.is12Hour;
-      var selected = currentTime ? external_moment_default()(currentTime) : external_moment_default()();
+      var selected = currentTime ? external_this_moment_default()(currentTime) : external_this_moment_default()();
       var day = selected.format('DD');
       var month = selected.format('MM');
       var year = selected.format('YYYY');
       var minutes = selected.format('mm');
-      var am = selected.format('A');
+      var am = selected.format('H') <= 11 ? 'AM' : 'PM';
       var hours = selected.format(is12Hour ? 'hh' : 'HH');
-      var date = currentTime ? external_moment_default()(currentTime) : external_moment_default()();
+      var date = currentTime ? external_this_moment_default()(currentTime) : external_this_moment_default()();
       this.setState({
         day: day,
         month: month,
@@ -30386,105 +35443,104 @@
   }, {
     key: "updateHours",
     value: function updateHours() {
-      var _this$props2 = this.props,
-          is12Hour = _this$props2.is12Hour,
-          onChange = _this$props2.onChange;
+      var is12Hour = this.props.is12Hour;
       var _this$state = this.state,
           am = _this$state.am,
           hours = _this$state.hours,
           date = _this$state.date;
       var value = parseInt(hours, 10);
 
-      if (!Object(external_lodash_["isInteger"])(value) || is12Hour && (value < 1 || value > 12) || !is12Hour && (value < 0 || value > 23)) {
+      if (value === date.hour()) {
+        return;
+      }
+
+      if (!Object(external_this_lodash_["isInteger"])(value) || is12Hour && (value < 1 || value > 12) || !is12Hour && (value < 0 || value > 23)) {
         this.syncState(this.props);
         return;
       }
 
       var newDate = is12Hour ? date.clone().hours(am === 'AM' ? value % 12 : (value % 12 + 12) % 24) : date.clone().hours(value);
-      this.setState({
-        date: newDate
-      });
-      onChange(newDate.format(time_TIMEZONELESS_FORMAT));
+      this.changeDate(newDate);
     }
   }, {
     key: "updateMinutes",
     value: function updateMinutes() {
-      var onChange = this.props.onChange;
       var _this$state2 = this.state,
           minutes = _this$state2.minutes,
           date = _this$state2.date;
       var value = parseInt(minutes, 10);
 
-      if (!Object(external_lodash_["isInteger"])(value) || value < 0 || value > 59) {
+      if (value === date.minute()) {
+        return;
+      }
+
+      if (!Object(external_this_lodash_["isInteger"])(value) || value < 0 || value > 59) {
         this.syncState(this.props);
         return;
       }
 
       var newDate = date.clone().minutes(value);
-      this.setState({
-        date: newDate
-      });
-      onChange(newDate.format(time_TIMEZONELESS_FORMAT));
+      this.changeDate(newDate);
     }
   }, {
     key: "updateDay",
     value: function updateDay() {
-      var onChange = this.props.onChange;
       var _this$state3 = this.state,
           day = _this$state3.day,
           date = _this$state3.date;
       var value = parseInt(day, 10);
 
-      if (!Object(external_lodash_["isInteger"])(value) || value < 1 || value > 31) {
+      if (value === date.date()) {
+        return;
+      }
+
+      if (!Object(external_this_lodash_["isInteger"])(value) || value < 1 || value > 31) {
         this.syncState(this.props);
         return;
       }
 
       var newDate = date.clone().date(value);
-      this.setState({
-        date: newDate
-      });
-      onChange(newDate.format(time_TIMEZONELESS_FORMAT));
+      this.changeDate(newDate);
     }
   }, {
     key: "updateMonth",
     value: function updateMonth() {
-      var onChange = this.props.onChange;
       var _this$state4 = this.state,
           month = _this$state4.month,
           date = _this$state4.date;
       var value = parseInt(month, 10);
 
-      if (!Object(external_lodash_["isInteger"])(value) || value < 1 || value > 12) {
+      if (value === date.month() + 1) {
+        return;
+      }
+
+      if (!Object(external_this_lodash_["isInteger"])(value) || value < 1 || value > 12) {
         this.syncState(this.props);
         return;
       }
 
       var newDate = date.clone().month(value - 1);
-      this.setState({
-        date: newDate
-      });
-      onChange(newDate.format(time_TIMEZONELESS_FORMAT));
+      this.changeDate(newDate);
     }
   }, {
     key: "updateYear",
     value: function updateYear() {
-      var onChange = this.props.onChange;
       var _this$state5 = this.state,
           year = _this$state5.year,
           date = _this$state5.date;
       var value = parseInt(year, 10);
 
-      if (!Object(external_lodash_["isInteger"])(value) || value < 0 || value > 9999) {
+      if (value === date.year()) {
+        return;
+      }
+
+      if (!Object(external_this_lodash_["isInteger"])(value) || value < 0 || value > 9999) {
         this.syncState(this.props);
         return;
       }
 
       var newDate = date.clone().year(value);
-      this.setState({
-        date: newDate
-      });
-      onChange(newDate.format(time_TIMEZONELESS_FORMAT));
+      this.changeDate(newDate);
     }
   }, {
     key: "updateAmPm",
@@ -30492,7 +35548,6 @@
       var _this2 = this;
 
       return function () {
-        var onChange = _this2.props.onChange;
         var _this2$state = _this2.state,
             am = _this2$state.am,
             date = _this2$state.date,
@@ -30510,11 +35565,7 @@
           newDate = date.clone().hours(parseInt(hours, 10) % 12);
         }
 
-        _this2.setState({
-          date: newDate
-        });
-
-        onChange(newDate.format(time_TIMEZONELESS_FORMAT));
+        _this2.changeDate(newDate);
       };
     }
   }, {
@@ -30548,8 +35599,9 @@
   }, {
     key: "onChangeMinutes",
     value: function onChangeMinutes(event) {
+      var minutes = event.target.value;
       this.setState({
-        minutes: event.target.value
+        minutes: minutes === '' ? '' : ('0' + minutes).slice(-2)
       });
     }
   }, {
@@ -30669,20 +35721,18 @@
         value: minutes,
         onChange: this.onChangeMinutes,
         onBlur: this.updateMinutes
-      })), is12Hour && Object(external_this_wp_element_["createElement"])("div", {
+      })), is12Hour && Object(external_this_wp_element_["createElement"])(button_group, {
         className: "components-datetime__time-field components-datetime__time-field-am-pm"
-      }, Object(external_this_wp_element_["createElement"])(build_module_button, {
-        "aria-pressed": am === 'AM',
-        isDefault: true,
-        className: "components-datetime__time-am-button",
-        isToggled: am === 'AM',
-        onClick: this.updateAmPm('AM')
-      }, Object(external_this_wp_i18n_["__"])('AM')), Object(external_this_wp_element_["createElement"])(build_module_button, {
-        "aria-pressed": am === 'PM',
-        isDefault: true,
-        className: "components-datetime__time-pm-button",
-        isToggled: am === 'PM',
-        onClick: this.updateAmPm('PM')
+      }, Object(external_this_wp_element_["createElement"])(build_module_button["a" /* default */], {
+        isPrimary: am === 'AM',
+        isSecondary: am !== 'AM',
+        onClick: this.updateAmPm('AM'),
+        className: "components-datetime__time-am-button"
+      }, Object(external_this_wp_i18n_["__"])('AM')), Object(external_this_wp_element_["createElement"])(build_module_button["a" /* default */], {
+        isPrimary: am === 'PM',
+        isSecondary: am !== 'PM',
+        onClick: this.updateAmPm('PM'),
+        className: "components-datetime__time-pm-button"
       }, Object(external_this_wp_i18n_["__"])('PM'))))));
     }
   }]);
@@ -30701,6 +35751,10 @@
 
 
 
+function date_time_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf["a" /* default */])(Derived), result; if (date_time_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf["a" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn["a" /* default */])(this, result); }; }
+
+function date_time_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
+
 /**
  * External dependencies
  */
@@ -30721,21 +35775,21 @@
 
 
 
-var date_time_DateTimePicker =
-/*#__PURE__*/
-function (_Component) {
+var date_time_DateTimePicker = /*#__PURE__*/function (_Component) {
   Object(inherits["a" /* default */])(DateTimePicker, _Component);
 
+  var _super = date_time_createSuper(DateTimePicker);
+
   function DateTimePicker() {
     var _this;
 
     Object(classCallCheck["a" /* default */])(this, DateTimePicker);
 
-    _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(DateTimePicker).apply(this, arguments));
+    _this = _super.apply(this, arguments);
     _this.state = {
       calendarHelpIsVisible: false
     };
-    _this.onClickDescriptionToggle = _this.onClickDescriptionToggle.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
+    _this.onClickDescriptionToggle = _this.onClickDescriptionToggle.bind(Object(assertThisInitialized["a" /* default */])(_this));
     return _this;
   }
 
@@ -30752,6 +35806,7 @@
       var _this$props = this.props,
           currentDate = _this$props.currentDate,
           is12Hour = _this$props.is12Hour,
+          isInvalidDate = _this$props.isInvalidDate,
           onChange = _this$props.onChange;
       return Object(external_this_wp_element_["createElement"])("div", {
         className: "components-datetime"
@@ -30761,7 +35816,8 @@
         is12Hour: is12Hour
       }), Object(external_this_wp_element_["createElement"])(date_time_date, {
         currentDate: currentDate,
-        onChange: onChange
+        onChange: onChange,
+        isInvalidDate: isInvalidDate
       })), this.state.calendarHelpIsVisible && Object(external_this_wp_element_["createElement"])(external_this_wp_element_["Fragment"], null, Object(external_this_wp_element_["createElement"])("div", {
         className: "components-datetime__calendar-help"
       }, Object(external_this_wp_element_["createElement"])("h4", null, Object(external_this_wp_i18n_["__"])('Click to Select')), Object(external_this_wp_element_["createElement"])("ul", null, Object(external_this_wp_element_["createElement"])("li", null, Object(external_this_wp_i18n_["__"])('Click the right or left arrows to select other months in the past or the future.')), Object(external_this_wp_element_["createElement"])("li", null, Object(external_this_wp_i18n_["__"])('Click the desired day to select it.'))), Object(external_this_wp_element_["createElement"])("h4", null, Object(external_this_wp_i18n_["__"])('Navigating with a keyboard')), Object(external_this_wp_element_["createElement"])("ul", null, Object(external_this_wp_element_["createElement"])("li", null, Object(external_this_wp_element_["createElement"])("abbr", {
@@ -30784,20 +35840,227 @@
         "aria-label": Object(external_this_wp_i18n_["__"])('Home and End')
       }, Object(external_this_wp_i18n_["__"])('Home/End')), ' '
       /* JSX removes whitespace, but a space is required for screen readers. */
-      , Object(external_this_wp_i18n_["__"])('Go to the first (home) or last (end) day of a week.'))), Object(external_this_wp_element_["createElement"])(build_module_button, {
-        isSmall: true,
-        onClick: this.onClickDescriptionToggle
-      }, Object(external_this_wp_i18n_["__"])('Close')))), !this.state.calendarHelpIsVisible && Object(external_this_wp_element_["createElement"])(build_module_button, {
-        className: "components-datetime__date-help-button",
+      , Object(external_this_wp_i18n_["__"])('Go to the first (home) or last (end) day of a week.'))))), Object(external_this_wp_element_["createElement"])("div", {
+        className: "components-datetime__buttons"
+      }, !this.state.calendarHelpIsVisible && currentDate && Object(external_this_wp_element_["createElement"])(build_module_button["a" /* default */], {
+        className: "components-datetime__date-reset-button",
+        isLink: true,
+        onClick: function onClick() {
+          return onChange(null);
+        }
+      }, Object(external_this_wp_i18n_["__"])('Reset')), Object(external_this_wp_element_["createElement"])(build_module_button["a" /* default */], {
+        className: "components-datetime__date-help-toggle",
         isLink: true,
         onClick: this.onClickDescriptionToggle
-      }, Object(external_this_wp_i18n_["__"])('Calendar Help')));
+      }, this.state.calendarHelpIsVisible ? Object(external_this_wp_i18n_["__"])('Close') : Object(external_this_wp_i18n_["__"])('Calendar Help'))));
     }
   }]);
 
   return DateTimePicker;
 }(external_this_wp_element_["Component"]);
 
+// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/icon/index.js
+var components_build_module_icon = __webpack_require__(88);
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/select-control/index.js
+
+
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+function SelectControl(_ref) {
+  var help = _ref.help,
+      label = _ref.label,
+      _ref$multiple = _ref.multiple,
+      multiple = _ref$multiple === void 0 ? false : _ref$multiple,
+      onChange = _ref.onChange,
+      _ref$options = _ref.options,
+      options = _ref$options === void 0 ? [] : _ref$options,
+      className = _ref.className,
+      hideLabelFromVision = _ref.hideLabelFromVision,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["help", "label", "multiple", "onChange", "options", "className", "hideLabelFromVision"]);
+
+  var instanceId = Object(external_this_wp_compose_["useInstanceId"])(SelectControl);
+  var id = "inspector-select-control-".concat(instanceId);
+
+  var onChangeValue = function onChangeValue(event) {
+    if (multiple) {
+      var selectedOptions = Object(toConsumableArray["a" /* default */])(event.target.options).filter(function (_ref2) {
+        var selected = _ref2.selected;
+        return selected;
+      });
+
+      var newValues = selectedOptions.map(function (_ref3) {
+        var value = _ref3.value;
+        return value;
+      });
+      onChange(newValues);
+      return;
+    }
+
+    onChange(event.target.value);
+  }; // Disable reason: A select with an onchange throws a warning
+
+  /* eslint-disable jsx-a11y/no-onchange */
+
+
+  return !Object(external_this_lodash_["isEmpty"])(options) && Object(external_this_wp_element_["createElement"])(base_control, {
+    label: label,
+    hideLabelFromVision: hideLabelFromVision,
+    id: id,
+    help: help,
+    className: className
+  }, Object(external_this_wp_element_["createElement"])("select", Object(esm_extends["a" /* default */])({
+    id: id,
+    className: "components-select-control__input",
+    onChange: onChangeValue,
+    "aria-describedby": !!help ? "".concat(id, "__help") : undefined,
+    multiple: multiple
+  }, props), options.map(function (option, index) {
+    return Object(external_this_wp_element_["createElement"])("option", {
+      key: "".concat(option.label, "-").concat(option.value, "-").concat(index),
+      value: option.value,
+      disabled: option.disabled
+    }, option.label);
+  })));
+  /* eslint-enable jsx-a11y/no-onchange */
+}
+
+// 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
+ */
+
+var findSizeBySlug = function findSizeBySlug(sizes, slug) {
+  return sizes.find(function (size) {
+    return slug === size.slug;
+  });
+};
+/* harmony default export */ var dimension_control_sizes = ([{
+  name: Object(external_this_wp_i18n_["__"])('None'),
+  slug: 'none'
+}, {
+  name: Object(external_this_wp_i18n_["__"])('Small'),
+  slug: 'small'
+}, {
+  name: Object(external_this_wp_i18n_["__"])('Medium'),
+  slug: 'medium'
+}, {
+  name: Object(external_this_wp_i18n_["__"])('Large'),
+  slug: 'large'
+}, {
+  name: Object(external_this_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) {
+  var label = props.label,
+      value = props.value,
+      _props$sizes = props.sizes,
+      sizes = _props$sizes === void 0 ? dimension_control_sizes : _props$sizes,
+      icon = props.icon,
+      onChange = props.onChange,
+      _props$className = props.className,
+      className = _props$className === void 0 ? '' : _props$className;
+
+  var onChangeSpacingSize = function onChangeSpacingSize(val) {
+    var theSize = findSizeBySlug(sizes, val);
+
+    if (!theSize || value === theSize.slug) {
+      onChange(undefined);
+    } else if (Object(external_this_lodash_["isFunction"])(onChange)) {
+      onChange(theSize.slug);
+    }
+  };
+
+  var formatSizesAsOptions = function formatSizesAsOptions(theSizes) {
+    var options = theSizes.map(function (_ref) {
+      var name = _ref.name,
+          slug = _ref.slug;
+      return {
+        label: name,
+        value: slug
+      };
+    });
+    return [{
+      label: Object(external_this_wp_i18n_["__"])('Default'),
+      value: ''
+    }].concat(options);
+  };
+
+  var selectLabel = Object(external_this_wp_element_["createElement"])(external_this_wp_element_["Fragment"], null, icon && Object(external_this_wp_element_["createElement"])(components_build_module_icon["a" /* default */], {
+    icon: icon
+  }), label);
+  return Object(external_this_wp_element_["createElement"])(SelectControl, {
+    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 {"this":["wp","dom"]}
+var external_this_wp_dom_ = __webpack_require__(30);
+
 // CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/disabled/index.js
 
 
@@ -30809,27 +36072,31 @@
 
 
 
-/**
- * External dependencies
- */
-
-
-/**
- * WordPress dependencies
- */
-
-
-
-
-var disabled_createContext = Object(external_this_wp_element_["createContext"])(false),
-    disabled_Consumer = disabled_createContext.Consumer,
-    disabled_Provider = disabled_createContext.Provider;
+function disabled_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf["a" /* default */])(Derived), result; if (disabled_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf["a" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn["a" /* default */])(this, result); }; }
+
+function disabled_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+var _createContext = Object(external_this_wp_element_["createContext"])(false),
+    Consumer = _createContext.Consumer,
+    disabled_Provider = _createContext.Provider;
 /**
  * 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".
  *
- * @link https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#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[]}
  */
@@ -30837,22 +36104,22 @@
 
 var DISABLED_ELIGIBLE_NODE_NAMES = ['BUTTON', 'FIELDSET', 'INPUT', 'OPTGROUP', 'OPTION', 'SELECT', 'TEXTAREA'];
 
-var disabled_Disabled =
-/*#__PURE__*/
-function (_Component) {
+var disabled_Disabled = /*#__PURE__*/function (_Component) {
   Object(inherits["a" /* default */])(Disabled, _Component);
 
+  var _super = disabled_createSuper(Disabled);
+
   function Disabled() {
     var _this;
 
     Object(classCallCheck["a" /* default */])(this, Disabled);
 
-    _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(Disabled).apply(this, arguments));
-    _this.bindNode = _this.bindNode.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.disable = _this.disable.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this))); // Debounce re-disable since disabling process itself will incur
+    _this = _super.apply(this, arguments);
+    _this.bindNode = _this.bindNode.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.disable = _this.disable.bind(Object(assertThisInitialized["a" /* default */])(_this)); // Debounce re-disable since disabling process itself will incur
     // additional mutations which should be ignored.
 
-    _this.debouncedDisable = Object(external_lodash_["debounce"])(_this.disable, {
+    _this.debouncedDisable = Object(external_this_lodash_["debounce"])(_this.disable, {
       leading: true
     });
     return _this;
@@ -30884,7 +36151,7 @@
     key: "disable",
     value: function disable() {
       external_this_wp_dom_["focus"].focusable.find(this.node).forEach(function (focusable) {
-        if (Object(external_lodash_["includes"])(DISABLED_ELIGIBLE_NODE_NAMES, focusable.nodeName)) {
+        if (Object(external_this_lodash_["includes"])(DISABLED_ELIGIBLE_NODE_NAMES, focusable.nodeName)) {
           focusable.setAttribute('disabled', '');
         }
 
@@ -30916,7 +36183,7 @@
   return Disabled;
 }(external_this_wp_element_["Component"]);
 
-disabled_Disabled.Consumer = disabled_Consumer;
+disabled_Disabled.Consumer = Consumer;
 /* harmony default export */ var build_module_disabled = (disabled_Disabled);
 
 // CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/draggable/index.js
@@ -30928,6 +36195,10 @@
 
 
 
+function draggable_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf["a" /* default */])(Derived), result; if (draggable_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf["a" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn["a" /* default */])(this, result); }; }
+
+function draggable_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
+
 /**
  * External dependencies
  */
@@ -30941,33 +36212,24 @@
 var dragImageClass = 'components-draggable__invisible-drag-image';
 var cloneWrapperClass = 'components-draggable__clone';
 var cloneHeightTransformationBreakpoint = 700;
-var clonePadding = 20;
-
-var isChromeUA = function isChromeUA() {
-  return /Chrome/i.test(window.navigator.userAgent);
-};
-
-var draggable_documentHasIframes = function documentHasIframes() {
-  return Object(toConsumableArray["a" /* default */])(document.getElementById('editor').querySelectorAll('iframe')).length > 0;
-};
-
-var draggable_Draggable =
-/*#__PURE__*/
-function (_Component) {
+var clonePadding = 0;
+
+var draggable_Draggable = /*#__PURE__*/function (_Component) {
   Object(inherits["a" /* default */])(Draggable, _Component);
 
+  var _super = draggable_createSuper(Draggable);
+
   function Draggable() {
     var _this;
 
     Object(classCallCheck["a" /* default */])(this, Draggable);
 
-    _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(Draggable).apply(this, arguments));
-    _this.onDragStart = _this.onDragStart.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.onDragOver = _this.onDragOver.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.onDrop = _this.onDrop.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.onDragEnd = _this.onDragEnd.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.resetDragState = _this.resetDragState.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.isChromeAndHasIframes = false;
+    _this = _super.apply(this, arguments);
+    _this.onDragStart = _this.onDragStart.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.onDragOver = _this.onDragOver.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.onDragEnd = _this.onDragEnd.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.resetDragState = _this.resetDragState.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.dragComponentRef = Object(external_this_wp_element_["createRef"])();
     return _this;
   }
 
@@ -30978,25 +36240,26 @@
     }
     /**
      * Removes the element clone, resets cursor, and removes drag listener.
-     * @param  {Object} event     The non-custom DragEvent.
+     *
+     * @param  {Object} event The non-custom DragEvent.
      */
 
   }, {
     key: "onDragEnd",
     value: function onDragEnd(event) {
       var _this$props$onDragEnd = this.props.onDragEnd,
-          onDragEnd = _this$props$onDragEnd === void 0 ? external_lodash_["noop"] : _this$props$onDragEnd;
-
-      if (event) {
-        event.preventDefault();
-      }
-
-      this.resetDragState();
-      this.props.setTimeout(onDragEnd);
-    }
-    /*
+          onDragEnd = _this$props$onDragEnd === void 0 ? external_this_lodash_["noop"] : _this$props$onDragEnd;
+      event.preventDefault();
+      this.resetDragState(); // Allow the Synthetic Event to be accessed from asynchronous code.
+      // https://reactjs.org/docs/events.html#event-pooling
+
+      event.persist();
+      this.props.setTimeout(onDragEnd.bind(this, event));
+    }
+    /**
      * Updates positioning of element clone based on mouse movement during dragging.
-     * @param  {Object} event     The non-custom DragEvent.
+     *
+     * @param  {Object} event The non-custom DragEvent.
      */
 
   }, {
@@ -31007,33 +36270,32 @@
 
       this.cursorLeft = event.clientX;
       this.cursorTop = event.clientY;
-    }
-  }, {
-    key: "onDrop",
-    value: function onDrop() {
-      // As per https://html.spec.whatwg.org/multipage/dnd.html#dndevents
-      // the target node for the dragend is the source node that started the drag operation,
-      // while drop event's target is the current target element.
-      this.onDragEnd(null);
+      var _this$props$onDragOve = this.props.onDragOver,
+          onDragOver = _this$props$onDragOve === void 0 ? external_this_lodash_["noop"] : _this$props$onDragOve; // The `event` from `onDragOver` is not a SyntheticEvent
+      // and so it doesn't require `event.persist()`.
+
+      this.props.setTimeout(onDragOver.bind(this, event));
     }
     /**
-     *  - 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  {Object} event					The non-custom DragEvent.
-     * @param  {string} elementId				The HTML id of the element to be dragged.
-     * @param  {Object} transferData			The data to be set to the event's dataTransfer - to be accessible in any later drop logic.
+     * 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  {Object} event The non-custom DragEvent.
      */
 
   }, {
     key: "onDragStart",
     value: function onDragStart(event) {
       var _this$props = this.props,
+          cloneClassname = _this$props.cloneClassname,
           elementId = _this$props.elementId,
           transferData = _this$props.transferData,
           _this$props$onDragSta = _this$props.onDragStart,
-          onDragStart = _this$props$onDragSta === void 0 ? external_lodash_["noop"] : _this$props$onDragSta;
+          onDragStart = _this$props$onDragSta === void 0 ? external_this_lodash_["noop"] : _this$props$onDragSta;
       var element = document.getElementById(elementId);
 
       if (!element) {
@@ -31061,50 +36323,59 @@
       var elementWrapper = element.parentNode;
       var elementTopOffset = parseInt(elementRect.top, 10);
       var elementLeftOffset = parseInt(elementRect.left, 10);
-      var clone = element.cloneNode(true);
-      clone.id = "clone-".concat(elementId);
       this.cloneWrapper = document.createElement('div');
       this.cloneWrapper.classList.add(cloneWrapperClass);
-      this.cloneWrapper.style.width = "".concat(elementRect.width + clonePadding * 2, "px");
-
-      if (elementRect.height > cloneHeightTransformationBreakpoint) {
-        // Scale down clone if original element is larger than 700px.
-        this.cloneWrapper.style.transform = 'scale(0.5)';
-        this.cloneWrapper.style.transformOrigin = 'top left'; // Position clone near the cursor.
-
-        this.cloneWrapper.style.top = "".concat(event.clientY - 100, "px");
-        this.cloneWrapper.style.left = "".concat(event.clientX, "px");
-      } else {
+
+      if (cloneClassname) {
+        this.cloneWrapper.classList.add(cloneClassname);
+      }
+
+      this.cloneWrapper.style.width = "".concat(elementRect.width + clonePadding * 2, "px"); // If a dragComponent is defined, the following logic will clone the
+      // HTML node and inject it into the cloneWrapper.
+
+      if (this.dragComponentRef.current) {
         // Position clone right over the original element (20px padding).
         this.cloneWrapper.style.top = "".concat(elementTopOffset - clonePadding, "px");
         this.cloneWrapper.style.left = "".concat(elementLeftOffset - clonePadding, "px");
-      } // Hack: Remove iFrames as it's causing the embeds drag clone to freeze
-
-
-      Object(toConsumableArray["a" /* default */])(clone.querySelectorAll('iframe')).forEach(function (child) {
-        return child.parentNode.removeChild(child);
-      });
-
-      this.cloneWrapper.appendChild(clone);
+        var clonedDragComponent = document.createElement('div');
+        clonedDragComponent.innerHTML = this.dragComponentRef.current.innerHTML;
+        this.cloneWrapper.appendChild(clonedDragComponent);
+      } else {
+        var clone = element.cloneNode(true);
+        clone.id = "clone-".concat(elementId);
+
+        if (elementRect.height > cloneHeightTransformationBreakpoint) {
+          // Scale down clone if original element is larger than 700px.
+          this.cloneWrapper.style.transform = 'scale(0.5)';
+          this.cloneWrapper.style.transformOrigin = 'top left'; // Position clone near the cursor.
+
+          this.cloneWrapper.style.top = "".concat(event.clientY - 100, "px");
+          this.cloneWrapper.style.left = "".concat(event.clientX, "px");
+        } else {
+          // Position clone right over the original element (20px padding).
+          this.cloneWrapper.style.top = "".concat(elementTopOffset - clonePadding, "px");
+          this.cloneWrapper.style.left = "".concat(elementLeftOffset - clonePadding, "px");
+        } // Hack: Remove iFrames as it's causing the embeds drag clone to freeze
+
+
+        Array.from(clone.querySelectorAll('iframe')).forEach(function (child) {
+          return child.parentNode.removeChild(child);
+        });
+        this.cloneWrapper.appendChild(clone);
+      } // Inject the cloneWrapper into the DOM.
+
+
       elementWrapper.appendChild(this.cloneWrapper); // Mark the current cursor coordinates.
 
       this.cursorLeft = event.clientX;
       this.cursorTop = event.clientY; // Update cursor to 'grabbing', document wide.
 
       document.body.classList.add('is-dragging-components-draggable');
-      document.addEventListener('dragover', this.onDragOver); // Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=737691#c8
-      // dragend event won't be dispatched in the chrome browser
-      // when iframes are affected by the drag operation. So, in that case,
-      // we use the drop event to wrap up the dragging operation.
-      // This way the hack is contained to a specific use case and the external API
-      // still relies mostly on the dragend event.
-
-      if (isChromeUA() && draggable_documentHasIframes()) {
-        this.isChromeAndHasIframes = true;
-        document.addEventListener('drop', this.onDrop);
-      }
-
-      this.props.setTimeout(onDragStart);
+      document.addEventListener('dragover', this.onDragOver); // Allow the Synthetic Event to be accessed from asynchronous code.
+      // https://reactjs.org/docs/events.html#event-pooling
+
+      event.persist();
+      this.props.setTimeout(onDragStart.bind(this, event));
     }
     /**
      * Cleans up drag state when drag has completed, or component unmounts
@@ -31122,22 +36393,27 @@
         this.cloneWrapper = null;
       }
 
-      if (this.isChromeAndHasIframes) {
-        this.isChromeAndHasIframes = false;
-        document.removeEventListener('drop', this.onDrop);
-      } // Reset cursor.
-
+      this.cursorLeft = null;
+      this.cursorTop = null; // Reset cursor.
 
       document.body.classList.remove('is-dragging-components-draggable');
     }
   }, {
     key: "render",
     value: function render() {
-      var children = this.props.children;
-      return children({
+      var _this$props2 = this.props,
+          children = _this$props2.children,
+          dragComponent = _this$props2.__experimentalDragComponent;
+      return Object(external_this_wp_element_["createElement"])(external_this_wp_element_["Fragment"], null, children({
         onDraggableStart: this.onDragStart,
         onDraggableEnd: this.onDragEnd
-      });
+      }), dragComponent && Object(external_this_wp_element_["createElement"])("div", {
+        className: "components-draggable-drag-component-root",
+        style: {
+          display: 'none'
+        },
+        ref: this.dragComponentRef
+      }, dragComponent));
     }
   }]);
 
@@ -31146,6 +36422,13 @@
 
 /* harmony default export */ var draggable = (Object(external_this_wp_compose_["withSafeTimeout"])(draggable_Draggable));
 
+// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/upload.js
+var upload = __webpack_require__(204);
+
+// EXTERNAL MODULE: external {"this":["wp","isShallowEqual"]}
+var external_this_wp_isShallowEqual_ = __webpack_require__(64);
+var external_this_wp_isShallowEqual_default = /*#__PURE__*/__webpack_require__.n(external_this_wp_isShallowEqual_);
+
 // CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/drop-zone/provider.js
 
 
@@ -31156,23 +36439,26 @@
 
 
 
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-
-var provider_createContext = Object(external_this_wp_element_["createContext"])({
+function provider_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf["a" /* default */])(Derived), result; if (provider_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf["a" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn["a" /* default */])(this, result); }; }
+
+function provider_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+var Context = Object(external_this_wp_element_["createContext"])({
   addDropZone: function addDropZone() {},
   removeDropZone: function removeDropZone() {}
-}),
-    provider_Provider = provider_createContext.Provider,
-    provider_Consumer = provider_createContext.Consumer;
+});
+var provider_Provider = Context.Provider,
+    provider_Consumer = Context.Consumer;
 
 var provider_getDragEventType = function getDragEventType(_ref) {
   var dataTransfer = _ref.dataTransfer;
@@ -31181,11 +36467,11 @@
     // Use lodash `includes` here as in the Edge browser `types` is implemented
     // as a DomStringList, whereas in other browsers it's an array. `includes`
     // happily works with both types.
-    if (Object(external_lodash_["includes"])(dataTransfer.types, 'Files')) {
+    if (Object(external_this_lodash_["includes"])(dataTransfer.types, 'Files')) {
       return 'file';
     }
 
-    if (Object(external_lodash_["includes"])(dataTransfer.types, 'text/html')) {
+    if (Object(external_this_lodash_["includes"])(dataTransfer.types, 'text/html')) {
       return 'html';
     }
   }
@@ -31207,26 +36493,26 @@
   return x >= rect.left && x <= rect.right && y >= rect.top && y <= rect.bottom;
 };
 
-var provider_DropZoneProvider =
-/*#__PURE__*/
-function (_Component) {
+var provider_DropZoneProvider = /*#__PURE__*/function (_Component) {
   Object(inherits["a" /* default */])(DropZoneProvider, _Component);
 
+  var _super = provider_createSuper(DropZoneProvider);
+
   function DropZoneProvider() {
     var _this;
 
     Object(classCallCheck["a" /* default */])(this, DropZoneProvider);
 
-    _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(DropZoneProvider).apply(this, arguments)); // Event listeners
-
-    _this.onDragOver = _this.onDragOver.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.onDrop = _this.onDrop.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this))); // Context methods so this component can receive data from consumers
-
-    _this.addDropZone = _this.addDropZone.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.removeDropZone = _this.removeDropZone.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this))); // Utility methods
-
-    _this.resetDragState = _this.resetDragState.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.toggleDraggingOverDocument = Object(external_lodash_["throttle"])(_this.toggleDraggingOverDocument.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this))), 200);
+    _this = _super.apply(this, arguments); // Event listeners
+
+    _this.onDragOver = _this.onDragOver.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.onDrop = _this.onDrop.bind(Object(assertThisInitialized["a" /* default */])(_this)); // Context methods so this component can receive data from consumers
+
+    _this.addDropZone = _this.addDropZone.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.removeDropZone = _this.removeDropZone.bind(Object(assertThisInitialized["a" /* default */])(_this)); // Utility methods
+
+    _this.resetDragState = _this.resetDragState.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.toggleDraggingOverDocument = Object(external_this_lodash_["throttle"])(_this.toggleDraggingOverDocument.bind(Object(assertThisInitialized["a" /* default */])(_this)), 200);
     _this.dropZones = [];
     _this.dropZoneCallbacks = {
       addDropZone: _this.addDropZone,
@@ -31235,9 +36521,7 @@
     _this.state = {
       hoveredDropZone: -1,
       isDraggingOverDocument: false,
-      isDraggingOverElement: false,
-      position: null,
-      type: null
+      position: null
     };
     return _this;
   }
@@ -31262,7 +36546,7 @@
   }, {
     key: "removeDropZone",
     value: function removeDropZone(dropZone) {
-      this.dropZones = Object(external_lodash_["filter"])(this.dropZones, function (dz) {
+      this.dropZones = Object(external_this_lodash_["filter"])(this.dropZones, function (dz) {
         return dz !== dropZone;
       });
     }
@@ -31282,9 +36566,7 @@
       this.setState({
         hoveredDropZone: -1,
         isDraggingOverDocument: false,
-        isDraggingOverElement: false,
-        position: null,
-        type: null
+        position: null
       });
       this.dropZones.forEach(function (dropZone) {
         return dropZone.setState({
@@ -31308,23 +36590,23 @@
       // See: https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Creating_and_triggering_events
       var detail = window.CustomEvent && event instanceof window.CustomEvent ? event.detail : event; // Index of hovered dropzone.
 
-      var hoveredDropZones = Object(external_lodash_["filter"])(this.dropZones, function (dropZone) {
-        return isTypeSupportedByDropZone(dragEventType, dropZone) && isWithinElementBounds(dropZone.element, detail.clientX, detail.clientY);
+      var hoveredDropZones = Object(external_this_lodash_["filter"])(this.dropZones, function (dropZone) {
+        return isTypeSupportedByDropZone(dragEventType, dropZone) && isWithinElementBounds(dropZone.element.current, detail.clientX, detail.clientY);
       }); // Find the leaf dropzone not containing another dropzone
 
-      var hoveredDropZone = Object(external_lodash_["find"])(hoveredDropZones, function (zone) {
-        return !Object(external_lodash_["some"])(hoveredDropZones, function (subZone) {
-          return subZone !== zone && zone.element.parentElement.contains(subZone.element);
+      var hoveredDropZone = Object(external_this_lodash_["find"])(hoveredDropZones, function (zone) {
+        var container = zone.isRelative ? zone.element.current.parentElement : zone.element.current;
+        return !Object(external_this_lodash_["some"])(hoveredDropZones, function (subZone) {
+          return subZone !== zone && container.contains(subZone.element.current);
         });
       });
       var hoveredDropZoneIndex = this.dropZones.indexOf(hoveredDropZone);
       var position = null;
 
-      if (hoveredDropZone) {
-        var rect = hoveredDropZone.element.getBoundingClientRect();
+      if (hoveredDropZone && hoveredDropZone.withPosition) {
         position = {
-          x: detail.clientX - rect.left < rect.right - detail.clientX ? 'left' : 'right',
-          y: detail.clientY - rect.top < rect.bottom - detail.clientY ? 'top' : 'bottom'
+          x: detail.clientX,
+          y: detail.clientY
         };
       } // Optimisation: Only update the changed dropzones
 
@@ -31341,7 +36623,7 @@
         if (hoveredDropZone) {
           toUpdate.push(hoveredDropZone);
         }
-      } else if (hoveredDropZone && hoveredDropZoneIndex === this.state.hoveredDropZone && !Object(external_lodash_["isEqual"])(position, this.state.position)) {
+      } else if (hoveredDropZone && hoveredDropZoneIndex === this.state.hoveredDropZone && !Object(external_this_lodash_["isEqual"])(position, this.state.position)) {
         toUpdate.push(hoveredDropZone);
       } // Notifying the dropzones
 
@@ -31429,125 +36711,125 @@
 
 
 
-
-
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+function useDropZone(_ref) {
+  var element = _ref.element,
+      onFilesDrop = _ref.onFilesDrop,
+      onHTMLDrop = _ref.onHTMLDrop,
+      onDrop = _ref.onDrop,
+      isDisabled = _ref.isDisabled,
+      withPosition = _ref.withPosition,
+      _ref$__unstableIsRela = _ref.__unstableIsRelative,
+      __unstableIsRelative = _ref$__unstableIsRela === void 0 ? false : _ref$__unstableIsRela;
+
+  var _useContext = Object(external_this_wp_element_["useContext"])(Context),
+      addDropZone = _useContext.addDropZone,
+      removeDropZone = _useContext.removeDropZone;
+
+  var _useState = Object(external_this_wp_element_["useState"])({
+    isDraggingOverDocument: false,
+    isDraggingOverElement: false,
+    type: null
+  }),
+      _useState2 = Object(slicedToArray["a" /* default */])(_useState, 2),
+      state = _useState2[0],
+      setState = _useState2[1];
+
+  Object(external_this_wp_element_["useEffect"])(function () {
+    if (!isDisabled) {
+      var dropZone = {
+        element: element,
+        onDrop: onDrop,
+        onFilesDrop: onFilesDrop,
+        onHTMLDrop: onHTMLDrop,
+        setState: setState,
+        withPosition: withPosition,
+        isRelative: __unstableIsRelative
+      };
+      addDropZone(dropZone);
+      return function () {
+        removeDropZone(dropZone);
+      };
+    }
+  }, [isDisabled, onDrop, onFilesDrop, onHTMLDrop, withPosition]);
+  return state;
+}
 
 var drop_zone_DropZone = function DropZone(props) {
-  return Object(external_this_wp_element_["createElement"])(provider_Consumer, null, function (_ref) {
-    var addDropZone = _ref.addDropZone,
-        removeDropZone = _ref.removeDropZone;
-    return Object(external_this_wp_element_["createElement"])(drop_zone_DropZoneComponent, Object(esm_extends["a" /* default */])({
+  return Object(external_this_wp_element_["createElement"])(provider_Consumer, null, function (_ref2) {
+    var addDropZone = _ref2.addDropZone,
+        removeDropZone = _ref2.removeDropZone;
+    return Object(external_this_wp_element_["createElement"])(DropZoneComponent, Object(esm_extends["a" /* default */])({
       addDropZone: addDropZone,
       removeDropZone: removeDropZone
     }, props));
   });
 };
 
-var drop_zone_DropZoneComponent =
-/*#__PURE__*/
-function (_Component) {
-  Object(inherits["a" /* default */])(DropZoneComponent, _Component);
-
-  function DropZoneComponent() {
-    var _this;
-
-    Object(classCallCheck["a" /* default */])(this, DropZoneComponent);
-
-    _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(DropZoneComponent).apply(this, arguments));
-    _this.dropZoneElement = Object(external_this_wp_element_["createRef"])();
-    _this.dropZone = {
-      element: null,
-      onDrop: _this.props.onDrop,
-      onFilesDrop: _this.props.onFilesDrop,
-      onHTMLDrop: _this.props.onHTMLDrop,
-      setState: _this.setState.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)))
-    };
-    _this.state = {
-      isDraggingOverDocument: false,
-      isDraggingOverElement: false,
-      position: null,
-      type: null
-    };
-    return _this;
-  }
-
-  Object(createClass["a" /* default */])(DropZoneComponent, [{
-    key: "componentDidMount",
-    value: function componentDidMount() {
-      // Set element after the component has a node assigned in the DOM
-      this.dropZone.element = this.dropZoneElement.current;
-      this.props.addDropZone(this.dropZone);
-    }
-  }, {
-    key: "componentWillUnmount",
-    value: function componentWillUnmount() {
-      this.props.removeDropZone(this.dropZone);
-    }
-  }, {
-    key: "render",
-    value: function render() {
-      var _this$props = this.props,
-          className = _this$props.className,
-          label = _this$props.label;
-      var _this$state = this.state,
-          isDraggingOverDocument = _this$state.isDraggingOverDocument,
-          isDraggingOverElement = _this$state.isDraggingOverElement,
-          position = _this$state.position,
-          type = _this$state.type;
-      var classes = classnames_default()('components-drop-zone', className, Object(defineProperty["a" /* default */])({
-        'is-active': isDraggingOverDocument || isDraggingOverElement,
-        'is-dragging-over-document': isDraggingOverDocument,
-        'is-dragging-over-element': isDraggingOverElement,
-        'is-close-to-top': position && position.y === 'top',
-        'is-close-to-bottom': position && position.y === 'bottom',
-        'is-close-to-left': position && position.x === 'left',
-        'is-close-to-right': position && position.x === 'right'
-      }, "is-dragging-".concat(type), !!type));
-      var children;
-
-      if (isDraggingOverElement) {
-        children = Object(external_this_wp_element_["createElement"])("div", {
-          className: "components-drop-zone__content"
-        }, Object(external_this_wp_element_["createElement"])(dashicon_Dashicon, {
-          icon: "upload",
-          size: "40",
-          className: "components-drop-zone__content-icon"
-        }), Object(external_this_wp_element_["createElement"])("span", {
-          className: "components-drop-zone__content-text"
-        }, label ? label : Object(external_this_wp_i18n_["__"])('Drop files to upload')));
-      }
-
-      return Object(external_this_wp_element_["createElement"])("div", {
-        ref: this.dropZoneElement,
-        className: classes
-      }, children);
-    }
-  }]);
-
-  return DropZoneComponent;
-}(external_this_wp_element_["Component"]);
+function DropZoneComponent(_ref3) {
+  var className = _ref3.className,
+      label = _ref3.label,
+      onFilesDrop = _ref3.onFilesDrop,
+      onHTMLDrop = _ref3.onHTMLDrop,
+      onDrop = _ref3.onDrop;
+  var element = Object(external_this_wp_element_["useRef"])();
+
+  var _useDropZone = useDropZone({
+    element: element,
+    onFilesDrop: onFilesDrop,
+    onHTMLDrop: onHTMLDrop,
+    onDrop: onDrop,
+    __unstableIsRelative: true
+  }),
+      isDraggingOverDocument = _useDropZone.isDraggingOverDocument,
+      isDraggingOverElement = _useDropZone.isDraggingOverElement,
+      type = _useDropZone.type;
+
+  var children;
+
+  if (isDraggingOverElement) {
+    children = Object(external_this_wp_element_["createElement"])("div", {
+      className: "components-drop-zone__content"
+    }, Object(external_this_wp_element_["createElement"])(build_module_icon["a" /* default */], {
+      icon: upload["a" /* default */],
+      className: "components-drop-zone__content-icon"
+    }), Object(external_this_wp_element_["createElement"])("span", {
+      className: "components-drop-zone__content-text"
+    }, label ? label : Object(external_this_wp_i18n_["__"])('Drop files to upload')));
+  }
+
+  var classes = classnames_default()('components-drop-zone', className, Object(defineProperty["a" /* default */])({
+    '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-".concat(type), !!type));
+  return Object(external_this_wp_element_["createElement"])("div", {
+    ref: element,
+    className: classes
+  }, children);
+}
 
 /* harmony default export */ var drop_zone = (drop_zone_DropZone);
 
+// EXTERNAL MODULE: external {"this":["wp","deprecated"]}
+var external_this_wp_deprecated_ = __webpack_require__(37);
+var external_this_wp_deprecated_default = /*#__PURE__*/__webpack_require__.n(external_this_wp_deprecated_);
+
 // CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigable-container/container.js
 
 
@@ -31559,16 +36841,21 @@
 
 
 
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
+function container_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf["a" /* default */])(Derived), result; if (container_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf["a" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn["a" /* default */])(this, result); }; }
+
+function container_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+var MENU_ITEM_ROLES = ['menuitem', 'menuitemradio', 'menuitemcheckbox'];
 
 function cycleValue(value, total, offset) {
   var nextValue = value + offset;
@@ -31582,31 +36869,48 @@
   return nextValue;
 }
 
-var container_NavigableContainer =
-/*#__PURE__*/
-function (_Component) {
+var container_NavigableContainer = /*#__PURE__*/function (_Component) {
   Object(inherits["a" /* default */])(NavigableContainer, _Component);
 
+  var _super = container_createSuper(NavigableContainer);
+
   function NavigableContainer() {
     var _this;
 
     Object(classCallCheck["a" /* default */])(this, NavigableContainer);
 
-    _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(NavigableContainer).apply(this, arguments));
-    _this.onKeyDown = _this.onKeyDown.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.bindContainer = _this.bindContainer.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.getFocusableContext = _this.getFocusableContext.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.getFocusableIndex = _this.getFocusableIndex.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
+    _this = _super.apply(this, arguments);
+    _this.onKeyDown = _this.onKeyDown.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.bindContainer = _this.bindContainer.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.getFocusableContext = _this.getFocusableContext.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.getFocusableIndex = _this.getFocusableIndex.bind(Object(assertThisInitialized["a" /* default */])(_this));
     return _this;
   }
 
   Object(createClass["a" /* default */])(NavigableContainer, [{
+    key: "componentDidMount",
+    value: function 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);
+    }
+  }, {
+    key: "componentWillUnmount",
+    value: function componentWillUnmount() {
+      this.container.removeEventListener('keydown', this.onKeyDown);
+      this.container.removeEventListener('focus', this.onFocus);
+    }
+  }, {
     key: "bindContainer",
     value: function bindContainer(ref) {
       var forwardedRef = this.props.forwardedRef;
       this.container = ref;
 
-      if (Object(external_lodash_["isFunction"])(forwardedRef)) {
+      if (Object(external_this_lodash_["isFunction"])(forwardedRef)) {
         forwardedRef(ref);
       } else if (forwardedRef && 'current' in forwardedRef) {
         forwardedRef.current = ref;
@@ -31652,20 +36956,22 @@
           cycle = _this$props$cycle === void 0 ? true : _this$props$cycle,
           eventToOffset = _this$props.eventToOffset,
           _this$props$onNavigat = _this$props.onNavigate,
-          onNavigate = _this$props$onNavigat === void 0 ? external_lodash_["noop"] : _this$props$onNavigat,
+          onNavigate = _this$props$onNavigat === void 0 ? external_this_lodash_["noop"] : _this$props$onNavigat,
           stopNavigationEvents = _this$props.stopNavigationEvents;
       var 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.nativeEvent.stopImmediatePropagation(); // When navigating a collection of items, prevent scroll containers
-        // from scrolling.
-
-        if (event.target.getAttribute('role') === 'menuitem') {
+        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.
+
+        var targetRole = event.target.getAttribute('role');
+
+        if (MENU_ITEM_ROLES.includes(targetRole)) {
           event.preventDefault();
         }
-
-        event.stopPropagation();
       }
 
       if (!offset) {
@@ -31692,17 +36998,11 @@
     value: function render() {
       var _this$props2 = this.props,
           children = _this$props2.children,
-          props = Object(objectWithoutProperties["a" /* default */])(_this$props2, ["children"]); // Disable reason: Assumed role is applied by parent via props spread.
-
-      /* eslint-disable jsx-a11y/no-static-element-interactions */
-
+          props = Object(objectWithoutProperties["a" /* default */])(_this$props2, ["children"]);
 
       return Object(external_this_wp_element_["createElement"])("div", Object(esm_extends["a" /* default */])({
         ref: this.bindContainer
-      }, Object(external_lodash_["omit"])(props, ['stopNavigationEvents', 'eventToOffset', 'onNavigate', 'cycle', 'onlyBrowserTabstops', 'forwardedRef']), {
-        onKeyDown: this.onKeyDown,
-        onFocus: this.onFocus
-      }), children);
+      }, Object(external_this_lodash_["omit"])(props, ['stopNavigationEvents', 'eventToOffset', 'onNavigate', 'onKeyDown', 'cycle', 'onlyBrowserTabstops', 'forwardedRef'])), children);
     }
   }]);
 
@@ -31760,10 +37060,15 @@
       previous = [external_this_wp_keycodes_["LEFT"], external_this_wp_keycodes_["UP"]];
     }
 
-    if (Object(external_lodash_["includes"])(next, keyCode)) {
+    if (Object(external_this_lodash_["includes"])(next, keyCode)) {
       return 1;
-    } else if (Object(external_lodash_["includes"])(previous, keyCode)) {
+    } else if (Object(external_this_lodash_["includes"])(previous, keyCode)) {
       return -1;
+    } else if (Object(external_this_lodash_["includes"])([external_this_wp_keycodes_["DOWN"], external_this_wp_keycodes_["UP"], external_this_wp_keycodes_["LEFT"], external_this_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;
     }
   };
 
@@ -31778,115 +37083,108 @@
 }
 /* harmony default export */ var menu = (Object(external_this_wp_element_["forwardRef"])(NavigableMenu));
 
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigable-container/tabbable.js
-
-
-
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-function TabbableContainer(_ref, ref) {
-  var eventToOffset = _ref.eventToOffset,
-      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["eventToOffset"]);
-
-  var innerEventToOffset = function innerEventToOffset(evt) {
-    var keyCode = evt.keyCode,
-        shiftKey = evt.shiftKey;
-
-    if (external_this_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_this_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_this_wp_element_["forwardRef"])(TabbableContainer));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigable-container/index.js
-/**
- * Internal Dependencies
- */
-
-
-
 // CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/dropdown-menu/index.js
 
 
-/**
- * External dependencies
- */
-
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
+
+
+function dropdown_menu_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 dropdown_menu_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { dropdown_menu_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty["a" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { dropdown_menu_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+function mergeProps() {
+  var defaultProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+  var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+
+  var mergedProps = dropdown_menu_objectSpread({}, defaultProps, {}, props);
+
+  if (props.className && defaultProps.className) {
+    mergedProps.className = classnames_default()(props.className, defaultProps.className);
+  }
+
+  return mergedProps;
+}
 
 function DropdownMenu(_ref) {
-  var _ref$icon = _ref.icon,
+  var children = _ref.children,
+      className = _ref.className,
+      controls = _ref.controls,
+      _ref$icon = _ref.icon,
       icon = _ref$icon === void 0 ? 'menu' : _ref$icon,
       label = _ref.label,
+      popoverProps = _ref.popoverProps,
+      toggleProps = _ref.toggleProps,
+      menuProps = _ref.menuProps,
+      _ref$disableOpenOnArr = _ref.disableOpenOnArrowDown,
+      disableOpenOnArrowDown = _ref$disableOpenOnArr === void 0 ? false : _ref$disableOpenOnArr,
       menuLabel = _ref.menuLabel,
-      controls = _ref.controls,
-      className = _ref.className,
-      position = _ref.position;
-
-  if (!controls || !controls.length) {
+      position = _ref.position,
+      noIcons = _ref.noIcons;
+
+  if (menuLabel) {
+    external_this_wp_deprecated_default()('`menuLabel` prop in `DropdownComponent`', {
+      alternative: '`menuProps` object and its `aria-label` property',
+      plugin: 'Gutenberg'
+    });
+  }
+
+  if (position) {
+    external_this_wp_deprecated_default()('`position` prop in `DropdownComponent`', {
+      alternative: '`popoverProps` object and its `position` property',
+      plugin: 'Gutenberg'
+    });
+  }
+
+  if (Object(external_this_lodash_["isEmpty"])(controls) && !Object(external_this_lodash_["isFunction"])(children)) {
     return null;
   } // Normalize controls to nested array of objects (sets of controls)
 
 
-  var controlSets = controls;
-
-  if (!Array.isArray(controlSets[0])) {
-    controlSets = [controlSets];
-  }
-
-  return Object(external_this_wp_element_["createElement"])(dropdown, {
+  var controlSets;
+
+  if (!Object(external_this_lodash_["isEmpty"])(controls)) {
+    controlSets = controls;
+
+    if (!Array.isArray(controlSets[0])) {
+      controlSets = [controlSets];
+    }
+  }
+
+  var mergedPopoverProps = mergeProps({
+    className: 'components-dropdown-menu__popover',
+    position: position
+  }, popoverProps);
+  return Object(external_this_wp_element_["createElement"])(Dropdown, {
     className: classnames_default()('components-dropdown-menu', className),
-    contentClassName: "components-dropdown-menu__popover",
-    position: position,
+    popoverProps: mergedPopoverProps,
     renderToggle: function renderToggle(_ref2) {
       var isOpen = _ref2.isOpen,
           onToggle = _ref2.onToggle;
 
       var openOnArrowDown = function openOnArrowDown(event) {
+        if (disableOpenOnArrowDown) {
+          return;
+        }
+
         if (!isOpen && event.keyCode === external_this_wp_keycodes_["DOWN"]) {
           event.preventDefault();
           event.stopPropagation();
@@ -31894,32 +37192,49 @@
         }
       };
 
-      return Object(external_this_wp_element_["createElement"])(icon_button, {
-        className: "components-dropdown-menu__toggle",
+      var mergedToggleProps = mergeProps({
+        className: classnames_default()('components-dropdown-menu__toggle', {
+          'is-opened': isOpen
+        })
+      }, toggleProps);
+      return Object(external_this_wp_element_["createElement"])(build_module_button["a" /* default */], Object(esm_extends["a" /* default */])({}, mergedToggleProps, {
         icon: icon,
-        onClick: onToggle,
-        onKeyDown: openOnArrowDown,
+        onClick: function onClick(event) {
+          onToggle(event);
+
+          if (mergedToggleProps.onClick) {
+            mergedToggleProps.onClick(event);
+          }
+        },
+        onKeyDown: function onKeyDown(event) {
+          openOnArrowDown(event);
+
+          if (mergedToggleProps.onKeyDown) {
+            mergedToggleProps.onKeyDown(event);
+          }
+        },
         "aria-haspopup": "true",
         "aria-expanded": isOpen,
         label: label,
-        tooltip: label
-      }, Object(external_this_wp_element_["createElement"])("span", {
-        className: "components-dropdown-menu__indicator"
-      }));
-    },
-    renderContent: function renderContent(_ref3) {
-      var onClose = _ref3.onClose;
-      return Object(external_this_wp_element_["createElement"])(menu, {
-        className: "components-dropdown-menu__menu",
-        role: "menu",
-        "aria-label": menuLabel
-      }, Object(external_lodash_["flatMap"])(controlSets, function (controlSet, indexOfSet) {
+        showTooltip: true
+      }), mergedToggleProps.children);
+    },
+    renderContent: function renderContent(props) {
+      var mergedMenuProps = mergeProps({
+        'aria-label': menuLabel || label,
+        className: classnames_default()('components-dropdown-menu__menu', {
+          'no-icons': noIcons
+        })
+      }, menuProps);
+      return Object(external_this_wp_element_["createElement"])(menu, Object(esm_extends["a" /* default */])({}, mergedMenuProps, {
+        role: "menu"
+      }), Object(external_this_lodash_["isFunction"])(children) ? children(props) : null, Object(external_this_lodash_["flatMap"])(controlSets, function (controlSet, indexOfSet) {
         return controlSet.map(function (control, indexOfControl) {
-          return Object(external_this_wp_element_["createElement"])(icon_button, {
+          return Object(external_this_wp_element_["createElement"])(build_module_button["a" /* default */], {
             key: [indexOfSet, indexOfControl].join(),
             onClick: function onClick(event) {
               event.stopPropagation();
-              onClose();
+              props.onClose();
 
               if (control.onClick) {
                 control.onClick();
@@ -31930,7 +37245,8 @@
               'is-active': control.isActive
             }),
             icon: control.icon,
-            role: "menuitem",
+            "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);
         });
@@ -31941,6 +37257,9 @@
 
 /* harmony default export */ var dropdown_menu = (DropdownMenu);
 
+// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/external.js
+var external = __webpack_require__(409);
+
 // CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/external-link/index.js
 
 
@@ -31958,6 +37277,7 @@
 
 
 
+
 /**
  * Internal dependencies
  */
@@ -31971,25 +37291,29 @@
       rel = _ref$rel === void 0 ? '' : _ref$rel,
       additionalProps = Object(objectWithoutProperties["a" /* default */])(_ref, ["href", "children", "className", "rel"]);
 
-  rel = Object(external_lodash_["uniq"])(Object(external_lodash_["compact"])([].concat(Object(toConsumableArray["a" /* default */])(rel.split(' ')), ['external', 'noreferrer', 'noopener']))).join(' ');
+  rel = Object(external_this_lodash_["uniq"])(Object(external_this_lodash_["compact"])([].concat(Object(toConsumableArray["a" /* default */])(rel.split(' ')), ['external', 'noreferrer', 'noopener']))).join(' ');
   var classes = classnames_default()('components-external-link', className);
   return Object(external_this_wp_element_["createElement"])("a", Object(esm_extends["a" /* default */])({}, additionalProps, {
     className: classes,
-    href: href,
+    href: href // eslint-disable-next-line react/jsx-no-target-blank
+    ,
     target: "_blank",
     rel: rel,
     ref: ref
-  }), " ", children, Object(external_this_wp_element_["createElement"])("span", {
-    className: "screen-reader-text"
+  }), children, Object(external_this_wp_element_["createElement"])(visually_hidden, {
+    as: "span"
   },
   /* translators: accessibility text */
-  Object(external_this_wp_i18n_["__"])('(opens in a new tab)')), Object(external_this_wp_element_["createElement"])(dashicon_Dashicon, {
-    icon: "external",
+  Object(external_this_wp_i18n_["__"])('(opens in a new tab)')), Object(external_this_wp_element_["createElement"])(build_module_icon["a" /* default */], {
+    icon: external["a" /* default */],
     className: "components-external-link__icon"
   }));
 }
 /* harmony default export */ var external_link = (Object(external_this_wp_element_["forwardRef"])(ExternalLink));
 
+// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/higher-order/with-focus-outside/index.js
+var with_focus_outside = __webpack_require__(111);
+
 // CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/focal-point-picker/index.js
 
 
@@ -31999,59 +37323,56 @@
 
 
 
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-
-/**
- * Internal dependencies
- */
-
+function focal_point_picker_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf["a" /* default */])(Derived), result; if (focal_point_picker_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf["a" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn["a" /* default */])(this, result); }; }
+
+function focal_point_picker_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+
+/**
+ * Internal dependencies
+ */
 
 
 
 var TEXTCONTROL_MIN = 0;
 var TEXTCONTROL_MAX = 100;
-var focal_point_picker_FocalPointPicker =
-/*#__PURE__*/
-function (_Component) {
+var focal_point_picker_FocalPointPicker = /*#__PURE__*/function (_Component) {
   Object(inherits["a" /* default */])(FocalPointPicker, _Component);
 
-  function FocalPointPicker() {
+  var _super = focal_point_picker_createSuper(FocalPointPicker);
+
+  function FocalPointPicker(props) {
     var _this;
 
     Object(classCallCheck["a" /* default */])(this, FocalPointPicker);
 
-    _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(FocalPointPicker).apply(this, arguments));
-    _this.onMouseMove = _this.onMouseMove.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
+    _this = _super.call(this, props);
+    _this.onMouseMove = _this.onMouseMove.bind(Object(assertThisInitialized["a" /* default */])(_this));
     _this.state = {
       isDragging: false,
       bounds: {},
-      percentages: {}
+      percentages: props.value
     };
     _this.containerRef = Object(external_this_wp_element_["createRef"])();
     _this.imageRef = Object(external_this_wp_element_["createRef"])();
-    _this.horizontalPositionChanged = _this.horizontalPositionChanged.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.verticalPositionChanged = _this.verticalPositionChanged.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.onLoad = _this.onLoad.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
+    _this.horizontalPositionChanged = _this.horizontalPositionChanged.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.verticalPositionChanged = _this.verticalPositionChanged.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.onLoad = _this.onLoad.bind(Object(assertThisInitialized["a" /* default */])(_this));
     return _this;
   }
 
   Object(createClass["a" /* default */])(FocalPointPicker, [{
-    key: "componentDidMount",
-    value: function componentDidMount() {
-      this.setState({
-        percentages: this.props.value
-      });
-    }
-  }, {
     key: "componentDidUpdate",
     value: function componentDidUpdate(prevProps) {
       if (prevProps.url !== this.props.url) {
@@ -32122,8 +37443,8 @@
         var left = Math.max(bounds.left, Math.min(cursorPosition.left, bounds.right));
         var top = Math.max(bounds.top, Math.min(cursorPosition.top, bounds.bottom));
         var percentages = {
-          x: (left - bounds.left) / (pickerDimensions.width - bounds.left * 2),
-          y: (top - bounds.top) / (pickerDimensions.height - bounds.top * 2)
+          x: ((left - bounds.left) / (pickerDimensions.width - bounds.left * 2)).toFixed(2),
+          y: ((top - bounds.top) / (pickerDimensions.height - bounds.top * 2)).toFixed(2)
         };
         this.setState({
           percentages: percentages
@@ -32156,7 +37477,7 @@
       var onChange = this.props.onChange;
       var percentages = this.state.percentages;
       var cleanValue = Math.max(Math.min(parseInt(value), 100), 0);
-      percentages[axis] = cleanValue ? cleanValue / 100 : 0;
+      percentages[axis] = (cleanValue ? cleanValue / 100 : 0).toFixed(2);
       this.setState({
         percentages: percentages
       }, function () {
@@ -32220,7 +37541,7 @@
       var iconContainerClasses = classnames_default()('components-focal-point-picker__icon_container', isDragging ? 'is-dragging' : null);
       var id = "inspector-focal-point-picker-control-".concat(instanceId);
       var horizontalPositionId = "inspector-focal-point-picker-control-horizontal-position-".concat(instanceId);
-      var verticalPositionId = "inspector-focal-point-picker-control-horizontal-position-".concat(instanceId);
+      var verticalPositionId = "inspector-focal-point-picker-control-vertical-position-".concat(instanceId);
       return Object(external_this_wp_element_["createElement"])(base_control, {
         label: label,
         id: id,
@@ -32263,20 +37584,20 @@
       }), Object(external_this_wp_element_["createElement"])("div", {
         className: iconContainerClasses,
         style: iconContainerStyle
-      }, Object(external_this_wp_element_["createElement"])(svg_SVG, {
+      }, Object(external_this_wp_element_["createElement"])(external_this_wp_primitives_["SVG"], {
         className: "components-focal-point-picker__icon",
         xmlns: "http://www.w3.org/2000/svg",
         viewBox: "0 0 30 30"
-      }, Object(external_this_wp_element_["createElement"])(svg_Path, {
+      }, Object(external_this_wp_element_["createElement"])(external_this_wp_primitives_["Path"], {
         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_this_wp_element_["createElement"])(svg_Path, {
+      }), Object(external_this_wp_element_["createElement"])(external_this_wp_primitives_["Path"], {
         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"
       }))))), Object(external_this_wp_element_["createElement"])("div", {
         className: "components-focal-point-picker_position-display-container"
       }, Object(external_this_wp_element_["createElement"])(base_control, {
-        label: Object(external_this_wp_i18n_["__"])('Horizontal Pos.'),
+        label: Object(external_this_wp_i18n_["__"])('Horizontal pos.'),
         id: horizontalPositionId
       }, Object(external_this_wp_element_["createElement"])("input", {
         className: "components-text-control__input",
@@ -32287,7 +37608,7 @@
         type: "number",
         value: this.fractionToPercentage(percentages.x)
       }), Object(external_this_wp_element_["createElement"])("span", null, "%")), Object(external_this_wp_element_["createElement"])(base_control, {
-        label: Object(external_this_wp_i18n_["__"])('Vertical Pos.'),
+        label: Object(external_this_wp_i18n_["__"])('Vertical pos.'),
         id: verticalPositionId
       }, Object(external_this_wp_element_["createElement"])("input", {
         className: "components-text-control__input",
@@ -32311,7 +37632,7 @@
   },
   onChange: function onChange() {}
 };
-/* harmony default export */ var focal_point_picker = (Object(external_this_wp_compose_["compose"])([external_this_wp_compose_["withInstanceId"], with_focus_outside])(focal_point_picker_FocalPointPicker));
+/* harmony default export */ var focal_point_picker = (Object(external_this_wp_compose_["compose"])([external_this_wp_compose_["withInstanceId"], with_focus_outside["a" /* default */]])(focal_point_picker_FocalPointPicker));
 
 // CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/focusable-iframe/index.js
 
@@ -32323,6 +37644,10 @@
 
 
 
+function focusable_iframe_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf["a" /* default */])(Derived), result; if (focusable_iframe_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf["a" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn["a" /* default */])(this, result); }; }
+
+function focusable_iframe_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
+
 /**
  * External dependencies
  */
@@ -32340,18 +37665,18 @@
 var _window = window,
     FocusEvent = _window.FocusEvent;
 
-var focusable_iframe_FocusableIframe =
-/*#__PURE__*/
-function (_Component) {
+var focusable_iframe_FocusableIframe = /*#__PURE__*/function (_Component) {
   Object(inherits["a" /* default */])(FocusableIframe, _Component);
 
+  var _super = focusable_iframe_createSuper(FocusableIframe);
+
   function FocusableIframe(props) {
     var _this;
 
     Object(classCallCheck["a" /* default */])(this, FocusableIframe);
 
-    _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(FocusableIframe).apply(this, arguments));
-    _this.checkFocus = _this.checkFocus.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
+    _this = _super.apply(this, arguments);
+    _this.checkFocus = _this.checkFocus.bind(Object(assertThisInitialized["a" /* default */])(_this));
     _this.node = props.iframeRef || Object(external_this_wp_element_["createRef"])();
     return _this;
   }
@@ -32390,7 +37715,7 @@
       /* eslint-disable jsx-a11y/iframe-has-title */
       return Object(external_this_wp_element_["createElement"])("iframe", Object(esm_extends["a" /* default */])({
         ref: this.node
-      }, Object(external_lodash_["omit"])(this.props, ['iframeRef', 'onFocus'])));
+      }, Object(external_this_lodash_["omit"])(this.props, ['iframeRef', 'onFocus'])));
       /* eslint-enable jsx-a11y/iframe-has-title */
     }
   }]);
@@ -32402,138 +37727,1128 @@
   blur: 'checkFocus'
 })(focusable_iframe_FocusableIframe));
 
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/range-control/index.js
-
-
-
-
-/**
- * External dependencies
- */
-
-
-/**
- * WordPress dependencies
- */
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-function RangeControl(_ref) {
-  var className = _ref.className,
-      currentInput = _ref.currentInput,
-      label = _ref.label,
-      value = _ref.value,
-      instanceId = _ref.instanceId,
-      onChange = _ref.onChange,
-      beforeIcon = _ref.beforeIcon,
-      afterIcon = _ref.afterIcon,
-      help = _ref.help,
-      allowReset = _ref.allowReset,
-      initialPosition = _ref.initialPosition,
-      min = _ref.min,
+// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/text-color.js
+var text_color = __webpack_require__(410);
+
+// 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_this_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(_ref) {
+  var min = _ref.min,
       max = _ref.max,
-      setState = _ref.setState,
-      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["className", "currentInput", "label", "value", "instanceId", "onChange", "beforeIcon", "afterIcon", "help", "allowReset", "initialPosition", "min", "max", "setState"]);
-
-  var id = "inspector-range-control-".concat(instanceId);
-  var currentInputValue = currentInput === null ? value : currentInput;
-
-  var resetValue = function resetValue() {
-    resetCurrentInput();
-    onChange();
-  };
-
-  var resetCurrentInput = function resetCurrentInput() {
-    if (currentInput !== null) {
-      setState({
-        currentInput: null
-      });
-    }
-  };
-
-  var onChangeValue = function onChangeValue(event) {
-    var newValue = event.target.value; // If the input value is invalid temporarily save it to the state,
-    // without calling on change.
-
-    if (!event.target.checkValidity()) {
-      setState({
-        currentInput: newValue
-      });
+      valueProp = _ref.value,
+      initial = _ref.initial;
+
+  var _useControlledState = use_controlled_state(floatClamp(valueProp, min, max), {
+    initial: initial,
+    fallback: null
+  }),
+      _useControlledState2 = Object(slicedToArray["a" /* default */])(_useControlledState, 2),
+      state = _useControlledState2[0],
+      setInternalState = _useControlledState2[1];
+
+  var setState = Object(external_this_wp_element_["useCallback"])(function (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) {
+  var _ref2$onHide = _ref2.onHide,
+      onHide = _ref2$onHide === void 0 ? external_this_lodash_["noop"] : _ref2$onHide,
+      _ref2$onMouseLeave = _ref2.onMouseLeave,
+      onMouseLeave = _ref2$onMouseLeave === void 0 ? external_this_lodash_["noop"] : _ref2$onMouseLeave,
+      _ref2$onMouseMove = _ref2.onMouseMove,
+      onMouseMove = _ref2$onMouseMove === void 0 ? external_this_lodash_["noop"] : _ref2$onMouseMove,
+      _ref2$onShow = _ref2.onShow,
+      onShow = _ref2$onShow === void 0 ? external_this_lodash_["noop"] : _ref2$onShow,
+      _ref2$timeout = _ref2.timeout,
+      timeout = _ref2$timeout === void 0 ? 300 : _ref2$timeout;
+
+  var _useState = Object(external_this_wp_element_["useState"])(false),
+      _useState2 = Object(slicedToArray["a" /* default */])(_useState, 2),
+      show = _useState2[0],
+      setShow = _useState2[1];
+
+  var timeoutRef = Object(external_this_wp_element_["useRef"])();
+  var setDebouncedTimeout = Object(external_this_wp_element_["useCallback"])(function (callback) {
+    window.clearTimeout(timeoutRef.current);
+    timeoutRef.current = setTimeout(callback, timeout);
+  }, [timeout]);
+  var handleOnMouseMove = Object(external_this_wp_element_["useCallback"])(function (event) {
+    onMouseMove(event);
+    setDebouncedTimeout(function () {
+      if (!show) {
+        setShow(true);
+        onShow();
+      }
+    });
+  }, []);
+  var handleOnMouseLeave = Object(external_this_wp_element_["useCallback"])(function (event) {
+    onMouseLeave(event);
+    setDebouncedTimeout(function () {
+      setShow(false);
+      onHide();
+    });
+  }, []);
+  Object(external_this_wp_element_["useEffect"])(function () {
+    return function () {
+      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;
+
+var rangeHeight = function rangeHeight() {
+  return range_control_styles_ref;
+};
+
+var range_control_styles_Root = styled_base_browser_esm("span", {
+  target: "exqw8y20",
+  label: "Root"
+})( true ? {
+  name: "1916452",
+  styles: "-webkit-tap-highlight-color:transparent;box-sizing:border-box;cursor:pointer;align-items:flex-start;display:inline-flex;justify-content:flex-start;padding:0;position:relative;touch-action:none;width:100%;"
+} : undefined);
+
+var range_control_styles_wrapperColor = function wrapperColor(_ref4) {
+  var _ref4$color = _ref4.color,
+      colorProp = _ref4$color === void 0 ? colors_color('ui.borderFocus') : _ref4$color;
+  return /*#__PURE__*/css_browser_esm({
+    color: colorProp
+  },  true ? "" : undefined);
+};
+
+var range_control_styles_wrapperMargin = function wrapperMargin(_ref5) {
+  var marks = _ref5.marks;
+  return /*#__PURE__*/css_browser_esm({
+    marginBottom: marks ? 16 : null
+  },  true ? "" : undefined);
+};
+
+var range_control_styles_Wrapper = styled_base_browser_esm("span", {
+  target: "exqw8y21",
+  label: "Wrapper"
+})("box-sizing:border-box;color:", colors_color('blue.medium.focus'), ";display:block;flex:1;padding-top:15px;position:relative;width:100%;", range_control_styles_wrapperColor, ";", rangeHeight, ";", range_control_styles_wrapperMargin, ";", rtl({
+  marginLeft: 10
+}),  true ? "" : undefined);
+var BeforeIconWrapper = styled_base_browser_esm("span", {
+  target: "exqw8y22",
+  label: "BeforeIconWrapper"
+})("margin-top:3px;", rtl({
+  marginRight: 6
+}),  true ? "" : undefined);
+var AfterIconWrapper = styled_base_browser_esm("span", {
+  target: "exqw8y23",
+  label: "AfterIconWrapper"
+})("margin-top:3px;", rtl({
+  marginLeft: 16
+}),  true ? "" : undefined);
+
+var range_control_styles_railBackgroundColor = function railBackgroundColor(_ref6) {
+  var disabled = _ref6.disabled,
+      railColor = _ref6.railColor;
+  var background = railColor || null;
+
+  if (disabled) {
+    background = colors_color('lightGray.400');
+  }
+
+  return /*#__PURE__*/css_browser_esm({
+    background: background
+  },  true ? "" : undefined);
+};
+
+var Rail = styled_base_browser_esm("span", {
+  target: "exqw8y24",
+  label: "Rail"
+})("background-color:", colors_color('lightGray.600'), ";box-sizing:border-box;left:0;pointer-events:none;right:0;display:block;height:3px;position:absolute;margin-top:14px;top:0;", range_control_styles_railBackgroundColor, ";" + ( true ? "" : undefined));
+
+var range_control_styles_trackBackgroundColor = function trackBackgroundColor(_ref7) {
+  var disabled = _ref7.disabled,
+      trackColor = _ref7.trackColor;
+  var background = trackColor || 'currentColor';
+
+  if (disabled) {
+    background = colors_color('lightGray.800');
+  }
+
+  return /*#__PURE__*/css_browser_esm({
+    background: background
+  },  true ? "" : undefined);
+};
+
+var 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;", range_control_styles_trackBackgroundColor, ";" + ( true ? "" : undefined));
+var MarksWrapper = styled_base_browser_esm("span", {
+  target: "exqw8y26",
+  label: "MarksWrapper"
+})( true ? {
+  name: "sx8y8z",
+  styles: "box-sizing:border-box;display:block;position:relative;width:100%;user-select:none;"
+} : undefined);
+
+var range_control_styles_markFill = function markFill(_ref8) {
+  var disabled = _ref8.disabled,
+      isFilled = _ref8.isFilled;
+  var backgroundColor = isFilled ? 'currentColor' : colors_color('lightGray.600');
+
+  if (disabled) {
+    backgroundColor = colors_color('lightGray.800');
+  }
+
+  return /*#__PURE__*/css_browser_esm({
+    backgroundColor: backgroundColor
+  },  true ? "" : undefined);
+};
+
+var Mark = styled_base_browser_esm("span", {
+  target: "exqw8y27",
+  label: "Mark"
+})("box-sizing:border-box;height:9px;left:0;position:absolute;top:-4px;width:1px;", range_control_styles_markFill, ";" + ( true ? "" : undefined));
+
+var range_control_styles_markLabelFill = function markLabelFill(_ref9) {
+  var isFilled = _ref9.isFilled;
+  return /*#__PURE__*/css_browser_esm({
+    color: isFilled ? colors_color('darkGray.300') : colors_color('lightGray.600')
+  },  true ? "" : undefined);
+};
+
+var MarkLabel = styled_base_browser_esm("span", {
+  target: "exqw8y28",
+  label: "MarkLabel"
+})("box-sizing:border-box;color:", colors_color('lightGray.600'), ";left:0;font-size:11px;position:absolute;top:12px;transform:translateX( -50% );white-space:nowrap;", range_control_styles_markLabelFill, ";" + ( true ? "" : undefined));
+var ThumbWrapper = styled_base_browser_esm("span", {
+  target: "exqw8y29",
+  label: "ThumbWrapper"
+})("align-items:center;box-sizing:border-box;display:flex;height:20px;justify-content:center;margin-top:5px;outline:0;pointer-events:none;position:absolute;top:0;user-select:none;width:20px;", rtl({
+  marginLeft: -10
+}),  true ? "" : undefined);
+
+var range_control_styles_thumbFocus = function thumbFocus(_ref10) {
+  var isFocused = _ref10.isFocused;
+  return /*#__PURE__*/css_browser_esm({
+    borderColor: isFocused ? colors_color('ui.borderFocus') : colors_color('darkGray.200'),
+    boxShadow: isFocused ? "\n\t\t\t\t0 0 0 1px ".concat(colors_color('ui.borderFocus'), "\n\t\t\t") : "\n\t\t\t\t0 0 0 rgba(0, 0, 0, 0)\n\t\t\t"
+  },  true ? "" : undefined);
+};
+
+var Thumb = styled_base_browser_esm("span", {
+  target: "exqw8y210",
+  label: "Thumb"
+})("align-items:center;background-color:white;border-radius:50%;border:1px solid ", colors_color('darkGray.200'), ";box-sizing:border-box;height:100%;outline:0;pointer-events:none;position:absolute;user-select:none;width:100%;", range_control_styles_thumbFocus, ";" + ( true ? "" : undefined));
+var InputRange = styled_base_browser_esm("input", {
+  target: "exqw8y211",
+  label: "InputRange"
+})( true ? {
+  name: "cvc9dl",
+  styles: "box-sizing:border-box;cursor:pointer;display:block;height:100%;left:0;margin:0;opacity:0;outline:none;position:absolute;right:0;top:0;width:100%;"
+} : undefined);
+
+var range_control_styles_tooltipShow = function tooltipShow(_ref11) {
+  var show = _ref11.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;
+
+var tooltipPosition = function tooltipPosition(_ref12) {
+  var position = _ref12.position;
+  var isTop = position === 'top';
+
+  if (isTop) {
+    return range_control_styles_ref2;
+  }
+
+  return range_control_styles_ref3;
+};
+
+var range_control_styles_Tooltip = styled_base_browser_esm("span", {
+  target: "exqw8y212",
+  label: "Tooltip"
+})("background:", colors_color('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;", range_control_styles_tooltipShow, ";", tooltipPosition, ";", reduceMotion('transition'), ";", rtl({
+  transform: 'translateX(-50%)'
+}, {
+  transform: 'translateX(50%)'
+}),  true ? "" : undefined);
+var 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), ";input[type='number']&{", rangeHeight, ";}", rtl({
+  marginLeft: space(2)
+}),  true ? "" : undefined);
+var 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({
+  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(_ref, ref) {
+  var describedBy = _ref.describedBy,
+      _ref$isShiftStepEnabl = _ref.isShiftStepEnabled,
+      isShiftStepEnabled = _ref$isShiftStepEnabl === void 0 ? true : _ref$isShiftStepEnabl,
+      label = _ref.label,
+      _ref$onHideTooltip = _ref.onHideTooltip,
+      onHideTooltip = _ref$onHideTooltip === void 0 ? external_this_lodash_["noop"] : _ref$onHideTooltip,
+      _ref$onMouseLeave = _ref.onMouseLeave,
+      onMouseLeave = _ref$onMouseLeave === void 0 ? external_this_lodash_["noop"] : _ref$onMouseLeave,
+      _ref$step = _ref.step,
+      step = _ref$step === void 0 ? 1 : _ref$step,
+      _ref$onBlur = _ref.onBlur,
+      onBlur = _ref$onBlur === void 0 ? external_this_lodash_["noop"] : _ref$onBlur,
+      _ref$onChange = _ref.onChange,
+      onChange = _ref$onChange === void 0 ? external_this_lodash_["noop"] : _ref$onChange,
+      _ref$onFocus = _ref.onFocus,
+      onFocus = _ref$onFocus === void 0 ? external_this_lodash_["noop"] : _ref$onFocus,
+      _ref$onMouseMove = _ref.onMouseMove,
+      onMouseMove = _ref$onMouseMove === void 0 ? external_this_lodash_["noop"] : _ref$onMouseMove,
+      _ref$onShowTooltip = _ref.onShowTooltip,
+      onShowTooltip = _ref$onShowTooltip === void 0 ? external_this_lodash_["noop"] : _ref$onShowTooltip,
+      _ref$shiftStep = _ref.shiftStep,
+      shiftStep = _ref$shiftStep === void 0 ? 10 : _ref$shiftStep,
+      value = _ref.value,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["describedBy", "isShiftStepEnabled", "label", "onHideTooltip", "onMouseLeave", "step", "onBlur", "onChange", "onFocus", "onMouseMove", "onShowTooltip", "shiftStep", "value"]);
+
+  var jumpStep = use_jump_step({
+    step: step,
+    shiftStep: shiftStep,
+    isShiftStepEnabled: isShiftStepEnabled
+  });
+  var hoverInteractions = useDebouncedHoverInteraction({
+    onHide: onHideTooltip,
+    onMouseLeave: onMouseLeave,
+    onMouseMove: onMouseMove,
+    onShow: onShowTooltip
+  });
+  return Object(external_this_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
+  }));
+}
+
+var input_range_ForwardedComponent = Object(external_this_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(_ref) {
+  var className = _ref.className,
+      _ref$isFilled = _ref.isFilled,
+      isFilled = _ref$isFilled === void 0 ? false : _ref$isFilled,
+      label = _ref.label,
+      _ref$style = _ref.style,
+      style = _ref$style === void 0 ? {} : _ref$style,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["className", "isFilled", "label", "style"]);
+
+  var classes = classnames_default()('components-range-control__mark', isFilled && 'is-filled', className);
+  var labelClasses = classnames_default()('components-range-control__mark-label', isFilled && 'is-filled');
+  return Object(external_this_wp_element_["createElement"])(external_this_wp_element_["Fragment"], null, Object(external_this_wp_element_["createElement"])(Mark, Object(esm_extends["a" /* default */])({}, props, {
+    "aria-hidden": "true",
+    className: classes,
+    isFilled: isFilled,
+    style: style
+  })), label && Object(external_this_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
+
+
+
+
+
+
+function rail_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 rail_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { rail_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty["a" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { rail_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
+
+/**
+ * Internal dependencies
+ */
+
+
+function RangeRail(_ref) {
+  var _ref$disabled = _ref.disabled,
+      disabled = _ref$disabled === void 0 ? false : _ref$disabled,
+      _ref$marks = _ref.marks,
+      marks = _ref$marks === void 0 ? false : _ref$marks,
+      _ref$min = _ref.min,
+      min = _ref$min === void 0 ? 0 : _ref$min,
+      _ref$max = _ref.max,
+      max = _ref$max === void 0 ? 100 : _ref$max,
+      _ref$step = _ref.step,
+      step = _ref$step === void 0 ? 1 : _ref$step,
+      _ref$value = _ref.value,
+      value = _ref$value === void 0 ? 0 : _ref$value,
+      restProps = Object(objectWithoutProperties["a" /* default */])(_ref, ["disabled", "marks", "min", "max", "step", "value"]);
+
+  return Object(external_this_wp_element_["createElement"])(external_this_wp_element_["Fragment"], null, Object(external_this_wp_element_["createElement"])(Rail, Object(esm_extends["a" /* default */])({
+    disabled: disabled
+  }, restProps)), marks && Object(external_this_wp_element_["createElement"])(Marks, {
+    disabled: disabled,
+    marks: marks,
+    min: min,
+    max: max,
+    step: step,
+    value: value
+  }));
+}
+
+function Marks(_ref2) {
+  var _ref2$disabled = _ref2.disabled,
+      disabled = _ref2$disabled === void 0 ? false : _ref2$disabled,
+      _ref2$marks = _ref2.marks,
+      marks = _ref2$marks === void 0 ? false : _ref2$marks,
+      _ref2$min = _ref2.min,
+      min = _ref2$min === void 0 ? 0 : _ref2$min,
+      _ref2$max = _ref2.max,
+      max = _ref2$max === void 0 ? 100 : _ref2$max,
+      _ref2$step = _ref2.step,
+      step = _ref2$step === void 0 ? 1 : _ref2$step,
+      _ref2$value = _ref2.value,
+      value = _ref2$value === void 0 ? 0 : _ref2$value;
+  var marksData = useMarks({
+    marks: marks,
+    min: min,
+    max: max,
+    step: step,
+    value: value
+  });
+  return Object(external_this_wp_element_["createElement"])(MarksWrapper, {
+    "aria-hidden": "true",
+    className: "components-range-control__marks"
+  }, marksData.map(function (mark) {
+    return Object(external_this_wp_element_["createElement"])(RangeMark, Object(esm_extends["a" /* default */])({}, mark, {
+      key: mark.key,
+      "aria-hidden": "true",
+      disabled: disabled
+    }));
+  }));
+}
+
+function useMarks(_ref3) {
+  var marks = _ref3.marks,
+      _ref3$min = _ref3.min,
+      min = _ref3$min === void 0 ? 0 : _ref3$min,
+      _ref3$max = _ref3.max,
+      max = _ref3$max === void 0 ? 100 : _ref3$max,
+      _ref3$step = _ref3.step,
+      step = _ref3$step === void 0 ? 1 : _ref3$step,
+      _ref3$value = _ref3.value,
+      value = _ref3$value === void 0 ? 0 : _ref3$value;
+  var isRTL = document.documentElement.dir === 'rtl';
+
+  if (!marks) {
+    return [];
+  }
+
+  var isCustomMarks = Array.isArray(marks);
+  var markCount = Math.round((max - min) / step);
+  var marksArray = isCustomMarks ? marks : Object(toConsumableArray["a" /* default */])(Array(markCount + 1)).map(function (_, index) {
+    return {
+      value: index
+    };
+  });
+  var enhancedMarks = marksArray.map(function (mark, index) {
+    var markValue = mark.value !== undefined ? mark.value : value;
+    var key = "mark-".concat(index);
+    var isFilled = markValue * step + min <= value;
+    var offset = "".concat(markValue / markCount * 100, "%");
+
+    var offsetStyle = Object(defineProperty["a" /* default */])({}, isRTL ? 'right' : 'left', offset);
+
+    return rail_objectSpread({}, mark, {
+      isFilled: isFilled,
+      key: key,
+      style: offsetStyle
+    });
+  });
+  return enhancedMarks;
+}
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/range-control/tooltip.js
+
+
+
+
+
+
+function tooltip_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 tooltip_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { tooltip_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty["a" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { tooltip_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+var TOOLTIP_OFFSET_HEIGHT = 32;
+function SimpleTooltip(_ref) {
+  var className = _ref.className,
+      inputRef = _ref.inputRef,
+      _ref$position = _ref.position,
+      positionProp = _ref$position === void 0 ? 'auto' : _ref$position,
+      _ref$show = _ref.show,
+      show = _ref$show === void 0 ? false : _ref$show,
+      _ref$style = _ref.style,
+      style = _ref$style === void 0 ? {} : _ref$style,
+      _ref$value = _ref.value,
+      value = _ref$value === void 0 ? 0 : _ref$value,
+      _ref$renderTooltipCon = _ref.renderTooltipContent,
+      renderTooltipContent = _ref$renderTooltipCon === void 0 ? function (v) {
+    return v;
+  } : _ref$renderTooltipCon,
+      _ref$zIndex = _ref.zIndex,
+      zIndex = _ref$zIndex === void 0 ? 100 : _ref$zIndex,
+      restProps = Object(objectWithoutProperties["a" /* default */])(_ref, ["className", "inputRef", "position", "show", "style", "value", "renderTooltipContent", "zIndex"]);
+
+  var position = useTooltipPosition({
+    inputRef: inputRef,
+    position: positionProp
+  });
+  var classes = classnames_default()('components-simple-tooltip', className);
+
+  var styles = tooltip_objectSpread({}, style, {
+    zIndex: zIndex
+  });
+
+  return Object(external_this_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(_ref2) {
+  var inputRef = _ref2.inputRef,
+      positionProp = _ref2.position;
+
+  var _useState = Object(external_this_wp_element_["useState"])('top'),
+      _useState2 = Object(slicedToArray["a" /* default */])(_useState, 2),
+      position = _useState2[0],
+      setPosition = _useState2[1];
+
+  var calculatePosition = Object(external_this_wp_element_["useCallback"])(function () {
+    if (inputRef && inputRef.current) {
+      var nextPosition = positionProp;
+
+      if (positionProp === 'auto') {
+        var _inputRef$current$get = inputRef.current.getBoundingClientRect(),
+            top = _inputRef$current$get.top;
+
+        var isOffscreenTop = top - TOOLTIP_OFFSET_HEIGHT < 0;
+        nextPosition = isOffscreenTop ? 'bottom' : 'top';
+      }
+
+      setPosition(nextPosition);
+    }
+  }, [positionProp]);
+  Object(external_this_wp_element_["useEffect"])(function () {
+    calculatePosition();
+  }, [calculatePosition]);
+  Object(external_this_wp_element_["useEffect"])(function () {
+    window.addEventListener('resize', calculatePosition);
+    return function () {
+      window.removeEventListener('resize', calculatePosition);
+    };
+  });
+  return position;
+}
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/range-control/input-field.js
+
+
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+function input_field_InputField(_ref) {
+  var label = _ref.label,
+      _ref$onBlur = _ref.onBlur,
+      onBlur = _ref$onBlur === void 0 ? external_this_lodash_["noop"] : _ref$onBlur,
+      _ref$onChange = _ref.onChange,
+      onChange = _ref$onChange === void 0 ? external_this_lodash_["noop"] : _ref$onChange,
+      _ref$onReset = _ref.onReset,
+      onReset = _ref$onReset === void 0 ? external_this_lodash_["noop"] : _ref$onReset,
+      _ref$onKeyDown = _ref.onKeyDown,
+      onKeyDown = _ref$onKeyDown === void 0 ? external_this_lodash_["noop"] : _ref$onKeyDown,
+      valueProp = _ref.value,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["label", "onBlur", "onChange", "onReset", "onKeyDown", "value"]);
+
+  /**
+   * This component stores an internal (input) value state, derived from
+   * the incoming value prop.
+   *
+   * This allows for the <input /> to be updated independently before the
+   * value is applied and propagated. This independent updating action is
+   * necessary to accommodate individual keystroke values that may not
+   * be considered "valid" (e.g. within the min - max range).
+   */
+  var _useControlledState = use_controlled_state(valueProp),
+      _useControlledState2 = Object(slicedToArray["a" /* default */])(_useControlledState, 2),
+      value = _useControlledState2[0],
+      setValue = _useControlledState2[1];
+
+  var handleOnReset = function handleOnReset(event) {
+    onReset(event);
+    setValue('');
+  };
+
+  var handleOnCommit = function handleOnCommit(event) {
+    var nextValue = parseFloat(event.target.value);
+
+    if (isNaN(nextValue)) {
+      handleOnReset();
       return;
-    } // The input is valid, reset the local state property used to temporaly save the value,
-    // and call onChange with the new value as a number.
-
-
-    resetCurrentInput();
-    onChange(newValue === '' ? undefined : parseFloat(newValue));
-  };
-
-  var initialSliderValue = Object(external_lodash_["isFinite"])(currentInputValue) ? currentInputValue : initialPosition || '';
+    }
+
+    setValue(nextValue);
+    onChange(nextValue);
+  };
+
+  var handleOnBlur = function handleOnBlur(event) {
+    onBlur(event);
+    handleOnCommit(event);
+  };
+
+  var handleOnChange = function handleOnChange(next) {
+    handleOnCommit({
+      target: {
+        value: next
+      }
+    });
+  };
+
+  var handleOnKeyDown = function handleOnKeyDown(event) {
+    var keyCode = event.keyCode;
+    onKeyDown(event);
+
+    if (keyCode === external_this_wp_keycodes_["ENTER"]) {
+      event.preventDefault();
+      handleOnCommit(event);
+    }
+  };
+
+  return Object(external_this_wp_element_["createElement"])(InputNumber, Object(esm_extends["a" /* default */])({
+    "aria-label": label,
+    className: "components-range-control__number",
+    inputMode: "decimal",
+    onBlur: handleOnBlur,
+    onChange: handleOnChange,
+    onKeyDown: handleOnKeyDown,
+    type: "number",
+    value: value
+  }, props));
+}
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/range-control/index.js
+
+
+
+
+
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+
+
+
+
+
+
+
+function RangeControl(_ref, ref) {
+  var _inputRef$current;
+
+  var afterIcon = _ref.afterIcon,
+      _ref$allowReset = _ref.allowReset,
+      allowReset = _ref$allowReset === void 0 ? false : _ref$allowReset,
+      beforeIcon = _ref.beforeIcon,
+      className = _ref.className,
+      currentInput = _ref.currentInput,
+      _ref$color = _ref.color,
+      colorProp = _ref$color === void 0 ? colors_color('ui.theme') : _ref$color,
+      _ref$disabled = _ref.disabled,
+      disabled = _ref$disabled === void 0 ? false : _ref$disabled,
+      help = _ref.help,
+      initialPosition = _ref.initialPosition,
+      _ref$isShiftStepEnabl = _ref.isShiftStepEnabled,
+      isShiftStepEnabled = _ref$isShiftStepEnabl === void 0 ? true : _ref$isShiftStepEnabl,
+      label = _ref.label,
+      _ref$marks = _ref.marks,
+      marks = _ref$marks === void 0 ? false : _ref$marks,
+      _ref$max = _ref.max,
+      max = _ref$max === void 0 ? 100 : _ref$max,
+      _ref$min = _ref.min,
+      min = _ref$min === void 0 ? 0 : _ref$min,
+      _ref$onBlur = _ref.onBlur,
+      onBlur = _ref$onBlur === void 0 ? external_this_lodash_["noop"] : _ref$onBlur,
+      _ref$onChange = _ref.onChange,
+      onChange = _ref$onChange === void 0 ? external_this_lodash_["noop"] : _ref$onChange,
+      _ref$onFocus = _ref.onFocus,
+      onFocus = _ref$onFocus === void 0 ? external_this_lodash_["noop"] : _ref$onFocus,
+      _ref$onMouseMove = _ref.onMouseMove,
+      onMouseMove = _ref$onMouseMove === void 0 ? external_this_lodash_["noop"] : _ref$onMouseMove,
+      _ref$onMouseLeave = _ref.onMouseLeave,
+      onMouseLeave = _ref$onMouseLeave === void 0 ? external_this_lodash_["noop"] : _ref$onMouseLeave,
+      railColor = _ref.railColor,
+      resetFallbackValue = _ref.resetFallbackValue,
+      _ref$renderTooltipCon = _ref.renderTooltipContent,
+      renderTooltipContent = _ref$renderTooltipCon === void 0 ? function (v) {
+    return v;
+  } : _ref$renderTooltipCon,
+      showTooltipProp = _ref.showTooltip,
+      _ref$shiftStep = _ref.shiftStep,
+      shiftStep = _ref$shiftStep === void 0 ? 10 : _ref$shiftStep,
+      _ref$step = _ref.step,
+      step = _ref$step === void 0 ? 1 : _ref$step,
+      trackColor = _ref.trackColor,
+      valueProp = _ref.value,
+      _ref$withInputField = _ref.withInputField,
+      withInputField = _ref$withInputField === void 0 ? true : _ref$withInputField,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["afterIcon", "allowReset", "beforeIcon", "className", "currentInput", "color", "disabled", "help", "initialPosition", "isShiftStepEnabled", "label", "marks", "max", "min", "onBlur", "onChange", "onFocus", "onMouseMove", "onMouseLeave", "railColor", "resetFallbackValue", "renderTooltipContent", "showTooltip", "shiftStep", "step", "trackColor", "value", "withInputField"]);
+
+  var isRTL = useRTL();
+
+  var _useControlledRangeVa = useControlledRangeValue({
+    min: min,
+    max: max,
+    value: valueProp,
+    initial: initialPosition
+  }),
+      _useControlledRangeVa2 = Object(slicedToArray["a" /* default */])(_useControlledRangeVa, 2),
+      value = _useControlledRangeVa2[0],
+      setValue = _useControlledRangeVa2[1];
+
+  var _useState = Object(external_this_wp_element_["useState"])(showTooltipProp),
+      _useState2 = Object(slicedToArray["a" /* default */])(_useState, 2),
+      showTooltip = _useState2[0],
+      setShowTooltip = _useState2[1];
+
+  var _useState3 = Object(external_this_wp_element_["useState"])(false),
+      _useState4 = Object(slicedToArray["a" /* default */])(_useState3, 2),
+      isFocused = _useState4[0],
+      setIsFocused = _useState4[1];
+
+  var inputRef = Object(external_this_wp_element_["useRef"])();
+
+  var setRef = function setRef(nodeRef) {
+    inputRef.current = nodeRef;
+
+    if (ref) {
+      ref(nodeRef);
+    }
+  };
+
+  var isCurrentlyFocused = (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.matches(':focus');
+  var isThumbFocused = !disabled && isFocused;
+  var isValueReset = value === null;
+  var currentValue = value !== undefined ? value : currentInput;
+  var inputSliderValue = isValueReset ? '' : currentValue;
+  var rangeFillValue = isValueReset ? floatClamp(max / 2, min, max) : value;
+  var calculatedFillValue = (value - min) / (max - min) * 100;
+  var fillValue = isValueReset ? 50 : calculatedFillValue;
+  var fillValueOffset = "".concat(Object(external_this_lodash_["clamp"])(fillValue, 0, 100), "%");
+  var classes = classnames_default()('components-range-control', className);
+  var wrapperClasses = classnames_default()('components-range-control__wrapper', !!marks && 'is-marked');
+  var id = Object(external_this_wp_compose_["useInstanceId"])(RangeControl, 'inspector-range-control');
+  var describedBy = !!help ? "".concat(id, "__help") : undefined;
+  var enableTooltip = showTooltipProp !== false && Object(external_this_lodash_["isFinite"])(value);
+
+  var handleOnRangeChange = function handleOnRangeChange(event) {
+    var nextValue = parseFloat(event.target.value);
+    handleOnChange(nextValue);
+  };
+
+  var handleOnChange = function handleOnChange(nextValue) {
+    if (isNaN(nextValue)) {
+      handleOnReset();
+      return;
+    }
+
+    setValue(nextValue);
+    onChange(nextValue);
+  };
+
+  var handleOnReset = function handleOnReset() {
+    var resetValue = parseFloat(resetFallbackValue);
+    var 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);
+  };
+
+  var handleShowTooltip = function handleShowTooltip() {
+    return setShowTooltip(true);
+  };
+
+  var handleHideTooltip = function handleHideTooltip() {
+    return setShowTooltip(false);
+  };
+
+  var handleOnBlur = function handleOnBlur(event) {
+    onBlur(event);
+    setIsFocused(false);
+    handleHideTooltip();
+  };
+
+  var handleOnFocus = function handleOnFocus(event) {
+    onFocus(event);
+    setIsFocused(true);
+    handleShowTooltip();
+  };
+
+  var offsetStyle = Object(defineProperty["a" /* default */])({}, isRTL ? 'right' : 'left', fillValueOffset);
+
   return Object(external_this_wp_element_["createElement"])(base_control, {
+    className: classes,
     label: label,
     id: id,
-    help: help,
-    className: classnames_default()('components-range-control', className)
-  }, beforeIcon && Object(external_this_wp_element_["createElement"])(dashicon_Dashicon, {
+    help: help
+  }, Object(external_this_wp_element_["createElement"])(range_control_styles_Root, {
+    className: "components-range-control__root",
+    isRTL: isRTL
+  }, beforeIcon && Object(external_this_wp_element_["createElement"])(BeforeIconWrapper, null, Object(external_this_wp_element_["createElement"])(components_build_module_icon["a" /* default */], {
     icon: beforeIcon
-  }), Object(external_this_wp_element_["createElement"])("input", Object(esm_extends["a" /* default */])({
+  })), Object(external_this_wp_element_["createElement"])(range_control_styles_Wrapper, {
+    className: wrapperClasses,
+    color: colorProp,
+    marks: !!marks
+  }, Object(external_this_wp_element_["createElement"])(input_range, Object(esm_extends["a" /* default */])({}, props, {
     className: "components-range-control__slider",
+    describedBy: describedBy,
+    disabled: disabled,
     id: id,
-    type: "range",
-    value: initialSliderValue,
-    onChange: onChangeValue,
-    "aria-describedby": !!help ? id + '__help' : undefined,
+    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_this_wp_element_["createElement"])(RangeRail, {
+    "aria-hidden": true,
+    disabled: disabled,
+    marks: marks,
+    max: max,
     min: min,
-    max: max
-  }, props)), afterIcon && Object(external_this_wp_element_["createElement"])(dashicon_Dashicon, {
+    railColor: railColor,
+    step: step,
+    value: rangeFillValue
+  }), Object(external_this_wp_element_["createElement"])(Track, {
+    "aria-hidden": true,
+    className: "components-range-control__track",
+    disabled: disabled,
+    style: {
+      width: fillValueOffset
+    },
+    trackColor: trackColor
+  }), Object(external_this_wp_element_["createElement"])(ThumbWrapper, {
+    style: offsetStyle
+  }, Object(external_this_wp_element_["createElement"])(Thumb, {
+    "aria-hidden": true,
+    isFocused: isThumbFocused
+  })), enableTooltip && Object(external_this_wp_element_["createElement"])(SimpleTooltip, {
+    className: "components-range-control__tooltip",
+    inputRef: inputRef,
+    renderTooltipContent: renderTooltipContent,
+    show: isCurrentlyFocused || showTooltip,
+    style: offsetStyle,
+    value: value
+  })), afterIcon && Object(external_this_wp_element_["createElement"])(AfterIconWrapper, null, Object(external_this_wp_element_["createElement"])(components_build_module_icon["a" /* default */], {
     icon: afterIcon
-  }), Object(external_this_wp_element_["createElement"])("input", Object(esm_extends["a" /* default */])({
-    className: "components-range-control__number",
-    type: "number",
-    onChange: onChangeValue,
-    "aria-label": label,
-    value: currentInputValue,
-    min: min,
+  })), withInputField && Object(external_this_wp_element_["createElement"])(input_field_InputField, {
+    disabled: disabled,
+    isShiftStepEnabled: isShiftStepEnabled,
+    label: label,
     max: max,
-    onBlur: resetCurrentInput
-  }, props)), allowReset && Object(external_this_wp_element_["createElement"])(build_module_button, {
-    onClick: resetValue,
-    disabled: value === undefined
-  }, Object(external_this_wp_i18n_["__"])('Reset')));
-}
-
-/* harmony default export */ var range_control = (Object(external_this_wp_compose_["compose"])([external_this_wp_compose_["withInstanceId"], Object(external_this_wp_compose_["withState"])({
-  currentInput: null
-})])(RangeControl));
+    min: min,
+    onChange: handleOnChange,
+    onReset: handleOnReset,
+    shiftStep: shiftStep,
+    step: step,
+    value: inputSliderValue
+  }), allowReset && Object(external_this_wp_element_["createElement"])(ActionRightWrapper, null, Object(external_this_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_this_wp_i18n_["__"])('Reset')))));
+}
+
+var range_control_ForwardedComponent = Object(external_this_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
- */
-
-
-
-
-
-
-
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+var DEFAULT_FONT_SIZE = 'default';
+var CUSTOM_FONT_SIZE = 'custom';
+
+function getSelectValueFromFontSize(fontSizes, value) {
+  if (value) {
+    var fontSizeValue = fontSizes.find(function (font) {
+      return font.size === Number(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_this_wp_i18n_["__"])('Default')
+  }].concat(Object(toConsumableArray["a" /* default */])(optionsArray), Object(toConsumableArray["a" /* default */])(disableCustomFontSizes ? [] : [{
+    slug: CUSTOM_FONT_SIZE,
+    name: Object(external_this_wp_i18n_["__"])('Custom')
+  }]));
+  return optionsArray.map(function (option) {
+    return {
+      key: option.slug,
+      name: option.name,
+      style: {
+        fontSize: option.size
+      }
+    };
+  });
+}
 
 function FontSizePicker(_ref) {
   var fallbackFontSize = _ref.fallbackFontSize,
@@ -32541,189 +38856,127 @@
       fontSizes = _ref$fontSizes === void 0 ? [] : _ref$fontSizes,
       _ref$disableCustomFon = _ref.disableCustomFontSizes,
       disableCustomFontSizes = _ref$disableCustomFon === void 0 ? false : _ref$disableCustomFon,
-      onChange = _ref.onChange,
+      _onChange = _ref.onChange,
       value = _ref.value,
       _ref$withSlider = _ref.withSlider,
       withSlider = _ref$withSlider === void 0 ? false : _ref$withSlider;
-
-  if (disableCustomFontSizes && !fontSizes.length) {
+  var instanceId = Object(external_this_wp_compose_["useInstanceId"])(FontSizePicker);
+  var options = Object(external_this_wp_element_["useMemo"])(function () {
+    return getSelectOptions(fontSizes, disableCustomFontSizes);
+  }, [fontSizes, disableCustomFontSizes]);
+
+  if (!options) {
     return null;
   }
 
-  var onChangeValue = function onChangeValue(event) {
-    var newValue = event.target.value;
-
-    if (newValue === '') {
-      onChange(undefined);
-      return;
-    }
-
-    onChange(Number(newValue));
-  };
-
-  var currentFont = fontSizes.find(function (font) {
-    return font.size === value;
-  });
-
-  var currentFontSizeName = currentFont && currentFont.name || !value && Object(external_this_wp_i18n_["_x"])('Normal', 'font size name') || Object(external_this_wp_i18n_["_x"])('Custom', 'font size name');
-
-  return Object(external_this_wp_element_["createElement"])(base_control, {
-    label: Object(external_this_wp_i18n_["__"])('Font Size')
-  }, Object(external_this_wp_element_["createElement"])("div", {
-    className: "components-font-size-picker__buttons"
-  }, fontSizes.length > 0 && Object(external_this_wp_element_["createElement"])(dropdown, {
-    className: "components-font-size-picker__dropdown",
-    contentClassName: "components-font-size-picker__dropdown-content",
-    position: "bottom",
-    renderToggle: function renderToggle(_ref2) {
-      var isOpen = _ref2.isOpen,
-          onToggle = _ref2.onToggle;
-      return Object(external_this_wp_element_["createElement"])(build_module_button, {
-        className: "components-font-size-picker__selector",
-        isLarge: true,
-        onClick: onToggle,
-        "aria-expanded": isOpen,
-        "aria-label": Object(external_this_wp_i18n_["sprintf"])(
-        /* translators: %s: font size name */
-        Object(external_this_wp_i18n_["__"])('Font size: %s'), currentFontSizeName)
-      }, currentFontSizeName);
-    },
-    renderContent: function renderContent() {
-      return Object(external_this_wp_element_["createElement"])(menu, null, Object(external_lodash_["map"])(fontSizes, function (_ref3) {
-        var name = _ref3.name,
-            size = _ref3.size,
-            slug = _ref3.slug;
-        var isSelected = value === size || !value && slug === 'normal';
-        return Object(external_this_wp_element_["createElement"])(build_module_button, {
-          key: slug,
-          onClick: function onClick() {
-            return onChange(slug === 'normal' ? undefined : size);
-          },
-          className: "is-font-".concat(slug),
-          role: "menuitemradio",
-          "aria-checked": isSelected
-        }, isSelected && Object(external_this_wp_element_["createElement"])(dashicon_Dashicon, {
-          icon: "saved"
-        }), Object(external_this_wp_element_["createElement"])("span", {
-          className: "components-font-size-picker__dropdown-text-size",
-          style: {
-            fontSize: size
-          }
-        }, name));
-      }));
-    }
-  }), !withSlider && !disableCustomFontSizes && Object(external_this_wp_element_["createElement"])("input", {
-    className: "components-range-control__number",
+  var selectedFontSizeSlug = getSelectValueFromFontSize(fontSizes, value);
+  var fontSizePickerNumberId = "components-font-size-picker__number#".concat(instanceId);
+  return Object(external_this_wp_element_["createElement"])("fieldset", {
+    className: "components-font-size-picker"
+  }, Object(external_this_wp_element_["createElement"])(visually_hidden, {
+    as: "legend"
+  }, Object(external_this_wp_i18n_["__"])('Font size')), Object(external_this_wp_element_["createElement"])("div", {
+    className: "components-font-size-picker__controls"
+  }, fontSizes.length > 0 && Object(external_this_wp_element_["createElement"])(CustomSelectControl, {
+    className: 'components-font-size-picker__select',
+    label: Object(external_this_wp_i18n_["__"])('Preset size'),
+    options: options,
+    value: options.find(function (option) {
+      return option.key === selectedFontSizeSlug;
+    }),
+    onChange: function onChange(_ref2) {
+      var selectedItem = _ref2.selectedItem;
+      var selectedValue = selectedItem.style && selectedItem.style.fontSize;
+
+      _onChange(Number(selectedValue));
+    }
+  }), !withSlider && !disableCustomFontSizes && Object(external_this_wp_element_["createElement"])("div", {
+    className: "components-font-size-picker__number-container"
+  }, Object(external_this_wp_element_["createElement"])("label", {
+    htmlFor: fontSizePickerNumberId
+  }, Object(external_this_wp_i18n_["__"])('Custom')), Object(external_this_wp_element_["createElement"])("input", {
+    id: fontSizePickerNumberId,
+    className: "components-font-size-picker__number",
     type: "number",
-    onChange: onChangeValue,
-    "aria-label": Object(external_this_wp_i18n_["__"])('Custom font size'),
+    min: 1,
+    onChange: function onChange(event) {
+      _onChange(Number(event.target.value));
+    },
+    "aria-label": Object(external_this_wp_i18n_["__"])('Custom'),
     value: value || ''
-  }), Object(external_this_wp_element_["createElement"])(build_module_button, {
+  })), Object(external_this_wp_element_["createElement"])(build_module_button["a" /* default */], {
     className: "components-color-palette__clear",
-    type: "button",
     disabled: value === undefined,
     onClick: function onClick() {
-      return onChange(undefined);
+      _onChange(undefined);
     },
     isSmall: true,
-    isDefault: true
+    isSecondary: true
   }, Object(external_this_wp_i18n_["__"])('Reset'))), withSlider && Object(external_this_wp_element_["createElement"])(range_control, {
     className: "components-font-size-picker__custom-input",
     label: Object(external_this_wp_i18n_["__"])('Custom Size'),
     value: value || '',
     initialPosition: fallbackFontSize,
-    onChange: onChange,
+    onChange: function onChange(newValue) {
+      _onChange(newValue);
+    },
     min: 12,
     max: 100,
-    beforeIcon: "editor-textcolor",
-    afterIcon: "editor-textcolor"
+    beforeIcon: text_color["a" /* default */],
+    afterIcon: text_color["a" /* default */]
   }));
 }
 
-/* harmony default export */ var font_size_picker = (FontSizePicker);
-
 // CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/form-file-upload/index.js
 
 
 
 
-
-
-
-
-
-
-/**
- * WordPress dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-
-var form_file_upload_FormFileUpload =
-/*#__PURE__*/
-function (_Component) {
-  Object(inherits["a" /* default */])(FormFileUpload, _Component);
-
-  function FormFileUpload() {
-    var _this;
-
-    Object(classCallCheck["a" /* default */])(this, FormFileUpload);
-
-    _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(FormFileUpload).apply(this, arguments));
-    _this.openFileDialog = _this.openFileDialog.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.bindInput = _this.bindInput.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    return _this;
-  }
-
-  Object(createClass["a" /* default */])(FormFileUpload, [{
-    key: "openFileDialog",
-    value: function openFileDialog() {
-      this.input.click();
-    }
-  }, {
-    key: "bindInput",
-    value: function bindInput(ref) {
-      this.input = ref;
-    }
-  }, {
-    key: "render",
-    value: function render() {
-      var _this$props = this.props,
-          children = _this$props.children,
-          _this$props$multiple = _this$props.multiple,
-          multiple = _this$props$multiple === void 0 ? false : _this$props$multiple,
-          accept = _this$props.accept,
-          onChange = _this$props.onChange,
-          _this$props$icon = _this$props.icon,
-          icon = _this$props$icon === void 0 ? 'upload' : _this$props$icon,
-          props = Object(objectWithoutProperties["a" /* default */])(_this$props, ["children", "multiple", "accept", "onChange", "icon"]);
-
-      return Object(external_this_wp_element_["createElement"])("div", {
-        className: "components-form-file-upload"
-      }, Object(external_this_wp_element_["createElement"])(icon_button, Object(esm_extends["a" /* default */])({
-        icon: icon,
-        onClick: this.openFileDialog
-      }, props), children), Object(external_this_wp_element_["createElement"])("input", {
-        type: "file",
-        ref: this.bindInput,
-        multiple: multiple,
-        style: {
-          display: 'none'
-        },
-        accept: accept,
-        onChange: onChange
-      }));
-    }
-  }]);
-
-  return FormFileUpload;
-}(external_this_wp_element_["Component"]);
-
-/* harmony default export */ var form_file_upload = (form_file_upload_FormFileUpload);
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+function FormFileUpload(_ref) {
+  var accept = _ref.accept,
+      children = _ref.children,
+      _ref$multiple = _ref.multiple,
+      multiple = _ref$multiple === void 0 ? false : _ref$multiple,
+      onChange = _ref.onChange,
+      render = _ref.render,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["accept", "children", "multiple", "onChange", "render"]);
+
+  var ref = Object(external_this_wp_element_["useRef"])();
+
+  var openFileDialog = function openFileDialog() {
+    ref.current.click();
+  };
+
+  var ui = render ? render({
+    openFileDialog: openFileDialog
+  }) : Object(external_this_wp_element_["createElement"])(build_module_button["a" /* default */], Object(esm_extends["a" /* default */])({
+    onClick: openFileDialog
+  }, props), children);
+  return Object(external_this_wp_element_["createElement"])("div", {
+    className: "components-form-file-upload"
+  }, ui, Object(external_this_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
 
@@ -32735,18 +38988,13 @@
  */
 
 
-/**
- * Internal dependencies
- */
-
-
 
 function FormToggle(_ref) {
   var className = _ref.className,
       checked = _ref.checked,
       id = _ref.id,
       _ref$onChange = _ref.onChange,
-      onChange = _ref$onChange === void 0 ? external_lodash_["noop"] : _ref$onChange,
+      onChange = _ref$onChange === void 0 ? external_this_lodash_["noop"] : _ref$onChange,
       props = Object(objectWithoutProperties["a" /* default */])(_ref, ["className", "checked", "id", "onChange"]);
 
   var wrapperClasses = classnames_default()('components-form-toggle', className, {
@@ -32764,32 +39012,28 @@
     className: "components-form-toggle__track"
   }), Object(external_this_wp_element_["createElement"])("span", {
     className: "components-form-toggle__thumb"
-  }), checked ? Object(external_this_wp_element_["createElement"])(svg_SVG, {
-    className: "components-form-toggle__on",
-    width: "2",
-    height: "6",
-    xmlns: "http://www.w3.org/2000/svg",
-    viewBox: "0 0 2 6"
-  }, Object(external_this_wp_element_["createElement"])(svg_Path, {
-    d: "M0 0h2v6H0z"
-  })) : Object(external_this_wp_element_["createElement"])(svg_SVG, {
-    className: "components-form-toggle__off",
-    width: "6",
-    height: "6",
-    "aria-hidden": "true",
-    role: "img",
-    focusable: "false",
-    xmlns: "http://www.w3.org/2000/svg",
-    viewBox: "0 0 6 6"
-  }, Object(external_this_wp_element_["createElement"])(svg_Path, {
-    d: "M3 1.5c.8 0 1.5.7 1.5 1.5S3.8 4.5 3 4.5 1.5 3.8 1.5 3 2.2 1.5 3 1.5M3 0C1.3 0 0 1.3 0 3s1.3 3 3 3 3-1.3 3-3-1.3-3-3-3z"
-  })));
+  }));
 }
 
 /* harmony default export */ var form_toggle = (FormToggle);
 
 // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/typeof.js
-var esm_typeof = __webpack_require__(32);
+var esm_typeof = __webpack_require__(40);
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/close-circle-filled.js
+
+
+/**
+ * WordPress dependencies
+ */
+
+var closeCircleFilled = Object(external_this_wp_element_["createElement"])(external_this_wp_primitives_["SVG"], {
+  xmlns: "http://www.w3.org/2000/svg",
+  viewBox: "-2 -2 24 24"
+}, Object(external_this_wp_element_["createElement"])(external_this_wp_primitives_["Path"], {
+  d: "M10 2c4.42 0 8 3.58 8 8s-3.58 8-8 8-8-3.58-8-8 3.58-8 8-8zm5 11l-3-3 3-3-2-2-3 3-3-3-2 2 3 3-3 3 2 2 3-3 3 3z"
+}));
+/* harmony default export */ var close_circle_filled = (closeCircleFilled);
 
 // CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/form-token-field/token.js
 
@@ -32805,6 +39049,7 @@
 
 
 
+
 /**
  * Internal dependencies
  */
@@ -32821,13 +39066,13 @@
       _ref$disabled = _ref.disabled,
       disabled = _ref$disabled === void 0 ? false : _ref$disabled,
       _ref$onClickRemove = _ref.onClickRemove,
-      onClickRemove = _ref$onClickRemove === void 0 ? external_lodash_["noop"] : _ref$onClickRemove,
+      onClickRemove = _ref$onClickRemove === void 0 ? external_this_lodash_["noop"] : _ref$onClickRemove,
       onMouseEnter = _ref.onMouseEnter,
       onMouseLeave = _ref.onMouseLeave,
       messages = _ref.messages,
       termPosition = _ref.termPosition,
-      termsCount = _ref.termsCount,
-      instanceId = _ref.instanceId;
+      termsCount = _ref.termsCount;
+  var instanceId = Object(external_this_wp_compose_["useInstanceId"])(Token);
   var tokenClasses = classnames_default()('components-form-token-field__token', {
     'is-error': 'error' === status,
     'is-success': 'success' === status,
@@ -32854,21 +39099,19 @@
   }, Object(external_this_wp_element_["createElement"])("span", {
     className: "components-form-token-field__token-text",
     id: "components-form-token-field__token-text-".concat(instanceId)
-  }, Object(external_this_wp_element_["createElement"])("span", {
-    className: "screen-reader-text"
+  }, Object(external_this_wp_element_["createElement"])(visually_hidden, {
+    as: "span"
   }, termPositionAndCount), Object(external_this_wp_element_["createElement"])("span", {
     "aria-hidden": "true"
-  }, transformedValue)), Object(external_this_wp_element_["createElement"])(icon_button, {
+  }, transformedValue)), Object(external_this_wp_element_["createElement"])(build_module_button["a" /* default */], {
     className: "components-form-token-field__remove-token",
-    icon: "dismiss",
+    icon: close_circle_filled,
     onClick: !disabled && onClick,
     label: messages.remove,
     "aria-describedby": "components-form-token-field__token-text-".concat(instanceId)
   }));
 }
 
-/* harmony default export */ var form_token_field_token = (Object(external_this_wp_compose_["withInstanceId"])(Token));
-
 // CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/form-token-field/token-input.js
 
 
@@ -32880,24 +39123,28 @@
 
 
 
-/**
- * WordPress dependencies
- */
-
-
-var token_input_TokenInput =
-/*#__PURE__*/
-function (_Component) {
+function token_input_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf["a" /* default */])(Derived), result; if (token_input_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf["a" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn["a" /* default */])(this, result); }; }
+
+function token_input_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
+
+/**
+ * WordPress dependencies
+ */
+
+
+var token_input_TokenInput = /*#__PURE__*/function (_Component) {
   Object(inherits["a" /* default */])(TokenInput, _Component);
 
+  var _super = token_input_createSuper(TokenInput);
+
   function TokenInput() {
     var _this;
 
     Object(classCallCheck["a" /* default */])(this, TokenInput);
 
-    _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(TokenInput).apply(this, arguments));
-    _this.onChange = _this.onChange.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.bindInput = _this.bindInput.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
+    _this = _super.apply(this, arguments);
+    _this.onChange = _this.onChange.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.bindInput = _this.bindInput.bind(Object(assertThisInitialized["a" /* default */])(_this));
     return _this;
   }
 
@@ -32959,7 +39206,7 @@
 /* harmony default export */ var token_input = (token_input_TokenInput);
 
 // EXTERNAL MODULE: ./node_modules/dom-scroll-into-view/lib/index.js
-var lib = __webpack_require__(67);
+var lib = __webpack_require__(123);
 var lib_default = /*#__PURE__*/__webpack_require__.n(lib);
 
 // CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/form-token-field/suggestions-list.js
@@ -32971,31 +39218,36 @@
 
 
 
-/**
- * External dependencies
- */
-
-
-
-/**
- * WordPress dependencies
- */
-
-
-
-var suggestions_list_SuggestionsList =
-/*#__PURE__*/
-function (_Component) {
+function suggestions_list_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf["a" /* default */])(Derived), result; if (suggestions_list_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf["a" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn["a" /* default */])(this, result); }; }
+
+function suggestions_list_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
+
+/**
+ * External dependencies
+ */
+
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+var suggestions_list_SuggestionsList = /*#__PURE__*/function (_Component) {
   Object(inherits["a" /* default */])(SuggestionsList, _Component);
 
+  var _super = suggestions_list_createSuper(SuggestionsList);
+
   function SuggestionsList() {
     var _this;
 
     Object(classCallCheck["a" /* default */])(this, SuggestionsList);
 
-    _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(SuggestionsList).apply(this, arguments));
-    _this.handleMouseDown = _this.handleMouseDown.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.bindList = _this.bindList.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
+    _this = _super.apply(this, arguments);
+    _this.handleMouseDown = _this.handleMouseDown.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.bindList = _this.bindList.bind(Object(assertThisInitialized["a" /* default */])(_this));
     return _this;
   }
 
@@ -33011,7 +39263,7 @@
         lib_default()(this.list.children[this.props.selectedIndex], this.list, {
           onlyScrollIfNeeded: true
         });
-        setTimeout(function () {
+        this.props.setTimeout(function () {
           _this2.scrollingIntoView = false;
         }, 100);
       }
@@ -33078,13 +39330,13 @@
         className: "components-form-token-field__suggestions-list",
         id: "components-form-token-suggestions-".concat(this.props.instanceId),
         role: "listbox"
-      }, Object(external_lodash_["map"])(this.props.suggestions, function (suggestion, index) {
+      }, Object(external_this_lodash_["map"])(this.props.suggestions, function (suggestion, index) {
         var match = _this5.computeSuggestionMatch(suggestion);
 
         var classeName = classnames_default()('components-form-token-field__suggestion', {
           'is-selected': index === _this5.props.selectedIndex
         });
-        /* eslint-disable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */
+        /* eslint-disable jsx-a11y/click-events-have-key-events */
 
         return Object(external_this_wp_element_["createElement"])("li", {
           id: "components-form-token-suggestions-".concat(_this5.props.instanceId, "-").concat(index),
@@ -33100,7 +39352,7 @@
         }, match.suggestionBeforeMatch, Object(external_this_wp_element_["createElement"])("strong", {
           className: "components-form-token-field__suggestion-match"
         }, match.suggestionMatch), match.suggestionAfterMatch) : _this5.props.displayTransform(suggestion));
-        /* eslint-enable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */
+        /* eslint-enable jsx-a11y/click-events-have-key-events */
       }));
     }
   }]);
@@ -33114,7 +39366,7 @@
   onSelect: function onSelect() {},
   suggestions: Object.freeze([])
 };
-/* harmony default export */ var suggestions_list = (suggestions_list_SuggestionsList);
+/* harmony default export */ var suggestions_list = (Object(external_this_wp_compose_["withSafeTimeout"])(suggestions_list_SuggestionsList));
 
 // CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/form-token-field/index.js
 
@@ -33127,28 +39379,37 @@
 
 
 
-/**
- * External dependencies
- */
-
-
-/**
- * WordPress dependencies
- */
-
-
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-
-var initialState = {
+function form_token_field_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 form_token_field_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { form_token_field_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty["a" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { form_token_field_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
+
+function form_token_field_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf["a" /* default */])(Derived), result; if (form_token_field_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf["a" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn["a" /* default */])(this, result); }; }
+
+function form_token_field_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+var form_token_field_initialState = {
   incompleteTokenValue: '',
   inputOffsetFromEnd: 0,
   isActive: false,
@@ -33157,43 +39418,53 @@
   selectedSuggestionScroll: false
 };
 
-var form_token_field_FormTokenField =
-/*#__PURE__*/
-function (_Component) {
+var form_token_field_FormTokenField = /*#__PURE__*/function (_Component) {
   Object(inherits["a" /* default */])(FormTokenField, _Component);
 
+  var _super = form_token_field_createSuper(FormTokenField);
+
   function FormTokenField() {
     var _this;
 
     Object(classCallCheck["a" /* default */])(this, FormTokenField);
 
-    _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(FormTokenField).apply(this, arguments));
-    _this.state = initialState;
-    _this.onKeyDown = _this.onKeyDown.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.onKeyPress = _this.onKeyPress.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.onFocus = _this.onFocus.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.onBlur = _this.onBlur.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.deleteTokenBeforeInput = _this.deleteTokenBeforeInput.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.deleteTokenAfterInput = _this.deleteTokenAfterInput.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.addCurrentToken = _this.addCurrentToken.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.onContainerTouched = _this.onContainerTouched.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.renderToken = _this.renderToken.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.onTokenClickRemove = _this.onTokenClickRemove.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.onSuggestionHovered = _this.onSuggestionHovered.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.onSuggestionSelected = _this.onSuggestionSelected.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.onInputChange = _this.onInputChange.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.bindInput = _this.bindInput.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.bindTokensAndInput = _this.bindTokensAndInput.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
+    _this = _super.apply(this, arguments);
+    _this.state = form_token_field_initialState;
+    _this.onKeyDown = _this.onKeyDown.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.onKeyPress = _this.onKeyPress.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.onFocus = _this.onFocus.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.onBlur = _this.onBlur.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.deleteTokenBeforeInput = _this.deleteTokenBeforeInput.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.deleteTokenAfterInput = _this.deleteTokenAfterInput.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.addCurrentToken = _this.addCurrentToken.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.onContainerTouched = _this.onContainerTouched.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.renderToken = _this.renderToken.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.onTokenClickRemove = _this.onTokenClickRemove.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.onSuggestionHovered = _this.onSuggestionHovered.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.onSuggestionSelected = _this.onSuggestionSelected.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.onInputChange = _this.onInputChange.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.bindInput = _this.bindInput.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.bindTokensAndInput = _this.bindTokensAndInput.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.updateSuggestions = _this.updateSuggestions.bind(Object(assertThisInitialized["a" /* default */])(_this));
     return _this;
   }
 
   Object(createClass["a" /* default */])(FormTokenField, [{
     key: "componentDidUpdate",
-    value: function componentDidUpdate() {
+    value: function componentDidUpdate(prevProps) {
       // Make sure to focus the input when the isActive state is true.
       if (this.state.isActive && !this.input.hasFocus()) {
         this.input.focus();
       }
+
+      var _this$props = this.props,
+          suggestions = _this$props.suggestions,
+          value = _this$props.value;
+      var suggestionsDidUpdate = !external_this_wp_isShallowEqual_default()(suggestions, prevProps.suggestions);
+
+      if (suggestionsDidUpdate || value !== prevProps.value) {
+        this.updateSuggestions(suggestionsDidUpdate);
+      }
     }
   }, {
     key: "bindInput",
@@ -33236,7 +39507,7 @@
           isActive: false
         });
       } else {
-        this.setState(initialState);
+        this.setState(form_token_field_initialState);
       }
     }
   }, {
@@ -33350,34 +39621,16 @@
       var text = event.value;
       var separator = this.props.tokenizeOnSpace ? /[ ,\t]+/ : /[,\t]+/;
       var items = text.split(separator);
-      var tokenValue = Object(external_lodash_["last"])(items) || '';
-      var inputHasMinimumChars = tokenValue.trim().length > 1;
-      var matchingSuggestions = this.getMatchingSuggestions(tokenValue);
-      var hasVisibleSuggestions = inputHasMinimumChars && !!matchingSuggestions.length;
+      var tokenValue = Object(external_this_lodash_["last"])(items) || '';
 
       if (items.length > 1) {
         this.addNewTokens(items.slice(0, -1));
       }
 
       this.setState({
-        incompleteTokenValue: tokenValue,
-        selectedSuggestionIndex: -1,
-        selectedSuggestionScroll: false,
-        isExpanded: false
-      });
+        incompleteTokenValue: tokenValue
+      }, this.updateSuggestions);
       this.props.onInputChange(tokenValue);
-
-      if (inputHasMinimumChars) {
-        this.setState({
-          isExpanded: hasVisibleSuggestions
-        });
-
-        if (!!matchingSuggestions.length) {
-          this.props.debouncedSpeak(Object(external_this_wp_i18n_["sprintf"])(Object(external_this_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), 'assertive');
-        } else {
-          this.props.debouncedSpeak(Object(external_this_wp_i18n_["__"])('No results.'), 'assertive');
-        }
-      }
     }
   }, {
     key: "handleDeleteKey",
@@ -33529,12 +39782,12 @@
     value: function addNewTokens(tokens) {
       var _this4 = this;
 
-      var tokensToAdd = Object(external_lodash_["uniq"])(tokens.map(this.props.saveTransform).filter(Boolean).filter(function (token) {
+      var tokensToAdd = Object(external_this_lodash_["uniq"])(tokens.map(this.props.saveTransform).filter(Boolean).filter(function (token) {
         return !_this4.valueContainsToken(token);
       }));
 
       if (tokensToAdd.length > 0) {
-        var newValue = Object(external_lodash_["clone"])(this.props.value);
+        var newValue = Object(external_this_lodash_["clone"])(this.props.value);
         newValue.splice.apply(newValue, [this.getIndexOfInput(), 0].concat(tokensToAdd));
         this.props.onChange(newValue);
       }
@@ -33588,10 +39841,10 @@
       var containsMatch = [];
 
       if (match.length === 0) {
-        suggestions = Object(external_lodash_["difference"])(suggestions, value);
+        suggestions = Object(external_this_lodash_["difference"])(suggestions, value);
       } else {
         match = match.toLocaleLowerCase();
-        Object(external_lodash_["each"])(suggestions, function (suggestion) {
+        Object(external_this_lodash_["each"])(suggestions, function (suggestion) {
           var index = suggestion.toLocaleLowerCase().indexOf(match);
 
           if (value.indexOf(suggestion) === -1) {
@@ -33605,7 +39858,7 @@
         suggestions = startsWithMatch.concat(containsMatch);
       }
 
-      return Object(external_lodash_["take"])(suggestions, maxSuggestions);
+      return Object(external_this_lodash_["take"])(suggestions, maxSuggestions);
     }
   }, {
     key: "getSelectedSuggestion",
@@ -33619,7 +39872,7 @@
     value: function valueContainsToken(token) {
       var _this6 = this;
 
-      return Object(external_lodash_["some"])(this.props.value, function (item) {
+      return Object(external_this_lodash_["some"])(this.props.value, function (item) {
         return _this6.getTokenValue(token) === _this6.getTokenValue(item);
       });
     }
@@ -33639,9 +39892,36 @@
       return this.props.saveTransform(this.state.incompleteTokenValue).length > 0;
     }
   }, {
+    key: "updateSuggestions",
+    value: function updateSuggestions() {
+      var resetSelectedSuggestion = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
+      var incompleteTokenValue = this.state.incompleteTokenValue;
+      var inputHasMinimumChars = incompleteTokenValue.trim().length > 1;
+      var matchingSuggestions = this.getMatchingSuggestions(incompleteTokenValue);
+      var hasMatchingSuggestions = matchingSuggestions.length > 0;
+      var newState = {
+        isExpanded: inputHasMinimumChars && hasMatchingSuggestions
+      };
+
+      if (resetSelectedSuggestion) {
+        newState.selectedSuggestionIndex = -1;
+        newState.selectedSuggestionScroll = false;
+      }
+
+      this.setState(newState);
+
+      if (inputHasMinimumChars) {
+        var debouncedSpeak = this.props.debouncedSpeak;
+        var message = hasMatchingSuggestions ? Object(external_this_wp_i18n_["sprintf"])(
+        /* translators: %d: number of results. */
+        Object(external_this_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_this_wp_i18n_["__"])('No results.');
+        debouncedSpeak(message, 'assertive');
+      }
+    }
+  }, {
     key: "renderTokensAndInput",
     value: function renderTokensAndInput() {
-      var components = Object(external_lodash_["map"])(this.props.value, this.renderToken);
+      var components = Object(external_this_lodash_["map"])(this.props.value, this.renderToken);
       components.splice(this.getIndexOfInput(), 0, this.renderInput());
       return components;
     }
@@ -33652,7 +39932,7 @@
       var status = token.status ? token.status : undefined;
       var termPosition = index + 1;
       var termsCount = tokens.length;
-      return Object(external_this_wp_element_["createElement"])(form_token_field_token, {
+      return Object(external_this_wp_element_["createElement"])(Token, {
         key: 'token-' + value,
         value: value,
         status: status,
@@ -33671,12 +39951,12 @@
   }, {
     key: "renderInput",
     value: function renderInput() {
-      var _this$props = this.props,
-          autoCapitalize = _this$props.autoCapitalize,
-          autoComplete = _this$props.autoComplete,
-          maxLength = _this$props.maxLength,
-          value = _this$props.value,
-          instanceId = _this$props.instanceId;
+      var _this$props2 = this.props,
+          autoCapitalize = _this$props2.autoCapitalize,
+          autoComplete = _this$props2.autoComplete,
+          maxLength = _this$props2.maxLength,
+          value = _this$props2.value,
+          instanceId = _this$props2.instanceId;
       var props = {
         instanceId: instanceId,
         autoCapitalize: autoCapitalize,
@@ -33691,7 +39971,7 @@
       };
 
       if (!(maxLength && value.length >= maxLength)) {
-        props = Object(objectSpread["a" /* default */])({}, props, {
+        props = form_token_field_objectSpread({}, props, {
           onChange: this.onInputChange
         });
       }
@@ -33701,12 +39981,12 @@
   }, {
     key: "render",
     value: function render() {
-      var _this$props2 = this.props,
-          disabled = _this$props2.disabled,
-          _this$props2$label = _this$props2.label,
-          label = _this$props2$label === void 0 ? Object(external_this_wp_i18n_["__"])('Add item') : _this$props2$label,
-          instanceId = _this$props2.instanceId,
-          className = _this$props2.className;
+      var _this$props3 = this.props,
+          disabled = _this$props3.disabled,
+          _this$props3$label = _this$props3.label,
+          label = _this$props3$label === void 0 ? Object(external_this_wp_i18n_["__"])('Add item') : _this$props3$label,
+          instanceId = _this$props3.instanceId,
+          className = _this$props3.className;
       var isExpanded = this.state.isExpanded;
       var classes = classnames_default()(className, 'components-form-token-field__input-container', {
         'is-active': this.state.isActive,
@@ -33749,10 +40029,10 @@
         scrollIntoView: this.state.selectedSuggestionScroll,
         onHover: this.onSuggestionHovered,
         onSelect: this.onSuggestionSelected
-      })), Object(external_this_wp_element_["createElement"])("div", {
+      })), Object(external_this_wp_element_["createElement"])("p", {
         id: "components-form-token-suggestions-howto-".concat(instanceId),
-        className: "screen-reader-text"
-      }, Object(external_this_wp_i18n_["__"])('Separate with commas')));
+        className: "components-form-token-field__help"
+      }, this.props.tokenizeOnSpace ? Object(external_this_wp_i18n_["__"])('Separate with commas, spaces, or the Enter key.') : Object(external_this_wp_i18n_["__"])('Separate with commas or the Enter key.')));
       /* eslint-enable jsx-a11y/no-static-element-interactions */
     }
   }], [{
@@ -33776,7 +40056,7 @@
   suggestions: Object.freeze([]),
   maxSuggestions: 100,
   value: Object.freeze([]),
-  displayTransform: external_lodash_["identity"],
+  displayTransform: external_this_lodash_["identity"],
   saveTransform: function saveTransform(token) {
     return token.trim();
   },
@@ -33793,221 +40073,1309 @@
 };
 /* harmony default export */ var form_token_field = (with_spoken_messages(Object(external_this_wp_compose_["withInstanceId"])(form_token_field_FormTokenField)));
 
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/icon/index.js
-
-
-/**
- * WordPress dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-
-function Icon(_ref) {
-  var _ref$icon = _ref.icon,
-      icon = _ref$icon === void 0 ? null : _ref$icon,
-      size = _ref.size,
-      className = _ref.className;
-  var iconSize;
-
-  if ('string' === typeof icon) {
-    // Dashicons should be 20x20 by default
-    iconSize = size || 20;
-    return Object(external_this_wp_element_["createElement"])(dashicon_Dashicon, {
-      icon: icon,
-      size: iconSize,
-      className: className
-    });
-  } // Any other icons should be 24x24 by default
-
-
-  iconSize = size || 24;
-
-  if ('function' === typeof icon) {
-    if (icon.prototype instanceof external_this_wp_element_["Component"]) {
-      return Object(external_this_wp_element_["createElement"])(icon, {
-        className: className,
-        size: iconSize
-      });
-    }
-
-    return icon();
-  }
-
-  if (icon && (icon.type === 'svg' || icon.type === svg_SVG)) {
-    var appliedProps = Object(objectSpread["a" /* default */])({
-      className: className,
-      width: iconSize,
-      height: iconSize
-    }, icon.props);
-
-    return Object(external_this_wp_element_["createElement"])(svg_SVG, appliedProps);
-  }
-
-  if (Object(external_this_wp_element_["isValidElement"])(icon)) {
-    return Object(external_this_wp_element_["cloneElement"])(icon, {
-      className: className,
-      size: iconSize
-    });
-  }
-
-  return icon;
-}
-
-/* harmony default export */ var build_module_icon = (Icon);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/menu-group/index.js
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-/**
- * Internal dependencies
- */
-
-
-function MenuGroup(_ref) {
-  var children = _ref.children,
-      _ref$className = _ref.className,
-      className = _ref$className === void 0 ? '' : _ref$className,
-      instanceId = _ref.instanceId,
-      label = _ref.label;
-
-  if (!external_this_wp_element_["Children"].count(children)) {
-    return null;
-  }
-
-  var labelId = "components-menu-group-label-".concat(instanceId);
-  var classNames = classnames_default()(className, 'components-menu-group');
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/custom-gradient-picker/icons.js
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+var LinearGradientIcon = Object(external_this_wp_compose_["withInstanceId"])(function (_ref) {
+  var instanceId = _ref.instanceId;
+  var linerGradientId = "linear-gradient-".concat(instanceId);
+  return Object(external_this_wp_element_["createElement"])(external_this_wp_primitives_["SVG"], {
+    fill: "none",
+    height: "20",
+    viewBox: "0 0 20 20",
+    width: "20",
+    xmlns: "http://www.w3.org/2000/svg"
+  }, Object(external_this_wp_element_["createElement"])(external_this_wp_primitives_["LinearGradient"], {
+    id: linerGradientId,
+    gradientUnits: "userSpaceOnUse",
+    x1: "10",
+    x2: "10",
+    y1: "1",
+    y2: "19"
+  }, Object(external_this_wp_element_["createElement"])(external_this_wp_primitives_["Stop"], {
+    offset: "0",
+    stopColor: "#000000"
+  }), Object(external_this_wp_element_["createElement"])(external_this_wp_primitives_["Stop"], {
+    offset: "1",
+    stopColor: "#ffffff"
+  })), Object(external_this_wp_element_["createElement"])(external_this_wp_primitives_["Path"], {
+    d: "m1 1h18v18h-18z",
+    fill: "url(#".concat(linerGradientId, ")")
+  }));
+});
+var RadialGradientIcon = Object(external_this_wp_compose_["withInstanceId"])(function (_ref2) {
+  var instanceId = _ref2.instanceId;
+  var radialGradientId = "radial-gradient-".concat(instanceId);
+  return Object(external_this_wp_element_["createElement"])(external_this_wp_primitives_["SVG"], {
+    fill: "none",
+    height: "20",
+    viewBox: "0 0 20 20",
+    width: "20",
+    xmlns: "http://www.w3.org/2000/svg"
+  }, Object(external_this_wp_element_["createElement"])(external_this_wp_primitives_["RadialGradient"], {
+    id: radialGradientId,
+    cx: "0",
+    cy: "0",
+    gradientTransform: "matrix(0 9 -9 0 10 10)",
+    gradientUnits: "userSpaceOnUse",
+    r: "1"
+  }, Object(external_this_wp_element_["createElement"])(external_this_wp_primitives_["Stop"], {
+    offset: "0",
+    stopColor: "#000000"
+  }), Object(external_this_wp_element_["createElement"])(external_this_wp_primitives_["Stop"], {
+    offset: "1",
+    stopColor: "#ffffff"
+  })), Object(external_this_wp_element_["createElement"])(external_this_wp_primitives_["Circle"], {
+    cx: "10",
+    cy: "10",
+    fill: "url(#".concat(radialGradientId, ")"),
+    r: "9"
+  }));
+});
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/plus-circle.js
+
+
+/**
+ * WordPress dependencies
+ */
+
+var plusCircle = Object(external_this_wp_element_["createElement"])(external_this_wp_primitives_["SVG"], {
+  xmlns: "http://www.w3.org/2000/svg",
+  viewBox: "-2 -2 24 24"
+}, Object(external_this_wp_element_["createElement"])(external_this_wp_primitives_["Path"], {
+  d: "M10 1c-5 0-9 4-9 9s4 9 9 9 9-4 9-9-4-9-9-9zm0 16c-3.9 0-7-3.1-7-7s3.1-7 7-7 7 3.1 7 7-3.1 7-7 7zm1-11H9v3H6v2h3v3h2v-3h3V9h-3V6zM10 1c-5 0-9 4-9 9s4 9 9 9 9-4 9-9-4-9-9-9zm0 16c-3.9 0-7-3.1-7-7s3.1-7 7-7 7 3.1 7 7-3.1 7-7 7zm1-11H9v3H6v2h3v3h2v-3h3V9h-3V6z"
+}));
+/* harmony default export */ var plus_circle = (plusCircle);
+
+// EXTERNAL MODULE: ./node_modules/gradient-parser/build/node.js
+var build_node = __webpack_require__(195);
+var node_default = /*#__PURE__*/__webpack_require__.n(build_node);
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/custom-gradient-picker/constants.js
+var INSERT_POINT_WIDTH = 23;
+var GRADIENT_MARKERS_WIDTH = 18;
+var MINIMUM_DISTANCE_BETWEEN_INSERTER_AND_MARKER = (INSERT_POINT_WIDTH + GRADIENT_MARKERS_WIDTH) / 2;
+var MINIMUM_ABSOLUTE_LEFT_POSITION = 5;
+var MINIMUM_DISTANCE_BETWEEN_POINTS = 9;
+var MINIMUM_SIGNIFICANT_MOVE = 5;
+var DEFAULT_GRADIENT = 'linear-gradient(135deg, rgba(6, 147, 227, 1) 0%, rgb(155, 81, 224) 100%)';
+var COLOR_POPOVER_PROPS = {
+  className: 'components-custom-gradient-picker__color-picker-popover',
+  position: 'top'
+};
+var DEFAULT_LINEAR_GRADIENT_ANGLE = 180;
+var HORIZONTAL_GRADIENT_ORIENTATION = {
+  type: 'angular',
+  value: 90
+};
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/custom-gradient-picker/serializer.js
+
+
+/**
+ * External dependencies
+ */
+
+function serializeGradientColor(_ref) {
+  var type = _ref.type,
+      value = _ref.value;
+
+  if (type === 'literal' || type === 'hex') {
+    return value;
+  }
+
+  return "".concat(type, "(").concat(value.join(','), ")");
+}
+function serializeGradientPosition(_ref2) {
+  var type = _ref2.type,
+      value = _ref2.value;
+  return "".concat(value).concat(type);
+}
+function serializeGradientColorStop(_ref3) {
+  var type = _ref3.type,
+      value = _ref3.value,
+      length = _ref3.length;
+  return "".concat(serializeGradientColor({
+    type: type,
+    value: value
+  }), " ").concat(serializeGradientPosition(length));
+}
+function serializeGradientOrientation(orientation) {
+  if (!orientation || orientation.type !== 'angular') {
+    return;
+  }
+
+  return "".concat(orientation.value, "deg");
+}
+function serializeGradient(_ref4) {
+  var type = _ref4.type,
+      orientation = _ref4.orientation,
+      colorStops = _ref4.colorStops;
+  var serializedOrientation = serializeGradientOrientation(orientation);
+  var serializedColorStops = colorStops.sort(function (colorStop1, colorStop2) {
+    return Object(external_this_lodash_["get"])(colorStop1, ['length', 'value'], 0) - Object(external_this_lodash_["get"])(colorStop2, ['length', 'value'], 0);
+  }).map(serializeGradientColorStop);
+  return "".concat(type, "(").concat(Object(external_this_lodash_["compact"])([serializedOrientation].concat(Object(toConsumableArray["a" /* default */])(serializedColorStops))).join(','), ")");
+}
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/custom-gradient-picker/utils.js
+
+
+
+function utils_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 utils_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { utils_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty["a" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { utils_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+function tinyColorRgbToGradientColorStop(_ref) {
+  var r = _ref.r,
+      g = _ref.g,
+      b = _ref.b,
+      a = _ref.a;
+
+  if (a === 1) {
+    return {
+      type: 'rgb',
+      value: [r, g, b]
+    };
+  }
+
+  return {
+    type: 'rgba',
+    value: [r, g, b, a]
+  };
+}
+
+function getGradientWithColorStopAdded(gradientAST, relativePosition, rgbaColor) {
+  var colorStop = tinyColorRgbToGradientColorStop(rgbaColor);
+  colorStop.length = {
+    type: '%',
+    value: relativePosition
+  };
+  return utils_objectSpread({}, gradientAST, {
+    colorStops: [].concat(Object(toConsumableArray["a" /* default */])(gradientAST.colorStops), [colorStop])
+  });
+}
+function getGradientWithPositionAtIndexChanged(gradientAST, index, relativePosition) {
+  return utils_objectSpread({}, gradientAST, {
+    colorStops: gradientAST.colorStops.map(function (colorStop, colorStopIndex) {
+      if (colorStopIndex !== index) {
+        return colorStop;
+      }
+
+      return utils_objectSpread({}, colorStop, {
+        length: utils_objectSpread({}, colorStop.length, {
+          value: relativePosition
+        })
+      });
+    })
+  });
+}
+function isControlPointOverlapping(gradientAST, position, initialIndex) {
+  var initialPosition = parseInt(gradientAST.colorStops[initialIndex].length.value);
+  var minPosition = Math.min(initialPosition, position);
+  var maxPosition = Math.max(initialPosition, position);
+  return Object(external_this_lodash_["some"])(gradientAST.colorStops, function (_ref2, index) {
+    var length = _ref2.length;
+    var itemPosition = parseInt(length.value);
+    return index !== initialIndex && (Math.abs(itemPosition - position) < MINIMUM_DISTANCE_BETWEEN_POINTS || minPosition < itemPosition && itemPosition < maxPosition);
+  });
+}
+
+function getGradientWithPositionAtIndexSummed(gradientAST, index, valueToSum) {
+  var currentPosition = gradientAST.colorStops[index].length.value;
+  var newPosition = Math.max(0, Math.min(100, parseInt(currentPosition) + valueToSum));
+
+  if (isControlPointOverlapping(gradientAST, newPosition, index)) {
+    return gradientAST;
+  }
+
+  return getGradientWithPositionAtIndexChanged(gradientAST, index, newPosition);
+}
+
+function getGradientWithPositionAtIndexIncreased(gradientAST, index) {
+  return getGradientWithPositionAtIndexSummed(gradientAST, index, MINIMUM_DISTANCE_BETWEEN_POINTS);
+}
+function getGradientWithPositionAtIndexDecreased(gradientAST, index) {
+  return getGradientWithPositionAtIndexSummed(gradientAST, index, -MINIMUM_DISTANCE_BETWEEN_POINTS);
+}
+function getGradientWithColorAtIndexChanged(gradientAST, index, rgbaColor) {
+  return utils_objectSpread({}, gradientAST, {
+    colorStops: gradientAST.colorStops.map(function (colorStop, colorStopIndex) {
+      if (colorStopIndex !== index) {
+        return colorStop;
+      }
+
+      return utils_objectSpread({}, colorStop, {}, tinyColorRgbToGradientColorStop(rgbaColor));
+    })
+  });
+}
+function getGradientWithColorAtPositionChanged(gradientAST, relativePositionValue, rgbaColor) {
+  var index = Object(external_this_lodash_["findIndex"])(gradientAST.colorStops, function (colorStop) {
+    return colorStop && colorStop.length && colorStop.length.type === '%' && colorStop.length.value === relativePositionValue.toString();
+  });
+  return getGradientWithColorAtIndexChanged(gradientAST, index, rgbaColor);
+}
+function getGradientWithControlPointRemoved(gradientAST, index) {
+  return utils_objectSpread({}, gradientAST, {
+    colorStops: gradientAST.colorStops.filter(function (elem, elemIndex) {
+      return elemIndex !== index;
+    })
+  });
+}
+function getHorizontalRelativeGradientPosition(mouseXCoordinate, containerElement, positionedElementWidth) {
+  if (!containerElement) {
+    return;
+  }
+
+  var _containerElement$get = containerElement.getBoundingClientRect(),
+      x = _containerElement$get.x,
+      width = _containerElement$get.width;
+
+  var absolutePositionValue = mouseXCoordinate - x - MINIMUM_ABSOLUTE_LEFT_POSITION - positionedElementWidth / 2;
+  var availableWidth = width - MINIMUM_ABSOLUTE_LEFT_POSITION - INSERT_POINT_WIDTH;
+  return Math.round(Math.min(Math.max(absolutePositionValue * 100 / availableWidth, 0), 100));
+}
+/**
+ * Returns the marker points from a gradient AST.
+ *
+ * @param {Object} gradientAST An object representing the gradient AST.
+ *
+ * @return {Array.<{color: string, position: string, positionValue: number}>}
+ *         An array of markerPoint objects.
+ *         color:         A string with the color code ready to be used in css style e.g: "rgba( 1, 2 , 3, 0.5)".
+ *         position:      A string with the position ready to be used in css style e.g: "70%".
+ *         positionValue: A number with the relative position value e.g: 70.
+ */
+
+function getMarkerPoints(gradientAST) {
+  if (!gradientAST) {
+    return [];
+  }
+
+  return Object(external_this_lodash_["map"])(gradientAST.colorStops, function (colorStop) {
+    if (!colorStop || !colorStop.length || colorStop.length.type !== '%') {
+      return null;
+    }
+
+    return {
+      color: serializeGradientColor(colorStop),
+      position: serializeGradientPosition(colorStop.length),
+      positionValue: parseInt(colorStop.length.value)
+    };
+  });
+}
+function getLinearGradientRepresentationOfARadial(gradientAST) {
+  return serializeGradient({
+    type: 'linear-gradient',
+    orientation: HORIZONTAL_GRADIENT_ORIENTATION,
+    colorStops: gradientAST.colorStops
+  });
+}
+var 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
+};
+function getGradientParsed(value) {
+  var hasGradient = !!value; // 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.
+
+  var gradientAST;
+  var gradientValue;
+
+  try {
+    gradientAST = node_default.a.parse(value || DEFAULT_GRADIENT)[0];
+    gradientValue = value || DEFAULT_GRADIENT;
+  } catch (error) {
+    hasGradient = false;
+    gradientAST = node_default.a.parse(DEFAULT_GRADIENT)[0];
+    gradientValue = DEFAULT_GRADIENT;
+  }
+
+  if (gradientAST.orientation && gradientAST.orientation.type === 'directional') {
+    gradientAST.orientation.type = 'angular';
+    gradientAST.orientation.value = DIRECTIONAL_ORIENTATION_ANGLE_MAP[gradientAST.orientation.value].toString();
+  }
+
+  return {
+    hasGradient: hasGradient,
+    gradientAST: gradientAST,
+    gradientValue: gradientValue
+  };
+}
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/custom-gradient-picker/control-points.js
+
+
+
+
+
+
+
+
+
+
+function control_points_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf["a" /* default */])(Derived), result; if (control_points_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf["a" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn["a" /* default */])(this, result); }; }
+
+function control_points_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+
+
+
+var control_points_ControlPointKeyboardMove = /*#__PURE__*/function (_Component) {
+  Object(inherits["a" /* default */])(ControlPointKeyboardMove, _Component);
+
+  var _super = control_points_createSuper(ControlPointKeyboardMove);
+
+  function ControlPointKeyboardMove() {
+    var _this;
+
+    Object(classCallCheck["a" /* default */])(this, ControlPointKeyboardMove);
+
+    _this = _super.apply(this, arguments);
+    _this.increase = _this.increase.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.decrease = _this.decrease.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.shortcuts = {
+      right: _this.increase,
+      left: _this.decrease
+    };
+    return _this;
+  }
+
+  Object(createClass["a" /* default */])(ControlPointKeyboardMove, [{
+    key: "increase",
+    value: function increase(event) {
+      // Stop propagation of the key press event to avoid focus moving
+      // to another editor area.
+      event.stopPropagation();
+      var _this$props = this.props,
+          gradientIndex = _this$props.gradientIndex,
+          onChange = _this$props.onChange,
+          gradientAST = _this$props.gradientAST;
+      onChange(getGradientWithPositionAtIndexIncreased(gradientAST, gradientIndex));
+    }
+  }, {
+    key: "decrease",
+    value: function decrease(event) {
+      // Stop propagation of the key press event to avoid focus moving
+      // to another editor area.
+      event.stopPropagation();
+      var _this$props2 = this.props,
+          gradientIndex = _this$props2.gradientIndex,
+          onChange = _this$props2.onChange,
+          gradientAST = _this$props2.gradientAST;
+      onChange(getGradientWithPositionAtIndexDecreased(gradientAST, gradientIndex));
+    }
+  }, {
+    key: "render",
+    value: function render() {
+      var children = this.props.children;
+      return Object(external_this_wp_element_["createElement"])(keyboard_shortcuts, {
+        shortcuts: this.shortcuts
+      }, children);
+    }
+  }]);
+
+  return ControlPointKeyboardMove;
+}(external_this_wp_element_["Component"]);
+
+function ControlPointButton(_ref) {
+  var isOpen = _ref.isOpen,
+      position = _ref.position,
+      color = _ref.color,
+      onChange = _ref.onChange,
+      gradientIndex = _ref.gradientIndex,
+      gradientAST = _ref.gradientAST,
+      additionalProps = Object(objectWithoutProperties["a" /* default */])(_ref, ["isOpen", "position", "color", "onChange", "gradientIndex", "gradientAST"]);
+
+  var instanceId = Object(external_this_wp_compose_["useInstanceId"])(ControlPointButton);
+  var descriptionId = "components-custom-gradient-picker__control-point-button-description-".concat(instanceId);
+  return Object(external_this_wp_element_["createElement"])(control_points_ControlPointKeyboardMove, {
+    onChange: onChange,
+    gradientIndex: gradientIndex,
+    gradientAST: gradientAST
+  }, Object(external_this_wp_element_["createElement"])(build_module_button["a" /* default */], Object(esm_extends["a" /* default */])({
+    "aria-label": Object(external_this_wp_i18n_["sprintf"])( // translators: %1$s: gradient position e.g: 70%, %2$s: gradient color code e.g: rgb(52,121,151).
+    Object(external_this_wp_i18n_["__"])('Gradient control point at position %1$s with color code %2$s.'), position, color),
+    "aria-describedby": descriptionId,
+    "aria-expanded": isOpen,
+    className: classnames_default()('components-custom-gradient-picker__control-point-button', {
+      'is-active': isOpen
+    }),
+    style: {
+      left: position
+    }
+  }, additionalProps)), Object(external_this_wp_element_["createElement"])(visually_hidden, {
+    id: descriptionId
+  }, Object(external_this_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(_ref2) {
+  var gradientPickerDomRef = _ref2.gradientPickerDomRef,
+      ignoreMarkerPosition = _ref2.ignoreMarkerPosition,
+      markerPoints = _ref2.markerPoints,
+      onChange = _ref2.onChange,
+      gradientAST = _ref2.gradientAST,
+      onStartControlPointChange = _ref2.onStartControlPointChange,
+      onStopControlPointChange = _ref2.onStopControlPointChange;
+  var controlPointMoveState = Object(external_this_wp_element_["useRef"])();
+
+  var onMouseMove = function onMouseMove(event) {
+    var relativePosition = getHorizontalRelativeGradientPosition(event.clientX, gradientPickerDomRef.current, GRADIENT_MARKERS_WIDTH);
+    var _controlPointMoveStat = controlPointMoveState.current,
+        referenceGradientAST = _controlPointMoveStat.gradientAST,
+        position = _controlPointMoveStat.position,
+        significantMoveHappened = _controlPointMoveStat.significantMoveHappened;
+
+    if (!significantMoveHappened) {
+      var initialPosition = referenceGradientAST.colorStops[position].length.value;
+
+      if (Math.abs(initialPosition - relativePosition) >= MINIMUM_SIGNIFICANT_MOVE) {
+        controlPointMoveState.current.significantMoveHappened = true;
+      }
+    }
+
+    if (!isControlPointOverlapping(referenceGradientAST, relativePosition, position)) {
+      onChange(getGradientWithPositionAtIndexChanged(referenceGradientAST, position, relativePosition));
+    }
+  };
+
+  var cleanEventListeners = function 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_this_wp_element_["useEffect"])(function () {
+    return function () {
+      cleanEventListeners();
+    };
+  }, []);
+  return markerPoints.map(function (point, index) {
+    return point && ignoreMarkerPosition !== point.positionValue && Object(external_this_wp_element_["createElement"])(Dropdown, {
+      key: index,
+      onClose: onStopControlPointChange,
+      renderToggle: function renderToggle(_ref3) {
+        var isOpen = _ref3.isOpen,
+            onToggle = _ref3.onToggle;
+        return Object(external_this_wp_element_["createElement"])(ControlPointButton, {
+          key: index,
+          onClick: function onClick() {
+            if (controlPointMoveState.current && controlPointMoveState.current.significantMoveHappened) {
+              return;
+            }
+
+            if (isOpen) {
+              onStopControlPointChange();
+            } else {
+              onStartControlPointChange();
+            }
+
+            onToggle();
+          },
+          onMouseDown: function onMouseDown() {
+            if (window && window.addEventListener) {
+              controlPointMoveState.current = {
+                gradientAST: gradientAST,
+                position: index,
+                significantMoveHappened: false,
+                listenersActivated: true
+              };
+              onStartControlPointChange();
+              window.addEventListener('mousemove', onMouseMove);
+              window.addEventListener('mouseup', cleanEventListeners);
+            }
+          },
+          isOpen: isOpen,
+          position: point.position,
+          color: point.color,
+          onChange: onChange,
+          gradientAST: gradientAST,
+          gradientIndex: index
+        });
+      },
+      renderContent: function renderContent(_ref4) {
+        var onClose = _ref4.onClose;
+        return Object(external_this_wp_element_["createElement"])(external_this_wp_element_["Fragment"], null, Object(external_this_wp_element_["createElement"])(color_picker_ColorPicker, {
+          color: point.color,
+          onChangeComplete: function onChangeComplete(_ref5) {
+            var rgb = _ref5.rgb;
+            onChange(getGradientWithColorAtIndexChanged(gradientAST, index, rgb));
+          }
+        }), Object(external_this_wp_element_["createElement"])(build_module_button["a" /* default */], {
+          className: "components-custom-gradient-picker__remove-control-point",
+          onClick: function onClick() {
+            onChange(getGradientWithControlPointRemoved(gradientAST, index));
+            onClose();
+          },
+          isLink: true
+        }, Object(external_this_wp_i18n_["__"])('Remove Control Point')));
+      },
+      popoverProps: COLOR_POPOVER_PROPS
+    });
+  });
+}
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/custom-gradient-picker/custom-gradient-bar.js
+
+
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+
+
+
+function InsertPoint(_ref) {
+  var onChange = _ref.onChange,
+      gradientAST = _ref.gradientAST,
+      onOpenInserter = _ref.onOpenInserter,
+      onCloseInserter = _ref.onCloseInserter,
+      insertPosition = _ref.insertPosition;
+
+  var _useState = Object(external_this_wp_element_["useState"])(false),
+      _useState2 = Object(slicedToArray["a" /* default */])(_useState, 2),
+      alreadyInsertedPoint = _useState2[0],
+      setAlreadyInsertedPoint = _useState2[1];
+
+  return Object(external_this_wp_element_["createElement"])(Dropdown, {
+    className: "components-custom-gradient-picker__inserter",
+    onClose: function onClose() {
+      onCloseInserter();
+    },
+    renderToggle: function renderToggle(_ref2) {
+      var isOpen = _ref2.isOpen,
+          onToggle = _ref2.onToggle;
+      return Object(external_this_wp_element_["createElement"])(build_module_button["a" /* default */], {
+        "aria-expanded": isOpen,
+        onClick: function onClick() {
+          if (isOpen) {
+            onCloseInserter();
+          } else {
+            setAlreadyInsertedPoint(false);
+            onOpenInserter();
+          }
+
+          onToggle();
+        },
+        className: "components-custom-gradient-picker__insert-point",
+        icon: plus_circle,
+        style: {
+          left: insertPosition !== null ? "".concat(insertPosition, "%") : undefined
+        }
+      });
+    },
+    renderContent: function renderContent() {
+      return Object(external_this_wp_element_["createElement"])(color_picker_ColorPicker, {
+        onChangeComplete: function onChangeComplete(_ref3) {
+          var rgb = _ref3.rgb;
+          var newGradient;
+
+          if (alreadyInsertedPoint) {
+            newGradient = getGradientWithColorAtPositionChanged(gradientAST, insertPosition, rgb);
+          } else {
+            newGradient = getGradientWithColorStopAdded(gradientAST, insertPosition, rgb);
+            setAlreadyInsertedPoint(true);
+          }
+
+          onChange(newGradient);
+        }
+      });
+    },
+    popoverProps: COLOR_POPOVER_PROPS
+  });
+}
+
+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;
+}
+
+var customGradientBarReducerInitialState = {
+  id: 'IDLE'
+};
+function CustomGradientBar(_ref4) {
+  var value = _ref4.value,
+      onChange = _ref4.onChange;
+
+  var _getGradientParsed = getGradientParsed(value),
+      gradientAST = _getGradientParsed.gradientAST,
+      gradientValue = _getGradientParsed.gradientValue,
+      hasGradient = _getGradientParsed.hasGradient;
+
+  var onGradientStructureChange = function onGradientStructureChange(newGradientStructure) {
+    onChange(serializeGradient(newGradientStructure));
+  };
+
+  var gradientPickerDomRef = Object(external_this_wp_element_["useRef"])();
+  var markerPoints = getMarkerPoints(gradientAST);
+
+  var _useReducer = Object(external_this_wp_element_["useReducer"])(customGradientBarReducer, customGradientBarReducerInitialState),
+      _useReducer2 = Object(slicedToArray["a" /* default */])(_useReducer, 2),
+      gradientBarState = _useReducer2[0],
+      gradientBarStateDispatch = _useReducer2[1];
+
+  var onMouseEnterAndMove = function onMouseEnterAndMove(event) {
+    var 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_this_lodash_["some"])(markerPoints, function (_ref5) {
+      var positionValue = _ref5.positionValue;
+      return Math.abs(insertPosition - positionValue) < MINIMUM_DISTANCE_BETWEEN_POINTS;
+    })) {
+      if (gradientBarState.id === 'MOVING_INSERTER') {
+        gradientBarStateDispatch({
+          type: 'STOP_INSERTER_MOVE'
+        });
+      }
+
+      return;
+    }
+
+    gradientBarStateDispatch({
+      type: 'MOVE_INSERTER',
+      insertPosition: insertPosition
+    });
+  };
+
+  var onMouseLeave = function onMouseLeave() {
+    gradientBarStateDispatch({
+      type: 'STOP_INSERTER_MOVE'
+    });
+  };
+
+  var isMovingInserter = gradientBarState.id === 'MOVING_INSERTER';
+  var isInsertingControlPoint = gradientBarState.id === 'INSERTING_CONTROL_POINT';
   return Object(external_this_wp_element_["createElement"])("div", {
-    className: classNames
-  }, label && Object(external_this_wp_element_["createElement"])("div", {
-    className: "components-menu-group__label",
-    id: labelId
-  }, label), Object(external_this_wp_element_["createElement"])(menu, {
-    orientation: "vertical",
-    "aria-labelledby": label ? labelId : null
-  }, children));
-}
-/* harmony default export */ var menu_group = (Object(external_this_wp_compose_["withInstanceId"])(MenuGroup));
-
-// 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.
- *
- * @return {WPElement} More menu item.
- */
-
-function MenuItem(_ref) {
-  var children = _ref.children,
-      info = _ref.info,
+    ref: gradientPickerDomRef,
+    className: classnames_default()('components-custom-gradient-picker__gradient-bar', {
+      'has-gradient': hasGradient
+    }),
+    onMouseEnter: onMouseEnterAndMove,
+    onMouseMove: onMouseEnterAndMove // 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.
+    ,
+    style: {
+      background: gradientAST.type === 'radial-gradient' ? getLinearGradientRepresentationOfARadial(gradientAST) : gradientValue
+    },
+    onMouseLeave: onMouseLeave
+  }, Object(external_this_wp_element_["createElement"])("div", {
+    className: "components-custom-gradient-picker__markers-container"
+  }, (isMovingInserter || isInsertingControlPoint) && Object(external_this_wp_element_["createElement"])(InsertPoint, {
+    insertPosition: gradientBarState.insertPosition,
+    onChange: onGradientStructureChange,
+    gradientAST: gradientAST,
+    onOpenInserter: function onOpenInserter() {
+      gradientBarStateDispatch({
+        type: 'OPEN_INSERTER'
+      });
+    },
+    onCloseInserter: function onCloseInserter() {
+      gradientBarStateDispatch({
+        type: 'CLOSE_INSERTER'
+      });
+    }
+  }), Object(external_this_wp_element_["createElement"])(ControlPoints, {
+    gradientPickerDomRef: gradientPickerDomRef,
+    ignoreMarkerPosition: isInsertingControlPoint ? gradientBarState.insertPosition : undefined,
+    markerPoints: markerPoints,
+    onChange: onGradientStructureChange,
+    gradientAST: gradientAST,
+    onStartControlPointChange: function onStartControlPointChange() {
+      gradientBarStateDispatch({
+        type: 'START_CONTROL_CHANGE'
+      });
+    },
+    onStopControlPointChange: function onStopControlPointChange() {
+      gradientBarStateDispatch({
+        type: 'STOP_CONTROL_CHANGE'
+      });
+    }
+  })));
+}
+
+// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/toolbar-item/index.js
+var toolbar_item = __webpack_require__(132);
+
+// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/toolbar-context/index.js
+var toolbar_context = __webpack_require__(87);
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/toolbar-button/toolbar-button-container.js
+
+
+var toolbar_button_container_ToolbarButtonContainer = function ToolbarButtonContainer(props) {
+  return Object(external_this_wp_element_["createElement"])("div", {
+    className: props.className
+  }, props.children);
+};
+
+/* harmony default export */ var toolbar_button_container = (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) {
+  var containerClassName = _ref.containerClassName,
       className = _ref.className,
-      icon = _ref.icon,
-      shortcut = _ref.shortcut,
-      isSelected = _ref.isSelected,
-      _ref$role = _ref.role,
-      role = _ref$role === void 0 ? 'menuitem' : _ref$role,
-      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["children", "info", "className", "icon", "shortcut", "isSelected", "role"]);
-
-  className = classnames_default()('components-menu-item__button', className, {
-    'has-icon': icon
-  });
-
-  if (info) {
-    children = Object(external_this_wp_element_["createElement"])("span", {
-      className: "components-menu-item__info-wrapper"
-    }, children, Object(external_this_wp_element_["createElement"])("span", {
-      className: "components-menu-item__info"
-    }, info));
-  }
-
-  var tagName = build_module_button;
-
-  if (icon) {
-    if (!Object(external_lodash_["isString"])(icon)) {
-      icon = Object(external_this_wp_element_["cloneElement"])(icon, {
-        className: 'components-menu-items__item-icon',
-        height: 20,
-        width: 20
-      });
-    }
-
-    tagName = icon_button;
-    props.icon = icon;
-  }
-
-  return Object(external_this_wp_element_["createElement"])(tagName, Object(objectSpread["a" /* default */])({
-    // 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,
+      extraProps = _ref.extraProps,
+      children = _ref.children,
+      title = _ref.title,
+      isActive = _ref.isActive,
+      isDisabled = _ref.isDisabled,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["containerClassName", "className", "extraProps", "children", "title", "isActive", "isDisabled"]);
+
+  var accessibleToolbarState = Object(external_this_wp_element_["useContext"])(toolbar_context["a" /* default */]);
+
+  if (!accessibleToolbarState) {
+    // This should be deprecated when <Toolbar __experimentalAccessibilityLabel="label">
+    // becomes stable.
+    return Object(external_this_wp_element_["createElement"])(toolbar_button_container, {
+      className: containerClassName
+    }, Object(external_this_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: function onClick(event) {
+        event.stopPropagation();
+
+        if (props.onClick) {
+          props.onClick(event);
+        }
+      },
+      className: classnames_default()('components-toolbar__control', className),
+      isPressed: isActive,
+      disabled: isDisabled,
+      "data-experimental-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_this_wp_element_["createElement"])(toolbar_item["a" /* default */], Object(esm_extends["a" /* default */])({
+    className: classnames_default()('components-toolbar-button', className)
+  }, extraProps, props, {
+    ref: ref
+  }), function (toolbarItemProps) {
+    return Object(external_this_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_this_wp_element_["forwardRef"])(ToolbarButton));
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/toolbar-group/toolbar-group-container.js
+
+
+
+
+var toolbar_group_container_ToolbarGroupContainer = function ToolbarGroupContainer(_ref) {
+  var className = _ref.className,
+      children = _ref.children,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["className", "children"]);
+
+  return Object(external_this_wp_element_["createElement"])("div", Object(esm_extends["a" /* default */])({
     className: className
-  }, props), children, Object(external_this_wp_element_["createElement"])(build_module_shortcut, {
-    className: "components-menu-item__shortcut",
-    shortcut: shortcut
+  }, props), children);
+};
+
+/* harmony default export */ var toolbar_group_container = (toolbar_group_container_ToolbarGroupContainer);
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/toolbar-group/toolbar-group-collapsed.js
+
+
+
+
+
+function toolbar_group_collapsed_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 toolbar_group_collapsed_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { toolbar_group_collapsed_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty["a" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { toolbar_group_collapsed_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+function ToolbarGroupCollapsed(_ref) {
+  var _ref$controls = _ref.controls,
+      controls = _ref$controls === void 0 ? [] : _ref$controls,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["controls"]);
+
+  // It'll contain state if `ToolbarGroup` is being used within
+  // `<Toolbar __experimentalAccessibilityLabel="label" />`
+  var accessibleToolbarState = Object(external_this_wp_element_["useContext"])(toolbar_context["a" /* default */]);
+
+  var renderDropdownMenu = function renderDropdownMenu(toggleProps) {
+    return Object(external_this_wp_element_["createElement"])(dropdown_menu, Object(esm_extends["a" /* default */])({
+      controls: controls,
+      toggleProps: toolbar_group_collapsed_objectSpread({}, toggleProps, {
+        'data-experimental-toolbar-item': true
+      })
+    }, props));
+  };
+
+  if (accessibleToolbarState) {
+    return Object(external_this_wp_element_["createElement"])(toolbar_item["a" /* default */], null, renderDropdownMenu);
+  }
+
+  return renderDropdownMenu();
+}
+
+/* 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) {
+  var _ref$controls = _ref.controls,
+      controls = _ref$controls === void 0 ? [] : _ref$controls,
+      children = _ref.children,
+      className = _ref.className,
+      isCollapsed = _ref.isCollapsed,
+      title = _ref.title,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["controls", "children", "className", "isCollapsed", "title"]);
+
+  // It'll contain state if `ToolbarGroup` is being used within
+  // `<Toolbar accessibilityLabel="label" />`
+  var accessibleToolbarState = Object(external_this_wp_element_["useContext"])(toolbar_context["a" /* default */]);
+
+  if ((!controls || !controls.length) && !children) {
+    return null;
+  }
+
+  var 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)
+
+  var controlSets = controls;
+
+  if (!Array.isArray(controlSets[0])) {
+    controlSets = [controlSets];
+  }
+
+  if (isCollapsed) {
+    return Object(external_this_wp_element_["createElement"])(toolbar_group_collapsed, Object(esm_extends["a" /* default */])({
+      label: title,
+      controls: controlSets,
+      className: finalClassName,
+      children: children
+    }, props));
+  }
+
+  return Object(external_this_wp_element_["createElement"])(toolbar_group_container, Object(esm_extends["a" /* default */])({
+    className: finalClassName
+  }, props), Object(external_this_lodash_["flatMap"])(controlSets, function (controlSet, indexOfSet) {
+    return controlSet.map(function (control, indexOfControl) {
+      return Object(external_this_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/@wordpress/components/build-module/custom-gradient-picker/index.js
+
+
+
+function custom_gradient_picker_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 custom_gradient_picker_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { custom_gradient_picker_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty["a" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { custom_gradient_picker_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+
+
+
+
+var custom_gradient_picker_GradientAnglePicker = function GradientAnglePicker(_ref) {
+  var gradientAST = _ref.gradientAST,
+      hasGradient = _ref.hasGradient,
+      onChange = _ref.onChange;
+  var angle = Object(external_this_lodash_["get"])(gradientAST, ['orientation', 'value'], DEFAULT_LINEAR_GRADIENT_ANGLE);
+
+  var onAngleChange = function onAngleChange(newAngle) {
+    onChange(serializeGradient(custom_gradient_picker_objectSpread({}, gradientAST, {
+      orientation: {
+        type: 'angular',
+        value: newAngle
+      }
+    })));
+  };
+
+  return Object(external_this_wp_element_["createElement"])(AnglePickerControl, {
+    value: hasGradient ? angle : '',
+    onChange: onAngleChange
+  });
+};
+
+var custom_gradient_picker_GradientTypePicker = function GradientTypePicker(_ref2) {
+  var gradientAST = _ref2.gradientAST,
+      hasGradient = _ref2.hasGradient,
+      onChange = _ref2.onChange;
+  var type = gradientAST.type;
+
+  var onSetLinearGradient = function onSetLinearGradient() {
+    onChange(serializeGradient(custom_gradient_picker_objectSpread({}, gradientAST, {}, gradientAST.orientation ? {} : {
+      orientation: HORIZONTAL_GRADIENT_ORIENTATION
+    }, {
+      type: 'linear-gradient'
+    })));
+  };
+
+  var onSetRadialGradient = function onSetRadialGradient() {
+    onChange(serializeGradient(custom_gradient_picker_objectSpread({}, Object(external_this_lodash_["omit"])(gradientAST, ['orientation']), {
+      type: 'radial-gradient'
+    })));
+  };
+
+  return Object(external_this_wp_element_["createElement"])(base_control, {
+    className: "components-custom-gradient-picker__type-picker"
+  }, Object(external_this_wp_element_["createElement"])(base_control.VisualLabel, null, Object(external_this_wp_i18n_["__"])('Type')), Object(external_this_wp_element_["createElement"])(toolbar_group, {
+    className: "components-custom-gradient-picker__toolbar",
+    controls: [{
+      icon: Object(external_this_wp_element_["createElement"])(LinearGradientIcon, null),
+      title: Object(external_this_wp_i18n_["__"])('Linear Gradient'),
+      isActive: hasGradient && type === 'linear-gradient',
+      onClick: onSetLinearGradient
+    }, {
+      icon: Object(external_this_wp_element_["createElement"])(RadialGradientIcon, null),
+      title: Object(external_this_wp_i18n_["__"])('Radial Gradient'),
+      isActive: hasGradient && type === 'radial-gradient',
+      onClick: onSetRadialGradient
+    }]
   }));
-}
-/* harmony default export */ var menu_item = (Object(external_this_wp_compose_["withInstanceId"])(MenuItem));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/menu-items-choice/index.js
-
-
-/**
- * Internal dependencies
- */
-
-function MenuItemsChoice(_ref) {
-  var _ref$choices = _ref.choices,
-      choices = _ref$choices === void 0 ? [] : _ref$choices,
-      onSelect = _ref.onSelect,
-      value = _ref.value;
-  return choices.map(function (item) {
-    var isSelected = value === item.value;
-    return Object(external_this_wp_element_["createElement"])(menu_item, {
-      key: item.value,
-      role: "menuitemradio",
-      icon: isSelected && 'yes',
-      isSelected: isSelected,
-      shortcut: item.shortcut,
-      onClick: function onClick() {
-        if (!isSelected) {
-          onSelect(item.value);
-        }
-      }
-    }, item.label);
-  });
-}
+};
+
+function CustomGradientPicker(_ref3) {
+  var value = _ref3.value,
+      onChange = _ref3.onChange;
+
+  var _getGradientParsed = getGradientParsed(value),
+      gradientAST = _getGradientParsed.gradientAST,
+      hasGradient = _getGradientParsed.hasGradient;
+
+  var type = gradientAST.type;
+  return Object(external_this_wp_element_["createElement"])("div", {
+    className: "components-custom-gradient-picker"
+  }, Object(external_this_wp_element_["createElement"])(CustomGradientBar, {
+    value: value,
+    onChange: onChange
+  }), Object(external_this_wp_element_["createElement"])("div", {
+    className: "components-custom-gradient-picker__ui-line"
+  }, Object(external_this_wp_element_["createElement"])(custom_gradient_picker_GradientTypePicker, {
+    gradientAST: gradientAST,
+    hasGradient: hasGradient,
+    onChange: onChange
+  }), type === 'linear-gradient' && Object(external_this_wp_element_["createElement"])(custom_gradient_picker_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(_ref) {
+  var className = _ref.className,
+      gradients = _ref.gradients,
+      onChange = _ref.onChange,
+      value = _ref.value,
+      _ref$clearable = _ref.clearable,
+      clearable = _ref$clearable === void 0 ? true : _ref$clearable,
+      _ref$disableCustomGra = _ref.disableCustomGradients,
+      disableCustomGradients = _ref$disableCustomGra === void 0 ? false : _ref$disableCustomGra;
+  var clearGradient = Object(external_this_wp_element_["useCallback"])(function () {
+    return onChange(undefined);
+  }, [onChange]);
+  var gradientOptions = Object(external_this_wp_element_["useMemo"])(function () {
+    return Object(external_this_lodash_["map"])(gradients, function (_ref2) {
+      var gradient = _ref2.gradient,
+          name = _ref2.name;
+      return Object(external_this_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_this_wp_i18n_["sprintf"])(Object(external_this_wp_i18n_["__"])('Gradient code: %s'), gradient),
+        style: {
+          color: 'rgba( 0,0,0,0 )',
+          background: gradient
+        },
+        onClick: value === gradient ? clearGradient : function () {
+          return onChange(gradient);
+        },
+        "aria-label": name ? // translators: %s: The name of the gradient e.g: "Angular red to blue".
+        Object(external_this_wp_i18n_["sprintf"])(Object(external_this_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_this_wp_i18n_["sprintf"])(Object(external_this_wp_i18n_["__"])('Gradient code: %s'), gradient)
+      });
+    });
+  }, [gradients, value, onChange, clearGradient]);
+  return Object(external_this_wp_element_["createElement"])(CircularOptionPicker, {
+    className: className,
+    options: gradientOptions,
+    actions: clearable && Object(external_this_wp_element_["createElement"])(CircularOptionPicker.ButtonAction, {
+      onClick: clearGradient
+    }, Object(external_this_wp_i18n_["__"])('Clear'))
+  }, !disableCustomGradients && Object(external_this_wp_element_["createElement"])(CustomGradientPicker, {
+    value: value,
+    onChange: onChange
+  }));
+}
+
+// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/isolated-event-container/index.js
+var isolated_event_container = __webpack_require__(131);
+
+// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/higher-order/with-focus-return/index.js
+var with_focus_return = __webpack_require__(130);
+
+// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/higher-order/with-constrained-tabbing/index.js
+var with_constrained_tabbing = __webpack_require__(129);
 
 // CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/modal/frame.js
 
@@ -34018,40 +41386,44 @@
 
 
 
-/**
- * WordPress dependencies
- */
-
-
-
-
-/**
- * External dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-var frame_ModalFrame =
-/*#__PURE__*/
-function (_Component) {
+function frame_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf["a" /* default */])(Derived), result; if (frame_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf["a" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn["a" /* default */])(this, result); }; }
+
+function frame_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+var frame_ModalFrame = /*#__PURE__*/function (_Component) {
   Object(inherits["a" /* default */])(ModalFrame, _Component);
 
+  var _super = frame_createSuper(ModalFrame);
+
   function ModalFrame() {
     var _this;
 
     Object(classCallCheck["a" /* default */])(this, ModalFrame);
 
-    _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(ModalFrame).apply(this, arguments));
+    _this = _super.apply(this, arguments);
     _this.containerRef = Object(external_this_wp_element_["createRef"])();
-    _this.handleKeyDown = _this.handleKeyDown.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.handleClickOutside = _this.handleClickOutside.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.focusFirstTabbable = _this.focusFirstTabbable.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
+    _this.handleKeyDown = _this.handleKeyDown.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.handleFocusOutside = _this.handleFocusOutside.bind(Object(assertThisInitialized["a" /* default */])(_this));
     return _this;
   }
   /**
@@ -34064,20 +41436,7 @@
     value: function componentDidMount() {
       // Focus on mount
       if (this.props.focusOnMount) {
-        this.focusFirstTabbable();
-      }
-    }
-    /**
-     * Focuses the first tabbable element.
-     */
-
-  }, {
-    key: "focusFirstTabbable",
-    value: function focusFirstTabbable() {
-      var tabbables = external_this_wp_dom_["focus"].tabbable.find(this.containerRef.current);
-
-      if (tabbables.length) {
-        tabbables[0].focus();
+        this.containerRef.current.focus();
       }
     }
     /**
@@ -34087,8 +41446,8 @@
      */
 
   }, {
-    key: "handleClickOutside",
-    value: function handleClickOutside(event) {
+    key: "handleFocusOutside",
+    value: function handleFocusOutside(event) {
       if (this.props.shouldCloseOnClickOutside) {
         this.onRequestClose(event);
       }
@@ -34109,7 +41468,7 @@
     /**
      * Handles a escape key down event.
      *
-     * Calls onRequestClose and prevents default key press behaviour.
+     * Calls onRequestClose and prevents propagation of the event outside the modal.
      *
      * @param {Object} event Key down event.
      */
@@ -34118,7 +41477,7 @@
     key: "handleEscapeKeyDown",
     value: function handleEscapeKeyDown(event) {
       if (this.props.shouldCloseOnEsc) {
-        event.preventDefault();
+        event.stopPropagation();
         this.onRequestClose(event);
       }
     }
@@ -34147,6 +41506,7 @@
     key: "render",
     value: function render() {
       var _this$props = this.props,
+          overlayClassName = _this$props.overlayClassName,
           contentLabel = _this$props.contentLabel,
           _this$props$aria = _this$props.aria,
           describedby = _this$props$aria.describedby,
@@ -34155,8 +41515,11 @@
           className = _this$props.className,
           role = _this$props.role,
           style = _this$props.style;
-      return Object(external_this_wp_element_["createElement"])("div", {
-        className: className,
+      return Object(external_this_wp_element_["createElement"])(isolated_event_container["a" /* default */], {
+        className: classnames_default()('components-modal__screen-overlay', overlayClassName),
+        onKeyDown: this.handleKeyDown
+      }, Object(external_this_wp_element_["createElement"])("div", {
+        className: classnames_default()('components-modal__frame', className),
         style: style,
         ref: this.containerRef,
         role: role,
@@ -34164,16 +41527,17 @@
         "aria-labelledby": contentLabel ? null : labelledby,
         "aria-describedby": describedby,
         tabIndex: "-1"
-      }, children);
+      }, children));
     }
   }]);
 
   return ModalFrame;
 }(external_this_wp_element_["Component"]);
 
-/* harmony default export */ var modal_frame = (Object(external_this_wp_compose_["compose"])([with_focus_return, with_constrained_tabbing, dist_default.a, Object(external_this_wp_compose_["withGlobalEvents"])({
-  keydown: 'handleKeyDown'
-})])(frame_ModalFrame));
+/* harmony default export */ var modal_frame = (Object(external_this_wp_compose_["compose"])([with_focus_return["a" /* default */], with_constrained_tabbing["a" /* default */], with_focus_outside["a" /* default */]])(frame_ModalFrame));
+
+// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/close.js
+var library_close = __webpack_require__(154);
 
 // CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/modal/header.js
 
@@ -34182,6 +41546,7 @@
  * WordPress dependencies
  */
 
+
 /**
  * Internal dependencies
  */
@@ -34194,7 +41559,7 @@
       onClose = _ref.onClose,
       closeLabel = _ref.closeLabel,
       headingId = _ref.headingId,
-      isDismissable = _ref.isDismissable;
+      isDismissible = _ref.isDismissible;
   var label = closeLabel ? closeLabel : Object(external_this_wp_i18n_["__"])('Close dialog');
   return Object(external_this_wp_element_["createElement"])("div", {
     className: "components-modal__header"
@@ -34206,9 +41571,9 @@
   }, icon), title && Object(external_this_wp_element_["createElement"])("h1", {
     id: headingId,
     className: "components-modal__header-heading"
-  }, title)), isDismissable && Object(external_this_wp_element_["createElement"])(icon_button, {
+  }, title)), isDismissible && Object(external_this_wp_element_["createElement"])(build_module_button["a" /* default */], {
     onClick: onClose,
-    icon: "no-alt",
+    icon: library_close["a" /* default */],
     label: label
   }));
 };
@@ -34242,7 +41607,7 @@
   }
 
   var elements = document.body.children;
-  Object(external_lodash_["forEach"])(elements, function (element) {
+  Object(external_this_lodash_["forEach"])(elements, function (element) {
     if (element === unhiddenElement) {
       return;
     }
@@ -34276,7 +41641,7 @@
     return;
   }
 
-  Object(external_lodash_["forEach"])(hiddenElements, function (element) {
+  Object(external_this_lodash_["forEach"])(hiddenElements, function (element) {
     element.removeAttribute('aria-hidden');
   });
   hiddenElements = [];
@@ -34293,21 +41658,19 @@
 
 
 
-/**
- * External dependencies
- */
-
-
-/**
- * WordPress dependencies
- */
-
-
-
-/**
- * Internal dependencies
- */
-
+function modal_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf["a" /* default */])(Derived), result; if (modal_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf["a" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn["a" /* default */])(this, result); }; }
+
+function modal_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+/**
+ * Internal dependencies
+ */
 
 
 
@@ -34316,17 +41679,17 @@
 var parentElement,
     openModalCount = 0;
 
-var modal_Modal =
-/*#__PURE__*/
-function (_Component) {
+var modal_Modal = /*#__PURE__*/function (_Component) {
   Object(inherits["a" /* default */])(Modal, _Component);
 
+  var _super = modal_createSuper(Modal);
+
   function Modal(props) {
     var _this;
 
     Object(classCallCheck["a" /* default */])(this, Modal);
 
-    _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(Modal).call(this, props));
+    _this = _super.call(this, props);
 
     _this.prepareDOM();
 
@@ -34429,8 +41792,6 @@
     key: "render",
     value: function render() {
       var _this$props = this.props,
-          overlayClassName = _this$props.overlayClassName,
-          className = _this$props.className,
           onRequestClose = _this$props.onRequestClose,
           title = _this$props.title,
           icon = _this$props.icon,
@@ -34438,18 +41799,21 @@
           children = _this$props.children,
           aria = _this$props.aria,
           instanceId = _this$props.instanceId,
+          isDismissible = _this$props.isDismissible,
           isDismissable = _this$props.isDismissable,
-          otherProps = Object(objectWithoutProperties["a" /* default */])(_this$props, ["overlayClassName", "className", "onRequestClose", "title", "icon", "closeButtonLabel", "children", "aria", "instanceId", "isDismissable"]);
-
-      var headingId = aria.labelledby || "components-modal-header-".concat(instanceId); // Disable reason: this stops mouse events from triggering tooltips and
+          otherProps = Object(objectWithoutProperties["a" /* default */])(_this$props, ["onRequestClose", "title", "icon", "closeButtonLabel", "children", "aria", "instanceId", "isDismissible", "isDismissable"]);
+
+      var headingId = aria.labelledby || "components-modal-header-".concat(instanceId);
+
+      if (isDismissable) {
+        external_this_wp_deprecated_default()('isDismissable prop of the Modal component', {
+          alternative: 'isDismissible prop (renamed) of the Modal component'
+        });
+      } // Disable reason: this stops mouse events from triggering tooltips and
       // other elements underneath the modal overlay.
 
-      /* eslint-disable jsx-a11y/no-static-element-interactions */
-
-      return Object(external_this_wp_element_["createPortal"])(Object(external_this_wp_element_["createElement"])(isolated_event_container, {
-        className: classnames_default()('components-modal__screen-overlay', overlayClassName)
-      }, Object(external_this_wp_element_["createElement"])(modal_frame, Object(esm_extends["a" /* default */])({
-        className: classnames_default()('components-modal__frame', className),
+
+      return Object(external_this_wp_element_["createPortal"])(Object(external_this_wp_element_["createElement"])(modal_frame, Object(esm_extends["a" /* default */])({
         onRequestClose: onRequestClose,
         aria: {
           labelledby: title ? headingId : null,
@@ -34457,16 +41821,15 @@
         }
       }, otherProps), Object(external_this_wp_element_["createElement"])("div", {
         className: 'components-modal__content',
-        tabIndex: "0"
+        role: "document"
       }, Object(external_this_wp_element_["createElement"])(modal_header, {
         closeLabel: closeButtonLabel,
         headingId: headingId,
         icon: icon,
-        isDismissable: isDismissable,
+        isDismissible: isDismissible || isDismissable,
         onClose: onRequestClose,
         title: title
-      }), children))), this.node);
-      /* eslint-enable jsx-a11y/no-static-element-interactions */
+      }), children)), this.node);
     }
   }]);
 
@@ -34477,11 +41840,10 @@
   bodyOpenClassName: 'modal-open',
   role: 'dialog',
   title: null,
-  onRequestClose: external_lodash_["noop"],
   focusOnMount: true,
   shouldCloseOnEsc: true,
   shouldCloseOnClickOutside: true,
-  isDismissable: true,
+  isDismissible: true,
 
   /* accessibility */
   aria: {
@@ -34491,6 +41853,490 @@
 };
 /* harmony default export */ var modal = (Object(external_this_wp_compose_["withInstanceId"])(modal_Modal));
 
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/guide/icons.js
+
+
+/**
+ * WordPress dependencies
+ */
+
+var icons_PageControlIcon = function PageControlIcon(_ref) {
+  var isSelected = _ref.isSelected;
+  return Object(external_this_wp_element_["createElement"])(external_this_wp_primitives_["SVG"], {
+    width: "8",
+    height: "8",
+    fill: "none",
+    xmlns: "http://www.w3.org/2000/svg"
+  }, Object(external_this_wp_element_["createElement"])(external_this_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(_ref) {
+  var currentPage = _ref.currentPage,
+      numberOfPages = _ref.numberOfPages,
+      setCurrentPage = _ref.setCurrentPage;
+  return Object(external_this_wp_element_["createElement"])("ul", {
+    className: "components-guide__page-control",
+    "aria-label": Object(external_this_wp_i18n_["__"])('Guide controls')
+  }, Object(external_this_lodash_["times"])(numberOfPages, function (page) {
+    return Object(external_this_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_this_wp_element_["createElement"])(build_module_button["a" /* default */], {
+      key: page,
+      icon: Object(external_this_wp_element_["createElement"])(icons_PageControlIcon, {
+        isSelected: page === currentPage
+      }),
+      "aria-label": Object(external_this_wp_i18n_["sprintf"])(
+      /* translators: 1: current page number 2: total number of pages */
+      Object(external_this_wp_i18n_["__"])('Page %1$d of %2$d'), page + 1, numberOfPages),
+      onClick: function onClick() {
+        return setCurrentPage(page);
+      }
+    }));
+  }));
+}
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/guide/finish-button.js
+
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+function FinishButton(_ref) {
+  var className = _ref.className,
+      onClick = _ref.onClick,
+      children = _ref.children;
+  var button = Object(external_this_wp_element_["useRef"])(null); // Focus the button on mount if nothing else is focused. This prevents a
+  // focus loss when the 'Next' button is swapped out.
+
+  Object(external_this_wp_element_["useLayoutEffect"])(function () {
+    if (!document.activeElement || document.activeElement === document.body) {
+      button.current.focus();
+    }
+  }, [button]);
+  return Object(external_this_wp_element_["createElement"])(build_module_button["a" /* default */], {
+    ref: button,
+    className: className,
+    isPrimary: true,
+    onClick: onClick
+  }, children);
+}
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/guide/index.js
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+
+function Guide(_ref) {
+  var children = _ref.children,
+      className = _ref.className,
+      contentLabel = _ref.contentLabel,
+      finishButtonText = _ref.finishButtonText,
+      onFinish = _ref.onFinish,
+      _ref$pages = _ref.pages,
+      pages = _ref$pages === void 0 ? [] : _ref$pages;
+
+  var _useState = Object(external_this_wp_element_["useState"])(0),
+      _useState2 = Object(slicedToArray["a" /* default */])(_useState, 2),
+      currentPage = _useState2[0],
+      setCurrentPage = _useState2[1];
+
+  Object(external_this_wp_element_["useEffect"])(function () {
+    if (external_this_wp_element_["Children"].count(children)) {
+      external_this_wp_deprecated_default()('Passing children to <Guide>', {
+        alternative: 'the `pages` prop'
+      });
+    }
+  }, [children]);
+
+  if (external_this_wp_element_["Children"].count(children)) {
+    pages = external_this_wp_element_["Children"].map(children, function (child) {
+      return {
+        content: child
+      };
+    });
+  }
+
+  var canGoBack = currentPage > 0;
+  var canGoForward = currentPage < pages.length - 1;
+
+  var goBack = function goBack() {
+    if (canGoBack) {
+      setCurrentPage(currentPage - 1);
+    }
+  };
+
+  var goForward = function goForward() {
+    if (canGoForward) {
+      setCurrentPage(currentPage + 1);
+    }
+  };
+
+  if (pages.length === 0) {
+    return null;
+  }
+
+  return Object(external_this_wp_element_["createElement"])(modal, {
+    className: classnames_default()('components-guide', className),
+    contentLabel: contentLabel,
+    onRequestClose: onFinish
+  }, Object(external_this_wp_element_["createElement"])(keyboard_shortcuts, {
+    key: currentPage,
+    shortcuts: {
+      left: goBack,
+      right: goForward
+    }
+  }), Object(external_this_wp_element_["createElement"])("div", {
+    className: "components-guide__container"
+  }, Object(external_this_wp_element_["createElement"])("div", {
+    className: "components-guide__page"
+  }, pages[currentPage].image, Object(external_this_wp_element_["createElement"])(PageControl, {
+    currentPage: currentPage,
+    numberOfPages: pages.length,
+    setCurrentPage: setCurrentPage
+  }), pages[currentPage].content, !canGoForward && Object(external_this_wp_element_["createElement"])(FinishButton, {
+    className: "components-guide__inline-finish-button",
+    onClick: onFinish
+  }, finishButtonText || Object(external_this_wp_i18n_["__"])('Finish'))), Object(external_this_wp_element_["createElement"])("div", {
+    className: "components-guide__footer"
+  }, canGoBack && Object(external_this_wp_element_["createElement"])(build_module_button["a" /* default */], {
+    className: "components-guide__back-button",
+    onClick: goBack
+  }, Object(external_this_wp_i18n_["__"])('Previous')), canGoForward && Object(external_this_wp_element_["createElement"])(build_module_button["a" /* default */], {
+    className: "components-guide__forward-button",
+    onClick: goForward
+  }, Object(external_this_wp_i18n_["__"])('Next')), !canGoForward && Object(external_this_wp_element_["createElement"])(FinishButton, {
+    className: "components-guide__finish-button",
+    onClick: onFinish
+  }, finishButtonText || Object(external_this_wp_i18n_["__"])('Finish')))));
+}
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/guide/page.js
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+function GuidePage(props) {
+  Object(external_this_wp_element_["useEffect"])(function () {
+    external_this_wp_deprecated_default()('<GuidePage>', {
+      alternative: 'the `pages` prop in <Guide>'
+    });
+  }, []);
+  return Object(external_this_wp_element_["createElement"])("div", props);
+}
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/button/deprecated.js
+
+
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+function IconButton(_ref, ref) {
+  var labelPosition = _ref.labelPosition,
+      size = _ref.size,
+      tooltip = _ref.tooltip,
+      label = _ref.label,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["labelPosition", "size", "tooltip", "label"]);
+
+  external_this_wp_deprecated_default()('wp.components.IconButton', {
+    alternative: 'wp.components.Button'
+  });
+  return Object(external_this_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_this_wp_element_["forwardRef"])(IconButton));
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/menu-group/index.js
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+function MenuGroup(_ref) {
+  var children = _ref.children,
+      _ref$className = _ref.className,
+      className = _ref$className === void 0 ? '' : _ref$className,
+      label = _ref.label;
+  var instanceId = Object(external_this_wp_compose_["useInstanceId"])(MenuGroup);
+
+  if (!external_this_wp_element_["Children"].count(children)) {
+    return null;
+  }
+
+  var labelId = "components-menu-group-label-".concat(instanceId);
+  var classNames = classnames_default()(className, 'components-menu-group');
+  return Object(external_this_wp_element_["createElement"])("div", {
+    className: classNames
+  }, label && Object(external_this_wp_element_["createElement"])("div", {
+    className: "components-menu-group__label",
+    id: labelId,
+    "aria-hidden": "true"
+  }, label), Object(external_this_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__(166);
+
+// 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(_ref, ref) {
+  var children = _ref.children,
+      info = _ref.info,
+      className = _ref.className,
+      icon = _ref.icon,
+      shortcut = _ref.shortcut,
+      isSelected = _ref.isSelected,
+      _ref$role = _ref.role,
+      role = _ref$role === void 0 ? 'menuitem' : _ref$role,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["children", "info", "className", "icon", "shortcut", "isSelected", "role"]);
+
+  className = classnames_default()('components-menu-item__button', className);
+
+  if (info) {
+    children = Object(external_this_wp_element_["createElement"])("span", {
+      className: "components-menu-item__info-wrapper"
+    }, children, Object(external_this_wp_element_["createElement"])("span", {
+      className: "components-menu-item__info"
+    }, info));
+  }
+
+  if (icon && !Object(external_this_lodash_["isString"])(icon)) {
+    icon = Object(external_this_wp_element_["cloneElement"])(icon, {
+      className: 'components-menu-items__item-icon'
+    });
+  }
+
+  return Object(external_this_wp_element_["createElement"])(build_module_button["a" /* default */], Object(esm_extends["a" /* default */])({
+    ref: ref,
+    icon: icon // 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), children, Object(external_this_wp_element_["createElement"])(build_module_shortcut["a" /* default */], {
+    className: "components-menu-item__shortcut",
+    shortcut: shortcut
+  }));
+}
+/* harmony default export */ var menu_item = (Object(external_this_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(_ref) {
+  var _ref$choices = _ref.choices,
+      choices = _ref$choices === void 0 ? [] : _ref$choices,
+      _ref$onHover = _ref.onHover,
+      onHover = _ref$onHover === void 0 ? external_this_lodash_["noop"] : _ref$onHover,
+      onSelect = _ref.onSelect,
+      value = _ref.value;
+  return choices.map(function (item) {
+    var isSelected = value === item.value;
+    return Object(external_this_wp_element_["createElement"])(menu_item, {
+      key: item.value,
+      role: "menuitemradio",
+      icon: isSelected && check["a" /* default */],
+      isSelected: isSelected,
+      shortcut: item.shortcut,
+      className: "components-menu-items-choice",
+      onClick: function onClick() {
+        if (!isSelected) {
+          onSelect(item.value);
+        }
+      },
+      onMouseEnter: function onMouseEnter() {
+        return onHover(item.value);
+      },
+      onMouseLeave: function onMouseLeave() {
+        return onHover(null);
+      }
+    }, item.label);
+  });
+}
+
+// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/scroll-lock/index.js
+var scroll_lock = __webpack_require__(161);
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigable-container/tabbable.js
+
+
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+function TabbableContainer(_ref, ref) {
+  var eventToOffset = _ref.eventToOffset,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["eventToOffset"]);
+
+  var innerEventToOffset = function innerEventToOffset(evt) {
+    var keyCode = evt.keyCode,
+        shiftKey = evt.shiftKey;
+
+    if (external_this_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_this_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_this_wp_element_["forwardRef"])(TabbableContainer));
+
 // CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/notice/index.js
 
 
@@ -34505,23 +42351,71 @@
 
 
 
-/**
- * Internal 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) {
+  var spokenMessage = typeof message === 'string' ? message : Object(external_this_wp_element_["renderToString"])(message);
+  Object(external_this_wp_element_["useEffect"])(function () {
+    if (spokenMessage) {
+      Object(external_this_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(_ref) {
   var className = _ref.className,
-      status = _ref.status,
+      _ref$status = _ref.status,
+      status = _ref$status === void 0 ? 'info' : _ref$status,
       children = _ref.children,
+      _ref$spokenMessage = _ref.spokenMessage,
+      spokenMessage = _ref$spokenMessage === void 0 ? children : _ref$spokenMessage,
       _ref$onRemove = _ref.onRemove,
-      onRemove = _ref$onRemove === void 0 ? external_lodash_["noop"] : _ref$onRemove,
+      onRemove = _ref$onRemove === void 0 ? external_this_lodash_["noop"] : _ref$onRemove,
       _ref$isDismissible = _ref.isDismissible,
       isDismissible = _ref$isDismissible === void 0 ? true : _ref$isDismissible,
       _ref$actions = _ref.actions,
       actions = _ref$actions === void 0 ? [] : _ref$actions,
+      _ref$politeness = _ref.politeness,
+      politeness = _ref$politeness === void 0 ? getDefaultPoliteness(status) : _ref$politeness,
       __unstableHTML = _ref.__unstableHTML;
+  useSpokenMessage(spokenMessage, politeness);
   var classes = classnames_default()(className, 'components-notice', 'is-' + status, {
     'is-dismissible': isDismissible
   });
@@ -34537,24 +42431,26 @@
   }, children, actions.map(function (_ref2, index) {
     var buttonCustomClasses = _ref2.className,
         label = _ref2.label,
+        isPrimary = _ref2.isPrimary,
         _ref2$noDefaultClasse = _ref2.noDefaultClasses,
         noDefaultClasses = _ref2$noDefaultClasse === void 0 ? false : _ref2$noDefaultClasse,
         onClick = _ref2.onClick,
         url = _ref2.url;
-    return Object(external_this_wp_element_["createElement"])(build_module_button, {
+    return Object(external_this_wp_element_["createElement"])(build_module_button["a" /* default */], {
       key: index,
       href: url,
-      isDefault: !noDefaultClasses && !url,
+      isPrimary: isPrimary,
+      isSecondary: !noDefaultClasses && !url,
       isLink: !noDefaultClasses && !!url,
       onClick: url ? undefined : onClick,
       className: classnames_default()('components-notice__action', buttonCustomClasses)
     }, label);
-  })), isDismissible && Object(external_this_wp_element_["createElement"])(icon_button, {
+  })), isDismissible && Object(external_this_wp_element_["createElement"])(build_module_button["a" /* default */], {
     className: "components-notice__dismiss",
-    icon: "no",
+    icon: library_close["a" /* default */],
     label: Object(external_this_wp_i18n_["__"])('Dismiss this notice'),
     onClick: onRemove,
-    tooltip: false
+    showTooltip: false
   }));
 }
 
@@ -34576,20 +42472,20 @@
 
 
 /**
-* 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.
-*/
+ * 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) {
   var notices = _ref.notices,
       _ref$onRemove = _ref.onRemove,
-      onRemove = _ref$onRemove === void 0 ? external_lodash_["noop"] : _ref$onRemove,
+      onRemove = _ref$onRemove === void 0 ? external_this_lodash_["noop"] : _ref$onRemove,
       className = _ref.className,
       children = _ref.children;
 
@@ -34603,7 +42499,7 @@
   return Object(external_this_wp_element_["createElement"])("div", {
     className: className
   }, children, Object(toConsumableArray["a" /* default */])(notices).reverse().map(function (notice) {
-    return Object(external_this_wp_element_["createElement"])(build_module_notice, Object(esm_extends["a" /* default */])({}, Object(external_lodash_["omit"])(notice, ['content']), {
+    return Object(external_this_wp_element_["createElement"])(build_module_notice, Object(esm_extends["a" /* default */])({}, Object(external_this_lodash_["omit"])(notice, ['content']), {
       key: notice.id,
       onRemove: removeNotice(notice.id)
     }), notice.content);
@@ -34652,6 +42548,9 @@
 
 /* harmony default export */ var panel = (Panel);
 
+// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/chevron-up.js
+var chevron_up = __webpack_require__(294);
+
 // CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/panel/body.js
 
 
@@ -34662,37 +42561,41 @@
 
 
 
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-
-var body_PanelBody =
-/*#__PURE__*/
-function (_Component) {
+function body_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf["a" /* default */])(Derived), result; if (body_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf["a" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn["a" /* default */])(this, result); }; }
+
+function body_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+var body_PanelBody = /*#__PURE__*/function (_Component) {
   Object(inherits["a" /* default */])(PanelBody, _Component);
 
+  var _super = body_createSuper(PanelBody);
+
   function PanelBody(props) {
     var _this;
 
     Object(classCallCheck["a" /* default */])(this, PanelBody);
 
-    _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(PanelBody).apply(this, arguments));
+    _this = _super.apply(this, arguments);
     _this.state = {
       opened: props.initialOpen === undefined ? true : props.initialOpen
     };
-    _this.toggle = _this.toggle.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
+    _this.toggle = _this.toggle.bind(Object(assertThisInitialized["a" /* default */])(_this));
     return _this;
   }
 
@@ -34732,35 +42635,16 @@
         ref: forwardedRef
       }, !!title && Object(external_this_wp_element_["createElement"])("h2", {
         className: "components-panel__body-title"
-      }, Object(external_this_wp_element_["createElement"])(build_module_button, {
+      }, Object(external_this_wp_element_["createElement"])(build_module_button["a" /* default */], {
         className: "components-panel__body-toggle",
         onClick: this.toggle,
         "aria-expanded": isOpened
       }, Object(external_this_wp_element_["createElement"])("span", {
         "aria-hidden": "true"
-      }, isOpened ? Object(external_this_wp_element_["createElement"])(svg_SVG, {
+      }, Object(external_this_wp_element_["createElement"])(components_build_module_icon["a" /* default */], {
         className: "components-panel__arrow",
-        width: "24px",
-        height: "24px",
-        viewBox: "0 0 24 24",
-        xmlns: "http://www.w3.org/2000/svg"
-      }, Object(external_this_wp_element_["createElement"])(svg_G, null, Object(external_this_wp_element_["createElement"])(svg_Path, {
-        fill: "none",
-        d: "M0,0h24v24H0V0z"
-      })), Object(external_this_wp_element_["createElement"])(svg_G, null, Object(external_this_wp_element_["createElement"])(svg_Path, {
-        d: "M12,8l-6,6l1.41,1.41L12,10.83l4.59,4.58L18,14L12,8z"
-      }))) : Object(external_this_wp_element_["createElement"])(svg_SVG, {
-        className: "components-panel__arrow",
-        width: "24px",
-        height: "24px",
-        viewBox: "0 0 24 24",
-        xmlns: "http://www.w3.org/2000/svg"
-      }, Object(external_this_wp_element_["createElement"])(svg_G, null, Object(external_this_wp_element_["createElement"])(svg_Path, {
-        fill: "none",
-        d: "M0,0h24v24H0V0z"
-      })), Object(external_this_wp_element_["createElement"])(svg_G, null, Object(external_this_wp_element_["createElement"])(svg_Path, {
-        d: "M7.41,8.59L12,13.17l4.59-4.58L18,10l-6,6l-6-6L7.41,8.59z"
-      })))), title, icon && Object(external_this_wp_element_["createElement"])(build_module_icon, {
+        icon: isOpened ? chevron_up["a" /* default */] : chevron_down["a" /* default */]
+      })), title, icon && Object(external_this_wp_element_["createElement"])(components_build_module_icon["a" /* default */], {
         icon: icon,
         className: "components-panel__icon",
         size: 20
@@ -34804,22 +42688,36 @@
 
 
 
-/**
- * External dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-/**
-* Renders a placeholder. Normally used by blocks to render their empty state.
-*
-* @param  {Object} props The component props.
-* @return {Object}       The rendered placeholder.
-*/
+
+/**
+ * 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) {
   var icon = _ref.icon,
@@ -34828,117 +42726,55 @@
       instructions = _ref.instructions,
       className = _ref.className,
       notices = _ref.notices,
-      additionalProps = Object(objectWithoutProperties["a" /* default */])(_ref, ["icon", "children", "label", "instructions", "className", "notices"]);
-
-  var classes = classnames_default()('components-placeholder', className);
+      preview = _ref.preview,
+      isColumnLayout = _ref.isColumnLayout,
+      additionalProps = Object(objectWithoutProperties["a" /* default */])(_ref, ["icon", "children", "label", "instructions", "className", "notices", "preview", "isColumnLayout"]);
+
+  var _useResizeObserver = Object(external_this_wp_compose_["useResizeObserver"])(),
+      _useResizeObserver2 = Object(slicedToArray["a" /* default */])(_useResizeObserver, 2),
+      resizeListener = _useResizeObserver2[0],
+      width = _useResizeObserver2[1].width; // Since `useResizeObserver` will report a width of `null` until after the
+  // first render, avoid applying any modifier classes until width is known.
+
+
+  var modifierClassNames;
+
+  if (typeof width === 'number') {
+    modifierClassNames = {
+      'is-large': width >= 320,
+      'is-medium': width >= 160 && width < 320,
+      'is-small': width < 160
+    };
+  }
+
+  var classes = classnames_default()('components-placeholder', className, modifierClassNames);
+  var fieldsetClasses = classnames_default()('components-placeholder__fieldset', {
+    'is-column-layout': isColumnLayout
+  });
   return Object(external_this_wp_element_["createElement"])("div", Object(esm_extends["a" /* default */])({}, additionalProps, {
     className: classes
-  }), notices, Object(external_this_wp_element_["createElement"])("div", {
+  }), resizeListener, notices, preview && Object(external_this_wp_element_["createElement"])("div", {
+    className: "components-placeholder__preview"
+  }, preview), Object(external_this_wp_element_["createElement"])("div", {
     className: "components-placeholder__label"
-  }, Object(external_lodash_["isString"])(icon) ? Object(external_this_wp_element_["createElement"])(dashicon_Dashicon, {
+  }, Object(external_this_wp_element_["createElement"])(components_build_module_icon["a" /* default */], {
     icon: icon
-  }) : icon, label), !!instructions && Object(external_this_wp_element_["createElement"])("div", {
+  }), label), !!instructions && Object(external_this_wp_element_["createElement"])("div", {
     className: "components-placeholder__instructions"
   }, instructions), Object(external_this_wp_element_["createElement"])("div", {
-    className: "components-placeholder__fieldset"
+    className: fieldsetClasses
   }, children));
 }
 
 /* harmony default export */ var placeholder = (Placeholder);
 
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/positioned-at-selection/index.js
-
-
-
-
-
-
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Returns a style object for applying as `position: absolute` for an element
- * relative to the bottom-center of the current selection. Includes `top` and
- * `left` style properties.
- *
- * @return {Object} Style object.
- */
-
-function getCurrentCaretPositionStyle() {
-  var selection = window.getSelection(); // Unlikely, but in the case there is no selection, return empty styles so
-  // as to avoid a thrown error by `Selection#getRangeAt` on invalid index.
-
-  if (selection.rangeCount === 0) {
-    return {};
-  } // Get position relative viewport.
-
-
-  var rect = Object(external_this_wp_dom_["getRectangleFromRange"])(selection.getRangeAt(0));
-  var top = rect.top + rect.height;
-  var left = rect.left + rect.width / 2; // Offset by positioned parent, if one exists.
-
-  var offsetParent = Object(external_this_wp_dom_["getOffsetParent"])(selection.anchorNode);
-
-  if (offsetParent) {
-    var parentRect = offsetParent.getBoundingClientRect();
-    top -= parentRect.top;
-    left -= parentRect.left;
-  }
-
-  return {
-    top: top,
-    left: left
-  };
-}
-/**
- * Component which renders itself positioned under the current caret selection.
- * The position is calculated at the time of the component being mounted, so it
- * should only be mounted after the desired selection has been made.
- *
- * @type {WPComponent}
- */
-
-
-var positioned_at_selection_PositionedAtSelection =
-/*#__PURE__*/
-function (_Component) {
-  Object(inherits["a" /* default */])(PositionedAtSelection, _Component);
-
-  function PositionedAtSelection() {
-    var _this;
-
-    Object(classCallCheck["a" /* default */])(this, PositionedAtSelection);
-
-    _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(PositionedAtSelection).apply(this, arguments));
-    _this.state = {
-      style: getCurrentCaretPositionStyle()
-    };
-    return _this;
-  }
-
-  Object(createClass["a" /* default */])(PositionedAtSelection, [{
-    key: "render",
-    value: function render() {
-      var children = this.props.children;
-      var style = this.state.style;
-      return Object(external_this_wp_element_["createElement"])("div", {
-        className: "editor-format-toolbar__selection-position block-editor-format-toolbar__selection-position",
-        style: style
-      }, children);
-    }
-  }]);
-
-  return PositionedAtSelection;
-}(external_this_wp_element_["Component"]);
-
-
-
 // CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/query-controls/terms.js
 
 
+function terms_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 terms_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { terms_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty["a" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { terms_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
+
 /**
  * External dependencies
  */
@@ -34953,12 +42789,12 @@
 
 function buildTermsTree(flatTerms) {
   var flatTermsWithParentAndChildren = flatTerms.map(function (term) {
-    return Object(objectSpread["a" /* default */])({
+    return terms_objectSpread({
       children: [],
       parent: null
     }, term);
   });
-  var termsByParent = Object(external_lodash_["groupBy"])(flatTermsWithParentAndChildren, 'parent');
+  var termsByParent = Object(external_this_lodash_["groupBy"])(flatTermsWithParentAndChildren, 'parent');
 
   if (termsByParent.null && termsByParent.null.length) {
     return flatTermsWithParentAndChildren;
@@ -34967,7 +42803,7 @@
   var fillWithChildren = function fillWithChildren(terms) {
     return terms.map(function (term) {
       var children = termsByParent[term.id];
-      return Object(objectSpread["a" /* default */])({}, term, {
+      return terms_objectSpread({}, term, {
         children: children && children.length ? fillWithChildren(children) : []
       });
     });
@@ -34992,13 +42828,13 @@
 
 
 
-function getSelectOptions(tree) {
+function tree_select_getSelectOptions(tree) {
   var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
-  return Object(external_lodash_["flatMap"])(tree, function (treeNode) {
+  return Object(external_this_lodash_["flatMap"])(tree, function (treeNode) {
     return [{
       value: treeNode.id,
-      label: Object(external_lodash_["repeat"])("\xA0", level * 3) + Object(external_lodash_["unescape"])(treeNode.name)
-    }].concat(Object(toConsumableArray["a" /* default */])(getSelectOptions(treeNode.children || [], level + 1)));
+      label: Object(external_this_lodash_["repeat"])("\xA0", level * 3) + Object(external_this_lodash_["unescape"])(treeNode.name)
+    }].concat(Object(toConsumableArray["a" /* default */])(tree_select_getSelectOptions(treeNode.children || [], level + 1)));
   });
 }
 
@@ -35010,11 +42846,11 @@
       tree = _ref.tree,
       props = Object(objectWithoutProperties["a" /* default */])(_ref, ["label", "noOptionLabel", "onChange", "selectedId", "tree"]);
 
-  var options = Object(external_lodash_["compact"])([noOptionLabel && {
+  var options = Object(external_this_lodash_["compact"])([noOptionLabel && {
     value: '',
     label: noOptionLabel
-  }].concat(Object(toConsumableArray["a" /* default */])(getSelectOptions(tree))));
-  return Object(external_this_wp_element_["createElement"])(select_control, Object(esm_extends["a" /* default */])({
+  }].concat(Object(toConsumableArray["a" /* default */])(tree_select_getSelectOptions(tree))));
+  return Object(external_this_wp_element_["createElement"])(SelectControl, Object(esm_extends["a" /* default */])({
     label: label,
     options: options,
     onChange: onChange
@@ -35027,6 +42863,7 @@
 
 
 
+
 /**
  * Internal dependencies
  */
@@ -35037,7 +42874,9 @@
       noOptionLabel = _ref.noOptionLabel,
       categoriesList = _ref.categoriesList,
       selectedCategoryId = _ref.selectedCategoryId,
-      onChange = _ref.onChange;
+      onChange = _ref.onChange,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["label", "noOptionLabel", "categoriesList", "selectedCategoryId", "onChange"]);
+
   var termsTree = buildTermsTree(categoriesList);
   return Object(external_this_wp_element_["createElement"])(TreeSelect, Object(esm_extends["a" /* default */])({
     label: label,
@@ -35046,6 +42885,32 @@
   }, {
     tree: termsTree,
     selectedId: selectedCategoryId
+  }, props));
+}
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/query-controls/author-select.js
+
+
+
+/**
+ * Internal dependencies
+ */
+
+
+function AuthorSelect(_ref) {
+  var label = _ref.label,
+      noOptionLabel = _ref.noOptionLabel,
+      authorList = _ref.authorList,
+      selectedAuthorId = _ref.selectedAuthorId,
+      onChange = _ref.onChange;
+  var termsTree = buildTermsTree(authorList);
+  return Object(external_this_wp_element_["createElement"])(TreeSelect, Object(esm_extends["a" /* default */])({
+    label: label,
+    noOptionLabel: noOptionLabel,
+    onChange: onChange
+  }, {
+    tree: termsTree,
+    selectedId: selectedAuthorId
   }));
 }
 
@@ -35063,11 +42928,17 @@
 
 
 
+
 var DEFAULT_MIN_ITEMS = 1;
 var DEFAULT_MAX_ITEMS = 100;
+var MAX_CATEGORIES_SUGGESTIONS = 20;
 function QueryControls(_ref) {
-  var categoriesList = _ref.categoriesList,
+  var authorList = _ref.authorList,
+      selectedAuthorId = _ref.selectedAuthorId,
+      categoriesList = _ref.categoriesList,
       selectedCategoryId = _ref.selectedCategoryId,
+      categorySuggestions = _ref.categorySuggestions,
+      selectedCategories = _ref.selectedCategories,
       numberOfItems = _ref.numberOfItems,
       order = _ref.order,
       orderBy = _ref.orderBy,
@@ -35076,18 +42947,19 @@
       _ref$minItems = _ref.minItems,
       minItems = _ref$minItems === void 0 ? DEFAULT_MIN_ITEMS : _ref$minItems,
       onCategoryChange = _ref.onCategoryChange,
+      onAuthorChange = _ref.onAuthorChange,
       onNumberOfItemsChange = _ref.onNumberOfItemsChange,
       onOrderChange = _ref.onOrderChange,
       onOrderByChange = _ref.onOrderByChange;
-  return [onOrderChange && onOrderByChange && Object(external_this_wp_element_["createElement"])(select_control, {
+  return [onOrderChange && onOrderByChange && Object(external_this_wp_element_["createElement"])(SelectControl, {
     key: "query-controls-order-select",
     label: Object(external_this_wp_i18n_["__"])('Order by'),
     value: "".concat(orderBy, "/").concat(order),
     options: [{
-      label: Object(external_this_wp_i18n_["__"])('Newest to Oldest'),
+      label: Object(external_this_wp_i18n_["__"])('Newest to oldest'),
       value: 'date/desc'
     }, {
-      label: Object(external_this_wp_i18n_["__"])('Oldest to Newest'),
+      label: Object(external_this_wp_i18n_["__"])('Oldest to newest'),
       value: 'date/asc'
     }, {
       /* translators: label for ordering posts by title in ascending order */
@@ -35112,13 +42984,32 @@
         onOrderByChange(newOrderBy);
       }
     }
-  }), onCategoryChange && Object(external_this_wp_element_["createElement"])(CategorySelect, {
+  }), categoriesList && onCategoryChange && Object(external_this_wp_element_["createElement"])(CategorySelect, {
     key: "query-controls-category-select",
     categoriesList: categoriesList,
     label: Object(external_this_wp_i18n_["__"])('Category'),
     noOptionLabel: Object(external_this_wp_i18n_["__"])('All'),
     selectedCategoryId: selectedCategoryId,
     onChange: onCategoryChange
+  }), categorySuggestions && onCategoryChange && Object(external_this_wp_element_["createElement"])(form_token_field, {
+    key: "query-controls-categories-select",
+    label: Object(external_this_wp_i18n_["__"])('Categories'),
+    value: selectedCategories && selectedCategories.map(function (item) {
+      return {
+        id: item.id,
+        value: item.name || item.value
+      };
+    }),
+    suggestions: Object.keys(categorySuggestions),
+    onChange: onCategoryChange,
+    maxSuggestions: MAX_CATEGORIES_SUGGESTIONS
+  }), onAuthorChange && Object(external_this_wp_element_["createElement"])(AuthorSelect, {
+    key: "query-controls-author-select",
+    authorList: authorList,
+    label: Object(external_this_wp_i18n_["__"])('Author'),
+    noOptionLabel: Object(external_this_wp_i18n_["__"])('All'),
+    selectedAuthorId: selectedAuthorId,
+    onChange: onAuthorChange
   }), onNumberOfItemsChange && Object(external_this_wp_element_["createElement"])(range_control, {
     key: "query-controls-range-control",
     label: Object(external_this_wp_i18n_["__"])('Number of items'),
@@ -35130,6 +43021,437 @@
   })];
 }
 
+// EXTERNAL MODULE: ./node_modules/reakit-warning/es/index.js + 2 modules
+var reakit_warning_es = __webpack_require__(80);
+
+// EXTERNAL MODULE: ./node_modules/reakit-utils/es/useLiveRef.js
+var useLiveRef = __webpack_require__(46);
+
+// EXTERNAL MODULE: ./node_modules/reakit-utils/es/createEvent.js
+var createEvent = __webpack_require__(122);
+
+// EXTERNAL MODULE: ./node_modules/reakit-warning/es/warning.js
+var warning = __webpack_require__(106);
+
+// EXTERNAL MODULE: ./node_modules/reakit-utils/es/useSealedState.js
+var useSealedState = __webpack_require__(62);
+
+// CONCATENATED MODULE: ./node_modules/reakit/es/Radio/RadioState.js
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+function useRadioState(initialState) {
+  if (initialState === void 0) {
+    initialState = {};
+  }
+
+  var _useSealedState = Object(useSealedState["a" /* 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_this_React_["useState"])(initialValue),
+      state = _React$useState[0],
+      setState = _React$useState[1];
+
+  var composite = Object(CompositeState_3a25dcee["g" /* u */])(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
+  });
+}
+var keys = [].concat(CompositeState_3a25dcee["g" /* u */].__keys, ["state", "setState"]);
+useRadioState.__keys = 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_this_React_["useState"])(function () {
+    return getChecked(options);
+  }),
+      initialChecked = _React$useState[0];
+
+  var _React$useState2 = Object(external_this_React_["useState"])(options.currentId),
+      initialCurrentId = _React$useState2[0];
+
+  var id = options.id,
+      setCurrentId = options.setCurrentId;
+  Object(external_this_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 */],
+  useState: useRadioState,
+  keys: ["value", "checked", "unstable_checkOnFocus"],
+  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_this_React_["useRef"])(null);
+
+    var _React$useState3 = Object(external_this_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_this_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_this_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_this_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;
+      fireChange(event.currentTarget, onChange);
+    }, [onChange]);
+    Object(external_this_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,
+      "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
+ */
+
+var RadioContext = Object(external_this_wp_element_["createContext"])({
+  state: null,
+  setState: function 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) {
+  var children = _ref.children,
+      value = _ref.value,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["children", "value"]);
+
+  var radioContext = Object(external_this_wp_element_["useContext"])(radio_context);
+  var checked = radioContext.state === value;
+  return Object(external_this_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_this_wp_element_["forwardRef"])(radio_Radio));
+
+// EXTERNAL MODULE: ./node_modules/reakit-system/es/useCreateElement.js
+var useCreateElement = __webpack_require__(78);
+
+// CONCATENATED MODULE: ./node_modules/reakit/es/Radio/RadioGroup.js
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+var useRadioGroup = Object(createHook["a" /* createHook */])({
+  name: "RadioGroup",
+  compose: Composite["b" /* useComposite */],
+  useState: useRadioState,
+  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
+
+
+
+
+
+function radio_group_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 radio_group_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { radio_group_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty["a" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { radio_group_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+function radio_group_RadioGroup(_ref, ref) {
+  var accessibilityLabel = _ref.accessibilityLabel,
+      checked = _ref.checked,
+      defaultChecked = _ref.defaultChecked,
+      disabled = _ref.disabled,
+      onChange = _ref.onChange,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["accessibilityLabel", "checked", "defaultChecked", "disabled", "onChange"]);
+
+  var radioState = useRadioState({
+    state: defaultChecked,
+    baseId: props.id
+  });
+
+  var radioContext = radio_group_objectSpread({}, radioState, {
+    disabled: disabled,
+    // controlled or uncontrolled
+    state: checked || radioState.state,
+    setState: onChange || radioState.setState
+  });
+
+  return Object(external_this_wp_element_["createElement"])(radio_context.Provider, {
+    value: radioContext
+  }, Object(external_this_wp_element_["createElement"])(RadioGroup, Object(esm_extends["a" /* default */])({
+    ref: ref,
+    as: button_group,
+    "aria-label": accessibilityLabel
+  }, radioState, props)));
+}
+
+/* harmony default export */ var radio_group = (Object(external_this_wp_element_["forwardRef"])(radio_group_RadioGroup));
+
 // CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/radio-control/index.js
 
 
@@ -35148,23 +43470,22 @@
  */
 
 
-
 function RadioControl(_ref) {
   var label = _ref.label,
       className = _ref.className,
       selected = _ref.selected,
       help = _ref.help,
-      instanceId = _ref.instanceId,
       onChange = _ref.onChange,
       _ref$options = _ref.options,
       options = _ref$options === void 0 ? [] : _ref$options;
+  var instanceId = Object(external_this_wp_compose_["useInstanceId"])(RadioControl);
   var id = "inspector-radio-control-".concat(instanceId);
 
   var onChangeValue = function onChangeValue(event) {
     return onChange(event.target.value);
   };
 
-  return !Object(external_lodash_["isEmpty"])(options) && Object(external_this_wp_element_["createElement"])(base_control, {
+  return !Object(external_this_lodash_["isEmpty"])(options) && Object(external_this_wp_element_["createElement"])(base_control, {
     label: label,
     id: id,
     help: help,
@@ -35188,752 +43509,1303 @@
   }));
 }
 
-/* harmony default export */ var radio_control = (Object(external_this_wp_compose_["withInstanceId"])(RadioControl));
-
-// EXTERNAL MODULE: external "React"
-var external_React_ = __webpack_require__(27);
+// CONCATENATED MODULE: ./node_modules/re-resizable/lib/resizer.js
+var __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 __assign = (undefined && undefined.__assign) || function () {
+    __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 __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) {
+    __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_this_React_["createElement"]("div", { className: this.props.className || '', style: __assign(__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_this_React_["PureComponent"]));
+
+
+// EXTERNAL MODULE: ./node_modules/fast-memoize/src/index.js
+var fast_memoize_src = __webpack_require__(116);
+var src_default = /*#__PURE__*/__webpack_require__.n(fast_memoize_src);
 
 // CONCATENATED MODULE: ./node_modules/re-resizable/lib/index.js
-
-
-var lib_classCallCheck = function (instance, Constructor) {
-  if (!(instance instanceof Constructor)) {
-    throw new TypeError("Cannot call a class as a function");
-  }
-};
-
-var lib_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 _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 lib_inherits = function (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 lib_possibleConstructorReturn = function (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;
-};
-
-var styles = {
-  base: {
-    position: 'absolute',
-    userSelect: 'none',
-    MsUserSelect: 'none'
-  },
-  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 = (function (props) {
-  return Object(external_React_["createElement"])(
-    'div',
-    {
-      className: props.className,
-      style: _extends({}, styles.base, styles[props.direction], props.replaceStyles || {}),
-      onMouseDown: function onMouseDown(e) {
-        props.onResizeStart(e, props.direction);
-      },
-      onTouchStart: function onTouchStart(e) {
-        props.onResizeStart(e, props.direction);
-      }
-    },
-    props.children
-  );
-});
-
-var userSelectNone = {
-  userSelect: 'none',
-  MozUserSelect: 'none',
-  WebkitUserSelect: 'none',
-  MsUserSelect: 'none'
-};
-
-var userSelectAuto = {
-  userSelect: 'auto',
-  MozUserSelect: 'auto',
-  WebkitUserSelect: 'auto',
-  MsUserSelect: 'auto'
-};
-
-var clamp = function clamp(n, min, max) {
-  return Math.max(Math.min(n, max), min);
-};
-var snap = function snap(n, size) {
-  return Math.round(n / size) * size;
-};
-
-var findClosestSnap = function findClosestSnap(n, snapArray) {
-  return snapArray.reduce(function (prev, curr) {
-    return Math.abs(curr - n) < Math.abs(prev - n) ? curr : prev;
-  });
-};
-
-var endsWith = function endsWith(str, searchStr) {
-  return str.substr(str.length - searchStr.length, searchStr.length) === searchStr;
-};
-
-var getStringSize = function getStringSize(n) {
-  if (n.toString() === 'auto') return n.toString();
-  if (endsWith(n.toString(), 'px')) return n.toString();
-  if (endsWith(n.toString(), '%')) return n.toString();
-  if (endsWith(n.toString(), 'vh')) return n.toString();
-  if (endsWith(n.toString(), 'vw')) return n.toString();
-  if (endsWith(n.toString(), 'vmax')) return n.toString();
-  if (endsWith(n.toString(), 'vmin')) return n.toString();
-  return n + 'px';
-};
-
-var definedProps = ['style', 'className', 'grid', 'snap', 'bounds', 'size', 'defaultSize', 'minWidth', 'minHeight', 'maxWidth', 'maxHeight', 'lockAspectRatio', 'lockAspectRatioExtraWidth', 'lockAspectRatioExtraHeight', 'enable', 'handleStyles', 'handleClasses', 'handleWrapperStyle', 'handleWrapperClass', 'children', 'onResizeStart', 'onResize', 'onResizeStop', 'handleComponent', 'scale', 'resizeRatio'];
-
+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);
+});
+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, '%')) {
+            var ratio = Number(size.replace('%', '')) / 100;
+            return parentSize * ratio;
+        }
+        else if (endsWith(size, 'vw')) {
+            var ratio = Number(size.replace('vw', '')) / 100;
+            return innerWidth * ratio;
+        }
+        else 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',
+    '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 = function (_React$Component) {
-  lib_inherits(Resizable, _React$Component);
-
-  function Resizable(props) {
-    lib_classCallCheck(this, Resizable);
-
-    var _this = lib_possibleConstructorReturn(this, (Resizable.__proto__ || Object.getPrototypeOf(Resizable)).call(this, props));
-
-    _this.state = {
-      isResizing: false,
-      resizeCursor: 'auto',
-      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
-      }
-    };
-
-    _this.updateExtendsProps(props);
-    _this.onResizeStart = _this.onResizeStart.bind(_this);
-    _this.onMouseMove = _this.onMouseMove.bind(_this);
-    _this.onMouseUp = _this.onMouseUp.bind(_this);
-
-    if (typeof window !== 'undefined') {
-      window.addEventListener('mouseup', _this.onMouseUp);
-      window.addEventListener('mousemove', _this.onMouseMove);
-      window.addEventListener('mouseleave', _this.onMouseUp);
-      window.addEventListener('touchmove', _this.onMouseMove);
-      window.addEventListener('touchend', _this.onMouseUp);
-    }
-    return _this;
-  }
-
-  lib_createClass(Resizable, [{
-    key: 'updateExtendsProps',
-    value: function updateExtendsProps(props) {
-      this.extendsProps = Object.keys(props).reduce(function (acc, key) {
-        if (definedProps.indexOf(key) !== -1) return acc;
-        acc[key] = props[key];
-        return acc;
-      }, {});
-    }
-  }, {
-    key: 'getParentSize',
-    value: function getParentSize() {
-      var base = this.base;
-
-      if (!base) return { width: window.innerWidth, height: window.innerHeight };
-      // INFO: To calculate parent width with flex layout
-      var wrapChanged = false;
-      var wrap = this.parentNode.style.flexWrap;
-      var minWidth = base.style.minWidth;
-      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
-      };
-      base.style.position = 'absolute';
-      if (wrapChanged) this.parentNode.style.flexWrap = wrap;
-      base.style.minWidth = minWidth;
-      return size;
-    }
-  }, {
-    key: 'componentDidMount',
-    value: function componentDidMount() {
-      var size = this.size;
-
-      this.setState({
-        width: this.state.width || size.width,
-        height: this.state.height || size.height
-      });
-      var parent = this.parentNode;
-      if (!(parent instanceof HTMLElement)) return;
-      if (this.base) return;
-      var element = 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);
-    }
-  }, {
-    key: 'componentWillReceiveProps',
-    value: function componentWillReceiveProps(next) {
-      this.updateExtendsProps(next);
-    }
-  }, {
-    key: 'componentWillUnmount',
-    value: function componentWillUnmount() {
-      if (typeof window !== 'undefined') {
-        window.removeEventListener('mouseup', this.onMouseUp);
-        window.removeEventListener('mousemove', this.onMouseMove);
-        window.removeEventListener('mouseleave', this.onMouseUp);
-        window.removeEventListener('touchmove', this.onMouseMove);
-        window.removeEventListener('touchend', this.onMouseUp);
+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.resizableTop = 0;
+        // For target boundary
+        _this.targetLeft = 0;
+        _this.targetTop = 0;
+        _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: true,
+        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: true,
+        configurable: true
+    });
+    Object.defineProperty(Resizable.prototype, "propsSize", {
+        get: function () {
+            return this.props.size || this.props.defaultSize || DEFAULT_SIZE;
+        },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(Resizable.prototype, "base", {
+        get: function () {
+            var parent = this.parentNode;
+            if (!parent) {
+                return undefined;
+            }
+            var children = [].slice.call(parent.children);
+            for (var _i = 0, children_1 = children; _i < children_1.length; _i++) {
+                var n = children_1[_i];
+                if (n.classList.contains(baseClassName)) {
+                    return n;
+                }
+            }
+            return undefined;
+        },
+        enumerable: true,
+        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: true,
+        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: true,
+        configurable: true
+    });
+    Resizable.prototype.getParentSize = function () {
+        if (!this.base || !this.parentNode) {
+            if (!this.window) {
+                return { width: 0, height: 0 };
+            }
+            return { width: this.window.innerWidth, height: this.window.innerHeight };
+        }
+        // INFO: To calculate parent width with flex layout
+        var wrapChanged = false;
+        var wrap = this.parentNode.style.flexWrap;
+        var minWidth = this.base.style.minWidth;
+        if (wrap !== 'wrap') {
+            wrapChanged = true;
+            this.parentNode.style.flexWrap = 'wrap';
+            // HACK: Use relative to get parent padding size
+        }
+        this.base.style.position = 'relative';
+        this.base.style.minWidth = '100%';
+        var size = {
+            width: this.base.offsetWidth,
+            height: this.base.offsetHeight,
+        };
+        this.base.style.position = 'absolute';
+        if (wrapChanged) {
+            this.parentNode.style.flexWrap = wrap;
+        }
+        this.base.style.minWidth = minWidth;
+        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,
+        });
         var parent = this.parentNode;
-        var base = this.base;
-
-        if (!base || !parent) return;
-        if (!(parent instanceof HTMLElement) || !(base instanceof Node)) return;
-        parent.removeChild(base);
-      }
-    }
-  }, {
-    key: 'calculateNewSize',
-    value: function calculateNewSize(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;
-    }
-  }, {
-    key: 'onResizeStart',
-    value: function onResizeStart(event, direction) {
-      var clientX = 0;
-      var clientY = 0;
-      if (event.nativeEvent instanceof MouseEvent) {
-        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 instanceof TouchEvent) {
-        clientX = event.nativeEvent.touches[0].clientX;
-        clientY = event.nativeEvent.touches[0].clientY;
-      }
-      if (this.props.onResizeStart) {
-        this.props.onResizeStart(event, direction, this.resizable);
-      }
-
-      // 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 });
-        }
-      }
-
-      this.setState({
-        original: {
-          x: clientX,
-          y: clientY,
-          width: this.size.width,
-          height: this.size.height
-        },
-        isResizing: true,
-        resizeCursor: window.getComputedStyle(event.target).cursor,
-        direction: direction
-      });
-    }
-  }, {
-    key: 'onMouseMove',
-    value: function onMouseMove(event) {
-      if (!this.state.isResizing) return;
-      var clientX = event instanceof MouseEvent ? event.clientX : event.touches[0].clientX;
-      var clientY = event instanceof MouseEvent ? event.clientY : event.touches[0].clientY;
-      var _state = this.state,
-          direction = _state.direction,
-          original = _state.original,
-          width = _state.width,
-          height = _state.height;
-      var _props = this.props,
-          lockAspectRatio = _props.lockAspectRatio,
-          lockAspectRatioExtraHeight = _props.lockAspectRatioExtraHeight,
-          lockAspectRatioExtraWidth = _props.lockAspectRatioExtraWidth;
-
-      var scale = this.props.scale || 1;
-      var _props2 = this.props,
-          maxWidth = _props2.maxWidth,
-          maxHeight = _props2.maxHeight,
-          minWidth = _props2.minWidth,
-          minHeight = _props2.minHeight;
-
-      var resizeRatio = this.props.resizeRatio || 1;
-
-      // TODO: refactor
-      var parentSize = this.getParentSize();
-      if (maxWidth && typeof maxWidth === 'string' && endsWith(maxWidth, '%')) {
-        var _ratio = Number(maxWidth.replace('%', '')) / 100;
-        maxWidth = parentSize.width * _ratio;
-      }
-      if (maxHeight && typeof maxHeight === 'string' && endsWith(maxHeight, '%')) {
-        var _ratio2 = Number(maxHeight.replace('%', '')) / 100;
-        maxHeight = parentSize.height * _ratio2;
-      }
-      if (minWidth && typeof minWidth === 'string' && endsWith(minWidth, '%')) {
-        var _ratio3 = Number(minWidth.replace('%', '')) / 100;
-        minWidth = parentSize.width * _ratio3;
-      }
-      if (minHeight && typeof minHeight === 'string' && endsWith(minHeight, '%')) {
-        var _ratio4 = Number(minHeight.replace('%', '')) / 100;
-        minHeight = parentSize.height * _ratio4;
-      }
-      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 ratio = typeof lockAspectRatio === 'number' ? lockAspectRatio : original.width / original.height;
-      var newWidth = original.width;
-      var newHeight = original.height;
-      if (/right/i.test(direction)) {
-        newWidth = original.width + (clientX - original.x) * resizeRatio / scale;
-        if (lockAspectRatio) newHeight = (newWidth - lockAspectRatioExtraWidth) / ratio + lockAspectRatioExtraHeight;
-      }
-      if (/left/i.test(direction)) {
-        newWidth = original.width - (clientX - original.x) * resizeRatio / scale;
-        if (lockAspectRatio) newHeight = (newWidth - lockAspectRatioExtraWidth) / ratio + lockAspectRatioExtraHeight;
-      }
-      if (/bottom/i.test(direction)) {
-        newHeight = original.height + (clientY - original.y) * resizeRatio / scale;
-        if (lockAspectRatio) newWidth = (newHeight - lockAspectRatioExtraHeight) * ratio + lockAspectRatioExtraWidth;
-      }
-      if (/top/i.test(direction)) {
-        newHeight = original.height - (clientY - original.y) * resizeRatio / scale;
-        if (lockAspectRatio) newWidth = (newHeight - lockAspectRatioExtraHeight) * ratio + lockAspectRatioExtraWidth;
-      }
-
-      if (this.props.bounds === 'parent') {
-        var parent = this.parentNode;
-        if (parent instanceof HTMLElement) {
-          var parentRect = parent.getBoundingClientRect();
-          var parentLeft = parentRect.left;
-          var parentTop = parentRect.top;
-
-          var _resizable$getBoundin = this.resizable.getBoundingClientRect(),
-              _left = _resizable$getBoundin.left,
-              _top = _resizable$getBoundin.top;
-
-          var boundWidth = parent.offsetWidth + (parentLeft - _left);
-          var boundHeight = parent.offsetHeight + (parentTop - _top);
-          maxWidth = maxWidth && maxWidth < boundWidth ? maxWidth : boundWidth;
-          maxHeight = maxHeight && maxHeight < boundHeight ? maxHeight : boundHeight;
-        }
-      } else if (this.props.bounds === 'window') {
-        if (typeof window !== 'undefined') {
-          var _resizable$getBoundin2 = this.resizable.getBoundingClientRect(),
-              _left2 = _resizable$getBoundin2.left,
-              _top2 = _resizable$getBoundin2.top;
-
-          var _boundWidth = window.innerWidth - _left2;
-          var _boundHeight = window.innerHeight - _top2;
-          maxWidth = maxWidth && maxWidth < _boundWidth ? maxWidth : _boundWidth;
-          maxHeight = maxHeight && maxHeight < _boundHeight ? maxHeight : _boundHeight;
-        }
-      } else if (this.props.bounds instanceof HTMLElement) {
-        var targetRect = this.props.bounds.getBoundingClientRect();
-        var targetLeft = targetRect.left;
-        var targetTop = targetRect.top;
-
-        var _resizable$getBoundin3 = this.resizable.getBoundingClientRect(),
-            _left3 = _resizable$getBoundin3.left,
-            _top3 = _resizable$getBoundin3.top;
-
-        if (!(this.props.bounds instanceof HTMLElement)) return;
-        var _boundWidth2 = this.props.bounds.offsetWidth + (targetLeft - _left3);
-        var _boundHeight2 = this.props.bounds.offsetHeight + (targetTop - _top3);
-        maxWidth = maxWidth && maxWidth < _boundWidth2 ? maxWidth : _boundWidth2;
-        maxHeight = maxHeight && maxHeight < _boundHeight2 ? maxHeight : _boundHeight2;
-      }
-
-      var computedMinWidth = typeof minWidth === 'undefined' ? 10 : minWidth;
-      var computedMaxWidth = typeof maxWidth === 'undefined' || maxWidth < 0 ? newWidth : maxWidth;
-      var computedMinHeight = typeof minHeight === 'undefined' ? 10 : minHeight;
-      var computedMaxHeight = typeof maxHeight === 'undefined' || maxHeight < 0 ? newHeight : maxHeight;
-
-      if (lockAspectRatio) {
-        var extraMinWidth = (computedMinHeight - lockAspectRatioExtraHeight) * ratio + lockAspectRatioExtraWidth;
-        var extraMaxWidth = (computedMaxHeight - lockAspectRatioExtraHeight) * ratio + lockAspectRatioExtraWidth;
-        var extraMinHeight = (computedMinWidth - lockAspectRatioExtraWidth) / ratio + lockAspectRatioExtraHeight;
-        var extraMaxHeight = (computedMaxWidth - lockAspectRatioExtraWidth) / ratio + lockAspectRatioExtraHeight;
-        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);
-      }
-      if (this.props.grid) {
-        newWidth = snap(newWidth, this.props.grid[0]);
-      }
-      if (this.props.grid) {
-        newHeight = snap(newHeight, this.props.grid[1]);
-      }
-
-      if (this.props.snap && this.props.snap.x) {
-        newWidth = findClosestSnap(newWidth, this.props.snap.x);
-      }
-      if (this.props.snap && this.props.snap.y) {
-        newHeight = findClosestSnap(newHeight, this.props.snap.y);
-      }
-
-      var delta = {
-        width: newWidth - original.width,
-        height: newHeight - original.height
-      };
-
-      if (width && typeof width === 'string' && endsWith(width, '%')) {
-        var percent = newWidth / parentSize.width * 100;
-        newWidth = percent + '%';
-      }
-
-      if (height && typeof height === 'string' && endsWith(height, '%')) {
-        var _percent = newHeight / parentSize.height * 100;
-        newHeight = _percent + '%';
-      }
-
-      this.setState({
-        width: this.calculateNewSize(newWidth, 'width'),
-        height: this.calculateNewSize(newHeight, 'height')
-      });
-
-      if (this.props.onResize) {
-        this.props.onResize(event, direction, this.resizable, delta);
-      }
-    }
-  }, {
-    key: 'onMouseUp',
-    value: function onMouseUp(event) {
-      var _state2 = this.state,
-          isResizing = _state2.isResizing,
-          direction = _state2.direction,
-          original = _state2.original;
-
-      if (!isResizing) 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.setState({ isResizing: false, resizeCursor: 'auto' });
-    }
-  }, {
-    key: 'updateSize',
-    value: function updateSize(size) {
-      this.setState({ width: size.width, height: size.height });
-    }
-  }, {
-    key: 'renderResizer',
-    value: function renderResizer() {
-      var _this2 = this;
-
-      var _props3 = this.props,
-          enable = _props3.enable,
-          handleStyles = _props3.handleStyles,
-          handleClasses = _props3.handleClasses,
-          handleWrapperStyle = _props3.handleWrapperStyle,
-          handleWrapperClass = _props3.handleWrapperClass,
-          handleComponent = _props3.handleComponent;
-
-      if (!enable) return null;
-      var resizers = Object.keys(enable).map(function (dir) {
-        if (enable[dir] !== false) {
-          return Object(external_React_["createElement"])(
-            Resizer,
-            {
-              key: dir,
-              direction: dir,
-              onResizeStart: _this2.onResizeStart,
-              replaceStyles: handleStyles && handleStyles[dir],
-              className: handleClasses && handleClasses[dir]
+        if (!parent) {
+            return;
+        }
+        if (this.base) {
+            return;
+        }
+        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);
+    };
+    Resizable.prototype.componentWillUnmount = function () {
+        if (this.window) {
+            this.unbindEvents();
+            var parent_1 = this.parentNode;
+            if (!this.base || !parent_1) {
+                return;
+            }
+            if (!parent_1 || !this.base) {
+                return;
+            }
+            parent_1.removeChild(this.base);
+        }
+    };
+    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) {
+        if (this.props.bounds === 'parent') {
+            var parent_2 = this.parentNode;
+            if (parent_2) {
+                var boundWidth = parent_2.offsetWidth + (this.parentLeft - this.resizableLeft);
+                var boundHeight = parent_2.offsetHeight + (this.parentTop - this.resizableTop);
+                maxWidth = maxWidth && maxWidth < boundWidth ? maxWidth : boundWidth;
+                maxHeight = maxHeight && maxHeight < boundHeight ? maxHeight : boundHeight;
+            }
+        }
+        else if (this.props.bounds === 'window') {
+            if (this.window) {
+                var boundWidth = this.window.innerWidth - this.resizableLeft;
+                var boundHeight = this.window.innerHeight - this.resizableTop;
+                maxWidth = maxWidth && maxWidth < boundWidth ? maxWidth : boundWidth;
+                maxHeight = maxHeight && maxHeight < boundHeight ? maxHeight : boundHeight;
+            }
+        }
+        else if (this.props.bounds) {
+            var boundWidth = this.props.bounds.offsetWidth + (this.targetLeft - this.resizableLeft);
+            var boundHeight = this.props.bounds.offsetHeight + (this.targetTop - this.resizableTop);
+            maxWidth = maxWidth && maxWidth < boundWidth ? maxWidth : boundWidth;
+            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_3 = this.parentNode;
+            if (parent_3) {
+                var parentRect = parent_3.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;
+            this.resizableLeft = left;
+            this.resizableTop = top_1;
+        }
+    };
+    Resizable.prototype.onResizeStart = function (event, direction) {
+        if (!this.resizable || !this.window) {
+            return;
+        }
+        var clientX = 0;
+        var clientY = 0;
+        if (event.nativeEvent instanceof this.window.MouseEvent) {
+            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 instanceof this.window.TouchEvent) {
+            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_4 = this.parentNode;
+            if (parent_4) {
+                var dir = this.window.getComputedStyle(parent_4).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,
             },
-            handleComponent && handleComponent[dir] ? Object(external_React_["createElement"])(handleComponent[dir]) : null
-          );
-        }
-        return null;
-      });
-      // #93 Wrap the resize box in span (will not break 100% width/height)
-      return Object(external_React_["createElement"])(
-        'span',
-        { className: handleWrapperClass, style: handleWrapperStyle },
-        resizers
-      );
-    }
-  }, {
-    key: 'render',
-    value: function render() {
-      var _this3 = this;
-
-      var userSelect = this.state.isResizing ? userSelectNone : userSelectAuto;
-      return Object(external_React_["createElement"])(
-        'div',
-        _extends({
-          ref: function ref(c) {
-            if (c) {
-              _this3.resizable = c;
-            }
-          },
-          style: _extends({
-            position: 'relative'
-          }, userSelect, this.props.style, this.sizeStyle, {
-            maxWidth: this.props.maxWidth,
-            maxHeight: this.props.maxHeight,
-            minWidth: this.props.minWidth,
-            minHeight: this.props.minHeight,
-            boxSizing: 'border-box'
-          }),
-          className: this.props.className
-        }, this.extendsProps),
-        this.state.isResizing && Object(external_React_["createElement"])('div', {
-          style: {
-            height: '100%',
-            width: '100%',
-            backgroundColor: 'rgba(0,0,0,0)',
-            cursor: '' + (this.state.resizeCursor || 'auto'),
-            opacity: '0',
-            position: 'fixed',
-            zIndex: '9999',
-            top: '0',
-            left: '0',
-            bottom: '0',
-            right: '0'
-          }
-        }),
-        this.props.children,
-        this.renderResizer()
-      );
-    }
-  }, {
-    key: 'parentNode',
-    get: function get$$1() {
-      return this.resizable.parentNode;
-    }
-  }, {
-    key: 'propsSize',
-    get: function get$$1() {
-      return this.props.size || this.props.defaultSize;
-    }
-  }, {
-    key: 'base',
-    get: function get$$1() {
-      var parent = this.parentNode;
-      if (!parent) return undefined;
-      var children = [].slice.call(parent.children);
-      for (var i = 0; i < children.length; i += 1) {
-        var n = children[i];
-        if (n instanceof HTMLElement) {
-          if (n.classList.contains(baseClassName)) {
-            return n;
-          }
-        }
-      }
-      return undefined;
-    }
-  }, {
-    key: 'size',
-    get: function get$$1() {
-      var width = 0;
-      var height = 0;
-      if (typeof window !== 'undefined') {
-        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 };
-    }
-  }, {
-    key: 'sizeStyle',
-    get: function get$$1() {
-      var _this4 = this;
-
-      var size = this.props.size;
-
-      var getSize = function getSize(key) {
-        if (typeof _this4.state[key] === 'undefined' || _this4.state[key] === 'auto') return 'auto';
-        if (_this4.propsSize && _this4.propsSize[key] && endsWith(_this4.propsSize[key].toString(), '%')) {
-          if (endsWith(_this4.state[key].toString(), '%')) return _this4.state[key].toString();
-          var parentSize = _this4.getParentSize();
-          var value = Number(_this4.state[key].toString().replace('px', ''));
-          var percent = value / parentSize[key] * 100;
-          return percent + '%';
-        }
-        return getStringSize(_this4.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 };
-    }
-  }]);
-  return Resizable;
-}(external_React_["Component"]);
-
-lib_Resizable.defaultProps = {
-  onResizeStart: function onResizeStart() {},
-  onResize: function onResize() {},
-  onResizeStop: function onResizeStop() {},
-  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
-};
-
-/* harmony default export */ var re_resizable_lib = (lib_Resizable);
+            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 && event instanceof this.window.TouchEvent) {
+            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 = event instanceof this.window.MouseEvent ? event.clientX : event.touches[0].clientX;
+        var clientY = event instanceof this.window.MouseEvent ? event.clientY : event.touches[0].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_this_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_this_React_["createElement"]("span", { className: handleWrapperClass, style: handleWrapperStyle }, resizers));
+    };
+    Resizable.prototype.render = function () {
+        var _this = this;
+        var _a;
+        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 = (_a = this.props.as) !== null && _a !== void 0 ? _a : 'div';
+        return (external_this_React_["createElement"](Wrapper, lib_assign({ ref: this.ref, style: style, className: this.props.className }, extendsProps),
+            this.state.isResizing && external_this_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_this_React_["PureComponent"]));
+
+
+// EXTERNAL MODULE: ./node_modules/react-resize-aware/dist/index.js
+var dist = __webpack_require__(149);
+var dist_default = /*#__PURE__*/__webpack_require__.n(dist);
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/resizable-box/resize-tooltip/utils.js
+
+
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+var utils_window = window,
+    utils_clearTimeout = utils_window.clearTimeout,
+    utils_setTimeout = utils_window.setTimeout;
+var 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(_ref) {
+  var axis = _ref.axis,
+      _ref$fadeTimeout = _ref.fadeTimeout,
+      fadeTimeout = _ref$fadeTimeout === void 0 ? 180 : _ref$fadeTimeout,
+      _ref$onResize = _ref.onResize,
+      onResize = _ref$onResize === void 0 ? external_this_lodash_["noop"] : _ref$onResize,
+      _ref$position = _ref.position,
+      position = _ref$position === void 0 ? POSITIONS.bottom : _ref$position,
+      _ref$showPx = _ref.showPx,
+      showPx = _ref$showPx === void 0 ? false : _ref$showPx;
+
+  /*
+   * 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.
+   */
+  var _useResizeAware = dist_default()(),
+      _useResizeAware2 = Object(slicedToArray["a" /* default */])(_useResizeAware, 2),
+      resizeListener = _useResizeAware2[0],
+      sizes = _useResizeAware2[1];
+  /*
+   * 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.
+   */
+
+
+  var isAxisControlled = !!axis;
+  /*
+   * The moveX and moveY values are used to track whether the label should
+   * display width, height, or width x height.
+   */
+
+  var _useState = Object(external_this_wp_element_["useState"])(false),
+      _useState2 = Object(slicedToArray["a" /* default */])(_useState, 2),
+      moveX = _useState2[0],
+      setMoveX = _useState2[1];
+
+  var _useState3 = Object(external_this_wp_element_["useState"])(false),
+      _useState4 = Object(slicedToArray["a" /* default */])(_useState3, 2),
+      moveY = _useState4[0],
+      setMoveY = _useState4[1];
+  /*
+   * Cached dimension values to check for width/height updates from the
+   * sizes property from useResizeAware()
+   */
+
+
+  var heightRef = Object(external_this_wp_element_["useRef"])(height);
+  var widthRef = Object(external_this_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.
+   */
+
+  var moveTimeoutRef = Object(external_this_wp_element_["useRef"])();
+  var width = sizes.width,
+      height = sizes.height;
+
+  var unsetMoveXY = function 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);
+  };
+
+  var debounceUnsetMoveXY = function debounceUnsetMoveXY() {
+    if (moveTimeoutRef.current) {
+      utils_clearTimeout(moveTimeoutRef.current);
+    }
+
+    moveTimeoutRef.current = utils_setTimeout(unsetMoveXY, fadeTimeout);
+  };
+
+  Object(external_this_wp_element_["useEffect"])(function () {
+    /*
+     * On the initial render of useResizeAware, the height and width values are
+     * null. They are calculated then set using via an internal useEffect hook.
+     */
+    var isRendered = width !== null || height !== null;
+    if (!isRendered) return;
+    var didWidthChange = width !== widthRef.current;
+    var 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: width,
+      height: height
+    });
+    debounceUnsetMoveXY();
+  }, [width, height]);
+  var label = getSizeLabel({
+    axis: axis,
+    height: height,
+    moveX: moveX,
+    moveY: moveY,
+    position: position,
+    showPx: showPx,
+    width: width
+  });
+  return {
+    label: label,
+    resizeListener: 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(_ref2) {
+  var axis = _ref2.axis,
+      height = _ref2.height,
+      _ref2$moveX = _ref2.moveX,
+      moveX = _ref2$moveX === void 0 ? false : _ref2$moveX,
+      _ref2$moveY = _ref2.moveY,
+      moveY = _ref2$moveY === void 0 ? false : _ref2$moveY,
+      _ref2$position = _ref2.position,
+      position = _ref2$position === void 0 ? POSITIONS.bottom : _ref2$position,
+      _ref2$showPx = _ref2.showPx,
+      showPx = _ref2$showPx === void 0 ? false : _ref2$showPx,
+      width = _ref2.width;
+  if (!moveX && !moveY) return null;
+  /*
+   * Corner position...
+   * We want the label to appear like width x height.
+   */
+
+  if (position === POSITIONS.corner) {
+    return "".concat(width, " x ").concat(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.
+   */
+
+
+  var labelUnit = showPx ? ' px' : '';
+
+  if (axis) {
+    if (axis === 'x' && moveX) {
+      return "".concat(width).concat(labelUnit);
+    }
+
+    if (axis === 'y' && moveY) {
+      return "".concat(height).concat(labelUnit);
+    }
+  }
+
+  if (moveX && moveY) {
+    return "".concat(width, " x ").concat(height);
+  }
+
+  if (moveX) {
+    return "".concat(width).concat(labelUnit);
+  }
+
+  if (moveY) {
+    return "".concat(height).concat(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
+ */
+
+
+
+var 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);
+var 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);
+var resize_tooltip_styles_Tooltip = styled_base_browser_esm("div", {
+  target: "ekdag502",
+  label: "Tooltip"
+})("background:", colors_color('ui.border'), ";border-radius:2px;box-sizing:border-box;font-size:12px;color:", colors_color('ui.textDark'), ";padding:4px 8px;position:relative;" + ( true ? "" : undefined)); // TODO: Resolve need to use &&& to increase specificity
+// https://github.com/WordPress/gutenberg/issues/18483
+
+var LabelText = /*#__PURE__*/styled_base_browser_esm(build_module_text, {
+  target: "ekdag503",
+  label: "LabelText"
+})("&&&{", text_mixins_text, ";display:block;font-size:13px;line-height:1.4;}" + ( true ? "" : undefined));
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/resizable-box/resize-tooltip/label.js
+
+
+
+
+
+function label_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 label_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { label_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty["a" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { label_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+var CORNER_OFFSET = 4;
+var CURSOR_OFFSET_TOP = CORNER_OFFSET * 2.5;
+
+function resize_tooltip_label_Label(_ref, ref) {
+  var label = _ref.label,
+      _ref$position = _ref.position,
+      position = _ref$position === void 0 ? POSITIONS.corner : _ref$position,
+      _ref$zIndex = _ref.zIndex,
+      zIndex = _ref$zIndex === void 0 ? 1000 : _ref$zIndex,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["label", "position", "zIndex"]);
+
+  var isRTL = useRTL();
+  var showLabel = !!label;
+  var isBottom = position === POSITIONS.bottom;
+  var isCorner = position === POSITIONS.corner;
+  if (!showLabel) return null;
+  var style = {
+    opacity: showLabel ? 1 : null,
+    zIndex: zIndex
+  };
+  var labelStyle = {};
+
+  if (isBottom) {
+    style = label_objectSpread({}, style, {
+      position: 'absolute',
+      bottom: CURSOR_OFFSET_TOP * -1,
+      left: '50%',
+      transform: 'translate(-50%, 0)'
+    });
+    labelStyle = {
+      transform: "translate(0, 100%)"
+    };
+  }
+
+  if (isCorner) {
+    style = label_objectSpread({}, style, {
+      position: 'absolute',
+      top: CORNER_OFFSET,
+      right: isRTL ? null : CORNER_OFFSET,
+      left: isRTL ? CORNER_OFFSET : null
+    });
+  }
+
+  return Object(external_this_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_this_wp_element_["createElement"])(resize_tooltip_styles_Tooltip, {
+    className: "components-resizable-tooltip__tooltip",
+    style: labelStyle
+  }, Object(external_this_wp_element_["createElement"])(LabelText, {
+    as: "span"
+  }, label)));
+}
+
+var label_ForwardedComponent = Object(external_this_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(_ref, ref) {
+  var axis = _ref.axis,
+      className = _ref.className,
+      _ref$fadeTimeout = _ref.fadeTimeout,
+      fadeTimeout = _ref$fadeTimeout === void 0 ? 180 : _ref$fadeTimeout,
+      _ref$isVisible = _ref.isVisible,
+      isVisible = _ref$isVisible === void 0 ? true : _ref$isVisible,
+      labelRef = _ref.labelRef,
+      _ref$onResize = _ref.onResize,
+      onResize = _ref$onResize === void 0 ? external_this_lodash_["noop"] : _ref$onResize,
+      _ref$position = _ref.position,
+      position = _ref$position === void 0 ? POSITIONS.bottom : _ref$position,
+      _ref$showPx = _ref.showPx,
+      showPx = _ref$showPx === void 0 ? true : _ref$showPx,
+      _ref$zIndex = _ref.zIndex,
+      zIndex = _ref$zIndex === void 0 ? 1000 : _ref$zIndex,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["axis", "className", "fadeTimeout", "isVisible", "labelRef", "onResize", "position", "showPx", "zIndex"]);
+
+  var _useResizeLabel = useResizeLabel({
+    axis: axis,
+    fadeTimeout: fadeTimeout,
+    onResize: onResize,
+    showPx: showPx,
+    position: position
+  }),
+      label = _useResizeLabel.label,
+      resizeListener = _useResizeLabel.resizeListener;
+
+  if (!isVisible) return null;
+  var classes = classnames_default()('components-resize-tooltip', className);
+  return Object(external_this_wp_element_["createElement"])(resize_tooltip_styles_Root, Object(esm_extends["a" /* default */])({
+    "aria-hidden": "true",
+    className: classes,
+    ref: ref
+  }, props), resizeListener, Object(external_this_wp_element_["createElement"])(resize_tooltip_label, {
+    "aria-hidden": props['aria-hidden'],
+    fadeTimeout: fadeTimeout,
+    isVisible: isVisible,
+    label: label,
+    position: position,
+    ref: labelRef,
+    zIndex: zIndex
+  }));
+}
+
+var resize_tooltip_ForwardedComponent = Object(external_this_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
 
@@ -35945,10 +44817,22 @@
  */
 
 
+/**
+ * Internal dependencies
+ */
+
+
 
 function ResizableBox(_ref) {
   var className = _ref.className,
-      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["className"]);
+      children = _ref.children,
+      _ref$showHandle = _ref.showHandle,
+      showHandle = _ref$showHandle === void 0 ? true : _ref$showHandle,
+      _ref$__experimentalSh = _ref.__experimentalShowTooltip,
+      showTooltip = _ref$__experimentalSh === void 0 ? false : _ref$__experimentalSh,
+      _ref$__experimentalTo = _ref.__experimentalTooltipProps,
+      tooltipProps = _ref$__experimentalTo === void 0 ? {} : _ref$__experimentalTo,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["className", "children", "showHandle", "__experimentalShowTooltip", "__experimentalTooltipProps"]);
 
   // Removes the inline styles in the drag handles.
   var handleStylesOverrides = {
@@ -35960,21 +44844,31 @@
     left: null
   };
   var handleClassName = 'components-resizable-box__handle';
-  return Object(external_this_wp_element_["createElement"])(re_resizable_lib, Object(esm_extends["a" /* default */])({
-    className: classnames_default()('components-resizable-box__container', className),
+  var sideHandleClassName = 'components-resizable-box__side-handle';
+  var cornerHandleClassName = 'components-resizable-box__corner-handle';
+  return Object(external_this_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, 'components-resizable-box__handle-top'),
-      right: classnames_default()(handleClassName, 'components-resizable-box__handle-right'),
-      bottom: classnames_default()(handleClassName, 'components-resizable-box__handle-bottom'),
-      left: classnames_default()(handleClassName, 'components-resizable-box__handle-left')
+      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
-    }
-  }, props));
+      left: handleStylesOverrides,
+      topLeft: handleStylesOverrides,
+      topRight: handleStylesOverrides,
+      bottomRight: handleStylesOverrides,
+      bottomLeft: handleStylesOverrides
+    }
+  }, props), children, showTooltip && Object(external_this_wp_element_["createElement"])(resize_tooltip, tooltipProps));
 }
 
 /* harmony default export */ var resizable_box = (ResizableBox);
@@ -35982,31 +44876,41 @@
 // CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/responsive-wrapper/index.js
 
 
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
 
 
 
 function ResponsiveWrapper(_ref) {
   var naturalWidth = _ref.naturalWidth,
       naturalHeight = _ref.naturalHeight,
-      children = _ref.children;
+      children = _ref.children,
+      _ref$isInline = _ref.isInline,
+      isInline = _ref$isInline === void 0 ? false : _ref$isInline;
+
+  var _useResizeObserver = Object(external_this_wp_compose_["useResizeObserver"])(),
+      _useResizeObserver2 = Object(slicedToArray["a" /* default */])(_useResizeObserver, 2),
+      containerResizeListener = _useResizeObserver2[0],
+      containerWidth = _useResizeObserver2[1].width;
 
   if (external_this_wp_element_["Children"].count(children) !== 1) {
     return null;
   }
 
   var imageStyle = {
-    paddingBottom: naturalHeight / naturalWidth * 100 + '%'
-  };
-  return Object(external_this_wp_element_["createElement"])("div", {
+    paddingBottom: naturalWidth < containerWidth ? naturalHeight : naturalHeight / naturalWidth * 100 + '%'
+  };
+  var TagName = isInline ? 'span' : 'div';
+  return Object(external_this_wp_element_["createElement"])(TagName, {
     className: "components-responsive-wrapper"
-  }, Object(external_this_wp_element_["createElement"])("div", {
+  }, containerResizeListener, Object(external_this_wp_element_["createElement"])(TagName, {
     style: imageStyle
   }), Object(external_this_wp_element_["cloneElement"])(children, {
     className: classnames_default()('components-responsive-wrapper__content', children.props.className)
@@ -36024,30 +44928,34 @@
 
 
 
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-var sandbox_Sandbox =
-/*#__PURE__*/
-function (_Component) {
+function sandbox_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf["a" /* default */])(Derived), result; if (sandbox_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf["a" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn["a" /* default */])(this, result); }; }
+
+function sandbox_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+var sandbox_Sandbox = /*#__PURE__*/function (_Component) {
   Object(inherits["a" /* default */])(Sandbox, _Component);
 
+  var _super = sandbox_createSuper(Sandbox);
+
   function Sandbox() {
     var _this;
 
     Object(classCallCheck["a" /* default */])(this, Sandbox);
 
-    _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(Sandbox).apply(this, arguments));
-    _this.trySandbox = _this.trySandbox.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.checkMessageForResize = _this.checkMessageForResize.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
+    _this = _super.apply(this, arguments);
+    _this.trySandbox = _this.trySandbox.bind(Object(assertThisInitialized["a" /* default */])(_this));
+    _this.checkMessageForResize = _this.checkMessageForResize.bind(Object(assertThisInitialized["a" /* default */])(_this));
     _this.iframe = Object(external_this_wp_element_["createRef"])();
     _this.state = {
       width: 0,
@@ -36059,12 +44967,30 @@
   Object(createClass["a" /* default */])(Sandbox, [{
     key: "componentDidMount",
     value: function componentDidMount() {
+      var _this2 = this;
+
       this.trySandbox();
+
+      this.trySandboxWithoutRerender = function () {
+        _this2.trySandbox(false);
+      }; // 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
+
+
+      this.iframe.current.addEventListener('load', this.trySandboxWithoutRerender, false);
     }
   }, {
     key: "componentDidUpdate",
-    value: function componentDidUpdate() {
-      this.trySandbox();
+    value: function componentDidUpdate(prevProps) {
+      var forceRerender = prevProps.html !== this.props.html;
+      this.trySandbox(forceRerender);
+    }
+  }, {
+    key: "componentWillUnmount",
+    value: function componentWillUnmount() {
+      this.iframe.current.removeEventListener('load', this.trySandboxWithoutRerender);
     }
   }, {
     key: "isFrameAccessible",
@@ -36085,8 +45011,7 @@
       if ('string' === typeof data) {
         try {
           data = JSON.parse(data);
-        } catch (e) {} // eslint-disable-line no-empty
-
+        } catch (e) {}
       } // Verify that the mounted element is the source of the message
 
 
@@ -36114,13 +45039,15 @@
   }, {
     key: "trySandbox",
     value: function trySandbox() {
+      var forceRerender = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
+
       if (!this.isFrameAccessible()) {
         return;
       }
 
       var body = this.iframe.current.contentDocument.body;
 
-      if (null !== body.getAttribute('data-resizable-iframe-connected')) {
+      if (!forceRerender && null !== body.getAttribute('data-resizable-iframe-connected')) {
         return;
       }
 
@@ -36181,7 +45108,6 @@
         title: title,
         className: "components-sandbox",
         sandbox: "allow-scripts allow-same-origin allow-presentation",
-        onLoad: this.trySandbox,
         onFocus: onFocus,
         width: Math.ceil(this.state.width),
         height: Math.ceil(this.state.height)
@@ -36205,83 +45131,166 @@
 })(sandbox_Sandbox);
 /* harmony default export */ var sandbox = (sandbox_Sandbox);
 
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/select-control/index.js
-
-
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Internal dependencies
- */
-
-
-
-function SelectControl(_ref) {
-  var help = _ref.help,
-      instanceId = _ref.instanceId,
-      label = _ref.label,
-      _ref$multiple = _ref.multiple,
-      multiple = _ref$multiple === void 0 ? false : _ref$multiple,
-      onChange = _ref.onChange,
-      _ref$options = _ref.options,
-      options = _ref$options === void 0 ? [] : _ref$options,
+// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/snackbar/index.js
+var snackbar = __webpack_require__(162);
+
+// EXTERNAL MODULE: external {"this":"regeneratorRuntime"}
+var external_this_regeneratorRuntime_ = __webpack_require__(24);
+var external_this_regeneratorRuntime_default = /*#__PURE__*/__webpack_require__.n(external_this_regeneratorRuntime_);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js
+var asyncToGenerator = __webpack_require__(50);
+
+// EXTERNAL MODULE: ./node_modules/react-spring/web.cjs.js
+var web_cjs = __webpack_require__(113);
+
+// 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(_ref) {
+  var notices = _ref.notices,
       className = _ref.className,
-      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["help", "instanceId", "label", "multiple", "onChange", "options", "className"]);
-
-  var id = "inspector-select-control-".concat(instanceId);
-
-  var onChangeValue = function onChangeValue(event) {
-    if (multiple) {
-      var selectedOptions = Object(toConsumableArray["a" /* default */])(event.target.options).filter(function (_ref2) {
-        var selected = _ref2.selected;
-        return selected;
-      });
-
-      var newValues = selectedOptions.map(function (_ref3) {
-        var value = _ref3.value;
-        return value;
-      });
-      onChange(newValues);
-      return;
-    }
-
-    onChange(event.target.value);
-  }; // Disable reason: A select with an onchange throws a warning
-
-  /* eslint-disable jsx-a11y/no-onchange */
-
-
-  return !Object(external_lodash_["isEmpty"])(options) && Object(external_this_wp_element_["createElement"])(base_control, {
-    label: label,
-    id: id,
-    help: help,
+      children = _ref.children,
+      _ref$onRemove = _ref.onRemove,
+      onRemove = _ref$onRemove === void 0 ? external_this_lodash_["noop"] : _ref$onRemove;
+  var isReducedMotion = Object(external_this_wp_compose_["useReducedMotion"])();
+
+  var _useState = Object(external_this_wp_element_["useState"])(function () {
+    return new WeakMap();
+  }),
+      _useState2 = Object(slicedToArray["a" /* default */])(_useState, 1),
+      refMap = _useState2[0];
+
+  var transitions = Object(web_cjs["useTransition"])(notices, function (notice) {
+    return notice.id;
+  }, {
+    from: {
+      opacity: 0,
+      height: 0
+    },
+    enter: function enter(item) {
+      return /*#__PURE__*/function () {
+        var _ref2 = Object(asyncToGenerator["a" /* default */])( /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(function _callee(next) {
+          return external_this_regeneratorRuntime_default.a.wrap(function _callee$(_context) {
+            while (1) {
+              switch (_context.prev = _context.next) {
+                case 0:
+                  _context.next = 2;
+                  return next({
+                    opacity: 1,
+                    height: refMap.get(item).offsetHeight
+                  });
+
+                case 2:
+                  return _context.abrupt("return", _context.sent);
+
+                case 3:
+                case "end":
+                  return _context.stop();
+              }
+            }
+          }, _callee);
+        }));
+
+        return function (_x) {
+          return _ref2.apply(this, arguments);
+        };
+      }();
+    },
+    leave: function leave() {
+      return /*#__PURE__*/function () {
+        var _ref3 = Object(asyncToGenerator["a" /* default */])( /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(function _callee2(next) {
+          return external_this_regeneratorRuntime_default.a.wrap(function _callee2$(_context2) {
+            while (1) {
+              switch (_context2.prev = _context2.next) {
+                case 0:
+                  _context2.next = 2;
+                  return next({
+                    opacity: 0
+                  });
+
+                case 2:
+                  _context2.next = 4;
+                  return next({
+                    height: 0
+                  });
+
+                case 4:
+                case "end":
+                  return _context2.stop();
+              }
+            }
+          }, _callee2);
+        }));
+
+        return function (_x2) {
+          return _ref3.apply(this, arguments);
+        };
+      }();
+    },
+    immediate: isReducedMotion
+  });
+  className = classnames_default()('components-snackbar-list', className);
+
+  var removeNotice = function removeNotice(notice) {
+    return function () {
+      return onRemove(notice.id);
+    };
+  };
+
+  return Object(external_this_wp_element_["createElement"])("div", {
     className: className
-  }, Object(external_this_wp_element_["createElement"])("select", Object(esm_extends["a" /* default */])({
-    id: id,
-    className: "components-select-control__input",
-    onChange: onChangeValue,
-    "aria-describedby": !!help ? "".concat(id, "__help") : undefined,
-    multiple: multiple
-  }, props), options.map(function (option, index) {
-    return Object(external_this_wp_element_["createElement"])("option", {
-      key: "".concat(option.label, "-").concat(option.value, "-").concat(index),
-      value: option.value
-    }, option.label);
-  })));
-  /* eslint-enable jsx-a11y/no-onchange */
-}
-
-/* harmony default export */ var select_control = (Object(external_this_wp_compose_["withInstanceId"])(SelectControl));
+  }, children, transitions.map(function (_ref4) {
+    var notice = _ref4.item,
+        key = _ref4.key,
+        style = _ref4.props;
+    return Object(external_this_wp_element_["createElement"])(web_cjs["animated"].div, {
+      key: key,
+      style: style
+    }, Object(external_this_wp_element_["createElement"])("div", {
+      className: "components-snackbar-list__notice-container",
+      ref: function ref(_ref5) {
+        return _ref5 && refMap.set(notice, _ref5);
+      }
+    }, Object(external_this_wp_element_["createElement"])(snackbar["a" /* default */], Object(esm_extends["a" /* default */])({}, Object(external_this_lodash_["omit"])(notice, ['content']), {
+      onRemove: removeNotice(notice)
+    }), notice.content)));
+  }));
+}
+
+/* harmony default export */ var snackbar_list = (SnackbarList);
 
 // CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/spinner/index.js
 
@@ -36291,163 +45300,6 @@
   });
 }
 
-// EXTERNAL MODULE: external {"this":["wp","apiFetch"]}
-var external_this_wp_apiFetch_ = __webpack_require__(33);
-var external_this_wp_apiFetch_default = /*#__PURE__*/__webpack_require__.n(external_this_wp_apiFetch_);
-
-// EXTERNAL MODULE: external {"this":["wp","url"]}
-var external_this_wp_url_ = __webpack_require__(25);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/server-side-render/index.js
-
-
-
-
-
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-
-
-/**
- * Internal dependencies
- */
-
-
-
-function rendererPath(block) {
-  var attributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
-  var urlQueryArgs = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
-  return Object(external_this_wp_url_["addQueryArgs"])("/wp/v2/block-renderer/".concat(block), Object(objectSpread["a" /* default */])({
-    context: 'edit'
-  }, null !== attributes ? {
-    attributes: attributes
-  } : {}, urlQueryArgs));
-}
-var server_side_render_ServerSideRender =
-/*#__PURE__*/
-function (_Component) {
-  Object(inherits["a" /* default */])(ServerSideRender, _Component);
-
-  function ServerSideRender(props) {
-    var _this;
-
-    Object(classCallCheck["a" /* default */])(this, ServerSideRender);
-
-    _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(ServerSideRender).call(this, props));
-    _this.state = {
-      response: null
-    };
-    return _this;
-  }
-
-  Object(createClass["a" /* default */])(ServerSideRender, [{
-    key: "componentDidMount",
-    value: function componentDidMount() {
-      this.isStillMounted = true;
-      this.fetch(this.props); // Only debounce once the initial fetch occurs to ensure that the first
-      // renders show data as soon as possible.
-
-      this.fetch = Object(external_lodash_["debounce"])(this.fetch, 500);
-    }
-  }, {
-    key: "componentWillUnmount",
-    value: function componentWillUnmount() {
-      this.isStillMounted = false;
-    }
-  }, {
-    key: "componentDidUpdate",
-    value: function componentDidUpdate(prevProps) {
-      if (!Object(external_lodash_["isEqual"])(prevProps, this.props)) {
-        this.fetch(this.props);
-      }
-    }
-  }, {
-    key: "fetch",
-    value: function fetch(props) {
-      var _this2 = this;
-
-      if (!this.isStillMounted) {
-        return;
-      }
-
-      if (null !== this.state.response) {
-        this.setState({
-          response: null
-        });
-      }
-
-      var block = props.block,
-          _props$attributes = props.attributes,
-          attributes = _props$attributes === void 0 ? null : _props$attributes,
-          _props$urlQueryArgs = props.urlQueryArgs,
-          urlQueryArgs = _props$urlQueryArgs === void 0 ? {} : _props$urlQueryArgs;
-      var path = rendererPath(block, attributes, urlQueryArgs); // Store the latest fetch request so that when we process it, we can
-      // check if it is the current request, to avoid race conditions on slow networks.
-
-      var fetchRequest = this.currentFetchRequest = external_this_wp_apiFetch_default()({
-        path: path
-      }).then(function (response) {
-        if (_this2.isStillMounted && fetchRequest === _this2.currentFetchRequest && response && response.rendered) {
-          _this2.setState({
-            response: response.rendered
-          });
-        }
-      }).catch(function (error) {
-        if (_this2.isStillMounted && fetchRequest === _this2.currentFetchRequest) {
-          _this2.setState({
-            response: {
-              error: true,
-              errorMsg: error.message
-            }
-          });
-        }
-      });
-      return fetchRequest;
-    }
-  }, {
-    key: "render",
-    value: function render() {
-      var response = this.state.response;
-      var className = this.props.className;
-
-      if (!response) {
-        return Object(external_this_wp_element_["createElement"])(placeholder, {
-          className: className
-        }, Object(external_this_wp_element_["createElement"])(Spinner, null));
-      } else if (response.error) {
-        // translators: %s: error message describing the problem
-        var errorMessage = Object(external_this_wp_i18n_["sprintf"])(Object(external_this_wp_i18n_["__"])('Error loading block: %s'), response.errorMsg);
-        return Object(external_this_wp_element_["createElement"])(placeholder, {
-          className: className
-        }, errorMessage);
-      } else if (!response.length) {
-        return Object(external_this_wp_element_["createElement"])(placeholder, {
-          className: className
-        }, Object(external_this_wp_i18n_["__"])('No results found.'));
-      }
-
-      return Object(external_this_wp_element_["createElement"])(external_this_wp_element_["RawHTML"], {
-        key: "html",
-        className: className
-      }, response);
-    }
-  }]);
-
-  return ServerSideRender;
-}(external_this_wp_element_["Component"]);
-/* harmony default export */ var server_side_render = (server_side_render_ServerSideRender);
-
 // CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/tab-panel/index.js
 
 
@@ -36455,13 +45307,10 @@
 
 
 
-
-
-
-
-/**
- * External dependencies
- */
+/**
+ * External dependencies
+ */
+
 
 /**
  * WordPress dependencies
@@ -36483,7 +45332,7 @@
       selected = _ref.selected,
       rest = Object(objectWithoutProperties["a" /* default */])(_ref, ["tabId", "onClick", "children", "selected"]);
 
-  return Object(external_this_wp_element_["createElement"])(build_module_button, Object(esm_extends["a" /* default */])({
+  return Object(external_this_wp_element_["createElement"])(build_module_button["a" /* default */], Object(esm_extends["a" /* default */])({
     role: "tab",
     tabIndex: selected ? null : -1,
     "aria-selected": selected,
@@ -36492,91 +45341,71 @@
   }, rest), children);
 };
 
-var tab_panel_TabPanel =
-/*#__PURE__*/
-function (_Component) {
-  Object(inherits["a" /* default */])(TabPanel, _Component);
-
-  function TabPanel() {
-    var _this;
-
-    Object(classCallCheck["a" /* default */])(this, TabPanel);
-
-    _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(TabPanel).apply(this, arguments));
-    var _this$props = _this.props,
-        tabs = _this$props.tabs,
-        initialTabName = _this$props.initialTabName;
-    _this.handleClick = _this.handleClick.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.onNavigate = _this.onNavigate.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    _this.state = {
-      selected: initialTabName || (tabs.length > 0 ? tabs[0].name : null)
-    };
-    return _this;
-  }
-
-  Object(createClass["a" /* default */])(TabPanel, [{
-    key: "handleClick",
-    value: function handleClick(tabKey) {
-      var _this$props$onSelect = this.props.onSelect,
-          onSelect = _this$props$onSelect === void 0 ? external_lodash_["noop"] : _this$props$onSelect;
-      this.setState({
-        selected: tabKey
-      });
-      onSelect(tabKey);
-    }
-  }, {
-    key: "onNavigate",
-    value: function onNavigate(childIndex, child) {
-      child.click();
-    }
-  }, {
-    key: "render",
-    value: function render() {
-      var _this2 = this;
-
-      var selected = this.state.selected;
-      var _this$props2 = this.props,
-          _this$props2$activeCl = _this$props2.activeClass,
-          activeClass = _this$props2$activeCl === void 0 ? 'is-active' : _this$props2$activeCl,
-          className = _this$props2.className,
-          instanceId = _this$props2.instanceId,
-          _this$props2$orientat = _this$props2.orientation,
-          orientation = _this$props2$orientat === void 0 ? 'horizontal' : _this$props2$orientat,
-          tabs = _this$props2.tabs;
-      var selectedTab = Object(external_lodash_["find"])(tabs, {
-        name: selected
-      });
-      var selectedId = instanceId + '-' + selectedTab.name;
-      return Object(external_this_wp_element_["createElement"])("div", {
-        className: className
-      }, Object(external_this_wp_element_["createElement"])(menu, {
-        role: "tablist",
-        orientation: orientation,
-        onNavigate: this.onNavigate,
-        className: "components-tab-panel__tabs"
-      }, tabs.map(function (tab) {
-        return Object(external_this_wp_element_["createElement"])(tab_panel_TabButton, {
-          className: "".concat(tab.className, " ").concat(tab.name === selected ? activeClass : ''),
-          tabId: instanceId + '-' + tab.name,
-          "aria-controls": instanceId + '-' + tab.name + '-view',
-          selected: tab.name === selected,
-          key: tab.name,
-          onClick: Object(external_lodash_["partial"])(_this2.handleClick, tab.name)
-        }, tab.title);
-      })), selectedTab && Object(external_this_wp_element_["createElement"])("div", {
-        "aria-labelledby": selectedId,
-        role: "tabpanel",
-        id: selectedId + '-view',
-        className: "components-tab-panel__tab-content",
-        tabIndex: "0"
-      }, this.props.children(selectedTab)));
-    }
-  }]);
-
-  return TabPanel;
-}(external_this_wp_element_["Component"]);
-
-/* harmony default export */ var tab_panel = (Object(external_this_wp_compose_["withInstanceId"])(tab_panel_TabPanel));
+function TabPanel(_ref2) {
+  var _selectedTab$name;
+
+  var className = _ref2.className,
+      children = _ref2.children,
+      tabs = _ref2.tabs,
+      initialTabName = _ref2.initialTabName,
+      _ref2$orientation = _ref2.orientation,
+      orientation = _ref2$orientation === void 0 ? 'horizontal' : _ref2$orientation,
+      _ref2$activeClass = _ref2.activeClass,
+      activeClass = _ref2$activeClass === void 0 ? 'is-active' : _ref2$activeClass,
+      _ref2$onSelect = _ref2.onSelect,
+      onSelect = _ref2$onSelect === void 0 ? external_this_lodash_["noop"] : _ref2$onSelect;
+  var instanceId = Object(external_this_wp_compose_["useInstanceId"])(TabPanel, 'tab-panel');
+
+  var _useState = Object(external_this_wp_element_["useState"])(null),
+      _useState2 = Object(slicedToArray["a" /* default */])(_useState, 2),
+      selected = _useState2[0],
+      setSelected = _useState2[1];
+
+  var handleClick = function handleClick(tabKey) {
+    setSelected(tabKey);
+    onSelect(tabKey);
+  };
+
+  var onNavigate = function onNavigate(childIndex, child) {
+    child.click();
+  };
+
+  var selectedTab = Object(external_this_lodash_["find"])(tabs, {
+    name: selected
+  });
+  var selectedId = "".concat(instanceId, "-").concat((_selectedTab$name = selectedTab === null || selectedTab === void 0 ? void 0 : selectedTab.name) !== null && _selectedTab$name !== void 0 ? _selectedTab$name : 'none');
+  Object(external_this_wp_element_["useEffect"])(function () {
+    var newSelectedTab = Object(external_this_lodash_["find"])(tabs, {
+      name: selected
+    });
+
+    if (!newSelectedTab) {
+      setSelected(initialTabName || (tabs.length > 0 ? tabs[0].name : null));
+    }
+  }, [tabs]);
+  return Object(external_this_wp_element_["createElement"])("div", {
+    className: className
+  }, Object(external_this_wp_element_["createElement"])(menu, {
+    role: "tablist",
+    orientation: orientation,
+    onNavigate: onNavigate,
+    className: "components-tab-panel__tabs"
+  }, tabs.map(function (tab) {
+    return Object(external_this_wp_element_["createElement"])(tab_panel_TabButton, {
+      className: classnames_default()('components-tab-panel__tabs-item', tab.className, Object(defineProperty["a" /* default */])({}, activeClass, tab.name === selected)),
+      tabId: "".concat(instanceId, "-").concat(tab.name),
+      "aria-controls": "".concat(instanceId, "-").concat(tab.name, "-view"),
+      selected: tab.name === selected,
+      key: tab.name,
+      onClick: Object(external_this_lodash_["partial"])(handleClick, tab.name)
+    }, tab.title);
+  })), selectedTab && Object(external_this_wp_element_["createElement"])("div", {
+    "aria-labelledby": selectedId,
+    role: "tabpanel",
+    id: "".concat(selectedId, "-view"),
+    className: "components-tab-panel__tab-content"
+  }, children(selectedTab)));
+}
 
 // CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/textarea-control/index.js
 
@@ -36592,18 +45421,18 @@
  */
 
 
-
 function TextareaControl(_ref) {
   var label = _ref.label,
+      hideLabelFromVision = _ref.hideLabelFromVision,
       value = _ref.value,
       help = _ref.help,
-      instanceId = _ref.instanceId,
       onChange = _ref.onChange,
       _ref$rows = _ref.rows,
       rows = _ref$rows === void 0 ? 4 : _ref$rows,
       className = _ref.className,
-      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["label", "value", "help", "instanceId", "onChange", "rows", "className"]);
-
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["label", "hideLabelFromVision", "value", "help", "onChange", "rows", "className"]);
+
+  var instanceId = Object(external_this_wp_compose_["useInstanceId"])(TextareaControl);
   var id = "inspector-textarea-control-".concat(instanceId);
 
   var onChangeValue = function onChangeValue(event) {
@@ -36612,6 +45441,7 @@
 
   return Object(external_this_wp_element_["createElement"])(base_control, {
     label: label,
+    hideLabelFromVision: hideLabelFromVision,
     id: id,
     help: help,
     className: className
@@ -36625,165 +45455,214 @@
   }, props)));
 }
 
-/* harmony default export */ var textarea_control = (Object(external_this_wp_compose_["withInstanceId"])(TextareaControl));
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/text-highlight/index.js
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+var text_highlight_TextHighlight = function TextHighlight(_ref) {
+  var _ref$text = _ref.text,
+      text = _ref$text === void 0 ? '' : _ref$text,
+      _ref$highlight = _ref.highlight,
+      highlight = _ref$highlight === void 0 ? '' : _ref$highlight;
+  var trimmedHighlightText = highlight.trim();
+
+  if (!trimmedHighlightText) {
+    return text;
+  }
+
+  var regex = new RegExp("(".concat(Object(external_this_lodash_["escapeRegExp"])(trimmedHighlightText), ")"), 'gi');
+  return Object(external_this_wp_element_["createInterpolateElement"])(text.replace(regex, '<mark>$&</mark>'), {
+    mark: Object(external_this_wp_element_["createElement"])("mark", null)
+  });
+};
+
+/* harmony default export */ var text_highlight = (text_highlight_TextHighlight);
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/tip/index.js
+
+
+/**
+ * Internal dependencies
+ */
+
+
+function Tip(props) {
+  return Object(external_this_wp_element_["createElement"])("div", {
+    className: "components-tip"
+  }, Object(external_this_wp_element_["createElement"])(external_this_wp_primitives_["SVG"], {
+    width: "24",
+    height: "24",
+    viewBox: "0 0 24 24"
+  }, Object(external_this_wp_element_["createElement"])(external_this_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_this_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
- */
-
-
-
-
-var toggle_control_ToggleControl =
-/*#__PURE__*/
-function (_Component) {
-  Object(inherits["a" /* default */])(ToggleControl, _Component);
-
-  function ToggleControl() {
-    var _this;
-
-    Object(classCallCheck["a" /* default */])(this, ToggleControl);
-
-    _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(ToggleControl).apply(this, arguments));
-    _this.onChange = _this.onChange.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-    return _this;
-  }
-
-  Object(createClass["a" /* default */])(ToggleControl, [{
-    key: "onChange",
-    value: function onChange(event) {
-      if (this.props.onChange) {
-        this.props.onChange(event.target.checked);
-      }
-    }
-  }, {
-    key: "render",
-    value: function render() {
-      var _this$props = this.props,
-          label = _this$props.label,
-          checked = _this$props.checked,
-          help = _this$props.help,
-          instanceId = _this$props.instanceId,
-          className = _this$props.className;
-      var id = "inspector-toggle-control-".concat(instanceId);
-      var describedBy, helpLabel;
-
-      if (help) {
-        describedBy = id + '__help';
-        helpLabel = Object(external_lodash_["isFunction"])(help) ? help(checked) : help;
-      }
-
-      return Object(external_this_wp_element_["createElement"])(base_control, {
-        id: id,
-        help: helpLabel,
-        className: classnames_default()('components-toggle-control', className)
-      }, Object(external_this_wp_element_["createElement"])(form_toggle, {
-        id: id,
-        checked: checked,
-        onChange: this.onChange,
-        "aria-describedby": describedBy
-      }), Object(external_this_wp_element_["createElement"])("label", {
-        htmlFor: id,
-        className: "components-toggle-control__label"
-      }, label));
-    }
-  }]);
-
-  return ToggleControl;
-}(external_this_wp_element_["Component"]);
-
-/* harmony default export */ var toggle_control = (Object(external_this_wp_compose_["withInstanceId"])(toggle_control_ToggleControl));
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/toolbar-button/toolbar-button-container.js
-
-
-var toolbar_button_container_ToolbarButtonContainer = function ToolbarButtonContainer(props) {
-  return Object(external_this_wp_element_["createElement"])("div", {
-    className: props.className
-  }, props.children);
-};
-
-/* harmony default export */ var toolbar_button_container = (toolbar_button_container_ToolbarButtonContainer);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/toolbar-button/index.js
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-
-
-function ToolbarButton(_ref) {
-  var containerClassName = _ref.containerClassName,
-      icon = _ref.icon,
-      title = _ref.title,
-      shortcut = _ref.shortcut,
-      subscript = _ref.subscript,
-      _onClick = _ref.onClick,
+/**
+ * External dependencies
+ */
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+function ToggleControl(_ref) {
+  var label = _ref.label,
+      checked = _ref.checked,
+      help = _ref.help,
       className = _ref.className,
-      isActive = _ref.isActive,
-      isDisabled = _ref.isDisabled,
-      extraProps = _ref.extraProps,
-      children = _ref.children;
-  return Object(external_this_wp_element_["createElement"])(toolbar_button_container, {
-    className: containerClassName
-  }, Object(external_this_wp_element_["createElement"])(icon_button, Object(esm_extends["a" /* default */])({
-    icon: icon,
-    label: title,
-    shortcut: shortcut,
-    "data-subscript": subscript,
-    onClick: function onClick(event) {
-      event.stopPropagation();
-
-      _onClick();
-    },
-    className: classnames_default()('components-toolbar__control', className, {
-      'is-active': isActive
-    }),
-    "aria-pressed": isActive,
-    disabled: isDisabled
-  }, extraProps)), children);
-}
-
-/* harmony default export */ var toolbar_button = (ToolbarButton);
+      onChange = _ref.onChange;
+
+  function onChangeToggle(event) {
+    onChange(event.target.checked);
+  }
+
+  var instanceId = Object(external_this_wp_compose_["useInstanceId"])(ToggleControl);
+  var id = "inspector-toggle-control-".concat(instanceId);
+  var describedBy, helpLabel;
+
+  if (help) {
+    describedBy = id + '__help';
+    helpLabel = Object(external_this_lodash_["isFunction"])(help) ? help(checked) : help;
+  }
+
+  return Object(external_this_wp_element_["createElement"])(base_control, {
+    id: id,
+    help: helpLabel,
+    className: classnames_default()('components-toggle-control', className)
+  }, Object(external_this_wp_element_["createElement"])(form_toggle, {
+    id: id,
+    checked: checked,
+    onChange: onChangeToggle,
+    "aria-describedby": describedBy
+  }), Object(external_this_wp_element_["createElement"])("label", {
+    htmlFor: id,
+    className: "components-toggle-control__label"
+  }, label));
+}
+
+// EXTERNAL MODULE: ./node_modules/reakit/es/Toolbar/ToolbarState.js
+var ToolbarState = __webpack_require__(167);
+
+// CONCATENATED MODULE: ./node_modules/reakit/es/Toolbar/Toolbar.js
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+var useToolbar = Object(createHook["a" /* createHook */])({
+  name: "Toolbar",
+  compose: Composite["b" /* useComposite */],
+  useState: ToolbarState["a" /* useToolbarState */],
+  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
 
 
-var toolbar_container_ToolbarContainer = function ToolbarContainer(props) {
-  return Object(external_this_wp_element_["createElement"])("div", {
-    className: props.className
-  }, props.children);
-};
-
-/* harmony default export */ var toolbar_container = (toolbar_container_ToolbarContainer);
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+function ToolbarContainer(_ref, ref) {
+  var accessibilityLabel = _ref.accessibilityLabel,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["accessibilityLabel"]);
+
+  // 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
+  var toolbarState = Object(ToolbarState["a" /* useToolbarState */])({
+    loop: true,
+    baseId: props.id,
+    rtl: getRTL()
+  });
+  return (// This will provide state for `ToolbarButton`'s
+    Object(external_this_wp_element_["createElement"])(toolbar_context["a" /* default */].Provider, {
+      value: toolbarState
+    }, Object(external_this_wp_element_["createElement"])(Toolbar, Object(esm_extends["a" /* default */])({
+      ref: ref,
+      "aria-label": accessibilityLabel
+    }, toolbarState, props)))
+  );
+}
+
+/* harmony default export */ var toolbar_container = (Object(external_this_wp_element_["forwardRef"])(ToolbarContainer));
 
 // CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/toolbar/index.js
 
@@ -36794,202 +45673,496 @@
  * External dependencies
  */
 
-
-/**
- * Internal dependencies
- */
-
-
-
-
-/**
- * Renders a toolbar with 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 {?Array}        controls  The controls to render in this toolbar.
- * @param {?ReactElement} children  Any other things to render inside the
- *                                  toolbar besides the controls.
- * @param {?string}       className Class to set on the container div.
- *
- * @return {ReactElement} The rendered toolbar.
- */
-
-function Toolbar(_ref) {
-  var _ref$controls = _ref.controls,
-      controls = _ref$controls === void 0 ? [] : _ref$controls,
-      children = _ref.children,
-      className = _ref.className,
-      isCollapsed = _ref.isCollapsed,
-      icon = _ref.icon,
-      label = _ref.label,
-      otherProps = Object(objectWithoutProperties["a" /* default */])(_ref, ["controls", "children", "className", "isCollapsed", "icon", "label"]);
-
-  if ((!controls || !controls.length) && !children) {
-    return null;
-  } // Normalize controls to nested array of objects (sets of controls)
-
-
-  var controlSets = controls;
-
-  if (!Array.isArray(controlSets[0])) {
-    controlSets = [controlSets];
-  }
-
-  if (isCollapsed) {
-    return Object(external_this_wp_element_["createElement"])(dropdown_menu, {
-      icon: icon,
-      label: label,
-      controls: controlSets,
-      className: classnames_default()('components-toolbar', className)
-    });
-  }
-
-  return Object(external_this_wp_element_["createElement"])(toolbar_container, Object(esm_extends["a" /* default */])({
-    className: classnames_default()('components-toolbar', className)
-  }, otherProps), Object(external_lodash_["flatMap"])(controlSets, function (controlSet, indexOfSet) {
-    return controlSet.map(function (control, indexOfControl) {
-      return Object(external_this_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 = (Toolbar);
+/**
+ * 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.__experimentalAccessibilityLabel] ARIA label for toolbar container.
+ * @param {Object} ref                                      React Element ref.
+ */
+
+function toolbar_Toolbar(_ref, ref) {
+  var className = _ref.className,
+      __experimentalAccessibilityLabel = _ref.__experimentalAccessibilityLabel,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["className", "__experimentalAccessibilityLabel"]);
+
+  if (__experimentalAccessibilityLabel) {
+    return Object(external_this_wp_element_["createElement"])(toolbar_container // `ToolbarGroup` already uses components-toolbar for compatibility reasons
+    , Object(esm_extends["a" /* default */])({
+      className: classnames_default()('components-accessible-toolbar', className),
+      accessibilityLabel: __experimentalAccessibilityLabel,
+      ref: ref
+    }, props));
+  } // When the __experimentalAccessibilityLabel prop is not passed, Toolbar will
+  // fallback to ToolbarGroup. This should be deprecated as soon as the new API
+  // gets stable.
+  // See https://github.com/WordPress/gutenberg/pull/20008#issuecomment-624503410
+
+
+  return Object(external_this_wp_element_["createElement"])(toolbar_group, Object(esm_extends["a" /* default */])({}, props, {
+    className: className
+  }));
+}
+
+/* harmony default export */ var toolbar = (Object(external_this_wp_element_["forwardRef"])(toolbar_Toolbar));
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/tree-grid/roving-tab-index-context.js
+/**
+ * WordPress dependencies
+ */
+
+var RovingTabIndexContext = Object(external_this_wp_element_["createContext"])();
+var roving_tab_index_context_useRovingTabIndexContext = function useRovingTabIndexContext() {
+  return Object(external_this_wp_element_["useContext"])(RovingTabIndexContext);
+};
+var 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/master/packages/components/src/tree-grid/README.md
+ *
+ * @param {Object}    props          Component props.
+ * @param {WPElement} props.children Children to be rendered
+ */
+
+function RovingTabIndex(_ref) {
+  var children = _ref.children;
+
+  var _useState = Object(external_this_wp_element_["useState"])(),
+      _useState2 = Object(slicedToArray["a" /* default */])(_useState, 2),
+      lastFocusedElement = _useState2[0],
+      setLastFocusedElement = _useState2[1]; // 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.
+
+
+  var providerValue = Object(external_this_wp_element_["useMemo"])(function () {
+    return {
+      lastFocusedElement: lastFocusedElement,
+      setLastFocusedElement: setLastFocusedElement
+    };
+  }, [lastFocusedElement]);
+  return Object(external_this_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) {
+  var focusablesInRow = external_this_wp_dom_["focus"].focusable.find(rowElement);
+
+  if (!focusablesInRow || !focusablesInRow.length) {
+    return;
+  }
+
+  return focusablesInRow.filter(function (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/master/packages/components/src/tree-grid/README.md
+ *
+ * @param {Object}    props          Component props.
+ * @param {WPElement} props.children Children to be rendered
+ */
+
+
+function TreeGrid(_ref) {
+  var children = _ref.children,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["children"]);
+
+  var onKeyDown = Object(external_this_wp_element_["useCallback"])(function (event) {
+    var keyCode = event.keyCode,
+        metaKey = event.metaKey,
+        ctrlKey = event.ctrlKey,
+        altKey = event.altKey,
+        shiftKey = event.shiftKey;
+    var hasModifierKeyPressed = metaKey || ctrlKey || altKey || shiftKey;
+
+    if (hasModifierKeyPressed || !Object(external_this_lodash_["includes"])([external_this_wp_keycodes_["UP"], external_this_wp_keycodes_["DOWN"], external_this_wp_keycodes_["LEFT"], external_this_wp_keycodes_["RIGHT"]], keyCode)) {
+      return;
+    } // The event will be handled, stop propagation.
+
+
+    event.stopPropagation();
+    var _document = document,
+        activeElement = _document.activeElement;
+    var treeGridElement = event.currentTarget;
+
+    if (!treeGridElement.contains(activeElement)) {
+      return;
+    } // Calculate the columnIndex of the active element.
+
+
+    var activeRow = activeElement.closest('[role="row"]');
+    var focusablesInRow = getRowFocusables(activeRow);
+    var currentColumnIndex = focusablesInRow.indexOf(activeElement);
+
+    if (Object(external_this_lodash_["includes"])([external_this_wp_keycodes_["LEFT"], external_this_wp_keycodes_["RIGHT"]], keyCode)) {
+      // Calculate to the next element.
+      var nextIndex;
+
+      if (keyCode === external_this_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_this_lodash_["includes"])([external_this_wp_keycodes_["UP"], external_this_wp_keycodes_["DOWN"]], keyCode)) {
+      // Calculate the rowIndex of the next row.
+      var rows = Array.from(treeGridElement.querySelectorAll('[role="row"]'));
+      var currentRowIndex = rows.indexOf(activeRow);
+      var nextRowIndex;
+
+      if (keyCode === external_this_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.
+
+
+      var 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.
+
+
+      var _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();
+    }
+  }, []);
+  return Object(external_this_wp_element_["createElement"])(RovingTabIndex, null, Object(external_this_wp_element_["createElement"])("table", Object(esm_extends["a" /* default */])({}, props, {
+    role: "treegrid",
+    onKeyDown: onKeyDown
+  }), Object(external_this_wp_element_["createElement"])("tbody", null, children)));
+}
+
+
+
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/tree-grid/row.js
+
+
+
+
+/**
+ * WordPress dependencies
+ */
+
+
+function TreeGridRow(_ref, ref) {
+  var children = _ref.children,
+      level = _ref.level,
+      positionInSet = _ref.positionInSet,
+      setSize = _ref.setSize,
+      isExpanded = _ref.isExpanded,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["children", "level", "positionInSet", "setSize", "isExpanded"]);
+
+  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_this_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_this_wp_element_["forwardRef"])(TreeGridRow));
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/tree-grid/roving-tab-index-item.js
+
+
+
+
+function roving_tab_index_item_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 roving_tab_index_item_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { roving_tab_index_item_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty["a" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { roving_tab_index_item_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+/* harmony default export */ var roving_tab_index_item = (Object(external_this_wp_element_["forwardRef"])(function RovingTabIndexItem(_ref, forwardedRef) {
+  var children = _ref.children,
+      Component = _ref.as,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["children", "as"]);
+
+  var localRef = Object(external_this_wp_element_["useRef"])();
+  var ref = forwardedRef || localRef;
+
+  var _useRovingTabIndexCon = roving_tab_index_context_useRovingTabIndexContext(),
+      lastFocusedElement = _useRovingTabIndexCon.lastFocusedElement,
+      setLastFocusedElement = _useRovingTabIndexCon.setLastFocusedElement;
+
+  var tabIndex;
+
+  if (lastFocusedElement) {
+    tabIndex = lastFocusedElement === ref.current ? 0 : -1;
+  }
+
+  var onFocus = function onFocus(event) {
+    return setLastFocusedElement(event.target);
+  };
+
+  var allProps = roving_tab_index_item_objectSpread({
+    ref: ref,
+    tabIndex: tabIndex,
+    onFocus: onFocus
+  }, props);
+
+  if (typeof children === 'function') {
+    return children(allProps);
+  }
+
+  return Object(external_this_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_this_wp_element_["forwardRef"])(function TreeGridItem(_ref, ref) {
+  var children = _ref.children,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["children"]);
+
+  return Object(external_this_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_this_wp_element_["forwardRef"])(function TreeGridCell(_ref, ref) {
+  var children = _ref.children,
+      _ref$withoutGridItem = _ref.withoutGridItem,
+      withoutGridItem = _ref$withoutGridItem === void 0 ? false : _ref$withoutGridItem,
+      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["children", "withoutGridItem"]);
+
+  return Object(external_this_wp_element_["createElement"])("td", Object(esm_extends["a" /* default */])({}, props, {
+    role: "gridcell"
+  }), withoutGridItem ? children : Object(external_this_wp_element_["createElement"])(tree_grid_item, {
+    ref: ref
+  }, children));
+}));
+
+// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/index.js + 6 modules
+var slot_fill = __webpack_require__(121);
+
+// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/context.js + 1 modules
+var slot_fill_context = __webpack_require__(124);
+
+// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/bubbles-virtually/use-slot.js
+var use_slot = __webpack_require__(159);
 
 // CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/higher-order/navigate-regions/index.js
 
 
 
 
-
-
-
-
-
-
-/**
- * External dependencies
- */
-
-/**
- * WordPress dependencies
- */
-
-
-
-
-/**
- * Internal dependencies
- */
-
-
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+
+
+var defaultShortcuts = {
+  previous: ['ctrl+shift+`', external_this_wp_keycodes_["rawShortcut"].access('p')],
+  next: ['ctrl+`', external_this_wp_keycodes_["rawShortcut"].access('n')]
+};
 /* harmony default export */ var navigate_regions = (Object(external_this_wp_compose_["createHigherOrderComponent"])(function (WrappedComponent) {
-  return (
-    /*#__PURE__*/
-    function (_Component) {
-      Object(inherits["a" /* default */])(_class, _Component);
-
-      function _class() {
-        var _this;
-
-        Object(classCallCheck["a" /* default */])(this, _class);
-
-        _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(_class).apply(this, arguments));
-        _this.bindContainer = _this.bindContainer.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-        _this.focusNextRegion = _this.focusRegion.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)), 1);
-        _this.focusPreviousRegion = _this.focusRegion.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)), -1);
-        _this.onClick = _this.onClick.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-        _this.state = {
-          isFocusingRegions: false
-        };
-        return _this;
-      }
-
-      Object(createClass["a" /* default */])(_class, [{
-        key: "bindContainer",
-        value: function bindContainer(ref) {
-          this.container = ref;
-        }
-      }, {
-        key: "focusRegion",
-        value: function focusRegion(offset) {
-          var regions = Object(toConsumableArray["a" /* default */])(this.container.querySelectorAll('[role="region"]'));
-
-          if (!regions.length) {
-            return;
-          }
-
-          var nextRegion = regions[0];
-          var selectedIndex = regions.indexOf(document.activeElement);
-
-          if (selectedIndex !== -1) {
-            var nextIndex = selectedIndex + offset;
-            nextIndex = nextIndex === -1 ? regions.length - 1 : nextIndex;
-            nextIndex = nextIndex === regions.length ? 0 : nextIndex;
-            nextRegion = regions[nextIndex];
-          }
-
-          nextRegion.focus();
-          this.setState({
-            isFocusingRegions: true
-          });
-        }
-      }, {
-        key: "onClick",
-        value: function onClick() {
-          this.setState({
-            isFocusingRegions: false
-          });
-        }
-      }, {
-        key: "render",
-        value: function render() {
-          var _ref;
-
-          var className = classnames_default()('components-navigate-regions', {
-            'is-focusing-regions': this.state.isFocusingRegions
-          }); // Disable reason: Clicking the editor should dismiss the regions focus style
-
-          /* eslint-disable jsx-a11y/no-static-element-interactions, jsx-a11y/onclick-has-role, jsx-a11y/click-events-have-key-events */
-
-          return Object(external_this_wp_element_["createElement"])("div", {
-            ref: this.bindContainer,
-            className: className,
-            onClick: this.onClick
-          }, Object(external_this_wp_element_["createElement"])(keyboard_shortcuts, {
-            bindGlobal: true,
-            shortcuts: (_ref = {
-              'ctrl+`': this.focusNextRegion
-            }, Object(defineProperty["a" /* default */])(_ref, external_this_wp_keycodes_["rawShortcut"].access('n'), this.focusNextRegion), Object(defineProperty["a" /* default */])(_ref, 'ctrl+shift+`', this.focusPreviousRegion), Object(defineProperty["a" /* default */])(_ref, external_this_wp_keycodes_["rawShortcut"].access('p'), this.focusPreviousRegion), _ref)
-          }), Object(external_this_wp_element_["createElement"])(WrappedComponent, this.props));
-          /* eslint-enable jsx-a11y/no-static-element-interactions, jsx-a11y/onclick-has-role, jsx-a11y/click-events-have-key-events */
-        }
-      }]);
-
-      return _class;
-    }(external_this_wp_element_["Component"])
-  );
+  return function (_ref) {
+    var _ref$shortcuts = _ref.shortcuts,
+        shortcuts = _ref$shortcuts === void 0 ? defaultShortcuts : _ref$shortcuts,
+        props = Object(objectWithoutProperties["a" /* default */])(_ref, ["shortcuts"]);
+
+    var container = Object(external_this_wp_element_["useRef"])();
+
+    var _useState = Object(external_this_wp_element_["useState"])(false),
+        _useState2 = Object(slicedToArray["a" /* default */])(_useState, 2),
+        isFocusingRegions = _useState2[0],
+        setIsFocusingRegions = _useState2[1];
+
+    var className = classnames_default()('components-navigate-regions', {
+      'is-focusing-regions': isFocusingRegions
+    });
+
+    function focusRegion(offset) {
+      var regions = Array.from(container.current.querySelectorAll('[role="region"]'));
+
+      if (!regions.length) {
+        return;
+      }
+
+      var nextRegion = regions[0];
+      var selectedIndex = regions.indexOf(document.activeElement);
+
+      if (selectedIndex !== -1) {
+        var nextIndex = selectedIndex + offset;
+        nextIndex = nextIndex === -1 ? regions.length - 1 : nextIndex;
+        nextIndex = nextIndex === regions.length ? 0 : nextIndex;
+        nextRegion = regions[nextIndex];
+      }
+
+      nextRegion.focus();
+      setIsFocusingRegions(true);
+    }
+
+    var focusPrevious = Object(external_this_wp_element_["useCallback"])(function () {
+      return focusRegion(-1);
+    }, [container]);
+    var focusNext = Object(external_this_wp_element_["useCallback"])(function () {
+      return focusRegion(1);
+    }, [container]);
+    Object(external_this_wp_compose_["useKeyboardShortcut"])(shortcuts.previous, focusPrevious, {
+      bindGlobal: true
+    });
+    Object(external_this_wp_compose_["useKeyboardShortcut"])(shortcuts.next, focusNext, {
+      bindGlobal: true
+    }); // Disable reason: Clicking the editor should dismiss the regions focus style
+
+    /* eslint-disable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */
+
+    return Object(external_this_wp_element_["createElement"])("div", {
+      ref: container,
+      className: className,
+      onClick: function onClick() {
+        return setIsFocusingRegions(false);
+      }
+    }, Object(external_this_wp_element_["createElement"])(WrappedComponent, props));
+    /* eslint-enable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */
+  };
 }, 'navigateRegions'));
 
 // CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/higher-order/with-fallback-styles/index.js
@@ -37002,6 +46175,10 @@
 
 
 
+function with_fallback_styles_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf["a" /* default */])(Derived), result; if (with_fallback_styles_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf["a" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn["a" /* default */])(this, result); }; }
+
+function with_fallback_styles_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
+
 /**
  * External dependencies
  */
@@ -37014,81 +46191,80 @@
 
 /* harmony default export */ var with_fallback_styles = (function (mapNodeToProps) {
   return Object(external_this_wp_compose_["createHigherOrderComponent"])(function (WrappedComponent) {
-    return (
-      /*#__PURE__*/
-      function (_Component) {
-        Object(inherits["a" /* default */])(_class, _Component);
-
-        function _class() {
-          var _this;
-
-          Object(classCallCheck["a" /* default */])(this, _class);
-
-          _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(_class).apply(this, arguments));
-          _this.nodeRef = _this.props.node;
-          _this.state = {
-            fallbackStyles: undefined,
-            grabStylesCompleted: false
-          };
-          _this.bindRef = _this.bindRef.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-          return _this;
-        }
-
-        Object(createClass["a" /* default */])(_class, [{
-          key: "bindRef",
-          value: function bindRef(node) {
-            if (!node) {
-              return;
-            }
-
-            this.nodeRef = node;
-          }
-        }, {
-          key: "componentDidMount",
-          value: function componentDidMount() {
-            this.grabFallbackStyles();
-          }
-        }, {
-          key: "componentDidUpdate",
-          value: function componentDidUpdate() {
-            this.grabFallbackStyles();
-          }
-        }, {
-          key: "grabFallbackStyles",
-          value: function grabFallbackStyles() {
-            var _this$state = this.state,
-                grabStylesCompleted = _this$state.grabStylesCompleted,
-                fallbackStyles = _this$state.fallbackStyles;
-
-            if (this.nodeRef && !grabStylesCompleted) {
-              var newFallbackStyles = mapNodeToProps(this.nodeRef, this.props);
-
-              if (!Object(external_lodash_["isEqual"])(newFallbackStyles, fallbackStyles)) {
-                this.setState({
-                  fallbackStyles: newFallbackStyles,
-                  grabStylesCompleted: !!Object(external_lodash_["every"])(newFallbackStyles)
-                });
-              }
-            }
-          }
-        }, {
-          key: "render",
-          value: function render() {
-            var wrappedComponent = Object(external_this_wp_element_["createElement"])(WrappedComponent, Object(esm_extends["a" /* default */])({}, this.props, this.state.fallbackStyles));
-            return this.props.node ? wrappedComponent : Object(external_this_wp_element_["createElement"])("div", {
-              ref: this.bindRef
-            }, " ", wrappedComponent, " ");
-          }
-        }]);
-
-        return _class;
-      }(external_this_wp_element_["Component"])
-    );
+    return /*#__PURE__*/function (_Component) {
+      Object(inherits["a" /* default */])(_class, _Component);
+
+      var _super = with_fallback_styles_createSuper(_class);
+
+      function _class() {
+        var _this;
+
+        Object(classCallCheck["a" /* default */])(this, _class);
+
+        _this = _super.apply(this, arguments);
+        _this.nodeRef = _this.props.node;
+        _this.state = {
+          fallbackStyles: undefined,
+          grabStylesCompleted: false
+        };
+        _this.bindRef = _this.bindRef.bind(Object(assertThisInitialized["a" /* default */])(_this));
+        return _this;
+      }
+
+      Object(createClass["a" /* default */])(_class, [{
+        key: "bindRef",
+        value: function bindRef(node) {
+          if (!node) {
+            return;
+          }
+
+          this.nodeRef = node;
+        }
+      }, {
+        key: "componentDidMount",
+        value: function componentDidMount() {
+          this.grabFallbackStyles();
+        }
+      }, {
+        key: "componentDidUpdate",
+        value: function componentDidUpdate() {
+          this.grabFallbackStyles();
+        }
+      }, {
+        key: "grabFallbackStyles",
+        value: function grabFallbackStyles() {
+          var _this$state = this.state,
+              grabStylesCompleted = _this$state.grabStylesCompleted,
+              fallbackStyles = _this$state.fallbackStyles;
+
+          if (this.nodeRef && !grabStylesCompleted) {
+            var newFallbackStyles = mapNodeToProps(this.nodeRef, this.props);
+
+            if (!Object(external_this_lodash_["isEqual"])(newFallbackStyles, fallbackStyles)) {
+              this.setState({
+                fallbackStyles: newFallbackStyles,
+                grabStylesCompleted: !!Object(external_this_lodash_["every"])(newFallbackStyles)
+              });
+            }
+          }
+        }
+      }, {
+        key: "render",
+        value: function render() {
+          var wrappedComponent = Object(external_this_wp_element_["createElement"])(WrappedComponent, Object(esm_extends["a" /* default */])({}, this.props, this.state.fallbackStyles));
+          return this.props.node ? wrappedComponent : Object(external_this_wp_element_["createElement"])("div", {
+            ref: this.bindRef
+          }, " ", wrappedComponent, " ");
+        }
+      }]);
+
+      return _class;
+    }(external_this_wp_element_["Component"]);
   }, 'withFallbackStyles');
 });
 
 // EXTERNAL MODULE: external {"this":["wp","hooks"]}
-var external_this_wp_hooks_ = __webpack_require__(26);
+var external_this_wp_hooks_ = __webpack_require__(32);
 
 // CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/higher-order/with-filters/index.js
 
@@ -37098,6 +46274,10 @@
 
 
 
+function with_filters_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf["a" /* default */])(Derived), result; if (with_filters_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf["a" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn["a" /* default */])(this, result); }; }
+
+function with_filters_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
+
 /**
  * External dependencies
  */
@@ -37144,17 +46324,17 @@
       }
     }
 
-    var FilteredComponentRenderer =
-    /*#__PURE__*/
-    function (_Component) {
+    var FilteredComponentRenderer = /*#__PURE__*/function (_Component) {
       Object(inherits["a" /* default */])(FilteredComponentRenderer, _Component);
 
+      var _super = with_filters_createSuper(FilteredComponentRenderer);
+
       function FilteredComponentRenderer() {
         var _this;
 
         Object(classCallCheck["a" /* default */])(this, FilteredComponentRenderer);
 
-        _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(FilteredComponentRenderer).apply(this, arguments));
+        _this = _super.apply(this, arguments);
         ensureFilteredComponent();
         return _this;
       }
@@ -37173,7 +46353,7 @@
       }, {
         key: "componentWillUnmount",
         value: function componentWillUnmount() {
-          FilteredComponentRenderer.instances = Object(external_lodash_["without"])(FilteredComponentRenderer.instances, this); // If this was the last of the mounted components filtered on
+          FilteredComponentRenderer.instances = Object(external_this_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) {
@@ -37197,7 +46377,7 @@
      * mounted instance. This occurs a maximum of once per animation frame.
      */
 
-    var throttledForceUpdate = Object(external_lodash_["debounce"])(function () {
+    var throttledForceUpdate = Object(external_this_lodash_["debounce"])(function () {
       // Recreate the filtered component, only after delay so that it's
       // computed once, even if many filters added.
       FilteredComponent = Object(external_this_wp_hooks_["applyFilters"])(hookName, OriginalComponent); // Force each instance to render.
@@ -37224,10 +46404,72 @@
   }, 'withFilters');
 }
 
-// EXTERNAL MODULE: ./node_modules/uuid/v4.js
-var v4 = __webpack_require__(65);
-var v4_default = /*#__PURE__*/__webpack_require__.n(v4);
-
+// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/higher-order/with-focus-return/context.js
+var with_focus_return_context = __webpack_require__(193);
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/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()).
+// getRandomValues needs to be invoked in a context where "this" is a Crypto implementation. Also,
+// find the complete implementation of crypto (msCrypto) on IE11.
+var getRandomValues = typeof crypto != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto != 'undefined' && typeof msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto);
+var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef
+
+function rng() {
+  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/@wordpress/components/node_modules/uuid/dist/esm-browser/bytesToUuid.js
+/**
+ * Convert array of 16 byte values to UUID string format of the form:
+ * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
+ */
+var byteToHex = [];
+
+for (var bytesToUuid_i = 0; bytesToUuid_i < 256; ++bytesToUuid_i) {
+  byteToHex[bytesToUuid_i] = (bytesToUuid_i + 0x100).toString(16).substr(1);
+}
+
+function bytesToUuid(buf, offset) {
+  var i = offset || 0;
+  var bth = byteToHex; // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4
+
+  return [bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]]].join('');
+}
+
+/* harmony default export */ var esm_browser_bytesToUuid = (bytesToUuid);
+// CONCATENATED MODULE: ./node_modules/@wordpress/components/node_modules/uuid/dist/esm-browser/v4.js
+
+
+
+function v4(options, buf, offset) {
+  var i = buf && offset || 0;
+
+  if (typeof options == 'string') {
+    buf = options === 'binary' ? new Array(16) : null;
+    options = null;
+  }
+
+  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) {
+    for (var ii = 0; ii < 16; ++ii) {
+      buf[i + ii] = rnds[ii];
+    }
+  }
+
+  return buf || esm_browser_bytesToUuid(rnds);
+}
+
+/* harmony default export */ var esm_browser_v4 = (v4);
 // CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/higher-order/with-notices/index.js
 
 
@@ -37240,6 +46482,14 @@
 
 
 
+function with_notices_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 with_notices_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { with_notices_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty["a" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { with_notices_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
+
+function with_notices_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf["a" /* default */])(Derived), result; if (with_notices_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf["a" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn["a" /* default */])(this, result); }; }
+
+function with_notices_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
+
 /**
  * External dependencies
  */
@@ -37258,204 +46508,152 @@
 /**
  * Override the default edit UI to include notices if supported.
  *
- * @param  {function|Component} OriginalComponent Original component.
- * @return {Component}                            Wrapped component.
+ * @param  {WPComponent} OriginalComponent Original component.
+ *
+ * @return {WPComponent} Wrapped component.
  */
 
 /* harmony default export */ var with_notices = (Object(external_this_wp_compose_["createHigherOrderComponent"])(function (OriginalComponent) {
-  return (
-    /*#__PURE__*/
-    function (_Component) {
-      Object(inherits["a" /* default */])(WrappedBlockEdit, _Component);
-
-      function WrappedBlockEdit() {
-        var _this;
-
-        Object(classCallCheck["a" /* default */])(this, WrappedBlockEdit);
-
-        _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(WrappedBlockEdit).apply(this, arguments));
-        _this.createNotice = _this.createNotice.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-        _this.createErrorNotice = _this.createErrorNotice.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-        _this.removeNotice = _this.removeNotice.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-        _this.removeAllNotices = _this.removeAllNotices.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));
-        _this.state = {
-          noticeList: []
-        };
-        _this.noticeOperations = {
-          createNotice: _this.createNotice,
-          createErrorNotice: _this.createErrorNotice,
-          removeAllNotices: _this.removeAllNotices,
-          removeNotice: _this.removeNotice
-        };
-        return _this;
+  return /*#__PURE__*/function (_Component) {
+    Object(inherits["a" /* default */])(WrappedBlockEdit, _Component);
+
+    var _super = with_notices_createSuper(WrappedBlockEdit);
+
+    function WrappedBlockEdit() {
+      var _this;
+
+      Object(classCallCheck["a" /* default */])(this, WrappedBlockEdit);
+
+      _this = _super.apply(this, arguments);
+      _this.createNotice = _this.createNotice.bind(Object(assertThisInitialized["a" /* default */])(_this));
+      _this.createErrorNotice = _this.createErrorNotice.bind(Object(assertThisInitialized["a" /* default */])(_this));
+      _this.removeNotice = _this.removeNotice.bind(Object(assertThisInitialized["a" /* default */])(_this));
+      _this.removeAllNotices = _this.removeAllNotices.bind(Object(assertThisInitialized["a" /* default */])(_this));
+      _this.state = {
+        noticeList: []
+      };
+      _this.noticeOperations = {
+        createNotice: _this.createNotice,
+        createErrorNotice: _this.createErrorNotice,
+        removeAllNotices: _this.removeAllNotices,
+        removeNotice: _this.removeNotice
+      };
+      return _this;
+    }
+    /**
+     * Function passed down as a prop that adds a new notice.
+     *
+     * @param {Object} notice  Notice to add.
+     */
+
+
+    Object(createClass["a" /* default */])(WrappedBlockEdit, [{
+      key: "createNotice",
+      value: function createNotice(notice) {
+        var noticeToAdd = notice.id ? notice : with_notices_objectSpread({}, notice, {
+          id: esm_browser_v4()
+        });
+        this.setState(function (state) {
+          return {
+            noticeList: [].concat(Object(toConsumableArray["a" /* default */])(state.noticeList), [noticeToAdd])
+          };
+        });
       }
       /**
-      * Function passed down as a prop that adds a new notice.
-      *
-      * @param {Object} notice  Notice to add.
-      */
-
-
-      Object(createClass["a" /* default */])(WrappedBlockEdit, [{
-        key: "createNotice",
-        value: function createNotice(notice) {
-          var noticeToAdd = notice.id ? notice : Object(objectSpread["a" /* default */])({}, notice, {
-            id: v4_default()()
-          });
-          this.setState(function (state) {
-            return {
-              noticeList: [].concat(Object(toConsumableArray["a" /* default */])(state.noticeList), [noticeToAdd])
-            };
-          });
-        }
-        /**
-        * Function passed as a prop that adds a new error notice.
-        *
-        * @param {string} msg  Error message of the notice.
-        */
-
-      }, {
-        key: "createErrorNotice",
-        value: function createErrorNotice(msg) {
-          this.createNotice({
-            status: 'error',
-            content: msg
-          });
-        }
-        /**
-        * Removes a notice by id.
-        *
-        * @param {string} id  Id of the notice to remove.
-        */
-
-      }, {
-        key: "removeNotice",
-        value: function removeNotice(id) {
-          this.setState(function (state) {
-            return {
-              noticeList: state.noticeList.filter(function (notice) {
-                return notice.id !== id;
-              })
-            };
-          });
-        }
-        /**
-        * Removes all notices
-        */
-
-      }, {
-        key: "removeAllNotices",
-        value: function removeAllNotices() {
-          this.setState({
-            noticeList: []
-          });
-        }
-      }, {
-        key: "render",
-        value: function render() {
-          return Object(external_this_wp_element_["createElement"])(OriginalComponent, Object(esm_extends["a" /* default */])({
-            noticeList: this.state.noticeList,
-            noticeOperations: this.noticeOperations,
-            noticeUI: this.state.noticeList.length > 0 && Object(external_this_wp_element_["createElement"])(list, {
-              className: "components-with-notices-ui",
-              notices: this.state.noticeList,
-              onRemove: this.removeNotice
+       * Function passed as a prop that adds a new error notice.
+       *
+       * @param {string} msg  Error message of the notice.
+       */
+
+    }, {
+      key: "createErrorNotice",
+      value: function createErrorNotice(msg) {
+        this.createNotice({
+          status: 'error',
+          content: msg
+        });
+      }
+      /**
+       * Removes a notice by id.
+       *
+       * @param {string} id  Id of the notice to remove.
+       */
+
+    }, {
+      key: "removeNotice",
+      value: function removeNotice(id) {
+        this.setState(function (state) {
+          return {
+            noticeList: state.noticeList.filter(function (notice) {
+              return notice.id !== id;
             })
-          }, this.props));
-        }
-      }]);
-
-      return WrappedBlockEdit;
-    }(external_this_wp_element_["Component"])
-  );
+          };
+        });
+      }
+      /**
+       * Removes all notices
+       */
+
+    }, {
+      key: "removeAllNotices",
+      value: function removeAllNotices() {
+        this.setState({
+          noticeList: []
+        });
+      }
+    }, {
+      key: "render",
+      value: function render() {
+        return Object(external_this_wp_element_["createElement"])(OriginalComponent, Object(esm_extends["a" /* default */])({
+          noticeList: this.state.noticeList,
+          noticeOperations: this.noticeOperations,
+          noticeUI: this.state.noticeList.length > 0 && Object(external_this_wp_element_["createElement"])(list, {
+            className: "components-with-notices-ui",
+            notices: this.state.noticeList,
+            onRemove: this.removeNotice
+          })
+        }, this.props));
+      }
+    }]);
+
+    return WrappedBlockEdit;
+  }(external_this_wp_element_["Component"]);
 }));
 
 // CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/index.js
-/* concated harmony reexport Circle */__webpack_require__.d(__webpack_exports__, "Circle", function() { return svg_Circle; });
-/* concated harmony reexport G */__webpack_require__.d(__webpack_exports__, "G", function() { return svg_G; });
-/* concated harmony reexport Path */__webpack_require__.d(__webpack_exports__, "Path", function() { return svg_Path; });
-/* concated harmony reexport Polygon */__webpack_require__.d(__webpack_exports__, "Polygon", function() { return svg_Polygon; });
-/* concated harmony reexport Rect */__webpack_require__.d(__webpack_exports__, "Rect", function() { return svg_Rect; });
-/* concated harmony reexport SVG */__webpack_require__.d(__webpack_exports__, "SVG", function() { return svg_SVG; });
-/* concated harmony reexport Animate */__webpack_require__.d(__webpack_exports__, "Animate", function() { return build_module_animate; });
-/* concated harmony reexport Autocomplete */__webpack_require__.d(__webpack_exports__, "Autocomplete", function() { return autocomplete; });
-/* concated harmony reexport BaseControl */__webpack_require__.d(__webpack_exports__, "BaseControl", function() { return base_control; });
-/* concated harmony reexport Button */__webpack_require__.d(__webpack_exports__, "Button", function() { return build_module_button; });
-/* concated harmony reexport ButtonGroup */__webpack_require__.d(__webpack_exports__, "ButtonGroup", function() { return button_group; });
-/* concated harmony reexport CheckboxControl */__webpack_require__.d(__webpack_exports__, "CheckboxControl", function() { return checkbox_control; });
-/* concated harmony reexport ClipboardButton */__webpack_require__.d(__webpack_exports__, "ClipboardButton", function() { return clipboard_button; });
-/* concated harmony reexport ColorIndicator */__webpack_require__.d(__webpack_exports__, "ColorIndicator", function() { return color_indicator; });
-/* concated harmony reexport ColorPalette */__webpack_require__.d(__webpack_exports__, "ColorPalette", function() { return ColorPalette; });
-/* concated harmony reexport ColorPicker */__webpack_require__.d(__webpack_exports__, "ColorPicker", function() { return color_picker_ColorPicker; });
-/* concated harmony reexport Dashicon */__webpack_require__.d(__webpack_exports__, "Dashicon", function() { return dashicon_Dashicon; });
-/* concated harmony reexport DateTimePicker */__webpack_require__.d(__webpack_exports__, "DateTimePicker", function() { return date_time_DateTimePicker; });
-/* concated harmony reexport DatePicker */__webpack_require__.d(__webpack_exports__, "DatePicker", function() { return date_time_date; });
-/* concated harmony reexport TimePicker */__webpack_require__.d(__webpack_exports__, "TimePicker", function() { return time; });
-/* concated harmony reexport Disabled */__webpack_require__.d(__webpack_exports__, "Disabled", function() { return build_module_disabled; });
-/* concated harmony reexport Draggable */__webpack_require__.d(__webpack_exports__, "Draggable", function() { return draggable; });
-/* concated harmony reexport DropZone */__webpack_require__.d(__webpack_exports__, "DropZone", function() { return drop_zone; });
-/* concated harmony reexport DropZoneProvider */__webpack_require__.d(__webpack_exports__, "DropZoneProvider", function() { return provider; });
-/* concated harmony reexport Dropdown */__webpack_require__.d(__webpack_exports__, "Dropdown", function() { return dropdown; });
-/* concated harmony reexport DropdownMenu */__webpack_require__.d(__webpack_exports__, "DropdownMenu", function() { return dropdown_menu; });
-/* concated harmony reexport ExternalLink */__webpack_require__.d(__webpack_exports__, "ExternalLink", function() { return external_link; });
-/* concated harmony reexport FocalPointPicker */__webpack_require__.d(__webpack_exports__, "FocalPointPicker", function() { return focal_point_picker; });
-/* concated harmony reexport FocusableIframe */__webpack_require__.d(__webpack_exports__, "FocusableIframe", function() { return focusable_iframe; });
-/* concated harmony reexport FontSizePicker */__webpack_require__.d(__webpack_exports__, "FontSizePicker", function() { return font_size_picker; });
-/* concated harmony reexport FormFileUpload */__webpack_require__.d(__webpack_exports__, "FormFileUpload", function() { return form_file_upload; });
-/* concated harmony reexport FormToggle */__webpack_require__.d(__webpack_exports__, "FormToggle", function() { return form_toggle; });
-/* concated harmony reexport FormTokenField */__webpack_require__.d(__webpack_exports__, "FormTokenField", function() { return form_token_field; });
-/* concated harmony reexport Icon */__webpack_require__.d(__webpack_exports__, "Icon", function() { return build_module_icon; });
-/* concated harmony reexport IconButton */__webpack_require__.d(__webpack_exports__, "IconButton", function() { return icon_button; });
-/* concated harmony reexport KeyboardShortcuts */__webpack_require__.d(__webpack_exports__, "KeyboardShortcuts", function() { return keyboard_shortcuts; });
-/* concated harmony reexport MenuGroup */__webpack_require__.d(__webpack_exports__, "MenuGroup", function() { return menu_group; });
-/* concated harmony reexport MenuItem */__webpack_require__.d(__webpack_exports__, "MenuItem", function() { return menu_item; });
-/* concated harmony reexport MenuItemsChoice */__webpack_require__.d(__webpack_exports__, "MenuItemsChoice", function() { return MenuItemsChoice; });
-/* concated harmony reexport Modal */__webpack_require__.d(__webpack_exports__, "Modal", function() { return modal; });
-/* concated harmony reexport ScrollLock */__webpack_require__.d(__webpack_exports__, "ScrollLock", function() { return scroll_lock; });
-/* concated harmony reexport NavigableMenu */__webpack_require__.d(__webpack_exports__, "NavigableMenu", function() { return menu; });
-/* concated harmony reexport TabbableContainer */__webpack_require__.d(__webpack_exports__, "TabbableContainer", function() { return tabbable; });
-/* concated harmony reexport Notice */__webpack_require__.d(__webpack_exports__, "Notice", function() { return build_module_notice; });
-/* concated harmony reexport NoticeList */__webpack_require__.d(__webpack_exports__, "NoticeList", function() { return list; });
-/* concated harmony reexport Panel */__webpack_require__.d(__webpack_exports__, "Panel", function() { return panel; });
-/* concated harmony reexport PanelBody */__webpack_require__.d(__webpack_exports__, "PanelBody", function() { return panel_body; });
-/* concated harmony reexport PanelHeader */__webpack_require__.d(__webpack_exports__, "PanelHeader", function() { return panel_header; });
-/* concated harmony reexport PanelRow */__webpack_require__.d(__webpack_exports__, "PanelRow", function() { return row; });
-/* concated harmony reexport Placeholder */__webpack_require__.d(__webpack_exports__, "Placeholder", function() { return placeholder; });
-/* concated harmony reexport Popover */__webpack_require__.d(__webpack_exports__, "Popover", function() { return popover; });
-/* concated harmony reexport __unstablePositionedAtSelection */__webpack_require__.d(__webpack_exports__, "__unstablePositionedAtSelection", function() { return positioned_at_selection_PositionedAtSelection; });
-/* concated harmony reexport QueryControls */__webpack_require__.d(__webpack_exports__, "QueryControls", function() { return QueryControls; });
-/* concated harmony reexport RadioControl */__webpack_require__.d(__webpack_exports__, "RadioControl", function() { return radio_control; });
-/* concated harmony reexport RangeControl */__webpack_require__.d(__webpack_exports__, "RangeControl", function() { return range_control; });
-/* concated harmony reexport ResizableBox */__webpack_require__.d(__webpack_exports__, "ResizableBox", function() { return resizable_box; });
-/* concated harmony reexport ResponsiveWrapper */__webpack_require__.d(__webpack_exports__, "ResponsiveWrapper", function() { return responsive_wrapper; });
-/* concated harmony reexport SandBox */__webpack_require__.d(__webpack_exports__, "SandBox", function() { return sandbox; });
-/* concated harmony reexport SelectControl */__webpack_require__.d(__webpack_exports__, "SelectControl", function() { return select_control; });
-/* concated harmony reexport Spinner */__webpack_require__.d(__webpack_exports__, "Spinner", function() { return Spinner; });
-/* concated harmony reexport ServerSideRender */__webpack_require__.d(__webpack_exports__, "ServerSideRender", function() { return server_side_render; });
-/* concated harmony reexport TabPanel */__webpack_require__.d(__webpack_exports__, "TabPanel", function() { return tab_panel; });
-/* concated harmony reexport TextControl */__webpack_require__.d(__webpack_exports__, "TextControl", function() { return text_control; });
-/* concated harmony reexport TextareaControl */__webpack_require__.d(__webpack_exports__, "TextareaControl", function() { return textarea_control; });
-/* concated harmony reexport ToggleControl */__webpack_require__.d(__webpack_exports__, "ToggleControl", function() { return toggle_control; });
-/* concated harmony reexport Toolbar */__webpack_require__.d(__webpack_exports__, "Toolbar", function() { return toolbar; });
-/* concated harmony reexport ToolbarButton */__webpack_require__.d(__webpack_exports__, "ToolbarButton", function() { return toolbar_button; });
-/* concated harmony reexport Tooltip */__webpack_require__.d(__webpack_exports__, "Tooltip", function() { return build_module_tooltip; });
-/* concated harmony reexport TreeSelect */__webpack_require__.d(__webpack_exports__, "TreeSelect", function() { return TreeSelect; });
-/* concated harmony reexport IsolatedEventContainer */__webpack_require__.d(__webpack_exports__, "IsolatedEventContainer", function() { return isolated_event_container; });
-/* concated harmony reexport createSlotFill */__webpack_require__.d(__webpack_exports__, "createSlotFill", function() { return createSlotFill; });
-/* concated harmony reexport Slot */__webpack_require__.d(__webpack_exports__, "Slot", function() { return slot_fill_slot; });
-/* concated harmony reexport Fill */__webpack_require__.d(__webpack_exports__, "Fill", function() { return slot_fill_fill; });
-/* concated harmony reexport SlotFillProvider */__webpack_require__.d(__webpack_exports__, "SlotFillProvider", function() { return slot_fill_context; });
-/* concated harmony reexport navigateRegions */__webpack_require__.d(__webpack_exports__, "navigateRegions", function() { return navigate_regions; });
-/* concated harmony reexport withConstrainedTabbing */__webpack_require__.d(__webpack_exports__, "withConstrainedTabbing", function() { return with_constrained_tabbing; });
-/* concated harmony reexport withFallbackStyles */__webpack_require__.d(__webpack_exports__, "withFallbackStyles", function() { return with_fallback_styles; });
-/* concated harmony reexport withFilters */__webpack_require__.d(__webpack_exports__, "withFilters", function() { return withFilters; });
-/* concated harmony reexport withFocusOutside */__webpack_require__.d(__webpack_exports__, "withFocusOutside", function() { return with_focus_outside; });
-/* concated harmony reexport withFocusReturn */__webpack_require__.d(__webpack_exports__, "withFocusReturn", function() { return with_focus_return; });
-/* concated harmony reexport FocusReturnProvider */__webpack_require__.d(__webpack_exports__, "FocusReturnProvider", function() { return with_focus_return_context; });
-/* concated harmony reexport withNotices */__webpack_require__.d(__webpack_exports__, "withNotices", function() { return with_notices; });
-/* concated harmony reexport withSpokenMessages */__webpack_require__.d(__webpack_exports__, "withSpokenMessages", function() { return with_spoken_messages; });
-// Components
- // eslint-disable-next-line camelcase
+// Primitives
+ // Components
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
 
 
 
@@ -37530,5 +46728,10487 @@
 
 
 
+/***/ }),
+/* 261 */,
+/* 262 */,
+/* 263 */,
+/* 264 */,
+/* 265 */,
+/* 266 */,
+/* 267 */,
+/* 268 */,
+/* 269 */,
+/* 270 */
+/***/ (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;
+
+/***/ }),
+/* 271 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+
+var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
+
+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__(92);
+
+var _object2 = _interopRequireDefault(_object);
+
+var _react = __webpack_require__(13);
+
+var _react2 = _interopRequireDefault(_react);
+
+var _propTypes = __webpack_require__(28);
+
+var _propTypes2 = _interopRequireDefault(_propTypes);
+
+var _reactMomentProptypes = __webpack_require__(141);
+
+var _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes);
+
+var _airbnbPropTypes = __webpack_require__(85);
+
+var _moment = __webpack_require__(43);
+
+var _moment2 = _interopRequireDefault(_moment);
+
+var _object3 = __webpack_require__(228);
+
+var _object4 = _interopRequireDefault(_object3);
+
+var _isTouchDevice = __webpack_require__(238);
+
+var _isTouchDevice2 = _interopRequireDefault(_isTouchDevice);
+
+var _defaultPhrases = __webpack_require__(107);
+
+var _getPhrasePropTypes = __webpack_require__(108);
+
+var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);
+
+var _isSameDay = __webpack_require__(190);
+
+var _isSameDay2 = _interopRequireDefault(_isSameDay);
+
+var _isAfterDay = __webpack_require__(239);
+
+var _isAfterDay2 = _interopRequireDefault(_isAfterDay);
+
+var _getVisibleDays = __webpack_require__(367);
+
+var _getVisibleDays2 = _interopRequireDefault(_getVisibleDays);
+
+var _isDayVisible = __webpack_require__(242);
+
+var _isDayVisible2 = _interopRequireDefault(_isDayVisible);
+
+var _toISODateString = __webpack_require__(243);
+
+var _toISODateString2 = _interopRequireDefault(_toISODateString);
+
+var _toISOMonthString = __webpack_require__(191);
+
+var _toISOMonthString2 = _interopRequireDefault(_toISOMonthString);
+
+var _ScrollableOrientationShape = __webpack_require__(142);
+
+var _ScrollableOrientationShape2 = _interopRequireDefault(_ScrollableOrientationShape);
+
+var _DayOfWeekShape = __webpack_require__(156);
+
+var _DayOfWeekShape2 = _interopRequireDefault(_DayOfWeekShape);
+
+var _CalendarInfoPositionShape = __webpack_require__(244);
+
+var _CalendarInfoPositionShape2 = _interopRequireDefault(_CalendarInfoPositionShape);
+
+var _constants = __webpack_require__(77);
+
+var _DayPicker = __webpack_require__(368);
+
+var _DayPicker2 = _interopRequireDefault(_DayPicker);
+
+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 _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)({
+  date: _reactMomentProptypes2['default'].momentObj,
+  onDateChange: _propTypes2['default'].func,
+
+  focused: _propTypes2['default'].bool,
+  onFocusChange: _propTypes2['default'].func,
+  onClose: _propTypes2['default'].func,
+
+  keepOpenOnDateSelect: _propTypes2['default'].bool,
+  isOutsideRange: _propTypes2['default'].func,
+  isDayBlocked: _propTypes2['default'].func,
+  isDayHighlighted: _propTypes2['default'].func,
+
+  // DayPicker props
+  renderMonthText: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),
+  renderMonthElement: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),
+  enableOutsideDays: _propTypes2['default'].bool,
+  numberOfMonths: _propTypes2['default'].number,
+  orientation: _ScrollableOrientationShape2['default'],
+  withPortal: _propTypes2['default'].bool,
+  initialVisibleMonth: _propTypes2['default'].func,
+  firstDayOfWeek: _DayOfWeekShape2['default'],
+  hideKeyboardShortcutsPanel: _propTypes2['default'].bool,
+  daySize: _airbnbPropTypes.nonNegativeInteger,
+  verticalHeight: _airbnbPropTypes.nonNegativeInteger,
+  noBorder: _propTypes2['default'].bool,
+  verticalBorderSpacing: _airbnbPropTypes.nonNegativeInteger,
+  transitionDuration: _airbnbPropTypes.nonNegativeInteger,
+  horizontalMonthPadding: _airbnbPropTypes.nonNegativeInteger,
+
+  navPrev: _propTypes2['default'].node,
+  navNext: _propTypes2['default'].node,
+
+  onPrevMonthClick: _propTypes2['default'].func,
+  onNextMonthClick: _propTypes2['default'].func,
+  onOutsideClick: _propTypes2['default'].func,
+  renderCalendarDay: _propTypes2['default'].func,
+  renderDayContents: _propTypes2['default'].func,
+  renderCalendarInfo: _propTypes2['default'].func,
+  calendarInfoPosition: _CalendarInfoPositionShape2['default'],
+
+  // accessibility
+  onBlur: _propTypes2['default'].func,
+  isFocused: _propTypes2['default'].bool,
+  showKeyboardShortcuts: _propTypes2['default'].bool,
+
+  // i18n
+  monthFormat: _propTypes2['default'].string,
+  weekDayFormat: _propTypes2['default'].string,
+  phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.DayPickerPhrases)),
+  dayAriaLabelFormat: _propTypes2['default'].string,
+
+  isRTL: _propTypes2['default'].bool
+});
+
+var defaultProps = {
+  date: undefined, // TODO: use null
+  onDateChange: function () {
+    function onDateChange() {}
+
+    return onDateChange;
+  }(),
+
+
+  focused: false,
+  onFocusChange: function () {
+    function onFocusChange() {}
+
+    return onFocusChange;
+  }(),
+  onClose: function () {
+    function onClose() {}
+
+    return onClose;
+  }(),
+
+
+  keepOpenOnDateSelect: false,
+  isOutsideRange: function () {
+    function isOutsideRange() {}
+
+    return isOutsideRange;
+  }(),
+  isDayBlocked: function () {
+    function isDayBlocked() {}
+
+    return isDayBlocked;
+  }(),
+  isDayHighlighted: function () {
+    function isDayHighlighted() {}
+
+    return isDayHighlighted;
+  }(),
+
+
+  // DayPicker props
+  renderMonthText: null,
+  enableOutsideDays: false,
+  numberOfMonths: 1,
+  orientation: _constants.HORIZONTAL_ORIENTATION,
+  withPortal: false,
+  hideKeyboardShortcutsPanel: false,
+  initialVisibleMonth: null,
+  firstDayOfWeek: null,
+  daySize: _constants.DAY_SIZE,
+  verticalHeight: null,
+  noBorder: false,
+  verticalBorderSpacing: undefined,
+  transitionDuration: undefined,
+  horizontalMonthPadding: 13,
+
+  navPrev: null,
+  navNext: null,
+
+  onPrevMonthClick: function () {
+    function onPrevMonthClick() {}
+
+    return onPrevMonthClick;
+  }(),
+  onNextMonthClick: function () {
+    function onNextMonthClick() {}
+
+    return onNextMonthClick;
+  }(),
+  onOutsideClick: function () {
+    function onOutsideClick() {}
+
+    return onOutsideClick;
+  }(),
+
+
+  renderCalendarDay: undefined,
+  renderDayContents: null,
+  renderCalendarInfo: null,
+  renderMonthElement: null,
+  calendarInfoPosition: _constants.INFO_POSITION_BOTTOM,
+
+  // accessibility
+  onBlur: function () {
+    function onBlur() {}
+
+    return onBlur;
+  }(),
+
+  isFocused: false,
+  showKeyboardShortcuts: false,
+
+  // i18n
+  monthFormat: 'MMMM YYYY',
+  weekDayFormat: 'dd',
+  phrases: _defaultPhrases.DayPickerPhrases,
+  dayAriaLabelFormat: undefined,
+
+  isRTL: false
+};
+
+var DayPickerSingleDateController = function (_React$Component) {
+  _inherits(DayPickerSingleDateController, _React$Component);
+
+  function DayPickerSingleDateController(props) {
+    _classCallCheck(this, DayPickerSingleDateController);
+
+    var _this = _possibleConstructorReturn(this, (DayPickerSingleDateController.__proto__ || Object.getPrototypeOf(DayPickerSingleDateController)).call(this, props));
+
+    _this.isTouchDevice = false;
+    _this.today = (0, _moment2['default'])();
+
+    _this.modifiers = {
+      today: function () {
+        function today(day) {
+          return _this.isToday(day);
+        }
+
+        return today;
+      }(),
+      blocked: function () {
+        function blocked(day) {
+          return _this.isBlocked(day);
+        }
+
+        return blocked;
+      }(),
+      'blocked-calendar': function () {
+        function blockedCalendar(day) {
+          return props.isDayBlocked(day);
+        }
+
+        return blockedCalendar;
+      }(),
+      'blocked-out-of-range': function () {
+        function blockedOutOfRange(day) {
+          return props.isOutsideRange(day);
+        }
+
+        return blockedOutOfRange;
+      }(),
+      'highlighted-calendar': function () {
+        function highlightedCalendar(day) {
+          return props.isDayHighlighted(day);
+        }
+
+        return highlightedCalendar;
+      }(),
+      valid: function () {
+        function valid(day) {
+          return !_this.isBlocked(day);
+        }
+
+        return valid;
+      }(),
+      hovered: function () {
+        function hovered(day) {
+          return _this.isHovered(day);
+        }
+
+        return hovered;
+      }(),
+      selected: function () {
+        function selected(day) {
+          return _this.isSelected(day);
+        }
+
+        return selected;
+      }(),
+      'first-day-of-week': function () {
+        function firstDayOfWeek(day) {
+          return _this.isFirstDayOfWeek(day);
+        }
+
+        return firstDayOfWeek;
+      }(),
+      'last-day-of-week': function () {
+        function lastDayOfWeek(day) {
+          return _this.isLastDayOfWeek(day);
+        }
+
+        return lastDayOfWeek;
+      }()
+    };
+
+    var _this$getStateForNewM = _this.getStateForNewMonth(props),
+        currentMonth = _this$getStateForNewM.currentMonth,
+        visibleDays = _this$getStateForNewM.visibleDays;
+
+    _this.state = {
+      hoverDate: null,
+      currentMonth: currentMonth,
+      visibleDays: visibleDays
+    };
+
+    _this.onDayMouseEnter = _this.onDayMouseEnter.bind(_this);
+    _this.onDayMouseLeave = _this.onDayMouseLeave.bind(_this);
+    _this.onDayClick = _this.onDayClick.bind(_this);
+
+    _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.getFirstFocusableDay = _this.getFirstFocusableDay.bind(_this);
+    return _this;
+  }
+
+  _createClass(DayPickerSingleDateController, [{
+    key: 'componentDidMount',
+    value: function () {
+      function componentDidMount() {
+        this.isTouchDevice = (0, _isTouchDevice2['default'])();
+      }
+
+      return componentDidMount;
+    }()
+  }, {
+    key: 'componentWillReceiveProps',
+    value: function () {
+      function componentWillReceiveProps(nextProps) {
+        var _this2 = this;
+
+        var date = nextProps.date,
+            focused = nextProps.focused,
+            isOutsideRange = nextProps.isOutsideRange,
+            isDayBlocked = nextProps.isDayBlocked,
+            isDayHighlighted = nextProps.isDayHighlighted,
+            initialVisibleMonth = nextProps.initialVisibleMonth,
+            numberOfMonths = nextProps.numberOfMonths,
+            enableOutsideDays = nextProps.enableOutsideDays;
+        var _props = this.props,
+            prevIsOutsideRange = _props.isOutsideRange,
+            prevIsDayBlocked = _props.isDayBlocked,
+            prevIsDayHighlighted = _props.isDayHighlighted,
+            prevNumberOfMonths = _props.numberOfMonths,
+            prevEnableOutsideDays = _props.enableOutsideDays,
+            prevInitialVisibleMonth = _props.initialVisibleMonth,
+            prevFocused = _props.focused,
+            prevDate = _props.date;
+        var visibleDays = this.state.visibleDays;
+
+
+        var recomputeOutsideRange = false;
+        var recomputeDayBlocked = false;
+        var recomputeDayHighlighted = false;
+
+        if (isOutsideRange !== prevIsOutsideRange) {
+          this.modifiers['blocked-out-of-range'] = function (day) {
+            return isOutsideRange(day);
+          };
+          recomputeOutsideRange = true;
+        }
+
+        if (isDayBlocked !== prevIsDayBlocked) {
+          this.modifiers['blocked-calendar'] = function (day) {
+            return isDayBlocked(day);
+          };
+          recomputeDayBlocked = true;
+        }
+
+        if (isDayHighlighted !== prevIsDayHighlighted) {
+          this.modifiers['highlighted-calendar'] = function (day) {
+            return isDayHighlighted(day);
+          };
+          recomputeDayHighlighted = true;
+        }
+
+        var recomputePropModifiers = recomputeOutsideRange || recomputeDayBlocked || recomputeDayHighlighted;
+
+        if (numberOfMonths !== prevNumberOfMonths || enableOutsideDays !== prevEnableOutsideDays || initialVisibleMonth !== prevInitialVisibleMonth && !prevFocused && focused) {
+          var newMonthState = this.getStateForNewMonth(nextProps);
+          var currentMonth = newMonthState.currentMonth;
+          visibleDays = newMonthState.visibleDays;
+
+          this.setState({
+            currentMonth: currentMonth,
+            visibleDays: visibleDays
+          });
+        }
+
+        var didDateChange = date !== prevDate;
+        var didFocusChange = focused !== prevFocused;
+
+        var modifiers = {};
+
+        if (didDateChange) {
+          modifiers = this.deleteModifier(modifiers, prevDate, 'selected');
+          modifiers = this.addModifier(modifiers, date, 'selected');
+        }
+
+        if (didFocusChange || recomputePropModifiers) {
+          (0, _object4['default'])(visibleDays).forEach(function (days) {
+            Object.keys(days).forEach(function (day) {
+              var momentObj = (0, _moment2['default'])(day);
+              if (_this2.isBlocked(momentObj)) {
+                modifiers = _this2.addModifier(modifiers, momentObj, 'blocked');
+              } else {
+                modifiers = _this2.deleteModifier(modifiers, momentObj, 'blocked');
+              }
+
+              if (didFocusChange || recomputeOutsideRange) {
+                if (isOutsideRange(momentObj)) {
+                  modifiers = _this2.addModifier(modifiers, momentObj, 'blocked-out-of-range');
+                } else {
+                  modifiers = _this2.deleteModifier(modifiers, momentObj, 'blocked-out-of-range');
+                }
+              }
+
+              if (didFocusChange || recomputeDayBlocked) {
+                if (isDayBlocked(momentObj)) {
+                  modifiers = _this2.addModifier(modifiers, momentObj, 'blocked-calendar');
+                } else {
+                  modifiers = _this2.deleteModifier(modifiers, momentObj, 'blocked-calendar');
+                }
+              }
+
+              if (didFocusChange || recomputeDayHighlighted) {
+                if (isDayHighlighted(momentObj)) {
+                  modifiers = _this2.addModifier(modifiers, momentObj, 'highlighted-calendar');
+                } else {
+                  modifiers = _this2.deleteModifier(modifiers, momentObj, 'highlighted-calendar');
+                }
+              }
+            });
+          });
+        }
+
+        var today = (0, _moment2['default'])();
+        if (!(0, _isSameDay2['default'])(this.today, today)) {
+          modifiers = this.deleteModifier(modifiers, this.today, 'today');
+          modifiers = this.addModifier(modifiers, today, 'today');
+          this.today = today;
+        }
+
+        if (Object.keys(modifiers).length > 0) {
+          this.setState({
+            visibleDays: (0, _object2['default'])({}, visibleDays, modifiers)
+          });
+        }
+      }
+
+      return componentWillReceiveProps;
+    }()
+  }, {
+    key: 'componentWillUpdate',
+    value: function () {
+      function componentWillUpdate() {
+        this.today = (0, _moment2['default'])();
+      }
+
+      return componentWillUpdate;
+    }()
+  }, {
+    key: 'onDayClick',
+    value: function () {
+      function onDayClick(day, e) {
+        if (e) e.preventDefault();
+        if (this.isBlocked(day)) return;
+        var _props2 = this.props,
+            onDateChange = _props2.onDateChange,
+            keepOpenOnDateSelect = _props2.keepOpenOnDateSelect,
+            onFocusChange = _props2.onFocusChange,
+            onClose = _props2.onClose;
+
+
+        onDateChange(day);
+        if (!keepOpenOnDateSelect) {
+          onFocusChange({ focused: false });
+          onClose({ date: day });
+        }
+      }
+
+      return onDayClick;
+    }()
+  }, {
+    key: 'onDayMouseEnter',
+    value: function () {
+      function onDayMouseEnter(day) {
+        if (this.isTouchDevice) return;
+        var _state = this.state,
+            hoverDate = _state.hoverDate,
+            visibleDays = _state.visibleDays;
+
+
+        var modifiers = this.deleteModifier({}, hoverDate, 'hovered');
+        modifiers = this.addModifier(modifiers, day, 'hovered');
+
+        this.setState({
+          hoverDate: day,
+          visibleDays: (0, _object2['default'])({}, visibleDays, modifiers)
+        });
+      }
+
+      return onDayMouseEnter;
+    }()
+  }, {
+    key: 'onDayMouseLeave',
+    value: function () {
+      function onDayMouseLeave() {
+        var _state2 = this.state,
+            hoverDate = _state2.hoverDate,
+            visibleDays = _state2.visibleDays;
+
+        if (this.isTouchDevice || !hoverDate) return;
+
+        var modifiers = this.deleteModifier({}, hoverDate, 'hovered');
+
+        this.setState({
+          hoverDate: null,
+          visibleDays: (0, _object2['default'])({}, visibleDays, modifiers)
+        });
+      }
+
+      return onDayMouseLeave;
+    }()
+  }, {
+    key: 'onPrevMonthClick',
+    value: function () {
+      function onPrevMonthClick() {
+        var _props3 = this.props,
+            onPrevMonthClick = _props3.onPrevMonthClick,
+            numberOfMonths = _props3.numberOfMonths,
+            enableOutsideDays = _props3.enableOutsideDays;
+        var _state3 = this.state,
+            currentMonth = _state3.currentMonth,
+            visibleDays = _state3.visibleDays;
+
+
+        var newVisibleDays = {};
+        Object.keys(visibleDays).sort().slice(0, numberOfMonths + 1).forEach(function (month) {
+          newVisibleDays[month] = visibleDays[month];
+        });
+
+        var prevMonth = currentMonth.clone().subtract(1, 'month');
+        var prevMonthVisibleDays = (0, _getVisibleDays2['default'])(prevMonth, 1, enableOutsideDays);
+
+        this.setState({
+          currentMonth: prevMonth,
+          visibleDays: (0, _object2['default'])({}, newVisibleDays, this.getModifiers(prevMonthVisibleDays))
+        }, function () {
+          onPrevMonthClick(prevMonth.clone());
+        });
+      }
+
+      return onPrevMonthClick;
+    }()
+  }, {
+    key: 'onNextMonthClick',
+    value: function () {
+      function onNextMonthClick() {
+        var _props4 = this.props,
+            onNextMonthClick = _props4.onNextMonthClick,
+            numberOfMonths = _props4.numberOfMonths,
+            enableOutsideDays = _props4.enableOutsideDays;
+        var _state4 = this.state,
+            currentMonth = _state4.currentMonth,
+            visibleDays = _state4.visibleDays;
+
+
+        var newVisibleDays = {};
+        Object.keys(visibleDays).sort().slice(1).forEach(function (month) {
+          newVisibleDays[month] = visibleDays[month];
+        });
+
+        var nextMonth = currentMonth.clone().add(numberOfMonths, 'month');
+        var nextMonthVisibleDays = (0, _getVisibleDays2['default'])(nextMonth, 1, enableOutsideDays);
+
+        var newCurrentMonth = currentMonth.clone().add(1, 'month');
+        this.setState({
+          currentMonth: newCurrentMonth,
+          visibleDays: (0, _object2['default'])({}, newVisibleDays, this.getModifiers(nextMonthVisibleDays))
+        }, function () {
+          onNextMonthClick(newCurrentMonth.clone());
+        });
+      }
+
+      return onNextMonthClick;
+    }()
+  }, {
+    key: 'onMonthChange',
+    value: function () {
+      function onMonthChange(newMonth) {
+        var _props5 = this.props,
+            numberOfMonths = _props5.numberOfMonths,
+            enableOutsideDays = _props5.enableOutsideDays,
+            orientation = _props5.orientation;
+
+        var withoutTransitionMonths = orientation === _constants.VERTICAL_SCROLLABLE;
+        var newVisibleDays = (0, _getVisibleDays2['default'])(newMonth, numberOfMonths, enableOutsideDays, withoutTransitionMonths);
+
+        this.setState({
+          currentMonth: newMonth.clone(),
+          visibleDays: this.getModifiers(newVisibleDays)
+        });
+      }
+
+      return onMonthChange;
+    }()
+  }, {
+    key: 'onYearChange',
+    value: function () {
+      function onYearChange(newMonth) {
+        var _props6 = this.props,
+            numberOfMonths = _props6.numberOfMonths,
+            enableOutsideDays = _props6.enableOutsideDays,
+            orientation = _props6.orientation;
+
+        var withoutTransitionMonths = orientation === _constants.VERTICAL_SCROLLABLE;
+        var newVisibleDays = (0, _getVisibleDays2['default'])(newMonth, numberOfMonths, enableOutsideDays, withoutTransitionMonths);
+
+        this.setState({
+          currentMonth: newMonth.clone(),
+          visibleDays: this.getModifiers(newVisibleDays)
+        });
+      }
+
+      return onYearChange;
+    }()
+  }, {
+    key: 'getFirstFocusableDay',
+    value: function () {
+      function getFirstFocusableDay(newMonth) {
+        var _this3 = this;
+
+        var _props7 = this.props,
+            date = _props7.date,
+            numberOfMonths = _props7.numberOfMonths;
+
+
+        var focusedDate = newMonth.clone().startOf('month');
+        if (date) {
+          focusedDate = date.clone();
+        }
+
+        if (this.isBlocked(focusedDate)) {
+          var days = [];
+          var lastVisibleDay = newMonth.clone().add(numberOfMonths - 1, 'months').endOf('month');
+          var currentDay = focusedDate.clone();
+          while (!(0, _isAfterDay2['default'])(currentDay, lastVisibleDay)) {
+            currentDay = currentDay.clone().add(1, 'day');
+            days.push(currentDay);
+          }
+
+          var viableDays = days.filter(function (day) {
+            return !_this3.isBlocked(day) && (0, _isAfterDay2['default'])(day, focusedDate);
+          });
+          if (viableDays.length > 0) {
+            var _viableDays = _slicedToArray(viableDays, 1);
+
+            focusedDate = _viableDays[0];
+          }
+        }
+
+        return focusedDate;
+      }
+
+      return getFirstFocusableDay;
+    }()
+  }, {
+    key: 'getModifiers',
+    value: function () {
+      function getModifiers(visibleDays) {
+        var _this4 = this;
+
+        var modifiers = {};
+        Object.keys(visibleDays).forEach(function (month) {
+          modifiers[month] = {};
+          visibleDays[month].forEach(function (day) {
+            modifiers[month][(0, _toISODateString2['default'])(day)] = _this4.getModifiersForDay(day);
+          });
+        });
+
+        return modifiers;
+      }
+
+      return getModifiers;
+    }()
+  }, {
+    key: 'getModifiersForDay',
+    value: function () {
+      function getModifiersForDay(day) {
+        var _this5 = this;
+
+        return new Set(Object.keys(this.modifiers).filter(function (modifier) {
+          return _this5.modifiers[modifier](day);
+        }));
+      }
+
+      return getModifiersForDay;
+    }()
+  }, {
+    key: 'getStateForNewMonth',
+    value: function () {
+      function getStateForNewMonth(nextProps) {
+        var _this6 = this;
+
+        var initialVisibleMonth = nextProps.initialVisibleMonth,
+            date = nextProps.date,
+            numberOfMonths = nextProps.numberOfMonths,
+            enableOutsideDays = nextProps.enableOutsideDays;
+
+        var initialVisibleMonthThunk = initialVisibleMonth || (date ? function () {
+          return date;
+        } : function () {
+          return _this6.today;
+        });
+        var currentMonth = initialVisibleMonthThunk();
+        var visibleDays = this.getModifiers((0, _getVisibleDays2['default'])(currentMonth, numberOfMonths, enableOutsideDays));
+        return { currentMonth: currentMonth, visibleDays: visibleDays };
+      }
+
+      return getStateForNewMonth;
+    }()
+  }, {
+    key: 'addModifier',
+    value: function () {
+      function addModifier(updatedDays, day, modifier) {
+        var _props8 = this.props,
+            numberOfVisibleMonths = _props8.numberOfMonths,
+            enableOutsideDays = _props8.enableOutsideDays,
+            orientation = _props8.orientation;
+        var _state5 = this.state,
+            firstVisibleMonth = _state5.currentMonth,
+            visibleDays = _state5.visibleDays;
+
+
+        var currentMonth = firstVisibleMonth;
+        var numberOfMonths = numberOfVisibleMonths;
+        if (orientation === _constants.VERTICAL_SCROLLABLE) {
+          numberOfMonths = Object.keys(visibleDays).length;
+        } else {
+          currentMonth = currentMonth.clone().subtract(1, 'month');
+          numberOfMonths += 2;
+        }
+        if (!day || !(0, _isDayVisible2['default'])(day, currentMonth, numberOfMonths, enableOutsideDays)) {
+          return updatedDays;
+        }
+
+        var iso = (0, _toISODateString2['default'])(day);
+
+        var updatedDaysAfterAddition = (0, _object2['default'])({}, updatedDays);
+        if (enableOutsideDays) {
+          var monthsToUpdate = Object.keys(visibleDays).filter(function (monthKey) {
+            return Object.keys(visibleDays[monthKey]).indexOf(iso) > -1;
+          });
+
+          updatedDaysAfterAddition = monthsToUpdate.reduce(function (days, monthIso) {
+            var month = updatedDays[monthIso] || visibleDays[monthIso];
+            var modifiers = new Set(month[iso]);
+            modifiers.add(modifier);
+            return (0, _object2['default'])({}, days, _defineProperty({}, monthIso, (0, _object2['default'])({}, month, _defineProperty({}, iso, modifiers))));
+          }, updatedDaysAfterAddition);
+        } else {
+          var monthIso = (0, _toISOMonthString2['default'])(day);
+          var month = updatedDays[monthIso] || visibleDays[monthIso];
+
+          var modifiers = new Set(month[iso]);
+          modifiers.add(modifier);
+          updatedDaysAfterAddition = (0, _object2['default'])({}, updatedDaysAfterAddition, _defineProperty({}, monthIso, (0, _object2['default'])({}, month, _defineProperty({}, iso, modifiers))));
+        }
+
+        return updatedDaysAfterAddition;
+      }
+
+      return addModifier;
+    }()
+  }, {
+    key: 'deleteModifier',
+    value: function () {
+      function deleteModifier(updatedDays, day, modifier) {
+        var _props9 = this.props,
+            numberOfVisibleMonths = _props9.numberOfMonths,
+            enableOutsideDays = _props9.enableOutsideDays,
+            orientation = _props9.orientation;
+        var _state6 = this.state,
+            firstVisibleMonth = _state6.currentMonth,
+            visibleDays = _state6.visibleDays;
+
+
+        var currentMonth = firstVisibleMonth;
+        var numberOfMonths = numberOfVisibleMonths;
+        if (orientation === _constants.VERTICAL_SCROLLABLE) {
+          numberOfMonths = Object.keys(visibleDays).length;
+        } else {
+          currentMonth = currentMonth.clone().subtract(1, 'month');
+          numberOfMonths += 2;
+        }
+        if (!day || !(0, _isDayVisible2['default'])(day, currentMonth, numberOfMonths, enableOutsideDays)) {
+          return updatedDays;
+        }
+
+        var iso = (0, _toISODateString2['default'])(day);
+
+        var updatedDaysAfterDeletion = (0, _object2['default'])({}, updatedDays);
+        if (enableOutsideDays) {
+          var monthsToUpdate = Object.keys(visibleDays).filter(function (monthKey) {
+            return Object.keys(visibleDays[monthKey]).indexOf(iso) > -1;
+          });
+
+          updatedDaysAfterDeletion = monthsToUpdate.reduce(function (days, monthIso) {
+            var month = updatedDays[monthIso] || visibleDays[monthIso];
+            var modifiers = new Set(month[iso]);
+            modifiers['delete'](modifier);
+            return (0, _object2['default'])({}, days, _defineProperty({}, monthIso, (0, _object2['default'])({}, month, _defineProperty({}, iso, modifiers))));
+          }, updatedDaysAfterDeletion);
+        } else {
+          var monthIso = (0, _toISOMonthString2['default'])(day);
+          var month = updatedDays[monthIso] || visibleDays[monthIso];
+
+          var modifiers = new Set(month[iso]);
+          modifiers['delete'](modifier);
+          updatedDaysAfterDeletion = (0, _object2['default'])({}, updatedDaysAfterDeletion, _defineProperty({}, monthIso, (0, _object2['default'])({}, month, _defineProperty({}, iso, modifiers))));
+        }
+
+        return updatedDaysAfterDeletion;
+      }
+
+      return deleteModifier;
+    }()
+  }, {
+    key: 'isBlocked',
+    value: function () {
+      function isBlocked(day) {
+        var _props10 = this.props,
+            isDayBlocked = _props10.isDayBlocked,
+            isOutsideRange = _props10.isOutsideRange;
+
+        return isDayBlocked(day) || isOutsideRange(day);
+      }
+
+      return isBlocked;
+    }()
+  }, {
+    key: 'isHovered',
+    value: function () {
+      function isHovered(day) {
+        var _ref = this.state || {},
+            hoverDate = _ref.hoverDate;
+
+        return (0, _isSameDay2['default'])(day, hoverDate);
+      }
+
+      return isHovered;
+    }()
+  }, {
+    key: 'isSelected',
+    value: function () {
+      function isSelected(day) {
+        var date = this.props.date;
+
+        return (0, _isSameDay2['default'])(day, date);
+      }
+
+      return isSelected;
+    }()
+  }, {
+    key: 'isToday',
+    value: function () {
+      function isToday(day) {
+        return (0, _isSameDay2['default'])(day, this.today);
+      }
+
+      return isToday;
+    }()
+  }, {
+    key: 'isFirstDayOfWeek',
+    value: function () {
+      function isFirstDayOfWeek(day) {
+        var firstDayOfWeek = this.props.firstDayOfWeek;
+
+        return day.day() === (firstDayOfWeek || _moment2['default'].localeData().firstDayOfWeek());
+      }
+
+      return isFirstDayOfWeek;
+    }()
+  }, {
+    key: 'isLastDayOfWeek',
+    value: function () {
+      function isLastDayOfWeek(day) {
+        var firstDayOfWeek = this.props.firstDayOfWeek;
+
+        return day.day() === ((firstDayOfWeek || _moment2['default'].localeData().firstDayOfWeek()) + 6) % 7;
+      }
+
+      return isLastDayOfWeek;
+    }()
+  }, {
+    key: 'render',
+    value: function () {
+      function render() {
+        var _props11 = this.props,
+            numberOfMonths = _props11.numberOfMonths,
+            orientation = _props11.orientation,
+            monthFormat = _props11.monthFormat,
+            renderMonthText = _props11.renderMonthText,
+            navPrev = _props11.navPrev,
+            navNext = _props11.navNext,
+            onOutsideClick = _props11.onOutsideClick,
+            withPortal = _props11.withPortal,
+            focused = _props11.focused,
+            enableOutsideDays = _props11.enableOutsideDays,
+            hideKeyboardShortcutsPanel = _props11.hideKeyboardShortcutsPanel,
+            daySize = _props11.daySize,
+            firstDayOfWeek = _props11.firstDayOfWeek,
+            renderCalendarDay = _props11.renderCalendarDay,
+            renderDayContents = _props11.renderDayContents,
+            renderCalendarInfo = _props11.renderCalendarInfo,
+            renderMonthElement = _props11.renderMonthElement,
+            calendarInfoPosition = _props11.calendarInfoPosition,
+            isFocused = _props11.isFocused,
+            isRTL = _props11.isRTL,
+            phrases = _props11.phrases,
+            dayAriaLabelFormat = _props11.dayAriaLabelFormat,
+            onBlur = _props11.onBlur,
+            showKeyboardShortcuts = _props11.showKeyboardShortcuts,
+            weekDayFormat = _props11.weekDayFormat,
+            verticalHeight = _props11.verticalHeight,
+            noBorder = _props11.noBorder,
+            transitionDuration = _props11.transitionDuration,
+            verticalBorderSpacing = _props11.verticalBorderSpacing,
+            horizontalMonthPadding = _props11.horizontalMonthPadding;
+        var _state7 = this.state,
+            currentMonth = _state7.currentMonth,
+            visibleDays = _state7.visibleDays;
+
+
+        return _react2['default'].createElement(_DayPicker2['default'], {
+          orientation: orientation,
+          enableOutsideDays: enableOutsideDays,
+          modifiers: visibleDays,
+          numberOfMonths: numberOfMonths,
+          onDayClick: this.onDayClick,
+          onDayMouseEnter: this.onDayMouseEnter,
+          onDayMouseLeave: this.onDayMouseLeave,
+          onPrevMonthClick: this.onPrevMonthClick,
+          onNextMonthClick: this.onNextMonthClick,
+          onMonthChange: this.onMonthChange,
+          onYearChange: this.onYearChange,
+          monthFormat: monthFormat,
+          withPortal: withPortal,
+          hidden: !focused,
+          hideKeyboardShortcutsPanel: hideKeyboardShortcutsPanel,
+          initialVisibleMonth: function () {
+            function initialVisibleMonth() {
+              return currentMonth;
+            }
+
+            return initialVisibleMonth;
+          }(),
+          firstDayOfWeek: firstDayOfWeek,
+          onOutsideClick: onOutsideClick,
+          navPrev: navPrev,
+          navNext: navNext,
+          renderMonthText: renderMonthText,
+          renderCalendarDay: renderCalendarDay,
+          renderDayContents: renderDayContents,
+          renderCalendarInfo: renderCalendarInfo,
+          renderMonthElement: renderMonthElement,
+          calendarInfoPosition: calendarInfoPosition,
+          isFocused: isFocused,
+          getFirstFocusableDay: this.getFirstFocusableDay,
+          onBlur: onBlur,
+          phrases: phrases,
+          daySize: daySize,
+          isRTL: isRTL,
+          showKeyboardShortcuts: showKeyboardShortcuts,
+          weekDayFormat: weekDayFormat,
+          dayAriaLabelFormat: dayAriaLabelFormat,
+          verticalHeight: verticalHeight,
+          noBorder: noBorder,
+          transitionDuration: transitionDuration,
+          verticalBorderSpacing: verticalBorderSpacing,
+          horizontalMonthPadding: horizontalMonthPadding
+        });
+      }
+
+      return render;
+    }()
+  }]);
+
+  return DayPickerSingleDateController;
+}(_react2['default'].Component);
+
+exports['default'] = DayPickerSingleDateController;
+
+
+DayPickerSingleDateController.propTypes = propTypes;
+DayPickerSingleDateController.defaultProps = defaultProps;
+
+/***/ }),
+/* 272 */,
+/* 273 */,
+/* 274 */,
+/* 275 */,
+/* 276 */,
+/* 277 */,
+/* 278 */,
+/* 279 */,
+/* 280 */,
+/* 281 */,
+/* 282 */,
+/* 283 */,
+/* 284 */,
+/* 285 */,
+/* 286 */,
+/* 287 */,
+/* 288 */,
+/* 289 */,
+/* 290 */,
+/* 291 */,
+/* 292 */,
+/* 293 */,
+/* 294 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
+/* 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__(6);
+/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
+
+
+/**
+ * WordPress dependencies
+ */
+
+var 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: "M12 8l-6 5.4 1 1.2 5-4.6 5 4.6 1-1.2z"
+}));
+/* harmony default export */ __webpack_exports__["a"] = (chevronUp);
+
+
+/***/ }),
+/* 295 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
+/* 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__(6);
+/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
+
+
+/**
+ * WordPress dependencies
+ */
+
+var 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 9.4L12 14 7 9.4l-1 1.2 6 5.4 6-5.4z"
+}));
+/* harmony default export */ __webpack_exports__["a"] = (chevronDown);
+
+
+/***/ }),
+/* 296 */,
+/* 297 */,
+/* 298 */,
+/* 299 */,
+/* 300 */,
+/* 301 */,
+/* 302 */,
+/* 303 */,
+/* 304 */
+/***/ (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;
+
+
+/***/ }),
+/* 305 */
+/***/ (function(module, exports, __webpack_require__) {
+
+// eslint-disable-next-line import/no-unresolved
+__webpack_require__(306);
+
+
+/***/ }),
+/* 306 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var _registerCSSInterfaceWithDefaultTheme = __webpack_require__(307);
+
+var _registerCSSInterfaceWithDefaultTheme2 = _interopRequireDefault(_registerCSSInterfaceWithDefaultTheme);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+(0, _registerCSSInterfaceWithDefaultTheme2['default'])();
+
+/***/ }),
+/* 307 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports['default'] = registerCSSInterfaceWithDefaultTheme;
+
+var _reactWithStylesInterfaceCss = __webpack_require__(308);
+
+var _reactWithStylesInterfaceCss2 = _interopRequireDefault(_reactWithStylesInterfaceCss);
+
+var _registerInterfaceWithDefaultTheme = __webpack_require__(352);
+
+var _registerInterfaceWithDefaultTheme2 = _interopRequireDefault(_registerInterfaceWithDefaultTheme);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+function registerCSSInterfaceWithDefaultTheme() {
+  (0, _registerInterfaceWithDefaultTheme2['default'])(_reactWithStylesInterfaceCss2['default']);
+}
+
+/***/ }),
+/* 308 */
+/***/ (function(module, exports, __webpack_require__) {
+
+// eslint-disable-next-line import/no-unresolved
+module.exports = __webpack_require__(309).default;
+
+
+/***/ }),
+/* 309 */
+/***/ (function(module, exports, __webpack_require__) {
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+
+var _arrayPrototype = __webpack_require__(310);
+
+var _arrayPrototype2 = _interopRequireDefault(_arrayPrototype);
+
+var _globalCache = __webpack_require__(348);
+
+var _globalCache2 = _interopRequireDefault(_globalCache);
+
+var _constants = __webpack_require__(349);
+
+var _getClassName = __webpack_require__(350);
+
+var _getClassName2 = _interopRequireDefault(_getClassName);
+
+var _separateStyles2 = __webpack_require__(351);
+
+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 };
+
+/***/ }),
+/* 310 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var define = __webpack_require__(101);
+var callBind = __webpack_require__(182);
+
+var implementation = __webpack_require__(208);
+var getPolyfill = __webpack_require__(223);
+var polyfill = getPolyfill();
+var shim = __webpack_require__(347);
+
+var boundFlat = callBind(polyfill);
+
+define(boundFlat, {
+	getPolyfill: getPolyfill,
+	implementation: implementation,
+	shim: shim
+});
+
+module.exports = boundFlat;
+
+
+/***/ }),
+/* 311 */
+/***/ (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__(206); // 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;
+
+
+/***/ }),
+/* 312 */
+/***/ (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;
+};
+
+
+/***/ }),
+/* 313 */
+/***/ (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;
+};
+
+
+/***/ }),
+/* 314 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(58);
+
+var $Array = GetIntrinsic('%Array%');
+var $species = GetIntrinsic('%Symbol.species%', true);
+var $TypeError = GetIntrinsic('%TypeError%');
+
+var Get = __webpack_require__(183);
+var IsArray = __webpack_require__(184);
+var IsConstructor = __webpack_require__(318);
+var IsInteger = __webpack_require__(323);
+var Type = __webpack_require__(90);
+
+// 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);
+};
+
+
+
+/***/ }),
+/* 315 */
+/***/ (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 booleanValueOf = Boolean.prototype.valueOf;
+var objectToString = Object.prototype.toString;
+var match = String.prototype.match;
+var bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;
+
+var inspectCustom = __webpack_require__(316).custom;
+var inspectSymbol = inspectCustom && 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 (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') { // eslint-disable-line valid-typeof
+        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 '[Object]';
+    }
+
+    if (typeof seen === 'undefined') {
+        seen = [];
+    } else if (indexOf(seen, obj) >= 0) {
+        return '[Circular]';
+    }
+
+    function inspect(value, from) {
+        if (from) {
+            seen = seen.slice();
+            seen.push(from);
+        }
+        return inspect_(value, opts, depth + 1, seen);
+    }
+
+    if (typeof obj === 'function') {
+        var name = nameOf(obj);
+        return '[Function' + (name ? ': ' + name : '') + ']';
+    }
+    if (isSymbol(obj)) {
+        var symString = Symbol.prototype.toString.call(obj);
+        return typeof obj === 'object' ? 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 '[]'; }
+        return '[ ' + arrObjKeys(obj, inspect).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') {
+        if (inspectSymbol && typeof obj[inspectSymbol] === 'function') {
+            return obj[inspectSymbol]();
+        } else if (typeof obj.inspect === 'function') {
+            return obj.inspect();
+        }
+    }
+    if (isMap(obj)) {
+        var mapParts = [];
+        mapForEach.call(obj, function (value, key) {
+            mapParts.push(inspect(key, obj) + ' => ' + inspect(value, obj));
+        });
+        return collectionOf('Map', mapSize.call(obj), mapParts);
+    }
+    if (isSet(obj)) {
+        var setParts = [];
+        setForEach.call(obj, function (value) {
+            setParts.push(inspect(value, obj));
+        });
+        return collectionOf('Set', setSize.call(obj), setParts);
+    }
+    if (isWeakMap(obj)) {
+        return weakCollectionOf('WeakMap');
+    }
+    if (isWeakSet(obj)) {
+        return weakCollectionOf('WeakSet');
+    }
+    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 xs = arrObjKeys(obj, inspect);
+        if (xs.length === 0) { return '{}'; }
+        return '{ ' + xs.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]'; }
+function isDate(obj) { return toStr(obj) === '[object Date]'; }
+function isRegExp(obj) { return toStr(obj) === '[object RegExp]'; }
+function isError(obj) { return toStr(obj) === '[object Error]'; }
+function isSymbol(obj) { return toStr(obj) === '[object Symbol]'; }
+function isString(obj) { return toStr(obj) === '[object String]'; }
+function isNumber(obj) { return toStr(obj) === '[object Number]'; }
+function isBigInt(obj) { return toStr(obj) === '[object BigInt]'; }
+function isBoolean(obj) { return toStr(obj) === '[object Boolean]'; }
+
+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(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 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) {
+    // 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);
+}
+
+function markBoxed(str) {
+    return 'Object(' + str + ')';
+}
+
+function weakCollectionOf(type) {
+    return type + ' { ? }';
+}
+
+function collectionOf(type, size, entries) {
+    return type + ' (' + size + ') {' + entries.join(', ') + '}';
+}
+
+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) : '';
+        }
+    }
+    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 ((/[^\w$]/).test(key)) {
+            xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));
+        } else {
+            xs.push(key + ': ' + inspect(obj[key], obj));
+        }
+    }
+    return xs;
+}
+
+
+/***/ }),
+/* 316 */
+/***/ (function(module, exports) {
+
+/* (ignored) */
+
+/***/ }),
+/* 317 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+// https://www.ecma-international.org/ecma-262/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';
+	}
+};
+
+
+/***/ }),
+/* 318 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(58);
+
+var $construct = GetIntrinsic('%Reflect.construct%', true);
+
+var DefinePropertyOrThrow = __webpack_require__(319);
+try {
+	DefinePropertyOrThrow({}, '', { '[[Get]]': function () {} });
+} catch (e) {
+	// Accessor properties aren't supported
+	DefinePropertyOrThrow = null;
+}
+
+// https://www.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;
+	};
+}
+
+
+/***/ }),
+/* 319 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(58);
+
+var $TypeError = GetIntrinsic('%TypeError%');
+
+var isPropertyDescriptor = __webpack_require__(320);
+var DefineOwnProperty = __webpack_require__(209);
+
+var FromPropertyDescriptor = __webpack_require__(210);
+var IsAccessorDescriptor = __webpack_require__(321);
+var IsDataDescriptor = __webpack_require__(211);
+var IsPropertyKey = __webpack_require__(128);
+var SameValue = __webpack_require__(212);
+var ToPropertyDescriptor = __webpack_require__(213);
+var Type = __webpack_require__(90);
+
+// https://www.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
+	);
+};
+
+
+/***/ }),
+/* 320 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(58);
+
+var has = __webpack_require__(91);
+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;
+};
+
+
+/***/ }),
+/* 321 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var has = __webpack_require__(91);
+
+var assertRecord = __webpack_require__(185);
+
+var Type = __webpack_require__(90);
+
+// https://www.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;
+};
+
+
+/***/ }),
+/* 322 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+// http://www.ecma-international.org/ecma-262/5.1/#sec-9.11
+
+module.exports = __webpack_require__(215);
+
+
+/***/ }),
+/* 323 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(58);
+
+var $Math = GetIntrinsic('%Math%');
+
+var $floor = $Math.floor;
+var $abs = $Math.abs;
+
+var $isNaN = __webpack_require__(186);
+var $isFinite = __webpack_require__(216);
+
+// https://www.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 abs = $abs(argument);
+	return $floor(abs) === abs;
+};
+
+
+/***/ }),
+/* 324 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(58);
+
+var $TypeError = GetIntrinsic('%TypeError%');
+
+var MAX_SAFE_INTEGER = __webpack_require__(217);
+
+var Call = __webpack_require__(325);
+var CreateDataPropertyOrThrow = __webpack_require__(326);
+var Get = __webpack_require__(183);
+var HasProperty = __webpack_require__(333);
+var IsArray = __webpack_require__(184);
+var ToLength = __webpack_require__(219);
+var ToString = __webpack_require__(343);
+
+// https://ecma-international.org/ecma-262/10.0/#sec-flattenintoarray
+
+// eslint-disable-next-line max-params, max-statements
+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 = ToLength(Get(element, 'length'));
+				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;
+};
+
+
+/***/ }),
+/* 325 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(58);
+var callBound = __webpack_require__(140);
+
+var $apply = GetIntrinsic('%Reflect.apply%', true) || callBound('%Function.prototype.apply%');
+
+// https://www.ecma-international.org/ecma-262/6.0/#sec-call
+
+module.exports = function Call(F, V) {
+	var args = arguments.length > 2 ? arguments[2] : [];
+	return $apply(F, V, args);
+};
+
+
+/***/ }),
+/* 326 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(58);
+
+var $TypeError = GetIntrinsic('%TypeError%');
+
+var CreateDataProperty = __webpack_require__(327);
+var IsPropertyKey = __webpack_require__(128);
+var Type = __webpack_require__(90);
+
+// // 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;
+};
+
+
+/***/ }),
+/* 327 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(58);
+
+var $TypeError = GetIntrinsic('%TypeError%');
+
+var DefineOwnProperty = __webpack_require__(209);
+
+var FromPropertyDescriptor = __webpack_require__(210);
+var OrdinaryGetOwnProperty = __webpack_require__(328);
+var IsDataDescriptor = __webpack_require__(211);
+var IsExtensible = __webpack_require__(332);
+var IsPropertyKey = __webpack_require__(128);
+var SameValue = __webpack_require__(212);
+var Type = __webpack_require__(90);
+
+// https://www.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
+		}
+	);
+};
+
+
+/***/ }),
+/* 328 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(58);
+
+var $gOPD = __webpack_require__(329);
+var $TypeError = GetIntrinsic('%TypeError%');
+
+var callBound = __webpack_require__(140);
+
+var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable');
+
+var has = __webpack_require__(91);
+
+var IsArray = __webpack_require__(184);
+var IsPropertyKey = __webpack_require__(128);
+var IsRegExp = __webpack_require__(330);
+var ToPropertyDescriptor = __webpack_require__(213);
+var Type = __webpack_require__(90);
+
+// https://www.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));
+};
+
+
+/***/ }),
+/* 329 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(58);
+
+var $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%');
+if ($gOPD) {
+	try {
+		$gOPD([], 'length');
+	} catch (e) {
+		// IE 8 has a broken gOPD
+		$gOPD = null;
+	}
+}
+
+module.exports = $gOPD;
+
+
+/***/ }),
+/* 330 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(58);
+
+var $match = GetIntrinsic('%Symbol.match%', true);
+
+var hasRegExpMatcher = __webpack_require__(331);
+
+var ToBoolean = __webpack_require__(214);
+
+// 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);
+};
+
+
+/***/ }),
+/* 331 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var hasSymbols = __webpack_require__(207)();
+var hasToStringTag = hasSymbols && typeof Symbol.toStringTag === 'symbol';
+var hasOwnProperty;
+var regexExec;
+var isRegexMarker;
+var badStringifier;
+
+if (hasToStringTag) {
+	hasOwnProperty = Function.call.bind(Object.prototype.hasOwnProperty);
+	regexExec = Function.call.bind(RegExp.prototype.exec);
+	isRegexMarker = {};
+
+	var throwRegexMarker = function () {
+		throw isRegexMarker;
+	};
+	badStringifier = {
+		toString: throwRegexMarker,
+		valueOf: throwRegexMarker
+	};
+
+	if (typeof Symbol.toPrimitive === 'symbol') {
+		badStringifier[Symbol.toPrimitive] = throwRegexMarker;
+	}
+}
+
+var toStr = Object.prototype.toString;
+var gOPD = Object.getOwnPropertyDescriptor;
+var regexClass = '[object RegExp]';
+
+module.exports = hasToStringTag
+	// eslint-disable-next-line consistent-return
+	? function isRegex(value) {
+		if (!value || typeof value !== 'object') {
+			return false;
+		}
+
+		var descriptor = gOPD(value, 'lastIndex');
+		var hasLastIndexDataProperty = descriptor && hasOwnProperty(descriptor, 'value');
+		if (!hasLastIndexDataProperty) {
+			return false;
+		}
+
+		try {
+			regexExec(value, badStringifier);
+		} catch (e) {
+			return e === isRegexMarker;
+		}
+	}
+	: function isRegex(value) {
+		// In older browsers, typeof regex incorrectly returns 'function'
+		if (!value || (typeof value !== 'object' && typeof value !== 'function')) {
+			return false;
+		}
+
+		return toStr.call(value) === regexClass;
+	};
+
+
+/***/ }),
+/* 332 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(58);
+
+var $Object = GetIntrinsic('%Object%');
+
+var isPrimitive = __webpack_require__(218);
+
+var $preventExtensions = $Object.preventExtensions;
+var $isExtensible = $Object.isExtensible;
+
+// https://www.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);
+	};
+
+
+/***/ }),
+/* 333 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(58);
+
+var $TypeError = GetIntrinsic('%TypeError%');
+
+var IsPropertyKey = __webpack_require__(128);
+var Type = __webpack_require__(90);
+
+// 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;
+};
+
+
+/***/ }),
+/* 334 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(58);
+
+var $Math = GetIntrinsic('%Math%');
+
+var ToNumber = __webpack_require__(335);
+var $isNaN = __webpack_require__(186);
+var $isFinite = __webpack_require__(216);
+var $sign = __webpack_require__(336);
+
+var $floor = $Math.floor;
+var $abs = $Math.abs;
+
+// http://www.ecma-international.org/ecma-262/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));
+};
+
+
+/***/ }),
+/* 335 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+// http://www.ecma-international.org/ecma-262/5.1/#sec-9.3
+
+module.exports = function ToNumber(value) {
+	return +value; // eslint-disable-line no-implicit-coercion
+};
+
+
+/***/ }),
+/* 336 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+module.exports = function sign(number) {
+	return number >= 0 ? 1 : -1;
+};
+
+
+/***/ }),
+/* 337 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(58);
+
+var $TypeError = GetIntrinsic('%TypeError%');
+var $Number = GetIntrinsic('%Number%');
+var $RegExp = GetIntrinsic('%RegExp%');
+var $parseInteger = GetIntrinsic('%parseInt%');
+
+var callBound = __webpack_require__(140);
+var regexTester = __webpack_require__(338);
+var isPrimitive = __webpack_require__(218);
+
+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__(339);
+
+// https://www.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 === '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);
+};
+
+
+/***/ }),
+/* 338 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(58);
+
+var $test = GetIntrinsic('RegExp.prototype.test');
+
+var callBind = __webpack_require__(182);
+
+module.exports = function regexTester(regex) {
+	return callBind($test, regex);
+};
+
+
+/***/ }),
+/* 339 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var toPrimitive = __webpack_require__(340);
+
+// https://www.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);
+};
+
+
+/***/ }),
+/* 340 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var hasSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol';
+
+var isPrimitive = __webpack_require__(341);
+var isCallable = __webpack_require__(215);
+var isDate = __webpack_require__(221);
+var isSymbol = __webpack_require__(187);
+
+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);
+};
+
+
+/***/ }),
+/* 341 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+module.exports = function isPrimitive(value) {
+	return value === null || (typeof value !== 'function' && typeof value !== 'object');
+};
+
+
+/***/ }),
+/* 342 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(global) {
+
+var origSymbol = global.Symbol;
+var hasSymbolSham = __webpack_require__(222);
+
+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__(127)))
+
+/***/ }),
+/* 343 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(58);
+
+var $String = GetIntrinsic('%String%');
+var $TypeError = GetIntrinsic('%TypeError%');
+
+// https://www.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);
+};
+
+
+/***/ }),
+/* 344 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(58);
+
+var $Object = GetIntrinsic('%Object%');
+
+var RequireObjectCoercible = __webpack_require__(345);
+
+// https://www.ecma-international.org/ecma-262/6.0/#sec-toobject
+
+module.exports = function ToObject(value) {
+	RequireObjectCoercible(value);
+	return $Object(value);
+};
+
+
+/***/ }),
+/* 345 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+module.exports = __webpack_require__(346);
+
+
+/***/ }),
+/* 346 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(58);
+
+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;
+};
+
+
+/***/ }),
+/* 347 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var define = __webpack_require__(101);
+var getPolyfill = __webpack_require__(223);
+
+module.exports = function shimFlat() {
+	var polyfill = getPolyfill();
+	define(
+		Array.prototype,
+		{ flat: polyfill },
+		{ flat: function () { return Array.prototype.flat !== polyfill; } }
+	);
+	return polyfill;
+};
+
+
+/***/ }),
+/* 348 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(global) {
+
+var define = __webpack_require__(101);
+var isSymbol = __webpack_require__(187);
+
+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__(127)))
+
+/***/ }),
+/* 349 */
+/***/ (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;
+
+/***/ }),
+/* 350 */
+/***/ (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);
+}
+
+/***/ }),
+/* 351 */
+/***/ (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;
+
+/***/ }),
+/* 352 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports['default'] = registerInterfaceWithDefaultTheme;
+
+var _ThemedStyleSheet = __webpack_require__(224);
+
+var _ThemedStyleSheet2 = _interopRequireDefault(_ThemedStyleSheet);
+
+var _DefaultTheme = __webpack_require__(225);
+
+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']);
+}
+
+/***/ }),
+/* 353 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var define = __webpack_require__(101);
+var getPolyfill = __webpack_require__(227);
+
+module.exports = function shimAssign() {
+	var polyfill = getPolyfill();
+	define(
+		Object,
+		{ assign: polyfill },
+		{ assign: function () { return Object.assign !== polyfill; } }
+	);
+	return polyfill;
+};
+
+
+/***/ }),
+/* 354 */
+/***/ (function(module, exports, __webpack_require__) {
+
+var moment = __webpack_require__(43);
+
+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,
+};
+
+
+/***/ }),
+/* 355 */
+/***/ (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,
+};
+
+
+/***/ }),
+/* 356 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+function noop() {
+  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
+};
+
+
+/***/ }),
+/* 357 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+module.exports = __webpack_require__(358);
+
+
+/***/ }),
+/* 358 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var ES2015 = __webpack_require__(359);
+var assign = __webpack_require__(234);
+
+var ES2016 = assign(assign({}, ES2015), {
+	// https://github.com/tc39/ecma262/pull/60
+	SameValueNonNumber: function SameValueNonNumber(x, y) {
+		if (typeof x === 'number' || typeof x !== typeof y) {
+			throw new TypeError('SameValueNonNumber requires two non-number values of the same type.');
+		}
+		return this.SameValue(x, y);
+	}
+});
+
+module.exports = ES2016;
+
+
+/***/ }),
+/* 359 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var has = __webpack_require__(91);
+var toPrimitive = __webpack_require__(360);
+var keys = __webpack_require__(181);
+
+var GetIntrinsic = __webpack_require__(189);
+
+var $TypeError = GetIntrinsic('%TypeError%');
+var $SyntaxError = GetIntrinsic('%SyntaxError%');
+var $Array = GetIntrinsic('%Array%');
+var $String = GetIntrinsic('%String%');
+var $Object = GetIntrinsic('%Object%');
+var $Number = GetIntrinsic('%Number%');
+var $Symbol = GetIntrinsic('%Symbol%', true);
+var $RegExp = GetIntrinsic('%RegExp%');
+
+var hasSymbols = !!$Symbol;
+
+var assertRecord = __webpack_require__(231);
+var $isNaN = __webpack_require__(232);
+var $isFinite = __webpack_require__(233);
+var MAX_SAFE_INTEGER = $Number.MAX_SAFE_INTEGER || Math.pow(2, 53) - 1;
+
+var assign = __webpack_require__(234);
+var sign = __webpack_require__(235);
+var mod = __webpack_require__(236);
+var isPrimitive = __webpack_require__(362);
+var parseInteger = parseInt;
+var bind = __webpack_require__(118);
+var arraySlice = bind.call(Function.call, $Array.prototype.slice);
+var strSlice = bind.call(Function.call, $String.prototype.slice);
+var isBinary = bind.call(Function.call, $RegExp.prototype.test, /^0b[01]+$/i);
+var isOctal = bind.call(Function.call, $RegExp.prototype.test, /^0o[0-7]+$/i);
+var regexExec = bind.call(Function.call, $RegExp.prototype.exec);
+var nonWS = ['\u0085', '\u200b', '\ufffe'].join('');
+var nonWSregex = new $RegExp('[' + nonWS + ']', 'g');
+var hasNonWS = bind.call(Function.call, $RegExp.prototype.test, nonWSregex);
+var invalidHexLiteral = /^[-+]0x[0-9a-f]+$/i;
+var isInvalidHexLiteral = bind.call(Function.call, $RegExp.prototype.test, invalidHexLiteral);
+var $charCodeAt = bind.call(Function.call, $String.prototype.charCodeAt);
+
+var toStr = bind.call(Function.call, Object.prototype.toString);
+
+var $NumberValueOf = bind.call(Function.call, GetIntrinsic('%NumberPrototype%').valueOf);
+var $BooleanValueOf = bind.call(Function.call, GetIntrinsic('%BooleanPrototype%').valueOf);
+var $StringValueOf = bind.call(Function.call, GetIntrinsic('%StringPrototype%').valueOf);
+var $DateValueOf = bind.call(Function.call, GetIntrinsic('%DatePrototype%').valueOf);
+
+var $floor = Math.floor;
+var $abs = Math.abs;
+
+var $ObjectCreate = Object.create;
+var $gOPD = $Object.getOwnPropertyDescriptor;
+
+var $isExtensible = $Object.isExtensible;
+
+var $defineProperty = $Object.defineProperty;
+
+// whitespace from: http://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 = bind.call(Function.call, $String.prototype.replace);
+var trim = function (value) {
+	return replace(value, trimRegex, '');
+};
+
+var ES5 = __webpack_require__(363);
+
+var hasRegExpMatcher = __webpack_require__(365);
+
+// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-abstract-operations
+var ES6 = assign(assign({}, ES5), {
+
+	// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-call-f-v-args
+	Call: function Call(F, V) {
+		var args = arguments.length > 2 ? arguments[2] : [];
+		if (!this.IsCallable(F)) {
+			throw new $TypeError(F + ' is not a function');
+		}
+		return F.apply(V, args);
+	},
+
+	// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toprimitive
+	ToPrimitive: toPrimitive,
+
+	// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toboolean
+	// ToBoolean: ES5.ToBoolean,
+
+	// https://ecma-international.org/ecma-262/6.0/#sec-tonumber
+	ToNumber: 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 === 'string') {
+			if (isBinary(value)) {
+				return this.ToNumber(parseInteger(strSlice(value, 2), 2));
+			} else if (isOctal(value)) {
+				return this.ToNumber(parseInteger(strSlice(value, 2), 8));
+			} else if (hasNonWS(value) || isInvalidHexLiteral(value)) {
+				return NaN;
+			} else {
+				var trimmed = trim(value);
+				if (trimmed !== value) {
+					return this.ToNumber(trimmed);
+				}
+			}
+		}
+		return $Number(value);
+	},
+
+	// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tointeger
+	// ToInteger: ES5.ToNumber,
+
+	// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toint32
+	// ToInt32: ES5.ToInt32,
+
+	// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint32
+	// ToUint32: ES5.ToUint32,
+
+	// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toint16
+	ToInt16: function ToInt16(argument) {
+		var int16bit = this.ToUint16(argument);
+		return int16bit >= 0x8000 ? int16bit - 0x10000 : int16bit;
+	},
+
+	// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint16
+	// ToUint16: ES5.ToUint16,
+
+	// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toint8
+	ToInt8: function ToInt8(argument) {
+		var int8bit = this.ToUint8(argument);
+		return int8bit >= 0x80 ? int8bit - 0x100 : int8bit;
+	},
+
+	// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint8
+	ToUint8: function ToUint8(argument) {
+		var number = this.ToNumber(argument);
+		if ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; }
+		var posInt = sign(number) * $floor($abs(number));
+		return mod(posInt, 0x100);
+	},
+
+	// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint8clamp
+	ToUint8Clamp: function ToUint8Clamp(argument) {
+		var number = this.ToNumber(argument);
+		if ($isNaN(number) || number <= 0) { return 0; }
+		if (number >= 0xFF) { return 0xFF; }
+		var f = $floor(argument);
+		if (f + 0.5 < number) { return f + 1; }
+		if (number < f + 0.5) { return f; }
+		if (f % 2 !== 0) { return f + 1; }
+		return f;
+	},
+
+	// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tostring
+	ToString: function ToString(argument) {
+		if (typeof argument === 'symbol') {
+			throw new $TypeError('Cannot convert a Symbol value to a string');
+		}
+		return $String(argument);
+	},
+
+	// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toobject
+	ToObject: function ToObject(value) {
+		this.RequireObjectCoercible(value);
+		return $Object(value);
+	},
+
+	// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-topropertykey
+	ToPropertyKey: function ToPropertyKey(argument) {
+		var key = this.ToPrimitive(argument, $String);
+		return typeof key === 'symbol' ? key : this.ToString(key);
+	},
+
+	// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength
+	ToLength: function ToLength(argument) {
+		var len = this.ToInteger(argument);
+		if (len <= 0) { return 0; } // includes converting -0 to +0
+		if (len > MAX_SAFE_INTEGER) { return MAX_SAFE_INTEGER; }
+		return len;
+	},
+
+	// https://ecma-international.org/ecma-262/6.0/#sec-canonicalnumericindexstring
+	CanonicalNumericIndexString: function CanonicalNumericIndexString(argument) {
+		if (toStr(argument) !== '[object String]') {
+			throw new $TypeError('must be a string');
+		}
+		if (argument === '-0') { return -0; }
+		var n = this.ToNumber(argument);
+		if (this.SameValue(this.ToString(n), argument)) { return n; }
+		return void 0;
+	},
+
+	// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-requireobjectcoercible
+	RequireObjectCoercible: ES5.CheckObjectCoercible,
+
+	// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isarray
+	IsArray: $Array.isArray || function IsArray(argument) {
+		return toStr(argument) === '[object Array]';
+	},
+
+	// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-iscallable
+	// IsCallable: ES5.IsCallable,
+
+	// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isconstructor
+	IsConstructor: function IsConstructor(argument) {
+		return typeof argument === 'function' && !!argument.prototype; // unfortunately there's no way to truly check this without try/catch `new argument`
+	},
+
+	// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isextensible-o
+	IsExtensible: Object.preventExtensions
+		? function IsExtensible(obj) {
+			if (isPrimitive(obj)) {
+				return false;
+			}
+			return $isExtensible(obj);
+		}
+		: function isExtensible(obj) { return true; }, // eslint-disable-line no-unused-vars
+
+	// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isinteger
+	IsInteger: function IsInteger(argument) {
+		if (typeof argument !== 'number' || $isNaN(argument) || !$isFinite(argument)) {
+			return false;
+		}
+		var abs = $abs(argument);
+		return $floor(abs) === abs;
+	},
+
+	// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-ispropertykey
+	IsPropertyKey: function IsPropertyKey(argument) {
+		return typeof argument === 'string' || typeof argument === 'symbol';
+	},
+
+	// https://ecma-international.org/ecma-262/6.0/#sec-isregexp
+	IsRegExp: function IsRegExp(argument) {
+		if (!argument || typeof argument !== 'object') {
+			return false;
+		}
+		if (hasSymbols) {
+			var isRegExp = argument[$Symbol.match];
+			if (typeof isRegExp !== 'undefined') {
+				return ES5.ToBoolean(isRegExp);
+			}
+		}
+		return hasRegExpMatcher(argument);
+	},
+
+	// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevalue
+	// SameValue: ES5.SameValue,
+
+	// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero
+	SameValueZero: function SameValueZero(x, y) {
+		return (x === y) || ($isNaN(x) && $isNaN(y));
+	},
+
+	/**
+	 * 7.3.2 GetV (V, P)
+	 * 1. Assert: IsPropertyKey(P) is true.
+	 * 2. Let O be ToObject(V).
+	 * 3. ReturnIfAbrupt(O).
+	 * 4. Return O.[[Get]](P, V).
+	 */
+	GetV: function GetV(V, P) {
+		// 7.3.2.1
+		if (!this.IsPropertyKey(P)) {
+			throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
+		}
+
+		// 7.3.2.2-3
+		var O = this.ToObject(V);
+
+		// 7.3.2.4
+		return O[P];
+	},
+
+	/**
+	 * 7.3.9 - https://ecma-international.org/ecma-262/6.0/#sec-getmethod
+	 * 1. Assert: IsPropertyKey(P) is true.
+	 * 2. Let func be GetV(O, P).
+	 * 3. ReturnIfAbrupt(func).
+	 * 4. If func is either undefined or null, return undefined.
+	 * 5. If IsCallable(func) is false, throw a TypeError exception.
+	 * 6. Return func.
+	 */
+	GetMethod: function GetMethod(O, P) {
+		// 7.3.9.1
+		if (!this.IsPropertyKey(P)) {
+			throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
+		}
+
+		// 7.3.9.2
+		var func = this.GetV(O, P);
+
+		// 7.3.9.4
+		if (func == null) {
+			return void 0;
+		}
+
+		// 7.3.9.5
+		if (!this.IsCallable(func)) {
+			throw new $TypeError(P + 'is not a function');
+		}
+
+		// 7.3.9.6
+		return func;
+	},
+
+	/**
+	 * 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).
+	 */
+	Get: function Get(O, P) {
+		// 7.3.1.1
+		if (this.Type(O) !== 'Object') {
+			throw new $TypeError('Assertion failed: Type(O) is not Object');
+		}
+		// 7.3.1.2
+		if (!this.IsPropertyKey(P)) {
+			throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
+		}
+		// 7.3.1.3
+		return O[P];
+	},
+
+	Type: function Type(x) {
+		if (typeof x === 'symbol') {
+			return 'Symbol';
+		}
+		return ES5.Type(x);
+	},
+
+	// https://ecma-international.org/ecma-262/6.0/#sec-speciesconstructor
+	SpeciesConstructor: function SpeciesConstructor(O, defaultConstructor) {
+		if (this.Type(O) !== 'Object') {
+			throw new $TypeError('Assertion failed: Type(O) is not Object');
+		}
+		var C = O.constructor;
+		if (typeof C === 'undefined') {
+			return defaultConstructor;
+		}
+		if (this.Type(C) !== 'Object') {
+			throw new $TypeError('O.constructor is not an Object');
+		}
+		var S = hasSymbols && $Symbol.species ? C[$Symbol.species] : void 0;
+		if (S == null) {
+			return defaultConstructor;
+		}
+		if (this.IsConstructor(S)) {
+			return S;
+		}
+		throw new $TypeError('no constructor found');
+	},
+
+	// https://ecma-international.org/ecma-262/6.0/#sec-completepropertydescriptor
+	CompletePropertyDescriptor: function CompletePropertyDescriptor(Desc) {
+		assertRecord(this, 'Property Descriptor', 'Desc', Desc);
+
+		if (this.IsGenericDescriptor(Desc) || this.IsDataDescriptor(Desc)) {
+			if (!has(Desc, '[[Value]]')) {
+				Desc['[[Value]]'] = void 0;
+			}
+			if (!has(Desc, '[[Writable]]')) {
+				Desc['[[Writable]]'] = false;
+			}
+		} else {
+			if (!has(Desc, '[[Get]]')) {
+				Desc['[[Get]]'] = void 0;
+			}
+			if (!has(Desc, '[[Set]]')) {
+				Desc['[[Set]]'] = void 0;
+			}
+		}
+		if (!has(Desc, '[[Enumerable]]')) {
+			Desc['[[Enumerable]]'] = false;
+		}
+		if (!has(Desc, '[[Configurable]]')) {
+			Desc['[[Configurable]]'] = false;
+		}
+		return Desc;
+	},
+
+	// https://ecma-international.org/ecma-262/6.0/#sec-set-o-p-v-throw
+	Set: function Set(O, P, V, Throw) {
+		if (this.Type(O) !== 'Object') {
+			throw new $TypeError('O must be an Object');
+		}
+		if (!this.IsPropertyKey(P)) {
+			throw new $TypeError('P must be a Property Key');
+		}
+		if (this.Type(Throw) !== 'Boolean') {
+			throw new $TypeError('Throw must be a Boolean');
+		}
+		if (Throw) {
+			O[P] = V;
+			return true;
+		} else {
+			try {
+				O[P] = V;
+			} catch (e) {
+				return false;
+			}
+		}
+	},
+
+	// https://ecma-international.org/ecma-262/6.0/#sec-hasownproperty
+	HasOwnProperty: function HasOwnProperty(O, P) {
+		if (this.Type(O) !== 'Object') {
+			throw new $TypeError('O must be an Object');
+		}
+		if (!this.IsPropertyKey(P)) {
+			throw new $TypeError('P must be a Property Key');
+		}
+		return has(O, P);
+	},
+
+	// https://ecma-international.org/ecma-262/6.0/#sec-hasproperty
+	HasProperty: function HasProperty(O, P) {
+		if (this.Type(O) !== 'Object') {
+			throw new $TypeError('O must be an Object');
+		}
+		if (!this.IsPropertyKey(P)) {
+			throw new $TypeError('P must be a Property Key');
+		}
+		return P in O;
+	},
+
+	// https://ecma-international.org/ecma-262/6.0/#sec-isconcatspreadable
+	IsConcatSpreadable: function IsConcatSpreadable(O) {
+		if (this.Type(O) !== 'Object') {
+			return false;
+		}
+		if (hasSymbols && typeof $Symbol.isConcatSpreadable === 'symbol') {
+			var spreadable = this.Get(O, Symbol.isConcatSpreadable);
+			if (typeof spreadable !== 'undefined') {
+				return this.ToBoolean(spreadable);
+			}
+		}
+		return this.IsArray(O);
+	},
+
+	// https://ecma-international.org/ecma-262/6.0/#sec-invoke
+	Invoke: function Invoke(O, P) {
+		if (!this.IsPropertyKey(P)) {
+			throw new $TypeError('P must be a Property Key');
+		}
+		var argumentsList = arraySlice(arguments, 2);
+		var func = this.GetV(O, P);
+		return this.Call(func, O, argumentsList);
+	},
+
+	// https://ecma-international.org/ecma-262/6.0/#sec-getiterator
+	GetIterator: function GetIterator(obj, method) {
+		if (!hasSymbols) {
+			throw new SyntaxError('ES.GetIterator depends on native iterator support.');
+		}
+
+		var actualMethod = method;
+		if (arguments.length < 2) {
+			actualMethod = this.GetMethod(obj, $Symbol.iterator);
+		}
+		var iterator = this.Call(actualMethod, obj);
+		if (this.Type(iterator) !== 'Object') {
+			throw new $TypeError('iterator must return an object');
+		}
+
+		return iterator;
+	},
+
+	// https://ecma-international.org/ecma-262/6.0/#sec-iteratornext
+	IteratorNext: function IteratorNext(iterator, value) {
+		var result = this.Invoke(iterator, 'next', arguments.length < 2 ? [] : [value]);
+		if (this.Type(result) !== 'Object') {
+			throw new $TypeError('iterator next must return an object');
+		}
+		return result;
+	},
+
+	// https://ecma-international.org/ecma-262/6.0/#sec-iteratorcomplete
+	IteratorComplete: function IteratorComplete(iterResult) {
+		if (this.Type(iterResult) !== 'Object') {
+			throw new $TypeError('Assertion failed: Type(iterResult) is not Object');
+		}
+		return this.ToBoolean(this.Get(iterResult, 'done'));
+	},
+
+	// https://ecma-international.org/ecma-262/6.0/#sec-iteratorvalue
+	IteratorValue: function IteratorValue(iterResult) {
+		if (this.Type(iterResult) !== 'Object') {
+			throw new $TypeError('Assertion failed: Type(iterResult) is not Object');
+		}
+		return this.Get(iterResult, 'value');
+	},
+
+	// https://ecma-international.org/ecma-262/6.0/#sec-iteratorstep
+	IteratorStep: function IteratorStep(iterator) {
+		var result = this.IteratorNext(iterator);
+		var done = this.IteratorComplete(result);
+		return done === true ? false : result;
+	},
+
+	// https://ecma-international.org/ecma-262/6.0/#sec-iteratorclose
+	IteratorClose: function IteratorClose(iterator, completion) {
+		if (this.Type(iterator) !== 'Object') {
+			throw new $TypeError('Assertion failed: Type(iterator) is not Object');
+		}
+		if (!this.IsCallable(completion)) {
+			throw new $TypeError('Assertion failed: completion is not a thunk for a Completion Record');
+		}
+		var completionThunk = completion;
+
+		var iteratorReturn = this.GetMethod(iterator, 'return');
+
+		if (typeof iteratorReturn === 'undefined') {
+			return completionThunk();
+		}
+
+		var completionRecord;
+		try {
+			var innerResult = this.Call(iteratorReturn, iterator, []);
+		} catch (e) {
+			// if we hit here, then "e" is the innerResult completion that needs re-throwing
+
+			// if the completion is of type "throw", this will throw.
+			completionRecord = completionThunk();
+			completionThunk = null; // ensure it's not called twice.
+
+			// if not, then return the innerResult completion
+			throw e;
+		}
+		completionRecord = completionThunk(); // if innerResult worked, then throw if the completion does
+		completionThunk = null; // ensure it's not called twice.
+
+		if (this.Type(innerResult) !== 'Object') {
+			throw new $TypeError('iterator .return must return an object');
+		}
+
+		return completionRecord;
+	},
+
+	// https://ecma-international.org/ecma-262/6.0/#sec-createiterresultobject
+	CreateIterResultObject: function CreateIterResultObject(value, done) {
+		if (this.Type(done) !== 'Boolean') {
+			throw new $TypeError('Assertion failed: Type(done) is not Boolean');
+		}
+		return {
+			value: value,
+			done: done
+		};
+	},
+
+	// https://ecma-international.org/ecma-262/6.0/#sec-regexpexec
+	RegExpExec: function RegExpExec(R, S) {
+		if (this.Type(R) !== 'Object') {
+			throw new $TypeError('R must be an Object');
+		}
+		if (this.Type(S) !== 'String') {
+			throw new $TypeError('S must be a String');
+		}
+		var exec = this.Get(R, 'exec');
+		if (this.IsCallable(exec)) {
+			var result = this.Call(exec, R, [S]);
+			if (result === null || this.Type(result) === 'Object') {
+				return result;
+			}
+			throw new $TypeError('"exec" method must return `null` or an Object');
+		}
+		return regexExec(R, S);
+	},
+
+	// https://ecma-international.org/ecma-262/6.0/#sec-arrayspeciescreate
+	ArraySpeciesCreate: function ArraySpeciesCreate(originalArray, length) {
+		if (!this.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 = this.IsArray(originalArray);
+		if (isArray) {
+			C = this.Get(originalArray, 'constructor');
+			// TODO: figure out how to make a cross-realm normal Array, a same-realm Array
+			// if (this.IsConstructor(C)) {
+			// 	if C is another realm's Array, C = undefined
+			// 	Object.getPrototypeOf(Object.getPrototypeOf(Object.getPrototypeOf(Array))) === null ?
+			// }
+			if (this.Type(C) === 'Object' && hasSymbols && $Symbol.species) {
+				C = this.Get(C, $Symbol.species);
+				if (C === null) {
+					C = void 0;
+				}
+			}
+		}
+		if (typeof C === 'undefined') {
+			return $Array(len);
+		}
+		if (!this.IsConstructor(C)) {
+			throw new $TypeError('C must be a constructor');
+		}
+		return new C(len); // this.Construct(C, len);
+	},
+
+	CreateDataProperty: function CreateDataProperty(O, P, V) {
+		if (this.Type(O) !== 'Object') {
+			throw new $TypeError('Assertion failed: Type(O) is not Object');
+		}
+		if (!this.IsPropertyKey(P)) {
+			throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
+		}
+		var oldDesc = $gOPD(O, P);
+		var extensible = oldDesc || (typeof $isExtensible !== 'function' || $isExtensible(O));
+		var immutable = oldDesc && (!oldDesc.writable || !oldDesc.configurable);
+		if (immutable || !extensible) {
+			return false;
+		}
+		var newDesc = {
+			configurable: true,
+			enumerable: true,
+			value: V,
+			writable: true
+		};
+		$defineProperty(O, P, newDesc);
+		return true;
+	},
+
+	// https://ecma-international.org/ecma-262/6.0/#sec-createdatapropertyorthrow
+	CreateDataPropertyOrThrow: function CreateDataPropertyOrThrow(O, P, V) {
+		if (this.Type(O) !== 'Object') {
+			throw new $TypeError('Assertion failed: Type(O) is not Object');
+		}
+		if (!this.IsPropertyKey(P)) {
+			throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
+		}
+		var success = this.CreateDataProperty(O, P, V);
+		if (!success) {
+			throw new $TypeError('unable to create data property');
+		}
+		return success;
+	},
+
+	// https://www.ecma-international.org/ecma-262/6.0/#sec-objectcreate
+	ObjectCreate: function ObjectCreate(proto, internalSlotsList) {
+		if (proto !== null && this.Type(proto) !== 'Object') {
+			throw new $TypeError('Assertion failed: proto must be null or an object');
+		}
+		var slots = arguments.length < 2 ? [] : internalSlotsList;
+		if (slots.length > 0) {
+			throw new $SyntaxError('es-abstract does not yet support internal slots');
+		}
+
+		if (proto === null && !$ObjectCreate) {
+			throw new $SyntaxError('native Object.create support is required to create null objects');
+		}
+
+		return $ObjectCreate(proto);
+	},
+
+	// https://ecma-international.org/ecma-262/6.0/#sec-advancestringindex
+	AdvanceStringIndex: function AdvanceStringIndex(S, index, unicode) {
+		if (this.Type(S) !== 'String') {
+			throw new $TypeError('S must be a String');
+		}
+		if (!this.IsInteger(index) || index < 0 || index > MAX_SAFE_INTEGER) {
+			throw new $TypeError('Assertion failed: length must be an integer >= 0 and <= 2**53');
+		}
+		if (this.Type(unicode) !== 'Boolean') {
+			throw new $TypeError('Assertion failed: unicode must be a Boolean');
+		}
+		if (!unicode) {
+			return index + 1;
+		}
+		var length = S.length;
+		if ((index + 1) >= length) {
+			return index + 1;
+		}
+
+		var first = $charCodeAt(S, index);
+		if (first < 0xD800 || first > 0xDBFF) {
+			return index + 1;
+		}
+
+		var second = $charCodeAt(S, index + 1);
+		if (second < 0xDC00 || second > 0xDFFF) {
+			return index + 1;
+		}
+
+		return index + 2;
+	},
+
+	// https://www.ecma-international.org/ecma-262/6.0/#sec-createmethodproperty
+	CreateMethodProperty: function CreateMethodProperty(O, P, V) {
+		if (this.Type(O) !== 'Object') {
+			throw new $TypeError('Assertion failed: Type(O) is not Object');
+		}
+
+		if (!this.IsPropertyKey(P)) {
+			throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
+		}
+
+		var newDesc = {
+			configurable: true,
+			enumerable: false,
+			value: V,
+			writable: true
+		};
+		return !!$defineProperty(O, P, newDesc);
+	},
+
+	// https://www.ecma-international.org/ecma-262/6.0/#sec-definepropertyorthrow
+	DefinePropertyOrThrow: function DefinePropertyOrThrow(O, P, desc) {
+		if (this.Type(O) !== 'Object') {
+			throw new $TypeError('Assertion failed: Type(O) is not Object');
+		}
+
+		if (!this.IsPropertyKey(P)) {
+			throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
+		}
+
+		return !!$defineProperty(O, P, desc);
+	},
+
+	// https://www.ecma-international.org/ecma-262/6.0/#sec-deletepropertyorthrow
+	DeletePropertyOrThrow: function DeletePropertyOrThrow(O, P) {
+		if (this.Type(O) !== 'Object') {
+			throw new $TypeError('Assertion failed: Type(O) is not Object');
+		}
+
+		if (!this.IsPropertyKey(P)) {
+			throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
+		}
+
+		var success = delete O[P];
+		if (!success) {
+			throw new TypeError('Attempt to delete property failed.');
+		}
+		return success;
+	},
+
+	// https://www.ecma-international.org/ecma-262/6.0/#sec-enumerableownnames
+	EnumerableOwnNames: function EnumerableOwnNames(O) {
+		if (this.Type(O) !== 'Object') {
+			throw new $TypeError('Assertion failed: Type(O) is not Object');
+		}
+
+		return keys(O);
+	},
+
+	// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-number-prototype-object
+	thisNumberValue: function thisNumberValue(value) {
+		if (this.Type(value) === 'Number') {
+			return value;
+		}
+
+		return $NumberValueOf(value);
+	},
+
+	// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-boolean-prototype-object
+	thisBooleanValue: function thisBooleanValue(value) {
+		if (this.Type(value) === 'Boolean') {
+			return value;
+		}
+
+		return $BooleanValueOf(value);
+	},
+
+	// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-string-prototype-object
+	thisStringValue: function thisStringValue(value) {
+		if (this.Type(value) === 'String') {
+			return value;
+		}
+
+		return $StringValueOf(value);
+	},
+
+	// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-date-prototype-object
+	thisTimeValue: function thisTimeValue(value) {
+		return $DateValueOf(value);
+	}
+});
+
+delete ES6.CheckObjectCoercible; // renamed in ES6 to RequireObjectCoercible
+
+module.exports = ES6;
+
+
+/***/ }),
+/* 360 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+module.exports = __webpack_require__(361);
+
+
+/***/ }),
+/* 361 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var hasSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol';
+
+var isPrimitive = __webpack_require__(230);
+var isCallable = __webpack_require__(188);
+var isDate = __webpack_require__(221);
+var isSymbol = __webpack_require__(187);
+
+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);
+};
+
+
+/***/ }),
+/* 362 */
+/***/ (function(module, exports) {
+
+module.exports = function isPrimitive(value) {
+	return value === null || (typeof value !== 'function' && typeof value !== 'object');
+};
+
+
+/***/ }),
+/* 363 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var GetIntrinsic = __webpack_require__(189);
+
+var $Object = GetIntrinsic('%Object%');
+var $TypeError = GetIntrinsic('%TypeError%');
+var $String = GetIntrinsic('%String%');
+
+var assertRecord = __webpack_require__(231);
+var $isNaN = __webpack_require__(232);
+var $isFinite = __webpack_require__(233);
+
+var sign = __webpack_require__(235);
+var mod = __webpack_require__(236);
+
+var IsCallable = __webpack_require__(188);
+var toPrimitive = __webpack_require__(364);
+
+var has = __webpack_require__(91);
+
+// https://es5.github.io/#x9
+var ES5 = {
+	ToPrimitive: toPrimitive,
+
+	ToBoolean: function ToBoolean(value) {
+		return !!value;
+	},
+	ToNumber: function ToNumber(value) {
+		return +value; // eslint-disable-line no-implicit-coercion
+	},
+	ToInteger: function ToInteger(value) {
+		var number = this.ToNumber(value);
+		if ($isNaN(number)) { return 0; }
+		if (number === 0 || !$isFinite(number)) { return number; }
+		return sign(number) * Math.floor(Math.abs(number));
+	},
+	ToInt32: function ToInt32(x) {
+		return this.ToNumber(x) >> 0;
+	},
+	ToUint32: function ToUint32(x) {
+		return this.ToNumber(x) >>> 0;
+	},
+	ToUint16: function ToUint16(value) {
+		var number = this.ToNumber(value);
+		if ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; }
+		var posInt = sign(number) * Math.floor(Math.abs(number));
+		return mod(posInt, 0x10000);
+	},
+	ToString: function ToString(value) {
+		return $String(value);
+	},
+	ToObject: function ToObject(value) {
+		this.CheckObjectCoercible(value);
+		return $Object(value);
+	},
+	CheckObjectCoercible: function CheckObjectCoercible(value, optMessage) {
+		/* jshint eqnull:true */
+		if (value == null) {
+			throw new $TypeError(optMessage || 'Cannot call method on ' + value);
+		}
+		return value;
+	},
+	IsCallable: IsCallable,
+	SameValue: 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);
+	},
+
+	// https://www.ecma-international.org/ecma-262/5.1/#sec-8
+	Type: 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';
+		}
+	},
+
+	// https://ecma-international.org/ecma-262/6.0/#sec-property-descriptor-specification-type
+	IsPropertyDescriptor: function IsPropertyDescriptor(Desc) {
+		if (this.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;
+	},
+
+	// https://ecma-international.org/ecma-262/5.1/#sec-8.10.1
+	IsAccessorDescriptor: function IsAccessorDescriptor(Desc) {
+		if (typeof Desc === 'undefined') {
+			return false;
+		}
+
+		assertRecord(this, 'Property Descriptor', 'Desc', Desc);
+
+		if (!has(Desc, '[[Get]]') && !has(Desc, '[[Set]]')) {
+			return false;
+		}
+
+		return true;
+	},
+
+	// https://ecma-international.org/ecma-262/5.1/#sec-8.10.2
+	IsDataDescriptor: function IsDataDescriptor(Desc) {
+		if (typeof Desc === 'undefined') {
+			return false;
+		}
+
+		assertRecord(this, 'Property Descriptor', 'Desc', Desc);
+
+		if (!has(Desc, '[[Value]]') && !has(Desc, '[[Writable]]')) {
+			return false;
+		}
+
+		return true;
+	},
+
+	// https://ecma-international.org/ecma-262/5.1/#sec-8.10.3
+	IsGenericDescriptor: function IsGenericDescriptor(Desc) {
+		if (typeof Desc === 'undefined') {
+			return false;
+		}
+
+		assertRecord(this, 'Property Descriptor', 'Desc', Desc);
+
+		if (!this.IsAccessorDescriptor(Desc) && !this.IsDataDescriptor(Desc)) {
+			return true;
+		}
+
+		return false;
+	},
+
+	// https://ecma-international.org/ecma-262/5.1/#sec-8.10.4
+	FromPropertyDescriptor: function FromPropertyDescriptor(Desc) {
+		if (typeof Desc === 'undefined') {
+			return Desc;
+		}
+
+		assertRecord(this, 'Property Descriptor', 'Desc', Desc);
+
+		if (this.IsDataDescriptor(Desc)) {
+			return {
+				value: Desc['[[Value]]'],
+				writable: !!Desc['[[Writable]]'],
+				enumerable: !!Desc['[[Enumerable]]'],
+				configurable: !!Desc['[[Configurable]]']
+			};
+		} else if (this.IsAccessorDescriptor(Desc)) {
+			return {
+				get: Desc['[[Get]]'],
+				set: Desc['[[Set]]'],
+				enumerable: !!Desc['[[Enumerable]]'],
+				configurable: !!Desc['[[Configurable]]']
+			};
+		} else {
+			throw new $TypeError('FromPropertyDescriptor must be called with a fully populated Property Descriptor');
+		}
+	},
+
+	// https://ecma-international.org/ecma-262/5.1/#sec-8.10.5
+	ToPropertyDescriptor: function ToPropertyDescriptor(Obj) {
+		if (this.Type(Obj) !== 'Object') {
+			throw new $TypeError('ToPropertyDescriptor requires an object');
+		}
+
+		var desc = {};
+		if (has(Obj, 'enumerable')) {
+			desc['[[Enumerable]]'] = this.ToBoolean(Obj.enumerable);
+		}
+		if (has(Obj, 'configurable')) {
+			desc['[[Configurable]]'] = this.ToBoolean(Obj.configurable);
+		}
+		if (has(Obj, 'value')) {
+			desc['[[Value]]'] = Obj.value;
+		}
+		if (has(Obj, 'writable')) {
+			desc['[[Writable]]'] = this.ToBoolean(Obj.writable);
+		}
+		if (has(Obj, 'get')) {
+			var getter = Obj.get;
+			if (typeof getter !== 'undefined' && !this.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' && !this.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;
+	}
+};
+
+module.exports = ES5;
+
+
+/***/ }),
+/* 364 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var toStr = Object.prototype.toString;
+
+var isPrimitive = __webpack_require__(230);
+
+var isCallable = __webpack_require__(188);
+
+// 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);
+};
+
+
+/***/ }),
+/* 365 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var has = __webpack_require__(91);
+var regexExec = RegExp.prototype.exec;
+var gOPD = Object.getOwnPropertyDescriptor;
+
+var tryRegexExecCall = function tryRegexExec(value) {
+	try {
+		var lastIndex = value.lastIndex;
+		value.lastIndex = 0;
+
+		regexExec.call(value);
+		return true;
+	} catch (e) {
+		return false;
+	} finally {
+		value.lastIndex = lastIndex;
+	}
+};
+var toStr = Object.prototype.toString;
+var regexClass = '[object RegExp]';
+var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';
+
+module.exports = function isRegex(value) {
+	if (!value || typeof value !== 'object') {
+		return false;
+	}
+	if (!hasToStringTag) {
+		return toStr.call(value) === regexClass;
+	}
+
+	var descriptor = gOPD(value, 'lastIndex');
+	var hasLastIndexDataProperty = descriptor && has(descriptor, 'value');
+	if (!hasLastIndexDataProperty) {
+		return false;
+	}
+
+	return tryRegexExecCall(value);
+};
+
+
+/***/ }),
+/* 366 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var getPolyfill = __webpack_require__(237);
+var define = __webpack_require__(101);
+
+module.exports = function shimValues() {
+	var polyfill = getPolyfill();
+	define(Object, { values: polyfill }, {
+		values: function testValues() {
+			return Object.values !== polyfill;
+		}
+	});
+	return polyfill;
+};
+
+
+/***/ }),
+/* 367 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports['default'] = getVisibleDays;
+
+var _moment = __webpack_require__(43);
+
+var _moment2 = _interopRequireDefault(_moment);
+
+var _toISOMonthString = __webpack_require__(191);
+
+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;
+}
+
+/***/ }),
+/* 368 */
+/***/ (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__(92);
+
+var _object2 = _interopRequireDefault(_object);
+
+var _react = __webpack_require__(13);
+
+var _react2 = _interopRequireDefault(_react);
+
+var _propTypes = __webpack_require__(28);
+
+var _propTypes2 = _interopRequireDefault(_propTypes);
+
+var _reactAddonsShallowCompare = __webpack_require__(143);
+
+var _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare);
+
+var _airbnbPropTypes = __webpack_require__(85);
+
+var _reactWithStyles = __webpack_require__(109);
+
+var _moment = __webpack_require__(43);
+
+var _moment2 = _interopRequireDefault(_moment);
+
+var _throttle = __webpack_require__(375);
+
+var _throttle2 = _interopRequireDefault(_throttle);
+
+var _isTouchDevice = __webpack_require__(238);
+
+var _isTouchDevice2 = _interopRequireDefault(_isTouchDevice);
+
+var _reactOutsideClickHandler = __webpack_require__(385);
+
+var _reactOutsideClickHandler2 = _interopRequireDefault(_reactOutsideClickHandler);
+
+var _defaultPhrases = __webpack_require__(107);
+
+var _getPhrasePropTypes = __webpack_require__(108);
+
+var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);
+
+var _CalendarMonthGrid = __webpack_require__(389);
+
+var _CalendarMonthGrid2 = _interopRequireDefault(_CalendarMonthGrid);
+
+var _DayPickerNavigation = __webpack_require__(399);
+
+var _DayPickerNavigation2 = _interopRequireDefault(_DayPickerNavigation);
+
+var _DayPickerKeyboardShortcuts = __webpack_require__(404);
+
+var _DayPickerKeyboardShortcuts2 = _interopRequireDefault(_DayPickerKeyboardShortcuts);
+
+var _getNumberOfCalendarMonthWeeks = __webpack_require__(407);
+
+var _getNumberOfCalendarMonthWeeks2 = _interopRequireDefault(_getNumberOfCalendarMonthWeeks);
+
+var _getCalendarMonthWidth = __webpack_require__(253);
+
+var _getCalendarMonthWidth2 = _interopRequireDefault(_getCalendarMonthWidth);
+
+var _calculateDimension = __webpack_require__(252);
+
+var _calculateDimension2 = _interopRequireDefault(_calculateDimension);
+
+var _getActiveElement = __webpack_require__(408);
+
+var _getActiveElement2 = _interopRequireDefault(_getActiveElement);
+
+var _isDayVisible = __webpack_require__(242);
+
+var _isDayVisible2 = _interopRequireDefault(_isDayVisible);
+
+var _ModifiersShape = __webpack_require__(157);
+
+var _ModifiersShape2 = _interopRequireDefault(_ModifiersShape);
+
+var _ScrollableOrientationShape = __webpack_require__(142);
+
+var _ScrollableOrientationShape2 = _interopRequireDefault(_ScrollableOrientationShape);
+
+var _DayOfWeekShape = __webpack_require__(156);
+
+var _DayOfWeekShape2 = _interopRequireDefault(_DayOfWeekShape);
+
+var _CalendarInfoPositionShape = __webpack_require__(244);
+
+var _CalendarInfoPositionShape2 = _interopRequireDefault(_CalendarInfoPositionShape);
+
+var _constants = __webpack_require__(77);
+
+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);
+
+/***/ }),
+/* 369 */
+/***/ (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.
+ *
+ * @typechecks
+ * 
+ */
+
+/*eslint-disable no-self-compare */
+
+
+
+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;
+}
+
+module.exports = shallowEqual;
+
+/***/ }),
+/* 370 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var reactIs = __webpack_require__(371);
+
+/**
+ * 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;
+
+
+/***/ }),
+/* 371 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+if (true) {
+  module.exports = __webpack_require__(372);
+} else {}
+
+
+/***/ }),
+/* 372 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+/** @license React v16.8.6
+ * 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.
+ */
+
+Object.defineProperty(exports,"__esModule",{value:!0});
+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.memo"):
+60115,r=b?Symbol.for("react.lazy"):60116;function t(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 h:return a;default:return u}}case r:case q:case d:return u}}}function v(a){return t(a)===m}exports.typeOf=t;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;
+exports.Fragment=e;exports.Lazy=r;exports.Memo=q;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isValidElementType=function(a){return"string"===typeof a||"function"===typeof a||a===e||a===m||a===g||a===f||a===p||"object"===typeof a&&null!==a&&(a.$$typeof===r||a.$$typeof===q||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n)};exports.isAsyncMode=function(a){return v(a)||t(a)===l};exports.isConcurrentMode=v;exports.isContextConsumer=function(a){return t(a)===k};
+exports.isContextProvider=function(a){return t(a)===h};exports.isElement=function(a){return"object"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return t(a)===n};exports.isFragment=function(a){return t(a)===e};exports.isLazy=function(a){return t(a)===r};exports.isMemo=function(a){return t(a)===q};exports.isPortal=function(a){return t(a)===d};exports.isProfiler=function(a){return t(a)===g};exports.isStrictMode=function(a){return t(a)===f};
+exports.isSuspense=function(a){return t(a)===p};
+
+
+/***/ }),
+/* 373 */
+/***/ (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'
+};
+
+/***/ }),
+/* 374 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+
+var _propTypes = __webpack_require__(28);
+
+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
+});
+
+/***/ }),
+/* 375 */
+/***/ (function(module, exports, __webpack_require__) {
+
+var debounce = __webpack_require__(376),
+    isObject = __webpack_require__(192);
+
+/** 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;
+
+
+/***/ }),
+/* 376 */
+/***/ (function(module, exports, __webpack_require__) {
+
+var isObject = __webpack_require__(192),
+    now = __webpack_require__(377),
+    toNumber = __webpack_require__(379);
+
+/** 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;
+
+
+/***/ }),
+/* 377 */
+/***/ (function(module, exports, __webpack_require__) {
+
+var root = __webpack_require__(245);
+
+/**
+ * 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;
+
+
+/***/ }),
+/* 378 */
+/***/ (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__(127)))
+
+/***/ }),
+/* 379 */
+/***/ (function(module, exports, __webpack_require__) {
+
+var isObject = __webpack_require__(192),
+    isSymbol = __webpack_require__(380);
+
+/** Used as references for various `Number` constants. */
+var NAN = 0 / 0;
+
+/** Used to match leading and trailing whitespace. */
+var reTrim = /^\s+|\s+$/g;
+
+/** 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 = value.replace(reTrim, '');
+  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;
+
+
+/***/ }),
+/* 380 */
+/***/ (function(module, exports, __webpack_require__) {
+
+var baseGetTag = __webpack_require__(381),
+    isObjectLike = __webpack_require__(384);
+
+/** `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;
+
+
+/***/ }),
+/* 381 */
+/***/ (function(module, exports, __webpack_require__) {
+
+var Symbol = __webpack_require__(246),
+    getRawTag = __webpack_require__(382),
+    objectToString = __webpack_require__(383);
+
+/** `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;
+
+
+/***/ }),
+/* 382 */
+/***/ (function(module, exports, __webpack_require__) {
+
+var Symbol = __webpack_require__(246);
+
+/** 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;
+
+
+/***/ }),
+/* 383 */
+/***/ (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;
+
+
+/***/ }),
+/* 384 */
+/***/ (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;
+
+
+/***/ }),
+/* 385 */
+/***/ (function(module, exports, __webpack_require__) {
+
+// eslint-disable-next-line import/no-unresolved
+module.exports = __webpack_require__(386);
+
+
+/***/ }),
+/* 386 */
+/***/ (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__(13);
+
+var _react2 = _interopRequireDefault(_react);
+
+var _propTypes = __webpack_require__(28);
+
+var _propTypes2 = _interopRequireDefault(_propTypes);
+
+var _airbnbPropTypes = __webpack_require__(85);
+
+var _consolidatedEvents = __webpack_require__(247);
+
+var _object = __webpack_require__(228);
+
+var _object2 = _interopRequireDefault(_object);
+
+var _document = __webpack_require__(387);
+
+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;
+
+/***/ }),
+/* 387 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var define = __webpack_require__(101);
+
+var implementation = __webpack_require__(248);
+var getPolyfill = __webpack_require__(249);
+var polyfill = getPolyfill();
+var shim = __webpack_require__(388);
+
+var boundContains = function contains(node, other) {
+	return polyfill.apply(node, [other]);
+};
+
+define(boundContains, {
+	getPolyfill: getPolyfill,
+	implementation: implementation,
+	shim: shim
+});
+
+module.exports = boundContains;
+
+
+/***/ }),
+/* 388 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var define = __webpack_require__(101);
+var getPolyfill = __webpack_require__(249);
+
+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;
+};
+
+
+/***/ }),
+/* 389 */
+/***/ (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 _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__(92);
+
+var _object2 = _interopRequireDefault(_object);
+
+var _react = __webpack_require__(13);
+
+var _react2 = _interopRequireDefault(_react);
+
+var _propTypes = __webpack_require__(28);
+
+var _propTypes2 = _interopRequireDefault(_propTypes);
+
+var _reactAddonsShallowCompare = __webpack_require__(143);
+
+var _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare);
+
+var _reactMomentProptypes = __webpack_require__(141);
+
+var _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes);
+
+var _airbnbPropTypes = __webpack_require__(85);
+
+var _reactWithStyles = __webpack_require__(109);
+
+var _moment = __webpack_require__(43);
+
+var _moment2 = _interopRequireDefault(_moment);
+
+var _consolidatedEvents = __webpack_require__(247);
+
+var _defaultPhrases = __webpack_require__(107);
+
+var _getPhrasePropTypes = __webpack_require__(108);
+
+var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);
+
+var _CalendarMonth = __webpack_require__(390);
+
+var _CalendarMonth2 = _interopRequireDefault(_CalendarMonth);
+
+var _isTransitionEndSupported = __webpack_require__(395);
+
+var _isTransitionEndSupported2 = _interopRequireDefault(_isTransitionEndSupported);
+
+var _getTransformStyles = __webpack_require__(396);
+
+var _getTransformStyles2 = _interopRequireDefault(_getTransformStyles);
+
+var _getCalendarMonthWidth = __webpack_require__(253);
+
+var _getCalendarMonthWidth2 = _interopRequireDefault(_getCalendarMonthWidth);
+
+var _toISOMonthString = __webpack_require__(191);
+
+var _toISOMonthString2 = _interopRequireDefault(_toISOMonthString);
+
+var _isPrevMonth = __webpack_require__(397);
+
+var _isPrevMonth2 = _interopRequireDefault(_isPrevMonth);
+
+var _isNextMonth = __webpack_require__(398);
+
+var _isNextMonth2 = _interopRequireDefault(_isNextMonth);
+
+var _ModifiersShape = __webpack_require__(157);
+
+var _ModifiersShape2 = _interopRequireDefault(_ModifiersShape);
+
+var _ScrollableOrientationShape = __webpack_require__(142);
+
+var _ScrollableOrientationShape2 = _interopRequireDefault(_ScrollableOrientationShape);
+
+var _DayOfWeekShape = __webpack_require__(156);
+
+var _DayOfWeekShape2 = _interopRequireDefault(_DayOfWeekShape);
+
+var _constants = __webpack_require__(77);
+
+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, {
+  enableOutsideDays: _propTypes2['default'].bool,
+  firstVisibleMonthIndex: _propTypes2['default'].number,
+  horizontalMonthPadding: _airbnbPropTypes.nonNegativeInteger,
+  initialMonth: _reactMomentProptypes2['default'].momentObj,
+  isAnimating: _propTypes2['default'].bool,
+  numberOfMonths: _propTypes2['default'].number,
+  modifiers: _propTypes2['default'].objectOf(_propTypes2['default'].objectOf(_ModifiersShape2['default'])),
+  orientation: _ScrollableOrientationShape2['default'],
+  onDayClick: _propTypes2['default'].func,
+  onDayMouseEnter: _propTypes2['default'].func,
+  onDayMouseLeave: _propTypes2['default'].func,
+  onMonthTransitionEnd: _propTypes2['default'].func,
+  onMonthChange: _propTypes2['default'].func,
+  onYearChange: _propTypes2['default'].func,
+  renderMonthText: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),
+  renderCalendarDay: _propTypes2['default'].func,
+  renderDayContents: _propTypes2['default'].func,
+  translationValue: _propTypes2['default'].number,
+  renderMonthElement: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),
+  daySize: _airbnbPropTypes.nonNegativeInteger,
+  focusedDate: _reactMomentProptypes2['default'].momentObj, // indicates focusable day
+  isFocused: _propTypes2['default'].bool, // indicates whether or not to move focus to focusable day
+  firstDayOfWeek: _DayOfWeekShape2['default'],
+  setMonthTitleHeight: _propTypes2['default'].func,
+  isRTL: _propTypes2['default'].bool,
+  transitionDuration: _airbnbPropTypes.nonNegativeInteger,
+  verticalBorderSpacing: _airbnbPropTypes.nonNegativeInteger,
+
+  // i18n
+  monthFormat: _propTypes2['default'].string,
+  phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.CalendarDayPhrases)),
+  dayAriaLabelFormat: _propTypes2['default'].string
+}));
+
+var defaultProps = {
+  enableOutsideDays: false,
+  firstVisibleMonthIndex: 0,
+  horizontalMonthPadding: 13,
+  initialMonth: (0, _moment2['default'])(),
+  isAnimating: false,
+  numberOfMonths: 1,
+  modifiers: {},
+  orientation: _constants.HORIZONTAL_ORIENTATION,
+  onDayClick: function () {
+    function onDayClick() {}
+
+    return onDayClick;
+  }(),
+  onDayMouseEnter: function () {
+    function onDayMouseEnter() {}
+
+    return onDayMouseEnter;
+  }(),
+  onDayMouseLeave: function () {
+    function onDayMouseLeave() {}
+
+    return onDayMouseLeave;
+  }(),
+  onMonthChange: function () {
+    function onMonthChange() {}
+
+    return onMonthChange;
+  }(),
+  onYearChange: function () {
+    function onYearChange() {}
+
+    return onYearChange;
+  }(),
+  onMonthTransitionEnd: function () {
+    function onMonthTransitionEnd() {}
+
+    return onMonthTransitionEnd;
+  }(),
+
+  renderMonthText: null,
+  renderCalendarDay: undefined,
+  renderDayContents: null,
+  translationValue: null,
+  renderMonthElement: null,
+  daySize: _constants.DAY_SIZE,
+  focusedDate: null,
+  isFocused: false,
+  firstDayOfWeek: null,
+  setMonthTitleHeight: null,
+  isRTL: false,
+  transitionDuration: 200,
+  verticalBorderSpacing: undefined,
+
+  // i18n
+  monthFormat: 'MMMM YYYY', // english locale
+  phrases: _defaultPhrases.CalendarDayPhrases,
+  dayAriaLabelFormat: undefined
+};
+
+function getMonths(initialMonth, numberOfMonths, withoutTransitionMonths) {
+  var month = initialMonth.clone();
+  if (!withoutTransitionMonths) month = month.subtract(1, 'month');
+
+  var months = [];
+  for (var i = 0; i < (withoutTransitionMonths ? numberOfMonths : numberOfMonths + 2); i += 1) {
+    months.push(month);
+    month = month.clone().add(1, 'month');
+  }
+
+  return months;
+}
+
+var CalendarMonthGrid = function (_React$Component) {
+  _inherits(CalendarMonthGrid, _React$Component);
+
+  function CalendarMonthGrid(props) {
+    _classCallCheck(this, CalendarMonthGrid);
+
+    var _this = _possibleConstructorReturn(this, (CalendarMonthGrid.__proto__ || Object.getPrototypeOf(CalendarMonthGrid)).call(this, props));
+
+    var withoutTransitionMonths = props.orientation === _constants.VERTICAL_SCROLLABLE;
+    _this.state = {
+      months: getMonths(props.initialMonth, props.numberOfMonths, withoutTransitionMonths)
+    };
+
+    _this.isTransitionEndSupported = (0, _isTransitionEndSupported2['default'])();
+    _this.onTransitionEnd = _this.onTransitionEnd.bind(_this);
+    _this.setContainerRef = _this.setContainerRef.bind(_this);
+
+    _this.locale = _moment2['default'].locale();
+    _this.onMonthSelect = _this.onMonthSelect.bind(_this);
+    _this.onYearSelect = _this.onYearSelect.bind(_this);
+    return _this;
+  }
+
+  _createClass(CalendarMonthGrid, [{
+    key: 'componentDidMount',
+    value: function () {
+      function componentDidMount() {
+        this.removeEventListener = (0, _consolidatedEvents.addEventListener)(this.container, 'transitionend', this.onTransitionEnd);
+      }
+
+      return componentDidMount;
+    }()
+  }, {
+    key: 'componentWillReceiveProps',
+    value: function () {
+      function componentWillReceiveProps(nextProps) {
+        var _this2 = this;
+
+        var initialMonth = nextProps.initialMonth,
+            numberOfMonths = nextProps.numberOfMonths,
+            orientation = nextProps.orientation;
+        var months = this.state.months;
+        var _props = this.props,
+            prevInitialMonth = _props.initialMonth,
+            prevNumberOfMonths = _props.numberOfMonths;
+
+        var hasMonthChanged = !prevInitialMonth.isSame(initialMonth, 'month');
+        var hasNumberOfMonthsChanged = prevNumberOfMonths !== numberOfMonths;
+        var newMonths = months;
+
+        if (hasMonthChanged && !hasNumberOfMonthsChanged) {
+          if ((0, _isNextMonth2['default'])(prevInitialMonth, initialMonth)) {
+            newMonths = months.slice(1);
+            newMonths.push(months[months.length - 1].clone().add(1, 'month'));
+          } else if ((0, _isPrevMonth2['default'])(prevInitialMonth, initialMonth)) {
+            newMonths = months.slice(0, months.length - 1);
+            newMonths.unshift(months[0].clone().subtract(1, 'month'));
+          } else {
+            var withoutTransitionMonths = orientation === _constants.VERTICAL_SCROLLABLE;
+            newMonths = getMonths(initialMonth, numberOfMonths, withoutTransitionMonths);
+          }
+        }
+
+        if (hasNumberOfMonthsChanged) {
+          var _withoutTransitionMonths = orientation === _constants.VERTICAL_SCROLLABLE;
+          newMonths = getMonths(initialMonth, numberOfMonths, _withoutTransitionMonths);
+        }
+
+        var momentLocale = _moment2['default'].locale();
+        if (this.locale !== momentLocale) {
+          this.locale = momentLocale;
+          newMonths = newMonths.map(function (m) {
+            return m.locale(_this2.locale);
+          });
+        }
+
+        this.setState({
+          months: newMonths
+        });
+      }
+
+      return componentWillReceiveProps;
+    }()
+  }, {
+    key: 'shouldComponentUpdate',
+    value: function () {
+      function shouldComponentUpdate(nextProps, nextState) {
+        return (0, _reactAddonsShallowCompare2['default'])(this, nextProps, nextState);
+      }
+
+      return shouldComponentUpdate;
+    }()
+  }, {
+    key: 'componentDidUpdate',
+    value: function () {
+      function componentDidUpdate() {
+        var _props2 = this.props,
+            isAnimating = _props2.isAnimating,
+            transitionDuration = _props2.transitionDuration,
+            onMonthTransitionEnd = _props2.onMonthTransitionEnd;
+
+        // For IE9, immediately call onMonthTransitionEnd instead of
+        // waiting for the animation to complete. Similarly, if transitionDuration
+        // is set to 0, also immediately invoke the onMonthTransitionEnd callback
+
+        if ((!this.isTransitionEndSupported || !transitionDuration) && isAnimating) {
+          onMonthTransitionEnd();
+        }
+      }
+
+      return componentDidUpdate;
+    }()
+  }, {
+    key: 'componentWillUnmount',
+    value: function () {
+      function componentWillUnmount() {
+        if (this.removeEventListener) this.removeEventListener();
+      }
+
+      return componentWillUnmount;
+    }()
+  }, {
+    key: 'onTransitionEnd',
+    value: function () {
+      function onTransitionEnd() {
+        var onMonthTransitionEnd = this.props.onMonthTransitionEnd;
+
+        onMonthTransitionEnd();
+      }
+
+      return onTransitionEnd;
+    }()
+  }, {
+    key: 'onMonthSelect',
+    value: function () {
+      function onMonthSelect(currentMonth, newMonthVal) {
+        var newMonth = currentMonth.clone();
+        var _props3 = this.props,
+            onMonthChange = _props3.onMonthChange,
+            orientation = _props3.orientation;
+        var months = this.state.months;
+
+        var withoutTransitionMonths = orientation === _constants.VERTICAL_SCROLLABLE;
+        var initialMonthSubtraction = months.indexOf(currentMonth);
+        if (!withoutTransitionMonths) {
+          initialMonthSubtraction -= 1;
+        }
+        newMonth.set('month', newMonthVal).subtract(initialMonthSubtraction, 'months');
+        onMonthChange(newMonth);
+      }
+
+      return onMonthSelect;
+    }()
+  }, {
+    key: 'onYearSelect',
+    value: function () {
+      function onYearSelect(currentMonth, newYearVal) {
+        var newMonth = currentMonth.clone();
+        var _props4 = this.props,
+            onYearChange = _props4.onYearChange,
+            orientation = _props4.orientation;
+        var months = this.state.months;
+
+        var withoutTransitionMonths = orientation === _constants.VERTICAL_SCROLLABLE;
+        var initialMonthSubtraction = months.indexOf(currentMonth);
+        if (!withoutTransitionMonths) {
+          initialMonthSubtraction -= 1;
+        }
+        newMonth.set('year', newYearVal).subtract(initialMonthSubtraction, 'months');
+        onYearChange(newMonth);
+      }
+
+      return onYearSelect;
+    }()
+  }, {
+    key: 'setContainerRef',
+    value: function () {
+      function setContainerRef(ref) {
+        this.container = ref;
+      }
+
+      return setContainerRef;
+    }()
+  }, {
+    key: 'render',
+    value: function () {
+      function render() {
+        var _this3 = this;
+
+        var _props5 = this.props,
+            enableOutsideDays = _props5.enableOutsideDays,
+            firstVisibleMonthIndex = _props5.firstVisibleMonthIndex,
+            horizontalMonthPadding = _props5.horizontalMonthPadding,
+            isAnimating = _props5.isAnimating,
+            modifiers = _props5.modifiers,
+            numberOfMonths = _props5.numberOfMonths,
+            monthFormat = _props5.monthFormat,
+            orientation = _props5.orientation,
+            translationValue = _props5.translationValue,
+            daySize = _props5.daySize,
+            onDayMouseEnter = _props5.onDayMouseEnter,
+            onDayMouseLeave = _props5.onDayMouseLeave,
+            onDayClick = _props5.onDayClick,
+            renderMonthText = _props5.renderMonthText,
+            renderCalendarDay = _props5.renderCalendarDay,
+            renderDayContents = _props5.renderDayContents,
+            renderMonthElement = _props5.renderMonthElement,
+            onMonthTransitionEnd = _props5.onMonthTransitionEnd,
+            firstDayOfWeek = _props5.firstDayOfWeek,
+            focusedDate = _props5.focusedDate,
+            isFocused = _props5.isFocused,
+            isRTL = _props5.isRTL,
+            styles = _props5.styles,
+            phrases = _props5.phrases,
+            dayAriaLabelFormat = _props5.dayAriaLabelFormat,
+            transitionDuration = _props5.transitionDuration,
+            verticalBorderSpacing = _props5.verticalBorderSpacing,
+            setMonthTitleHeight = _props5.setMonthTitleHeight;
+        var months = this.state.months;
+
+        var isVertical = orientation === _constants.VERTICAL_ORIENTATION;
+        var isVerticalScrollable = orientation === _constants.VERTICAL_SCROLLABLE;
+        var isHorizontal = orientation === _constants.HORIZONTAL_ORIENTATION;
+
+        var calendarMonthWidth = (0, _getCalendarMonthWidth2['default'])(daySize, horizontalMonthPadding);
+
+        var width = isVertical || isVerticalScrollable ? calendarMonthWidth : (numberOfMonths + 2) * calendarMonthWidth;
+
+        var transformType = isVertical || isVerticalScrollable ? 'translateY' : 'translateX';
+        var transformValue = transformType + '(' + String(translationValue) + 'px)';
+
+        return _react2['default'].createElement(
+          'div',
+          _extends({}, (0, _reactWithStyles.css)(styles.CalendarMonthGrid, isHorizontal && styles.CalendarMonthGrid__horizontal, isVertical && styles.CalendarMonthGrid__vertical, isVerticalScrollable && styles.CalendarMonthGrid__vertical_scrollable, isAnimating && styles.CalendarMonthGrid__animating, isAnimating && transitionDuration && {
+            transition: 'transform ' + String(transitionDuration) + 'ms ease-in-out'
+          }, (0, _object2['default'])({}, (0, _getTransformStyles2['default'])(transformValue), {
+            width: width
+          })), {
+            ref: this.setContainerRef,
+            onTransitionEnd: onMonthTransitionEnd
+          }),
+          months.map(function (month, i) {
+            var isVisible = i >= firstVisibleMonthIndex && i < firstVisibleMonthIndex + numberOfMonths;
+            var hideForAnimation = i === 0 && !isVisible;
+            var showForAnimation = i === 0 && isAnimating && isVisible;
+            var monthString = (0, _toISOMonthString2['default'])(month);
+            return _react2['default'].createElement(
+              'div',
+              _extends({
+                key: monthString
+              }, (0, _reactWithStyles.css)(isHorizontal && styles.CalendarMonthGrid_month__horizontal, hideForAnimation && styles.CalendarMonthGrid_month__hideForAnimation, showForAnimation && !isVertical && !isRTL && {
+                position: 'absolute',
+                left: -calendarMonthWidth
+              }, showForAnimation && !isVertical && isRTL && {
+                position: 'absolute',
+                right: 0
+              }, showForAnimation && isVertical && {
+                position: 'absolute',
+                top: -translationValue
+              }, !isVisible && !isAnimating && styles.CalendarMonthGrid_month__hidden)),
+              _react2['default'].createElement(_CalendarMonth2['default'], {
+                month: month,
+                isVisible: isVisible,
+                enableOutsideDays: enableOutsideDays,
+                modifiers: modifiers[monthString],
+                monthFormat: monthFormat,
+                orientation: orientation,
+                onDayMouseEnter: onDayMouseEnter,
+                onDayMouseLeave: onDayMouseLeave,
+                onDayClick: onDayClick,
+                onMonthSelect: _this3.onMonthSelect,
+                onYearSelect: _this3.onYearSelect,
+                renderMonthText: renderMonthText,
+                renderCalendarDay: renderCalendarDay,
+                renderDayContents: renderDayContents,
+                renderMonthElement: renderMonthElement,
+                firstDayOfWeek: firstDayOfWeek,
+                daySize: daySize,
+                focusedDate: isVisible ? focusedDate : null,
+                isFocused: isFocused,
+                phrases: phrases,
+                setMonthTitleHeight: setMonthTitleHeight,
+                dayAriaLabelFormat: dayAriaLabelFormat,
+                verticalBorderSpacing: verticalBorderSpacing,
+                horizontalMonthPadding: horizontalMonthPadding
+              })
+            );
+          })
+        );
+      }
+
+      return render;
+    }()
+  }]);
+
+  return CalendarMonthGrid;
+}(_react2['default'].Component);
+
+CalendarMonthGrid.propTypes = propTypes;
+CalendarMonthGrid.defaultProps = defaultProps;
+
+exports['default'] = (0, _reactWithStyles.withStyles)(function (_ref) {
+  var _ref$reactDates = _ref.reactDates,
+      color = _ref$reactDates.color,
+      noScrollBarOnVerticalScrollable = _ref$reactDates.noScrollBarOnVerticalScrollable,
+      spacing = _ref$reactDates.spacing,
+      zIndex = _ref$reactDates.zIndex;
+  return {
+    CalendarMonthGrid: {
+      background: color.background,
+      textAlign: 'left',
+      zIndex: zIndex
+    },
+
+    CalendarMonthGrid__animating: {
+      zIndex: zIndex + 1
+    },
+
+    CalendarMonthGrid__horizontal: {
+      position: 'absolute',
+      left: spacing.dayPickerHorizontalPadding
+    },
+
+    CalendarMonthGrid__vertical: {
+      margin: '0 auto'
+    },
+
+    CalendarMonthGrid__vertical_scrollable: (0, _object2['default'])({
+      margin: '0 auto',
+      overflowY: 'scroll'
+    }, noScrollBarOnVerticalScrollable && {
+      '-webkitOverflowScrolling': 'touch',
+      '::-webkit-scrollbar': {
+        '-webkit-appearance': 'none',
+        display: 'none'
+      }
+    }),
+
+    CalendarMonthGrid_month__horizontal: {
+      display: 'inline-block',
+      verticalAlign: 'top',
+      minHeight: '100%'
+    },
+
+    CalendarMonthGrid_month__hideForAnimation: {
+      position: 'absolute',
+      zIndex: zIndex - 1,
+      opacity: 0,
+      pointerEvents: 'none'
+    },
+
+    CalendarMonthGrid_month__hidden: {
+      visibility: 'hidden'
+    }
+  };
+})(CalendarMonthGrid);
+
+/***/ }),
+/* 390 */
+/***/ (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 _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__(92);
+
+var _object2 = _interopRequireDefault(_object);
+
+var _react = __webpack_require__(13);
+
+var _react2 = _interopRequireDefault(_react);
+
+var _propTypes = __webpack_require__(28);
+
+var _propTypes2 = _interopRequireDefault(_propTypes);
+
+var _reactAddonsShallowCompare = __webpack_require__(143);
+
+var _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare);
+
+var _reactMomentProptypes = __webpack_require__(141);
+
+var _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes);
+
+var _airbnbPropTypes = __webpack_require__(85);
+
+var _reactWithStyles = __webpack_require__(109);
+
+var _moment = __webpack_require__(43);
+
+var _moment2 = _interopRequireDefault(_moment);
+
+var _defaultPhrases = __webpack_require__(107);
+
+var _getPhrasePropTypes = __webpack_require__(108);
+
+var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);
+
+var _CalendarWeek = __webpack_require__(391);
+
+var _CalendarWeek2 = _interopRequireDefault(_CalendarWeek);
+
+var _CalendarDay = __webpack_require__(250);
+
+var _CalendarDay2 = _interopRequireDefault(_CalendarDay);
+
+var _calculateDimension = __webpack_require__(252);
+
+var _calculateDimension2 = _interopRequireDefault(_calculateDimension);
+
+var _getCalendarMonthWeeks = __webpack_require__(394);
+
+var _getCalendarMonthWeeks2 = _interopRequireDefault(_getCalendarMonthWeeks);
+
+var _isSameDay = __webpack_require__(190);
+
+var _isSameDay2 = _interopRequireDefault(_isSameDay);
+
+var _toISODateString = __webpack_require__(243);
+
+var _toISODateString2 = _interopRequireDefault(_toISODateString);
+
+var _ModifiersShape = __webpack_require__(157);
+
+var _ModifiersShape2 = _interopRequireDefault(_ModifiersShape);
+
+var _ScrollableOrientationShape = __webpack_require__(142);
+
+var _ScrollableOrientationShape2 = _interopRequireDefault(_ScrollableOrientationShape);
+
+var _DayOfWeekShape = __webpack_require__(156);
+
+var _DayOfWeekShape2 = _interopRequireDefault(_DayOfWeekShape);
+
+var _constants = __webpack_require__(77);
+
+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);
+
+/***/ }),
+/* 391 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports['default'] = CalendarWeek;
+
+var _react = __webpack_require__(13);
+
+var _react2 = _interopRequireDefault(_react);
+
+var _airbnbPropTypes = __webpack_require__(85);
+
+var _CalendarDay = __webpack_require__(250);
+
+var _CalendarDay2 = _interopRequireDefault(_CalendarDay);
+
+var _CustomizableCalendarDay = __webpack_require__(393);
+
+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;
+
+/***/ }),
+/* 392 */
+/***/ (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 '';
+}
+
+/***/ }),
+/* 393 */
+/***/ (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__(92);
+
+var _object2 = _interopRequireDefault(_object);
+
+var _react = __webpack_require__(13);
+
+var _react2 = _interopRequireDefault(_react);
+
+var _propTypes = __webpack_require__(28);
+
+var _propTypes2 = _interopRequireDefault(_propTypes);
+
+var _reactAddonsShallowCompare = __webpack_require__(143);
+
+var _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare);
+
+var _reactMomentProptypes = __webpack_require__(141);
+
+var _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes);
+
+var _airbnbPropTypes = __webpack_require__(85);
+
+var _reactWithStyles = __webpack_require__(109);
+
+var _moment = __webpack_require__(43);
+
+var _moment2 = _interopRequireDefault(_moment);
+
+var _defaultPhrases = __webpack_require__(107);
+
+var _getPhrasePropTypes = __webpack_require__(108);
+
+var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);
+
+var _getCalendarDaySettings = __webpack_require__(251);
+
+var _getCalendarDaySettings2 = _interopRequireDefault(_getCalendarDaySettings);
+
+var _constants = __webpack_require__(77);
+
+var _DefaultTheme = __webpack_require__(225);
+
+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);
+
+/***/ }),
+/* 394 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports['default'] = getCalendarMonthWeeks;
+
+var _moment = __webpack_require__(43);
+
+var _moment2 = _interopRequireDefault(_moment);
+
+var _constants = __webpack_require__(77);
+
+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;
+}
+
+/***/ }),
+/* 395 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports['default'] = isTransitionEndSupported;
+function isTransitionEndSupported() {
+  return !!(typeof window !== 'undefined' && 'TransitionEvent' in window);
+}
+
+/***/ }),
+/* 396 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports["default"] = getTransformStyles;
+function getTransformStyles(transformValue) {
+  return {
+    transform: transformValue,
+    msTransform: transformValue,
+    MozTransform: transformValue,
+    WebkitTransform: transformValue
+  };
+}
+
+/***/ }),
+/* 397 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports['default'] = isPrevMonth;
+
+var _moment = __webpack_require__(43);
+
+var _moment2 = _interopRequireDefault(_moment);
+
+var _isSameMonth = __webpack_require__(254);
+
+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);
+}
+
+/***/ }),
+/* 398 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports['default'] = isNextMonth;
+
+var _moment = __webpack_require__(43);
+
+var _moment2 = _interopRequireDefault(_moment);
+
+var _isSameMonth = __webpack_require__(254);
+
+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);
+}
+
+/***/ }),
+/* 399 */
+/***/ (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__(92);
+
+var _object2 = _interopRequireDefault(_object);
+
+var _react = __webpack_require__(13);
+
+var _react2 = _interopRequireDefault(_react);
+
+var _propTypes = __webpack_require__(28);
+
+var _propTypes2 = _interopRequireDefault(_propTypes);
+
+var _airbnbPropTypes = __webpack_require__(85);
+
+var _reactWithStyles = __webpack_require__(109);
+
+var _defaultPhrases = __webpack_require__(107);
+
+var _getPhrasePropTypes = __webpack_require__(108);
+
+var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);
+
+var _LeftArrow = __webpack_require__(400);
+
+var _LeftArrow2 = _interopRequireDefault(_LeftArrow);
+
+var _RightArrow = __webpack_require__(401);
+
+var _RightArrow2 = _interopRequireDefault(_RightArrow);
+
+var _ChevronUp = __webpack_require__(402);
+
+var _ChevronUp2 = _interopRequireDefault(_ChevronUp);
+
+var _ChevronDown = __webpack_require__(403);
+
+var _ChevronDown2 = _interopRequireDefault(_ChevronDown);
+
+var _ScrollableOrientationShape = __webpack_require__(142);
+
+var _ScrollableOrientationShape2 = _interopRequireDefault(_ScrollableOrientationShape);
+
+var _constants = __webpack_require__(77);
+
+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);
+
+/***/ }),
+/* 400 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+
+var _react = __webpack_require__(13);
+
+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;
+
+/***/ }),
+/* 401 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+
+var _react = __webpack_require__(13);
+
+var _react2 = _interopRequireDefault(_react);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+var RightArrow = function () {
+  function RightArrow(props) {
+    return _react2['default'].createElement(
+      'svg',
+      props,
+      _react2['default'].createElement('path', {
+        d: 'M694.4 242.4l249.1 249.1c11 11 11 21 0 32L694.4 772.7c-5 5-10 7-16 7s-11-2-16-7c-11-11-11-21 0-32l210.1-210.1H67.1c-13 0-23-10-23-23s10-23 23-23h805.4L662.4 274.5c-21-21.1 11-53.1 32-32.1z'
+      })
+    );
+  }
+
+  return RightArrow;
+}();
+
+RightArrow.defaultProps = {
+  viewBox: '0 0 1000 1000'
+};
+exports['default'] = RightArrow;
+
+/***/ }),
+/* 402 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+
+var _react = __webpack_require__(13);
+
+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;
+
+/***/ }),
+/* 403 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+
+var _react = __webpack_require__(13);
+
+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;
+
+/***/ }),
+/* 404 */
+/***/ (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__(92);
+
+var _object2 = _interopRequireDefault(_object);
+
+var _react = __webpack_require__(13);
+
+var _react2 = _interopRequireDefault(_react);
+
+var _propTypes = __webpack_require__(28);
+
+var _propTypes2 = _interopRequireDefault(_propTypes);
+
+var _airbnbPropTypes = __webpack_require__(85);
+
+var _reactWithStyles = __webpack_require__(109);
+
+var _defaultPhrases = __webpack_require__(107);
+
+var _getPhrasePropTypes = __webpack_require__(108);
+
+var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);
+
+var _KeyboardShortcutRow = __webpack_require__(405);
+
+var _KeyboardShortcutRow2 = _interopRequireDefault(_KeyboardShortcutRow);
+
+var _CloseButton = __webpack_require__(406);
+
+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);
+
+/***/ }),
+/* 405 */
+/***/ (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__(92);
+
+var _object2 = _interopRequireDefault(_object);
+
+var _react = __webpack_require__(13);
+
+var _react2 = _interopRequireDefault(_react);
+
+var _propTypes = __webpack_require__(28);
+
+var _propTypes2 = _interopRequireDefault(_propTypes);
+
+var _airbnbPropTypes = __webpack_require__(85);
+
+var _reactWithStyles = __webpack_require__(109);
+
+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
+    )
+  );
+}
+
+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);
+
+/***/ }),
+/* 406 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+
+var _react = __webpack_require__(13);
+
+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;
+
+/***/ }),
+/* 407 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports['default'] = getNumberOfCalendarMonthWeeks;
+
+var _moment = __webpack_require__(43);
+
+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);
+}
+
+/***/ }),
+/* 408 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports['default'] = getActiveElement;
+function getActiveElement() {
+  return typeof document !== 'undefined' && document.activeElement;
+}
+
+/***/ }),
+/* 409 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
+/* 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__(6);
+/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
+
+
+/**
+ * WordPress dependencies
+ */
+
+var 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);
+
+
+/***/ }),
+/* 410 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
+/* 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__(6);
+/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
+
+
+/**
+ * WordPress dependencies
+ */
+
+var textColor = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
+  xmlns: "http://www.w3.org/2000/svg",
+  viewBox: "-2 -2 24 24"
+}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
+  d: "M13.23 15h1.9L11 4H9L5 15h1.88l1.07-3h4.18zm-1.53-4.54H8.51L10 5.6z"
+}));
+/* harmony default export */ __webpack_exports__["a"] = (textColor);
+
+
+/***/ }),
+/* 411 */,
+/* 412 */,
+/* 413 */,
+/* 414 */,
+/* 415 */,
+/* 416 */,
+/* 417 */,
+/* 418 */,
+/* 419 */,
+/* 420 */,
+/* 421 */,
+/* 422 */,
+/* 423 */,
+/* 424 */,
+/* 425 */,
+/* 426 */,
+/* 427 */,
+/* 428 */,
+/* 429 */,
+/* 430 */,
+/* 431 */,
+/* 432 */,
+/* 433 */,
+/* 434 */,
+/* 435 */,
+/* 436 */,
+/* 437 */,
+/* 438 */,
+/* 439 */,
+/* 440 */,
+/* 441 */,
+/* 442 */,
+/* 443 */,
+/* 444 */,
+/* 445 */,
+/* 446 */,
+/* 447 */,
+/* 448 */,
+/* 449 */,
+/* 450 */,
+/* 451 */,
+/* 452 */,
+/* 453 */,
+/* 454 */,
+/* 455 */,
+/* 456 */,
+/* 457 */,
+/* 458 */,
+/* 459 */,
+/* 460 */,
+/* 461 */,
+/* 462 */,
+/* 463 */,
+/* 464 */,
+/* 465 */,
+/* 466 */,
+/* 467 */,
+/* 468 */,
+/* 469 */
+/***/ (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__(49);
+/* harmony import */ var reakit_system_createHook__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(48);
+/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(13);
+/* 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__(80);
+/* harmony import */ var _Composite_CompositeItem_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(120);
+/* harmony import */ var _ToolbarState_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(167);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+var useToolbarItem = Object(reakit_system_createHook__WEBPACK_IMPORTED_MODULE_1__[/* createHook */ "a"])({
+  name: "ToolbarItem",
+  compose: _Composite_CompositeItem_js__WEBPACK_IMPORTED_MODULE_4__[/* useCompositeItem */ "b"],
+  useState: _ToolbarState_js__WEBPACK_IMPORTED_MODULE_5__[/* useToolbarState */ "a"]
+});
+var ToolbarItem = Object(reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_0__[/* createComponent */ "a"])({
+  as: "button",
+  memo: true,
+  useHook: useToolbarItem
+});
+
+
+
+
 /***/ })
 /******/ ]);
\ No newline at end of file