@typeolymp/ui-components 1.16.7 → 1.17.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/index.es.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { jsx as jsx$1, jsxs, Fragment as Fragment$1 } from 'react/jsx-runtime';
2
2
  import * as React$3 from 'react';
3
- import React__default, { useLayoutEffect, useContext, forwardRef, createElement, createContext, Fragment, useRef, useState, useEffect, useImperativeHandle } from 'react';
3
+ import React__default, { useLayoutEffect, useContext, forwardRef, createElement, createContext, Fragment, useRef, useState, useEffect, useMemo, useReducer, useCallback, useImperativeHandle } from 'react';
4
4
  import styled, { keyframes as keyframes$1 } from 'styled-components';
5
5
 
6
6
  var theme = {
@@ -223,6 +223,23 @@ function __generator(thisArg, body) {
223
223
  }
224
224
  }
225
225
 
226
+ function __read(o, n) {
227
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
228
+ if (!m) return o;
229
+ var i = m.call(o), r, ar = [], e;
230
+ try {
231
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
232
+ }
233
+ catch (error) { e = { error: error }; }
234
+ finally {
235
+ try {
236
+ if (r && !r.done && (m = i["return"])) m.call(i);
237
+ }
238
+ finally { if (e) throw e.error; }
239
+ }
240
+ return ar;
241
+ }
242
+
226
243
  function __spreadArray(to, from, pack) {
227
244
  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
228
245
  if (ar || !(i in from)) {
@@ -436,7 +453,7 @@ var from = String.fromCharCode;
436
453
  * @param {object}
437
454
  * @return {object}
438
455
  */
439
- var assign = Object.assign;
456
+ var assign$1 = Object.assign;
440
457
 
441
458
  /**
442
459
  * @param {string} value
@@ -562,7 +579,7 @@ function node$1 (value, root, parent, type, props, children, length) {
562
579
  * @return {object}
563
580
  */
564
581
  function copy (root, props) {
565
- return assign(node$1('', null, null, '', null, null, 0), root, {length: -root.length}, props)
582
+ return assign$1(node$1('', null, null, '', null, null, 0), root, {length: -root.length}, props)
566
583
  }
567
584
 
568
585
  /**
@@ -1951,7 +1968,7 @@ function getStatics(component) {
1951
1968
 
1952
1969
  var defineProperty = Object.defineProperty;
1953
1970
  var getOwnPropertyNames = Object.getOwnPropertyNames;
1954
- var getOwnPropertySymbols = Object.getOwnPropertySymbols;
1971
+ var getOwnPropertySymbols$1 = Object.getOwnPropertySymbols;
1955
1972
  var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
1956
1973
  var getPrototypeOf = Object.getPrototypeOf;
1957
1974
  var objectPrototype = Object.prototype;
@@ -1968,8 +1985,8 @@ function hoistNonReactStatics$2(targetComponent, sourceComponent, blacklist) {
1968
1985
 
1969
1986
  var keys = getOwnPropertyNames(sourceComponent);
1970
1987
 
1971
- if (getOwnPropertySymbols) {
1972
- keys = keys.concat(getOwnPropertySymbols(sourceComponent));
1988
+ if (getOwnPropertySymbols$1) {
1989
+ keys = keys.concat(getOwnPropertySymbols$1(sourceComponent));
1973
1990
  }
1974
1991
 
1975
1992
  var targetStatics = getStatics(targetComponent);
@@ -2481,7 +2498,7 @@ var useInsertionEffectAlwaysWithSyncFallback = !isBrowser$2 ? syncFallback : use
2481
2498
  var useInsertionEffectWithLayoutFallback = useInsertionEffect || useLayoutEffect;
2482
2499
 
2483
2500
  var isBrowser$1 = typeof document !== 'undefined';
2484
- var hasOwnProperty = {}.hasOwnProperty;
2501
+ var hasOwnProperty$1 = {}.hasOwnProperty;
2485
2502
 
2486
2503
  var EmotionCacheContext = /* #__PURE__ */createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case
2487
2504
  // because this module is primarily intended for the browser and node
@@ -2650,7 +2667,7 @@ var createEmotionProps = function createEmotionProps(type, props) {
2650
2667
  var newProps = {};
2651
2668
 
2652
2669
  for (var key in props) {
2653
- if (hasOwnProperty.call(props, key)) {
2670
+ if (hasOwnProperty$1.call(props, key)) {
2654
2671
  newProps[key] = props[key];
2655
2672
  }
2656
2673
  }
@@ -2727,7 +2744,7 @@ var Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {
2727
2744
  var newProps = {};
2728
2745
 
2729
2746
  for (var key in props) {
2730
- if (hasOwnProperty.call(props, key) && key !== 'css' && key !== typePropName && (process.env.NODE_ENV === 'production' || key !== labelPropName)) {
2747
+ if (hasOwnProperty$1.call(props, key) && key !== 'css' && key !== typePropName && (process.env.NODE_ENV === 'production' || key !== labelPropName)) {
2731
2748
  newProps[key] = props[key];
2732
2749
  }
2733
2750
  }
@@ -2866,7 +2883,7 @@ var pkg = {
2866
2883
  var jsx = function jsx(type, props) {
2867
2884
  var args = arguments;
2868
2885
 
2869
- if (props == null || !hasOwnProperty.call(props, 'css')) {
2886
+ if (props == null || !hasOwnProperty$1.call(props, 'css')) {
2870
2887
  // $FlowFixMe
2871
2888
  return createElement.apply(undefined, args);
2872
2889
  }
@@ -3414,14 +3431,14 @@ Object.defineProperty(BeatLoader, "__esModule", { value: true });
3414
3431
  var React$2 = __importStar$2(React__default);
3415
3432
  var react_1 = require$$1;
3416
3433
  var helpers_1 = helpers$1;
3417
- var beat = react_1.keyframes(templateObject_1$T || (templateObject_1$T = __makeTemplateObject(["\n 50% {transform: scale(0.75);opacity: 0.2}\n 100% {transform: scale(1);opacity: 1}\n"], ["\n 50% {transform: scale(0.75);opacity: 0.2}\n 100% {transform: scale(1);opacity: 1}\n"])));
3434
+ var beat = react_1.keyframes(templateObject_1$U || (templateObject_1$U = __makeTemplateObject(["\n 50% {transform: scale(0.75);opacity: 0.2}\n 100% {transform: scale(1);opacity: 1}\n"], ["\n 50% {transform: scale(0.75);opacity: 0.2}\n 100% {transform: scale(1);opacity: 1}\n"])));
3418
3435
  var Loader = /** @class */ (function (_super) {
3419
3436
  __extends$1(Loader, _super);
3420
3437
  function Loader() {
3421
3438
  var _this = _super !== null && _super.apply(this, arguments) || this;
3422
3439
  _this.style = function (i) {
3423
3440
  var _a = _this.props, color = _a.color, size = _a.size, margin = _a.margin, speedMultiplier = _a.speedMultiplier;
3424
- return react_1.css(templateObject_2$z || (templateObject_2$z = __makeTemplateObject(["\n display: inline-block;\n background-color: ", ";\n width: ", ";\n height: ", ";\n margin: ", ";\n border-radius: 100%;\n animation: ", " ", "s ", "\n infinite linear;\n animation-fill-mode: both;\n "], ["\n display: inline-block;\n background-color: ", ";\n width: ", ";\n height: ", ";\n margin: ", ";\n border-radius: 100%;\n animation: ", " ", "s ", "\n infinite linear;\n animation-fill-mode: both;\n "])), color, helpers_1.cssValue(size), helpers_1.cssValue(size), helpers_1.cssValue(margin), beat, 0.7 / speedMultiplier, i % 2 ? "0s" : 0.35 / speedMultiplier + "s");
3441
+ return react_1.css(templateObject_2$A || (templateObject_2$A = __makeTemplateObject(["\n display: inline-block;\n background-color: ", ";\n width: ", ";\n height: ", ";\n margin: ", ";\n border-radius: 100%;\n animation: ", " ", "s ", "\n infinite linear;\n animation-fill-mode: both;\n "], ["\n display: inline-block;\n background-color: ", ";\n width: ", ";\n height: ", ";\n margin: ", ";\n border-radius: 100%;\n animation: ", " ", "s ", "\n infinite linear;\n animation-fill-mode: both;\n "])), color, helpers_1.cssValue(size), helpers_1.cssValue(size), helpers_1.cssValue(margin), beat, 0.7 / speedMultiplier, i % 2 ? "0s" : 0.35 / speedMultiplier + "s");
3425
3442
  };
3426
3443
  return _this;
3427
3444
  }
@@ -3435,10 +3452,10 @@ var Loader = /** @class */ (function (_super) {
3435
3452
  Loader.defaultProps = helpers_1.sizeMarginDefaults(15);
3436
3453
  return Loader;
3437
3454
  }(React$2.PureComponent));
3438
- var _default = BeatLoader.default = Loader;
3439
- var templateObject_1$T, templateObject_2$z;
3455
+ var _default$1 = BeatLoader.default = Loader;
3456
+ var templateObject_1$U, templateObject_2$A;
3440
3457
 
3441
- var StyledButton = styled.button(templateObject_1$S || (templateObject_1$S = __makeTemplateObject$1(["\n width: ", ";\n height: ", ";\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n padding: 13px 20px 16px;\n background-color: ", ";\n box-shadow: ", ";\n\n border: ", ";\n border-radius: 6px;\n box-sizing: border-box;\n text-decoration: none;\n cursor: pointer;\n\n span {\n color: ", ";\n font-family: ", ";\n font-style: normal;\n font-weight: bold;\n font-size: ", ";\n }\n\n :hover {\n opacity: 0.85;\n }\n\n :active {\n box-shadow: none;\n margin-top: ", ";\n height: ", ";\n }\n"], ["\n width: ", ";\n height: ", ";\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n padding: 13px 20px 16px;\n background-color: ", ";\n box-shadow: ", ";\n\n border: ", ";\n border-radius: 6px;\n box-sizing: border-box;\n text-decoration: none;\n cursor: pointer;\n\n span {\n color: ", ";\n font-family: ", ";\n font-style: normal;\n font-weight: bold;\n font-size: ", ";\n }\n\n :hover {\n opacity: 0.85;\n }\n\n :active {\n box-shadow: none;\n margin-top: ", ";\n height: ", ";\n }\n"])), function (_a) {
3458
+ var StyledButton = styled.button(templateObject_1$T || (templateObject_1$T = __makeTemplateObject$1(["\n width: ", ";\n height: ", ";\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n padding: 13px 20px 16px;\n background-color: ", ";\n box-shadow: ", ";\n\n border: ", ";\n border-radius: 6px;\n box-sizing: border-box;\n text-decoration: none;\n cursor: pointer;\n\n span {\n color: ", ";\n font-family: ", ";\n font-style: normal;\n font-weight: bold;\n font-size: ", ";\n }\n\n :hover {\n opacity: 0.85;\n }\n\n :active {\n box-shadow: none;\n margin-top: ", ";\n height: ", ";\n }\n"], ["\n width: ", ";\n height: ", ";\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n padding: 13px 20px 16px;\n background-color: ", ";\n box-shadow: ", ";\n\n border: ", ";\n border-radius: 6px;\n box-sizing: border-box;\n text-decoration: none;\n cursor: pointer;\n\n span {\n color: ", ";\n font-family: ", ";\n font-style: normal;\n font-weight: bold;\n font-size: ", ";\n }\n\n :hover {\n opacity: 0.85;\n }\n\n :active {\n box-shadow: none;\n margin-top: ", ";\n height: ", ";\n }\n"])), function (_a) {
3442
3459
  var fluid = _a.fluid;
3443
3460
  return (fluid ? "100%" : "fit-content");
3444
3461
  }, function (_a) {
@@ -3492,11 +3509,11 @@ var StyledButton = styled.button(templateObject_1$S || (templateObject_1$S = __m
3492
3509
  ? theme.button.medium.heightActive
3493
3510
  : theme.button[size].heightActive;
3494
3511
  });
3495
- var DisabledButton = styled(StyledButton)(templateObject_2$y || (templateObject_2$y = __makeTemplateObject$1(["\n background-color: ", ";\n border: 1px solid ", ";\n box-shadow: none;\n padding: 16px 20px;\n cursor: not-allowed;\n\n span {\n color: ", ";\n }\n\n :active {\n margin-top: 0;\n height: ", ";\n }\n"], ["\n background-color: ", ";\n border: 1px solid ", ";\n box-shadow: none;\n padding: 16px 20px;\n cursor: not-allowed;\n\n span {\n color: ", ";\n }\n\n :active {\n margin-top: 0;\n height: ", ";\n }\n"])), theme.colors.lightGray.dark, theme.colors.lightGray.darker, theme.colors.lightGray.darker, function (_a) {
3512
+ var DisabledButton = styled(StyledButton)(templateObject_2$z || (templateObject_2$z = __makeTemplateObject$1(["\n background-color: ", ";\n border: 1px solid ", ";\n box-shadow: none;\n padding: 16px 20px;\n cursor: not-allowed;\n\n span {\n color: ", ";\n }\n\n :active {\n margin-top: 0;\n height: ", ";\n }\n"], ["\n background-color: ", ";\n border: 1px solid ", ";\n box-shadow: none;\n padding: 16px 20px;\n cursor: not-allowed;\n\n span {\n color: ", ";\n }\n\n :active {\n margin-top: 0;\n height: ", ";\n }\n"])), theme.colors.lightGray.dark, theme.colors.lightGray.darker, theme.colors.lightGray.darker, function (_a) {
3496
3513
  var size = _a.size;
3497
3514
  return !size ? theme.button.medium.height : theme.button[size].height;
3498
3515
  });
3499
- var GhostButton = styled(StyledButton)(templateObject_3$c || (templateObject_3$c = __makeTemplateObject$1(["\n height: ", ";\n padding: 16px 18px;\n\n :active {\n box-shadow: none;\n height: ", ";\n margin-top: ", ";\n margin-bottom: -2.5px;\n }\n"], ["\n height: ", ";\n padding: 16px 18px;\n\n :active {\n box-shadow: none;\n height: ", ";\n margin-top: ", ";\n margin-bottom: -2.5px;\n }\n"])), function (_a) {
3516
+ var GhostButton = styled(StyledButton)(templateObject_3$d || (templateObject_3$d = __makeTemplateObject$1(["\n height: ", ";\n padding: 16px 18px;\n\n :active {\n box-shadow: none;\n height: ", ";\n margin-top: ", ";\n margin-bottom: -2.5px;\n }\n"], ["\n height: ", ";\n padding: 16px 18px;\n\n :active {\n box-shadow: none;\n height: ", ";\n margin-top: ", ";\n margin-bottom: -2.5px;\n }\n"])), function (_a) {
3500
3517
  var size = _a.size;
3501
3518
  return !size
3502
3519
  ? "calc(".concat(theme.button.medium.height, " - 2.5px)")
@@ -3519,7 +3536,7 @@ var LoaderWrapper = styled.div(templateObject_4$8 || (templateObject_4$8 = __mak
3519
3536
  var size = _a.size;
3520
3537
  return (size === "small" ? "3px" : "");
3521
3538
  });
3522
- var templateObject_1$S, templateObject_2$y, templateObject_3$c, templateObject_4$8;
3539
+ var templateObject_1$T, templateObject_2$z, templateObject_3$d, templateObject_4$8;
3523
3540
 
3524
3541
  var Button = forwardRef(function (_a, ref) {
3525
3542
  var label = _a.label, color = _a.color, size = _a.size, fluid = _a.fluid, disabled = _a.disabled, type = _a.type, tabIndex = _a.tabIndex, href = _a.href, asAnchor = _a.asAnchor, props = __rest(_a, ["label", "color", "size", "fluid", "disabled", "type", "tabIndex", "href", "asAnchor"]);
@@ -3547,7 +3564,7 @@ var Button = forwardRef(function (_a, ref) {
3547
3564
  var width = ((_b = buttonRef.current) === null || _b === void 0 ? void 0 : _b.clientWidth) - 40;
3548
3565
  if (dark)
3549
3566
  width = width + 4;
3550
- return (jsx$1(LoaderWrapper, __assign$2({ width: width, size: size }, { children: jsx$1(_default, { size: 10, color: dark
3567
+ return (jsx$1(LoaderWrapper, __assign$2({ width: width, size: size }, { children: jsx$1(_default$1, { size: 10, color: dark
3551
3568
  ? theme.colors.lightGray.darker
3552
3569
  : theme.colors.lightGray.light, speedMultiplier: 0.5 }) })));
3553
3570
  };
@@ -3559,7 +3576,7 @@ var Button = forwardRef(function (_a, ref) {
3559
3576
  return (jsx$1(StyledButton, __assign$2({ color: color, size: size, fluid: fluid, type: type, tabIndex: tabIndex, as: as, href: href, ref: ref ? ref : buttonRef, onClick: onClick }, { children: isLoading ? jsx$1(Loader, {}) : jsx$1("span", { children: label }) })));
3560
3577
  });
3561
3578
 
3562
- var StyledCheckbox = styled.div(templateObject_1$R || (templateObject_1$R = __makeTemplateObject$1(["\n min-height: 25px;\n max-height: 25px;\n min-width: 25px;\n max-width: 25px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 4px;\n border-width: 1px;\n border-style: solid;\n border-color: ", ";\n cursor: ", ";\n background-color: ", ";\n\n svg {\n margin-left: -1px;\n fill: ", ";\n }\n\n input {\n display: none;\n }\n\n :focus {\n outline: 0;\n border-color: ", ";\n box-shadow: ", ";\n }\n"], ["\n min-height: 25px;\n max-height: 25px;\n min-width: 25px;\n max-width: 25px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 4px;\n border-width: 1px;\n border-style: solid;\n border-color: ", ";\n cursor: ", ";\n background-color: ", ";\n\n svg {\n margin-left: -1px;\n fill: ", ";\n }\n\n input {\n display: none;\n }\n\n :focus {\n outline: 0;\n border-color: ", ";\n box-shadow: ", ";\n }\n"])), function (_a) {
3579
+ var StyledCheckbox = styled.div(templateObject_1$S || (templateObject_1$S = __makeTemplateObject$1(["\n min-height: 25px;\n max-height: 25px;\n min-width: 25px;\n max-width: 25px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 4px;\n border-width: 1px;\n border-style: solid;\n border-color: ", ";\n cursor: ", ";\n background-color: ", ";\n\n svg {\n margin-left: -1px;\n fill: ", ";\n }\n\n input {\n display: none;\n }\n\n :focus {\n outline: 0;\n border-color: ", ";\n box-shadow: ", ";\n }\n"], ["\n min-height: 25px;\n max-height: 25px;\n min-width: 25px;\n max-width: 25px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 4px;\n border-width: 1px;\n border-style: solid;\n border-color: ", ";\n cursor: ", ";\n background-color: ", ";\n\n svg {\n margin-left: -1px;\n fill: ", ";\n }\n\n input {\n display: none;\n }\n\n :focus {\n outline: 0;\n border-color: ", ";\n box-shadow: ", ";\n }\n"])), function (_a) {
3563
3580
  var checked = _a.checked, disabled = _a.disabled;
3564
3581
  if (disabled)
3565
3582
  return theme.colors.lightGray.darker;
@@ -3580,7 +3597,7 @@ var StyledCheckbox = styled.div(templateObject_1$R || (templateObject_1$R = __ma
3580
3597
  return theme.colors.green.base;
3581
3598
  return theme.colors.lightGray.darker;
3582
3599
  }, theme.colors.blue.dark, "0 0 0 1px ".concat(theme.colors.blue.dark));
3583
- var templateObject_1$R;
3600
+ var templateObject_1$S;
3584
3601
 
3585
3602
  var Checkbox = function (props) {
3586
3603
  var _a;
@@ -3613,7 +3630,7 @@ var Checkbox = function (props) {
3613
3630
  return (jsxs(StyledCheckbox, __assign$2({ checked: checked, disabled: props.disabled, tabIndex: 0, onClick: toggle, onBlur: props.onBlur, onKeyPress: function (e) { return (e.key === "Enter" ? toggle() : null); }, ref: wrapperRef }, { children: [checked && (jsx$1("svg", __assign$2({ width: 16, height: 12, viewBox: "0 0 16 12", fill: "none" }, { children: jsx$1("path", { d: "M12.61.563l-6.585 6.6L3.439 4.57a1.997 1.997 0 00-3.374.885c-.183.7.026 1.446.546 1.949l4 4.008a1.997 1.997 0 002.828 0l8-8.017a2.007 2.007 0 00-.025-2.809 1.997 1.997 0 00-2.803-.024z" }) }))), jsx$1("input", { type: "checkbox", disabled: !!props.disabled, id: props.id, name: props.name, value: props.value, ref: inputRef })] })));
3614
3631
  };
3615
3632
 
3616
- var Wrapper$a = styled.div(templateObject_1$Q || (templateObject_1$Q = __makeTemplateObject$1(["\n width: ", ";\n height: ", ";\n"], ["\n width: ", ";\n height: ", ";\n"])), function (_a) {
3633
+ var Wrapper$a = styled.div(templateObject_1$R || (templateObject_1$R = __makeTemplateObject$1(["\n width: ", ";\n height: ", ";\n"], ["\n width: ", ";\n height: ", ";\n"])), function (_a) {
3617
3634
  var size = _a.size;
3618
3635
  switch (size) {
3619
3636
  case "small":
@@ -3636,7 +3653,7 @@ var Wrapper$a = styled.div(templateObject_1$Q || (templateObject_1$Q = __makeTem
3636
3653
  return "27px";
3637
3654
  }
3638
3655
  });
3639
- var templateObject_1$Q;
3656
+ var templateObject_1$R;
3640
3657
 
3641
3658
  var parsers = {};
3642
3659
 
@@ -3644,6 +3661,48 @@ var getCountryByLocale$1 = {};
3644
3661
 
3645
3662
  var enums = {};
3646
3663
 
3664
+ var AccountType = {};
3665
+
3666
+ (function (exports) {
3667
+ Object.defineProperty(exports, "__esModule", { value: true });
3668
+ exports.AccountType = void 0;
3669
+ (function (AccountType) {
3670
+ AccountType["STUDENT"] = "student";
3671
+ AccountType["PARENT"] = "parent";
3672
+ AccountType["TUTOR"] = "tutor";
3673
+ })(exports.AccountType || (exports.AccountType = {}));
3674
+
3675
+ }(AccountType));
3676
+
3677
+ var AchievementType = {};
3678
+
3679
+ (function (exports) {
3680
+ Object.defineProperty(exports, "__esModule", { value: true });
3681
+ exports.AchievementType = void 0;
3682
+ (function (AchievementType) {
3683
+ AchievementType["PRACTICE_TIME"] = "practiceTime";
3684
+ AchievementType["PRACTICE_STREAK"] = "practiceStreak";
3685
+ AchievementType["MEDALS"] = "medals";
3686
+ })(exports.AchievementType || (exports.AchievementType = {}));
3687
+
3688
+ }(AchievementType));
3689
+
3690
+ var ChartDataType = {};
3691
+
3692
+ (function (exports) {
3693
+ Object.defineProperty(exports, "__esModule", { value: true });
3694
+ exports.ChartDataType = void 0;
3695
+ (function (ChartDataType) {
3696
+ ChartDataType["PROGRESS"] = "progress";
3697
+ ChartDataType["TIME_PRACTISED"] = "timePractised";
3698
+ ChartDataType["RESULTS"] = "results";
3699
+ ChartDataType["HITS"] = "hits";
3700
+ ChartDataType["KPM"] = "kpm";
3701
+ ChartDataType["ACCURACY"] = "accuracy";
3702
+ })(exports.ChartDataType || (exports.ChartDataType = {}));
3703
+
3704
+ }(ChartDataType));
3705
+
3647
3706
  var Color = {};
3648
3707
 
3649
3708
  (function (exports) {
@@ -3687,6 +3746,69 @@ exports.CourseTranslation = void 0;
3687
3746
 
3688
3747
  }(CourseTranslation));
3689
3748
 
3749
+ var Currency = {};
3750
+
3751
+ (function (exports) {
3752
+ Object.defineProperty(exports, "__esModule", { value: true });
3753
+ exports.Currency = void 0;
3754
+ (function (Currency) {
3755
+ Currency["EUR"] = "EUR";
3756
+ Currency["GBP"] = "GBP";
3757
+ Currency["USD"] = "USD";
3758
+ })(exports.Currency || (exports.Currency = {}));
3759
+
3760
+ }(Currency));
3761
+
3762
+ var ExerciseType = {};
3763
+
3764
+ (function (exports) {
3765
+ Object.defineProperty(exports, "__esModule", { value: true });
3766
+ exports.ExerciseType = void 0;
3767
+ (function (ExerciseType) {
3768
+ ExerciseType["KEYS"] = "keys";
3769
+ ExerciseType["DRILLS"] = "drills";
3770
+ ExerciseType["WORDS"] = "words";
3771
+ ExerciseType["TEXT"] = "text";
3772
+ })(exports.ExerciseType || (exports.ExerciseType = {}));
3773
+
3774
+ }(ExerciseType));
3775
+
3776
+ var HttpStatus = {};
3777
+
3778
+ (function (exports) {
3779
+ Object.defineProperty(exports, "__esModule", { value: true });
3780
+ exports.HttpStatusText = exports.HttpStatusCode = void 0;
3781
+ (function (HttpStatusCode) {
3782
+ // 2xx Success
3783
+ HttpStatusCode[HttpStatusCode["OK"] = 200] = "OK";
3784
+ HttpStatusCode[HttpStatusCode["CREATED"] = 201] = "CREATED";
3785
+ // 4xx Client Errors
3786
+ HttpStatusCode[HttpStatusCode["BAD_REQUEST"] = 400] = "BAD_REQUEST";
3787
+ HttpStatusCode[HttpStatusCode["UNAUTHORIZED"] = 401] = "UNAUTHORIZED";
3788
+ HttpStatusCode[HttpStatusCode["FORBIDDEN"] = 403] = "FORBIDDEN";
3789
+ HttpStatusCode[HttpStatusCode["NOT_FOUND"] = 404] = "NOT_FOUND";
3790
+ HttpStatusCode[HttpStatusCode["CONFLICT"] = 409] = "CONFLICT";
3791
+ // 5xx Server Errors
3792
+ HttpStatusCode[HttpStatusCode["INTERNAL_SERVER_ERROR"] = 500] = "INTERNAL_SERVER_ERROR";
3793
+ HttpStatusCode[HttpStatusCode["NOT_IMPLEMENTED"] = 501] = "NOT_IMPLEMENTED";
3794
+ })(exports.HttpStatusCode || (exports.HttpStatusCode = {}));
3795
+ (function (HttpStatusText) {
3796
+ // 2xx Success
3797
+ HttpStatusText["OK"] = "OK";
3798
+ HttpStatusText["CREATED"] = "Created";
3799
+ // 4xx Client Errors
3800
+ HttpStatusText["BAD_REQUEST"] = "Bad Request";
3801
+ HttpStatusText["UNAUTHORIZED"] = "Unauthorized";
3802
+ HttpStatusText["FORBIDDEN"] = "Forbidden";
3803
+ HttpStatusText["NOT_FOUND"] = "Not Found";
3804
+ HttpStatusText["CONFLICT"] = "Conflict";
3805
+ // 5xx Server Errors
3806
+ HttpStatusText["INTERNAL_SERVER_ERROR"] = "Internal Server Error";
3807
+ HttpStatusText["NOT_IMPLEMENTED"] = "Not Implemented";
3808
+ })(exports.HttpStatusText || (exports.HttpStatusText = {}));
3809
+
3810
+ }(HttpStatus));
3811
+
3690
3812
  var KeyboardLayout = {};
3691
3813
 
3692
3814
  (function (exports) {
@@ -3720,6 +3842,32 @@ exports.Locale = void 0;
3720
3842
 
3721
3843
  }(Locale));
3722
3844
 
3845
+ var Medal$1 = {};
3846
+
3847
+ (function (exports) {
3848
+ Object.defineProperty(exports, "__esModule", { value: true });
3849
+ exports.Medal = void 0;
3850
+ (function (Medal) {
3851
+ Medal["GOLD"] = "gold";
3852
+ Medal["SILVER"] = "silver";
3853
+ Medal["BRONZE"] = "bronze";
3854
+ })(exports.Medal || (exports.Medal = {}));
3855
+
3856
+ }(Medal$1));
3857
+
3858
+ var NodeEnv = {};
3859
+
3860
+ (function (exports) {
3861
+ Object.defineProperty(exports, "__esModule", { value: true });
3862
+ exports.NodeEnv = void 0;
3863
+ (function (NodeEnv) {
3864
+ NodeEnv["TEST"] = "test";
3865
+ NodeEnv["DEVELOPMENT"] = "development";
3866
+ NodeEnv["PRODUCTION"] = "production";
3867
+ })(exports.NodeEnv || (exports.NodeEnv = {}));
3868
+
3869
+ }(NodeEnv));
3870
+
3723
3871
  var Plan = {};
3724
3872
 
3725
3873
  (function (exports) {
@@ -3751,19 +3899,6 @@ exports.TextTopic = void 0;
3751
3899
 
3752
3900
  }(TextTopic));
3753
3901
 
3754
- var Medal$1 = {};
3755
-
3756
- (function (exports) {
3757
- Object.defineProperty(exports, "__esModule", { value: true });
3758
- exports.Medal = void 0;
3759
- (function (Medal) {
3760
- Medal["GOLD"] = "gold";
3761
- Medal["SILVER"] = "silver";
3762
- Medal["BRONZE"] = "bronze";
3763
- })(exports.Medal || (exports.Medal = {}));
3764
-
3765
- }(Medal$1));
3766
-
3767
3902
  (function (exports) {
3768
3903
  var __createBinding = (commonjsGlobal && commonjsGlobal.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3769
3904
  if (k2 === undefined) k2 = k;
@@ -3780,14 +3915,21 @@ var __exportStar = (commonjsGlobal && commonjsGlobal.__exportStar) || function(m
3780
3915
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
3781
3916
  };
3782
3917
  Object.defineProperty(exports, "__esModule", { value: true });
3918
+ __exportStar(AccountType, exports);
3919
+ __exportStar(AchievementType, exports);
3920
+ __exportStar(ChartDataType, exports);
3783
3921
  __exportStar(Color, exports);
3784
3922
  __exportStar(Country, exports);
3785
3923
  __exportStar(CourseTranslation, exports);
3924
+ __exportStar(Currency, exports);
3925
+ __exportStar(ExerciseType, exports);
3926
+ __exportStar(HttpStatus, exports);
3786
3927
  __exportStar(KeyboardLayout, exports);
3787
3928
  __exportStar(Locale, exports);
3929
+ __exportStar(Medal$1, exports);
3930
+ __exportStar(NodeEnv, exports);
3788
3931
  __exportStar(Plan, exports);
3789
3932
  __exportStar(TextTopic, exports);
3790
- __exportStar(Medal$1, exports);
3791
3933
 
3792
3934
  }(enums));
3793
3935
 
@@ -3907,7 +4049,7 @@ var flags = {
3907
4049
  };
3908
4050
  var Flag = function (props) { return (jsx$1(Wrapper$a, __assign$2({}, props, { children: flags[parsers.getCountryCodeByLocale(props.locale)] }))); };
3909
4051
 
3910
- var StyledHeading = styled.span(templateObject_1$P || (templateObject_1$P = __makeTemplateObject$1(["\n font-family: ", ";\n font-size: ", ";\n font-weight: 700;\n font-style: normal;\n line-height: ", ";\n letter-spacing: ", ";\n margin: 0;\n color: ", ";\n text-align: ", ";\n"], ["\n font-family: ", ";\n font-size: ", ";\n font-weight: 700;\n font-style: normal;\n line-height: ", ";\n letter-spacing: ", ";\n margin: 0;\n color: ", ";\n text-align: ", ";\n"])), theme.fonts.heading, function (_a) {
4052
+ var StyledHeading = styled.span(templateObject_1$Q || (templateObject_1$Q = __makeTemplateObject$1(["\n font-family: ", ";\n font-size: ", ";\n font-weight: 700;\n font-style: normal;\n line-height: ", ";\n letter-spacing: ", ";\n margin: 0;\n color: ", ";\n text-align: ", ";\n"], ["\n font-family: ", ";\n font-size: ", ";\n font-weight: 700;\n font-style: normal;\n line-height: ", ";\n letter-spacing: ", ";\n margin: 0;\n color: ", ";\n text-align: ", ";\n"])), theme.fonts.heading, function (_a) {
3911
4053
  var type = _a.type;
3912
4054
  return theme.heading[type].fontSize;
3913
4055
  }, function (_a) {
@@ -3931,14 +4073,14 @@ var StyledHeading = styled.span(templateObject_1$P || (templateObject_1$P = __ma
3931
4073
  var align = _a.align;
3932
4074
  return align;
3933
4075
  });
3934
- var templateObject_1$P;
4076
+ var templateObject_1$Q;
3935
4077
 
3936
4078
  var Heading = function (props) {
3937
4079
  var element = !!props.as ? props.as : props.type;
3938
4080
  return (jsx$1(StyledHeading, __assign$2({}, props, { as: element }, { children: props.children })));
3939
4081
  };
3940
4082
 
3941
- var Wrapper$9 = styled.div(templateObject_1$O || (templateObject_1$O = __makeTemplateObject$1(["\n width: ", ";\n height: ", ";\n\n > svg {\n fill: ", ";\n\n :hover {\n cursor: ", ";\n fill: ", ";\n }\n }\n"], ["\n width: ", ";\n height: ", ";\n\n > svg {\n fill: ", ";\n\n :hover {\n cursor: ", ";\n fill: ", ";\n }\n }\n"])), function (_a) {
4083
+ var Wrapper$9 = styled.div(templateObject_1$P || (templateObject_1$P = __makeTemplateObject$1(["\n width: ", ";\n height: ", ";\n\n > svg {\n fill: ", ";\n\n :hover {\n cursor: ", ";\n fill: ", ";\n }\n }\n"], ["\n width: ", ";\n height: ", ";\n\n > svg {\n fill: ", ";\n\n :hover {\n cursor: ", ";\n fill: ", ";\n }\n }\n"])), function (_a) {
3942
4084
  var size = _a.size;
3943
4085
  return theme.icon[size] || theme.icon.medium;
3944
4086
  }, function (_a) {
@@ -3996,7 +4138,7 @@ var Wrapper$9 = styled.div(templateObject_1$O || (templateObject_1$O = __makeTem
3996
4138
  return theme.colors.lightGray.base;
3997
4139
  }
3998
4140
  });
3999
- var templateObject_1$O;
4141
+ var templateObject_1$P;
4000
4142
 
4001
4143
  var icons = {
4002
4144
  check: (jsx$1("path", { d: "M16.6107 6.5626L10.0247 13.1623L7.43866 10.5709C6.9365 10.0499 6.19289 9.841 5.49363 10.0244C4.79436 10.2078 4.24826 10.7551 4.06523 11.4558C3.8822 12.1565 4.09071 12.9017 4.61063 13.4049L8.61067 17.4132C9.39168 18.1956 10.6577 18.1956 11.4387 17.4132L19.4388 9.3965C20.1967 8.6101 20.1859 7.36009 19.4144 6.58701C18.6429 5.81393 17.3955 5.80307 16.6107 6.5626Z" })),
@@ -4027,10 +4169,11 @@ var icons = {
4027
4169
  thunder: (jsx$1("path", { d: "M20.3 8.7h-6.9l.6-7.6c0-.3-.1-.6-.3-.8-.2-.2-.5-.3-.7-.3-.3 0-.6.2-.7.4L2.9 13.6c-.1.2-.2.4-.2.7 0 .2.1.5.3.6.2.2.4.2.7.2h7.1l-.7 7.8c0 .2 0 .4.2.6.1.2.3.3.5.4l.2.1c.3 0 .6-.2.8-.5L21 10.2c.1-.2.2-.4.2-.7 0-.2-.1-.5-.3-.6-.1-.1-.4-.2-.6-.2z" })),
4028
4170
  fire: (jsx$1("path", { d: "M17.3 9.2c-.7-.6-1.3-1.2-1.8-1.9C12.4 3.3 14 0 14 0 8.3 2.4 7 6.2 7 9c0 0 .1 1.7.8 3.5.2.6-.2 1.2-.8 1.3-.4.1-.8-.2-1-.6-.3-.7-.8-1.8-.6-2.6-.9 1.2-1.5 2.8-1.7 4.4-.3 4.2 2.6 8 6.7 8.8 4.8 1 9.3-2.3 10-7.1.3-2.9-.9-5.7-3.1-7.5z" })),
4029
4171
  control: (jsx$1("path", { d: "M1.4 5.3h2.4c.5 1.6 2 2.8 3.8 2.8 1.8 0 3.3-1.2 3.8-2.8h11.2c.7 0 1.2-.5 1.2-1.2s-.5-1.2-1.2-1.2H11.5C10.9 1.2 9.4 0 7.6 0 5.8 0 4.3 1.2 3.8 2.8H1.4C.7 2.8.2 3.3.2 4s.5 1.3 1.2 1.3zm6.2-2.8c.9 0 1.6.7 1.6 1.6s-.7 1.6-1.6 1.6S6 5 6 4.1c0-.9.7-1.6 1.6-1.6zM22.6 10.8h-2.4c-.5-1.6-2-2.8-3.8-2.8-1.8 0-3.3 1.2-3.8 2.8H1.4c-.7 0-1.2.5-1.2 1.2s.5 1.2 1.2 1.2h11.2c.5 1.6 2 2.8 3.8 2.8 1.8 0 3.3-1.2 3.8-2.8h2.4c.7 0 1.2-.5 1.2-1.2.1-.7-.5-1.2-1.2-1.2zm-6.2 2.8c-.9 0-1.6-.7-1.6-1.6 0-.9.7-1.6 1.6-1.6.9 0 1.6.7 1.6 1.6 0 .9-.7 1.6-1.6 1.6zM22.6 18.7H11.5c-.5-1.6-2-2.8-3.8-2.8-1.8 0-3.3 1.2-3.8 2.8H1.4c-.7 0-1.2.5-1.2 1.2s.5 1.2 1.2 1.2h2.4c.5 1.6 2 2.8 3.8 2.8 1.8 0 3.3-1.2 3.8-2.8h11.2c.7 0 1.2-.5 1.2-1.2s-.5-1.2-1.2-1.2zm-15 2.8c-.9 0-1.6-.7-1.6-1.6 0-.9.7-1.6 1.6-1.6.9 0 1.6.7 1.6 1.6 0 .9-.7 1.6-1.6 1.6z" })),
4172
+ file: (jsxs(Fragment$1, { children: [jsx$1("path", { d: "M6 2.75C4.75736 2.75 3.75 3.75736 3.75 5V19C3.75 20.2426 4.75736 21.25 6 21.25H18C19.2426 21.25 20.25 20.2426 20.25 19V9.08615C20.25 8.55979 20.0655 8.05009 19.7285 7.64574L16.3234 3.55959C15.8959 3.0466 15.2626 2.75 14.5949 2.75H6ZM2.25 5C2.25 2.92893 3.92893 1.25 6 1.25H14.5949C15.7078 1.25 16.7632 1.74434 17.4757 2.59931L20.8808 6.68546C21.4424 7.35939 21.75 8.20889 21.75 9.08615V19C21.75 21.0711 20.0711 22.75 18 22.75H6C3.92893 22.75 2.25 21.0711 2.25 19V5Z" }), jsx$1("path", { d: "M15 1.75C15.4142 1.75 15.75 2.08579 15.75 2.5V6C15.75 7.24264 16.7574 8.25 18 8.25H20.5C20.9142 8.25 21.25 8.58579 21.25 9C21.25 9.41421 20.9142 9.75 20.5 9.75H18C15.9289 9.75 14.25 8.07107 14.25 6V2.5C14.25 2.08579 14.5858 1.75 15 1.75Z" })] })),
4030
4173
  };
4031
4174
  var Icon = function (props) { return (jsx$1(Wrapper$9, __assign$2({}, props, { children: jsx$1("svg", __assign$2({ viewBox: "0 0 24 24", fill: "none" }, { children: icons[props.type] })) }))); };
4032
4175
 
4033
- var Wrapper$8 = styled.div(templateObject_1$N || (templateObject_1$N = __makeTemplateObject$1(["\n > svg {\n height: ", ";\n }\n"], ["\n > svg {\n height: ", ";\n }\n"])), function (_a) {
4176
+ var Wrapper$8 = styled.div(templateObject_1$O || (templateObject_1$O = __makeTemplateObject$1(["\n > svg {\n height: ", ";\n }\n"], ["\n > svg {\n height: ", ";\n }\n"])), function (_a) {
4034
4177
  var size = _a.size;
4035
4178
  switch (size) {
4036
4179
  case "tiny":
@@ -4044,7 +4187,7 @@ var Wrapper$8 = styled.div(templateObject_1$N || (templateObject_1$N = __makeTem
4044
4187
  return "118px";
4045
4188
  }
4046
4189
  });
4047
- var templateObject_1$N;
4190
+ var templateObject_1$O;
4048
4191
 
4049
4192
  var illustrations = {
4050
4193
  keyboard: (jsxs("svg", __assign$2({ viewBox: "0 0 32.9 20.8" }, { children: [jsx$1("path", { d: "M31.5 1H1.4C.6 1 0 1.6 0 2.4v17.1c0 .8.6 1.4 1.4 1.4h30.1c.8 0 1.4-.6 1.4-1.4V2.4c0-.8-.6-1.4-1.4-1.4z", fill: "#829190" }), jsx$1("path", { d: "M31.5 0H1.4C.6 0 0 .6 0 1.4v17.1c0 .8.6 1.4 1.4 1.4h30.1c.8 0 1.4-.6 1.4-1.4V1.4c0-.8-.6-1.4-1.4-1.4z", fill: "#99adac" }), jsx$1("path", { d: "M27.1 14.2H5.7c-.3 0-.5.2-.5.5v3.4c0 .3.2.5.5.5h21.4c.3 0 .5-.2.5-.5v-3.4c-.1-.3-.3-.5-.5-.5zM8.4 8.6H2.1c-.3 0-.5.2-.5.4v3.4c0 .3.2.5.5.5h6.3c.3 0 .5-.2.5-.5V9c0-.2-.2-.4-.5-.4zM13.8 8.6h-3.3c-.3 0-.5.2-.5.4v3.4c0 .3.2.5.5.5h3.3c.3 0 .5-.2.5-.5V9c-.1-.2-.3-.4-.5-.4zM5.4 3.3H2.1c-.3 0-.5.2-.5.5v3.4c0 .3.2.5.5.5h3.3c.3 0 .5-.2.5-.5V3.8c-.1-.3-.3-.5-.5-.5zM10.5 3.3H7.2c-.3 0-.5.2-.5.5v3.4c0 .3.2.5.5.5h3.3c.3 0 .5-.2.5-.5V3.8c-.1-.3-.3-.5-.5-.5zM15.5 3.3h-3.3c-.3 0-.5.2-.5.5v3.4c0 .3.2.5.5.5h3.3c.3 0 .5-.2.5-.5V3.8c0-.3-.2-.5-.5-.5zM20.6 3.3h-3.3c-.3 0-.5.2-.5.5v3.4c0 .3.2.5.5.5h3.3c.3 0 .5-.2.5-.5V3.8c0-.3-.2-.5-.5-.5zM25.7 3.3h-3.3c-.3 0-.5.2-.5.5v3.4c0 .3.2.5.5.5h3.3c.3 0 .5-.2.5-.5V3.8c0-.3-.2-.5-.5-.5zM30.8 3.3h-3.3c-.3 0-.5.2-.5.5v3.4c0 .3.2.5.5.5h3.3c.3 0 .5-.2.5-.5V3.8c0-.3-.2-.5-.5-.5zM18.9 8.6h-3.3c-.3 0-.5.2-.5.5v3.4c0 .3.2.5.5.5h3.3c.3 0 .5-.2.5-.5V9c-.1-.2-.3-.4-.5-.4zM23.9 8.6h-3.3c-.3 0-.5.2-.5.5v3.4c0 .3.2.5.5.5h3.3c.3 0 .5-.2.5-.5V9.1c0-.3-.2-.5-.5-.5zM30.7 8.6h-4.9c-.3 0-.5.2-.5.5v3.4c0 .3.2.5.5.5h4.9c.3 0 .5-.2.5-.5V9.1c0-.3-.2-.5-.5-.5z", fill: "#899a99" }), jsx$1("path", { d: "M27.1 13.7H5.7c-.3 0-.5.2-.5.5v3.4c0 .3.2.5.5.5h21.4c.3 0 .5-.2.5-.5v-3.4c-.1-.3-.3-.5-.5-.5zM8.4 8.1H2.1c-.3 0-.5.2-.5.5V12c0 .3.2.5.5.5h6.3c.3 0 .5-.2.5-.5V8.6c0-.3-.2-.5-.5-.5zM13.8 8.1h-3.3c-.3 0-.5.2-.5.5V12c0 .3.2.5.5.5h3.3c.3 0 .5-.2.5-.5V8.6c-.1-.3-.3-.5-.5-.5z", fill: "#eeeded" }), jsx$1("path", { d: "M5.4 2.8H2.1c-.3 0-.5.2-.5.5v3.4c0 .3.2.5.5.5h3.3c.3 0 .5-.2.5-.5V3.3c-.1-.3-.3-.5-.5-.5z", fill: "#e62944" }), jsx$1("path", { d: "M10.5 2.8H7.2c-.3 0-.5.2-.5.5v3.4c0 .3.2.5.5.5h3.3c.3 0 .5-.2.5-.5V3.3c-.1-.3-.3-.5-.5-.5zM15.5 2.8h-3.3c-.3 0-.5.2-.5.5v3.4c0 .3.2.5.5.5h3.3c.3 0 .5-.2.5-.5V3.3c0-.3-.2-.5-.5-.5zM20.6 2.8h-3.3c-.3 0-.5.2-.5.5v3.4c0 .3.2.5.5.5h3.3c.3 0 .5-.2.5-.5V3.3c0-.3-.2-.5-.5-.5zM25.7 2.8h-3.3c-.2 0-.4.2-.4.5v3.4c0 .3.2.5.5.5h3.3c.3 0 .5-.2.5-.5V3.3c-.1-.3-.3-.5-.6-.5zM30.8 2.8h-3.3c-.3 0-.5.2-.5.5v3.4c0 .3.2.5.5.5h3.3c.3 0 .5-.2.5-.5V3.3c0-.3-.2-.5-.5-.5zM18.9 8.1h-3.3c-.3 0-.5.2-.5.5V12c0 .3.2.5.5.5h3.3c.3 0 .5-.2.5-.5V8.6c-.1-.3-.3-.5-.5-.5zM23.9 8.1h-3.3c-.3 0-.5.2-.5.5V12c0 .3.2.5.5.5h3.3c.3 0 .5-.2.5-.5V8.6c0-.3-.2-.5-.5-.5zM30.7 8.1h-4.9c-.3 0-.5.2-.5.5V12c0 .3.2.5.5.5h4.9c.3 0 .5-.2.5-.5V8.6c0-.3-.2-.5-.5-.5z", fill: "#eeeded" })] }))),
@@ -4065,7 +4208,7 @@ var illustrations = {
4065
4208
  };
4066
4209
  var Illustration = function (props) { return (jsx$1(Wrapper$8, __assign$2({}, props, { children: illustrations[props.type] }))); };
4067
4210
 
4068
- var StyledParagraph = styled.p(templateObject_1$M || (templateObject_1$M = __makeTemplateObject$1(["\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n font-style: normal;\n line-height: ", ";\n color: ", ";\n margin: 0;\n text-align: ", ";\n text-transform: ", ";\n"], ["\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n font-style: normal;\n line-height: ", ";\n color: ", ";\n margin: 0;\n text-align: ", ";\n text-transform: ", ";\n"])), theme.fonts.paragraph, function (_a) {
4211
+ var StyledParagraph = styled.p(templateObject_1$N || (templateObject_1$N = __makeTemplateObject$1(["\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n font-style: normal;\n line-height: ", ";\n color: ", ";\n margin: 0;\n text-align: ", ";\n text-transform: ", ";\n"], ["\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n font-style: normal;\n line-height: ", ";\n color: ", ";\n margin: 0;\n text-align: ", ";\n text-transform: ", ";\n"])), theme.fonts.paragraph, function (_a) {
4069
4212
  var size = _a.size;
4070
4213
  return size ? theme.paragraph[size].fontSize : theme.paragraph.medium.fontSize;
4071
4214
  }, function (_a) {
@@ -4100,17 +4243,17 @@ var StyledParagraph = styled.p(templateObject_1$M || (templateObject_1$M = __mak
4100
4243
  var transform = _a.transform;
4101
4244
  return transform;
4102
4245
  });
4103
- var templateObject_1$M;
4246
+ var templateObject_1$N;
4104
4247
 
4105
- var Container$m = styled.div(templateObject_1$L || (templateObject_1$L = __makeTemplateObject$1(["\n width: 100%;\n"], ["\n width: 100%;\n"])));
4106
- var InputIconWrapper = styled.div(templateObject_2$x || (templateObject_2$x = __makeTemplateObject$1(["\n position: relative;\n width: 100%;\n\n input {\n padding-right: 43px;\n }\n\n input[type=\"date\"] {\n color: ", ";\n }\n\n div {\n position: absolute;\n height: 24px;\n right: 12px;\n top: 14px;\n }\n\n svg {\n cursor: ", ";\n }\n"], ["\n position: relative;\n width: 100%;\n\n input {\n padding-right: 43px;\n }\n\n input[type=\"date\"] {\n color: ", ";\n }\n\n div {\n position: absolute;\n height: 24px;\n right: 12px;\n top: 14px;\n }\n\n svg {\n cursor: ", ";\n }\n"])), function (_a) {
4248
+ var Container$n = styled.div(templateObject_1$M || (templateObject_1$M = __makeTemplateObject$1(["\n width: 100%;\n"], ["\n width: 100%;\n"])));
4249
+ var InputIconWrapper = styled.div(templateObject_2$y || (templateObject_2$y = __makeTemplateObject$1(["\n position: relative;\n width: 100%;\n\n input {\n padding-right: 43px;\n }\n\n input[type=\"date\"] {\n color: ", ";\n }\n\n div {\n position: absolute;\n height: 24px;\n right: 12px;\n top: 14px;\n }\n\n svg {\n cursor: ", ";\n }\n"], ["\n position: relative;\n width: 100%;\n\n input {\n padding-right: 43px;\n }\n\n input[type=\"date\"] {\n color: ", ";\n }\n\n div {\n position: absolute;\n height: 24px;\n right: 12px;\n top: 14px;\n }\n\n svg {\n cursor: ", ";\n }\n"])), function (_a) {
4107
4250
  var isChanged = _a.isChanged;
4108
4251
  return !isChanged ? theme.colors.lightGray.darker : "";
4109
4252
  }, function (_a) {
4110
4253
  var disabled = _a.disabled;
4111
4254
  return (disabled ? "not-allowed" : "pointer");
4112
4255
  });
4113
- var StyledInput = styled.input(templateObject_3$b || (templateObject_3$b = __makeTemplateObject$1(["\n width: 100%;\n min-width: 228px;\n height: 50px;\n background-color: ", ";\n border-width: 1px;\n border-style: solid;\n border-color: ", ";\n box-sizing: border-box;\n border-radius: 4px;\n padding: 13px 15px;\n cursor: ", ";\n font-family: ", ";\n font-size: ", ";\n font-weight: 500;\n font-style: normal;\n line-height: ", ";\n color: ", ";\n\n ::placeholder {\n font-family: ", ";\n font-size: ", ";\n font-weight: 500;\n font-style: normal;\n line-height: ", ";\n color: ", ";\n }\n\n ::-webkit-calendar-picker-indicator {\n display: none;\n }\n\n :focus {\n outline: 0;\n border-color: ", ";\n box-shadow: ", ";\n }\n"], ["\n width: 100%;\n min-width: 228px;\n height: 50px;\n background-color: ", ";\n border-width: 1px;\n border-style: solid;\n border-color: ", ";\n box-sizing: border-box;\n border-radius: 4px;\n padding: 13px 15px;\n cursor: ", ";\n font-family: ", ";\n font-size: ", ";\n font-weight: 500;\n font-style: normal;\n line-height: ", ";\n color: ", ";\n\n ::placeholder {\n font-family: ", ";\n font-size: ", ";\n font-weight: 500;\n font-style: normal;\n line-height: ", ";\n color: ", ";\n }\n\n ::-webkit-calendar-picker-indicator {\n display: none;\n }\n\n :focus {\n outline: 0;\n border-color: ", ";\n box-shadow: ", ";\n }\n"])), function (_a) {
4256
+ var StyledInput = styled.input(templateObject_3$c || (templateObject_3$c = __makeTemplateObject$1(["\n width: 100%;\n min-width: 228px;\n height: 50px;\n background-color: ", ";\n border-width: 1px;\n border-style: solid;\n border-color: ", ";\n box-sizing: border-box;\n border-radius: 4px;\n padding: 13px 15px;\n cursor: ", ";\n font-family: ", ";\n font-size: ", ";\n font-weight: 500;\n font-style: normal;\n line-height: ", ";\n color: ", ";\n\n ::placeholder {\n font-family: ", ";\n font-size: ", ";\n font-weight: 500;\n font-style: normal;\n line-height: ", ";\n color: ", ";\n }\n\n ::-webkit-calendar-picker-indicator {\n display: none;\n }\n\n :focus {\n outline: 0;\n border-color: ", ";\n box-shadow: ", ";\n }\n"], ["\n width: 100%;\n min-width: 228px;\n height: 50px;\n background-color: ", ";\n border-width: 1px;\n border-style: solid;\n border-color: ", ";\n box-sizing: border-box;\n border-radius: 4px;\n padding: 13px 15px;\n cursor: ", ";\n font-family: ", ";\n font-size: ", ";\n font-weight: 500;\n font-style: normal;\n line-height: ", ";\n color: ", ";\n\n ::placeholder {\n font-family: ", ";\n font-size: ", ";\n font-weight: 500;\n font-style: normal;\n line-height: ", ";\n color: ", ";\n }\n\n ::-webkit-calendar-picker-indicator {\n display: none;\n }\n\n :focus {\n outline: 0;\n border-color: ", ";\n box-shadow: ", ";\n }\n"])), function (_a) {
4114
4257
  var disabled = _a.disabled;
4115
4258
  return disabled ? theme.colors.lightGray.dark : theme.colors.lightGray.light;
4116
4259
  }, function (_a) {
@@ -4129,7 +4272,7 @@ var Helper = styled(StyledParagraph)(templateObject_6$3 || (templateObject_6$3 =
4129
4272
  var isOk = _a.isOk;
4130
4273
  return isOk ? theme.colors.green.base : theme.colors.darkGray.light;
4131
4274
  }, fadeIn);
4132
- var templateObject_1$L, templateObject_2$x, templateObject_3$b, templateObject_4$7, templateObject_5$3, templateObject_6$3;
4275
+ var templateObject_1$M, templateObject_2$y, templateObject_3$c, templateObject_4$7, templateObject_5$3, templateObject_6$3;
4133
4276
 
4134
4277
  var expressions = {};
4135
4278
 
@@ -4225,24 +4368,30 @@ __exportStar(isStrongPassword$1, exports);
4225
4368
  }(expressions));
4226
4369
 
4227
4370
  var password_helper_capital_letter = "Minimaal 1 hoofdletter";
4228
- var password_helper_number = "Minimaal 1 getal";
4371
+ var password_helper_number = "Minimaal 1 cijfer";
4229
4372
  var password_helper_special_character = "Minimaal 1 leesteken";
4230
4373
  var password_helper_password_length = "Minimaal 8 karakters";
4374
+ var or = "of";
4231
4375
  var nl_NL = {
4232
4376
  password_helper_capital_letter: password_helper_capital_letter,
4233
4377
  password_helper_number: password_helper_number,
4234
4378
  password_helper_special_character: password_helper_special_character,
4235
- password_helper_password_length: password_helper_password_length
4236
- };
4237
-
4238
- var translations = {
4239
- "nl-NL": nl_NL,
4240
- "nl-BE": nl_NL,
4241
- // "en-GB": en_GB,
4242
- // "fr-FR": fr_FR,
4243
- // "fr-BE": fr_FR,
4244
- // "de-DE": de_DE,
4245
- };
4379
+ password_helper_password_length: password_helper_password_length,
4380
+ "Drag file(s) here...": "Bestand(en) hierheen slepen...",
4381
+ or: or,
4382
+ "Select file(s)": "Bestand(en) kiezen",
4383
+ "Upload file(s)...": "Bestand(en) uploaden...",
4384
+ "File type not allowed": "Bestandstype niet toegestaan"
4385
+ };
4386
+
4387
+ var _a;
4388
+ // import en_GB from "./en-gb.json";
4389
+ // import fr_FR from "./fr-fr.json";
4390
+ // import de_DE from "./de-de.json";
4391
+ var translations = (_a = {},
4392
+ _a[enums.Locale.NL_NL] = nl_NL,
4393
+ _a[enums.Locale.NL_BE] = nl_NL,
4394
+ _a);
4246
4395
 
4247
4396
  var PasswordInput = function (props) {
4248
4397
  var _a = useState(props.defaultValue || ""), value = _a[0], setValue = _a[1];
@@ -4260,7 +4409,7 @@ var PasswordInput = function (props) {
4260
4409
  if (props.onKeyPress)
4261
4410
  props.onKeyPress(e);
4262
4411
  };
4263
- return (jsxs(Container$m, { children: [jsxs(InputIconWrapper, __assign$2({ disabled: props.disabled }, { children: [jsx$1(Icon, { type: isVisible ? "eyeInvisible" : "eye", color: "gray", size: "small", onClick: toggle }), jsx$1(StyledInput, __assign$2({ type: isVisible ? "text" : "password" }, props, { onChange: onChange, onKeyPress: onKeyPress }))] })), props.helperLocale && value.length ? (jsxs(HelperContainer, { children: [jsxs(Helper, __assign$2({ isOk: expressions.hasCapitalLetter(value) }, { children: ["\u2022 ", translations[props.helperLocale].password_helper_capital_letter] })), jsxs(Helper, __assign$2({ isOk: expressions.hasNumber(value) }, { children: ["\u2022 ", translations[props.helperLocale].password_helper_number] })), jsxs(Helper, __assign$2({ isOk: expressions.hasSpecialCharacter(value) }, { children: ["\u2022 ", translations[props.helperLocale].password_helper_special_character] })), jsxs(Helper, __assign$2({ isOk: value.length >= 8 }, { children: ["\u2022 ", translations[props.helperLocale].password_helper_password_length] }))] })) : null] }));
4412
+ return (jsxs(Container$n, { children: [jsxs(InputIconWrapper, __assign$2({ disabled: props.disabled }, { children: [jsx$1(Icon, { type: isVisible ? "eyeInvisible" : "eye", color: "gray", size: "small", onClick: toggle }), jsx$1(StyledInput, __assign$2({ type: isVisible ? "text" : "password" }, props, { onChange: onChange, onKeyPress: onKeyPress }))] })), props.helperLocale && value.length ? (jsxs(HelperContainer, { children: [jsxs(Helper, __assign$2({ isOk: expressions.hasCapitalLetter(value) }, { children: ["\u2022 ", translations[props.helperLocale].password_helper_capital_letter] })), jsxs(Helper, __assign$2({ isOk: expressions.hasNumber(value) }, { children: ["\u2022 ", translations[props.helperLocale].password_helper_number] })), jsxs(Helper, __assign$2({ isOk: expressions.hasSpecialCharacter(value) }, { children: ["\u2022 ", translations[props.helperLocale].password_helper_special_character] })), jsxs(Helper, __assign$2({ isOk: value.length >= 8 }, { children: ["\u2022 ", translations[props.helperLocale].password_helper_password_length] }))] })) : null] }));
4264
4413
  };
4265
4414
 
4266
4415
  function requiredArgs(required, args) {
@@ -4594,7 +4743,7 @@ Input.Date = DateInput;
4594
4743
 
4595
4744
  var Logo = function (props) { return (jsxs("svg", __assign$2({ width: 396, height: 66, viewBox: "0 0 662.8 118.1", fill: "none", xmlSpace: "preserve" }, props, { children: [jsxs("g", { children: [jsx$1("path", { d: "M61.6 23.5c-.4-.5-.9-1.1-1.3-1.5l-4.9-4.8L42 4c-1.3-1.3-2.8-2.3-4.5-3-1.7-.7-3.5-1-5.3-1-1.8 0-3.6.4-5.3 1-1.7.7-3.2 1.7-4.5 3L4.1 22C1.5 24.6 0 28 0 31.7c0 3.6 1.5 7.1 4.1 9.7l18.3 18c2.6 2.6 6.2 4 9.8 4 3.7 0 7.2-1.4 9.8-4l13.4-13.2-4.9-4.8c-.5-.5-.9-1-1.3-1.5L35.7 53.1c-.5.5-1 .8-1.6 1.1-.6.2-1.3.4-1.9.4-.7 0-1.3-.1-1.9-.4-.6-.2-1.2-.6-1.6-1.1l-18.3-18c-.9-.9-1.5-2.2-1.5-3.5 0-1.3.5-2.5 1.5-3.5l18.3-18c.5-.5 1-.8 1.6-1.1.6-.2 1.3-.4 1.9-.4.7 0 1.3.1 1.9.4.6.2 1.2.6 1.6 1.1l13.5 13.3 4.8 4.7c.5.4.8 1 1.1 1.6.2.6.4 1.2.4 1.9v.1c0 1.3.5 2.5 1.5 3.4l4.8 4.7c1.8-2.4 2.7-5.2 2.7-8.1-.1-3-1.1-5.8-2.9-8.2z", fill: "#e62743" }), jsx$1("path", { d: "M153.3 22L135 4c-1.3-1.3-2.8-2.3-4.5-3-1.7-.7-3.5-1-5.3-1-1.8 0-3.6.4-5.3 1-1.7.7-3.2 1.7-4.5 3L102 17.2 97.1 22c-.5.5-.9 1-1.3 1.5-1.8 2.4-2.8 5.2-2.8 8.2 0 2.9 1 5.8 2.7 8.1l4.8-4.7c.9-.9 1.4-2.1 1.5-3.4 0-.6.1-1.3.4-1.9.2-.6.6-1.1 1.1-1.6l4.8-4.7 13.5-13.3c.5-.5 1-.8 1.6-1.1.6-.2 1.2-.4 1.9-.4s1.3.1 1.9.4c.6.2 1.1.6 1.6 1.1l18.3 18c.5.5.8 1 1.1 1.6.3.6.4 1.2.4 1.9 0 .6-.1 1.3-.4 1.9-.3.6-.6 1.1-1.1 1.6l-18.3 18c-.5.5-1 .8-1.6 1.1-.6.2-1.2.4-1.9.4s-1.3-.1-1.9-.4c-.6-.2-1.1-.6-1.6-1.1l-13.5-13.3c-.4.5-.8 1.1-1.3 1.5l-4.9 4.8 13.4 13.2c1.3 1.3 2.8 2.3 4.5 3 1.7.7 3.5 1 5.3 1 1.8 0 3.6-.4 5.3-1 1.7-.7 3.2-1.7 4.5-3l18.3-18c1.3-1.3 2.3-2.8 3-4.5.7-1.7 1.1-3.5 1.1-5.3 0-1.8-.4-3.6-1.1-5.3-.8-1.5-1.8-3-3.1-4.3z", fill: "#53b476" }), jsx$1("path", { d: "M61.9 23.3l-.3.3c-.4-.5-.9-1.1-1.3-1.5l-4.9-4.8L68.8 4c1.3-1.3 2.8-2.3 4.5-3 1.7-.7 3.5-1 5.3-1s3.6.4 5.3 1c1.7.7 3.2 1.7 4.5 3l13.4 13.1-4.7 4.9c-.5.5-.9 1-1.3 1.5L82.2 10.2c-.5-.5-1-.8-1.6-1.1-.6-.2-1.3-.4-1.9-.4-.7 0-1.3.1-1.9.4-.6.2-1.2.6-1.6 1.1L61.9 23.3zm41.5 4.9l4.8-4.7c1.8 2.4 2.7 5.2 2.7 8.2 0 2.9-1 5.8-2.7 8.2-.4.5-.8 1.1-1.3 1.5l-4.9 4.8-13.5 13.2c-2.6 2.6-6.2 4-9.8 4s-7.2-1.4-9.8-4L55.4 46.1l-4.9-4.8c-.5-.5-.9-1-1.3-1.5-1.8-2.4-2.7-5.2-2.7-8.1 0-2.9 1-5.8 2.7-8.1l4.8 4.7c.5.4.8 1 1.1 1.6.2.6.4 1.2.4 1.9v.1c0 1.3.5 2.5 1.5 3.4l4.8 4.7 13.5 13.3c.5.5 1 .8 1.6 1.1s1.3.4 1.9.4 1.3-.1 1.9-.4 1.2-.6 1.6-1.1L95.8 40l4.8-4.7c.9-.9 1.4-2.1 1.5-3.4 0-.6.1-1.3.4-1.9 0-.8.4-1.3.9-1.8z", fillRule: "evenodd", clipRule: "evenodd", fill: "#ffd800" }), jsx$1("path", { d: "M130 76.6l-18.3-18c-2.6-2.6-6.2-4-9.8-4-3.7 0-7.2 1.4-9.8 4L78.7 71.9l-4.9 4.8c-.5.5-.9 1-1.3 1.5-1.8 2.4-2.7 5.2-2.7 8.1 0 2.9 1 5.8 2.7 8.1l4.8-4.7c.9-.9 1.4-2.1 1.5-3.4 0-1.3.5-2.5 1.5-3.4l4.8-4.7 13.5-13.3c.9-.9 2.2-1.4 3.5-1.4 1.3 0 2.6.5 3.5 1.4l18.3 18c.9.9 1.5 2.2 1.5 3.5 0 1.3-.5 2.5-1.5 3.5l-18.3 18c-.9.9-2.2 1.4-3.5 1.4-1.3 0-2.6-.5-3.5-1.4L84.9 94.5c-.4.6-.8 1.1-1.3 1.5l-4.9 4.8L92.1 114c2.6 2.6 6.2 4 9.8 4 3.7 0 7.2-1.4 9.8-4L130 96c1.3-1.3 2.3-2.8 3-4.5.7-1.7 1.1-3.5 1.1-5.3 0-1.8-.4-3.6-1.1-5.3-.6-1.5-1.7-3-3-4.3z", fill: "#8c5ca2" }), jsx$1("path", { d: "M84.9 78.2l-4.8 4.7c-.9.9-1.4 2.1-1.5 3.4 0 1.3-.5 2.5-1.5 3.4l-4.8 4.7-13.5 13.3c-.9.9-2.2 1.4-3.5 1.4s-2.6-.5-3.5-1.4l-18.3-18c-.9-.9-1.4-2.2-1.4-3.5s.5-2.5 1.4-3.5l18.3-18c.9-.9 2.2-1.4 3.5-1.4s2.6.5 3.5 1.4L72.3 78c.4-.5.8-1.1 1.3-1.5l4.9-4.8-13.3-13c-2.6-2.6-6.2-4-9.8-4-3.7 0-7.2 1.4-9.8 4l-18.3 18c-2.6 2.6-4.1 6.1-4.1 9.7s1.5 7.1 4.1 9.7l18.3 18c2.6 2.6 6.2 4 9.8 4 3.7 0 7.2-1.4 9.8-4l13.4-13.2 4.9-4.8c.5-.5.9-1 1.3-1.5 1.8-2.4 2.7-5.2 2.7-8.1.1-3.1-.9-5.9-2.6-8.3z", fill: "#3da9e1" })] }), jsxs("g", __assign$2({ fill: "#23292f" }, { children: [jsx$1("path", { d: "M236.6 21.5c-1.1-1-2.4-1.5-3.9-1.5h-40.2c-1.6 0-2.9.5-3.9 1.4-1.1.9-1.6 2.2-1.6 3.8 0 1.6.5 2.8 1.6 3.8s2.4 1.5 3.9 1.5h14.2V78c0 1.6.5 2.9 1.6 3.9 1.1 1.1 2.5 1.6 4.2 1.6 1.8 0 3.2-.5 4.3-1.6 1.1-1.1 1.7-2.4 1.7-3.9V30.4h14.2c1.6 0 2.9-.5 3.9-1.4 1.1-.9 1.6-2.2 1.6-3.8 0-1.5-.5-2.8-1.6-3.7z" }), jsx$1("path", { d: "M270.6 36.6c-1-1.1-2.3-1.6-3.9-1.6s-2.9.5-3.9 1.6-1.5 2.4-1.5 3.9v23.2c0 2.3-.4 4.2-1.2 5.8-.8 1.6-1.9 2.8-3.4 3.6-1.5.8-3.2 1.2-5.3 1.2-3.1 0-5.5-.8-7.2-2.4-1.7-1.6-2.6-4.4-2.6-8.3V40.5c0-1.6-.5-2.9-1.5-3.9-1-1.1-2.3-1.6-3.9-1.6s-2.9.5-3.9 1.6-1.5 2.4-1.5 3.9V67c0 3.4.7 6.4 2 9 1.3 2.6 3.2 4.7 5.6 6.2 2.4 1.5 5.2 2.2 8.4 2.2 2.7 0 5.1-.3 7.3-1 2.1-.7 3.9-1.6 5.5-2.9.7-.6 1.3-1.3 1.9-2v1c0 3.1-.5 5.5-1.4 7.3-.9 1.8-2.3 3.1-4.2 3.8-1.8.8-4.2 1.1-6.9 1.1-2.1 0-3.9-.3-5.4-1-1.6-.6-2.8-1.1-3.8-1.4-1.3-.5-2.6-.4-3.8.2-1.2.6-2.1 1.8-2.6 3.6-.4 1.3-.3 2.6.4 3.8.7 1.2 1.9 2.2 3.8 2.9 1.4.6 3.2 1.1 5.3 1.4 2.2.3 4.2.5 6.2.5 4.4 0 8.3-.7 11.8-2.2 3.5-1.4 6.3-3.8 8.4-7.1 2.1-3.3 3.1-7.7 3.1-13.3V40.5c-.3-1.6-.8-2.9-1.8-3.9zM327.5 46.1c-2-3.7-4.6-6.7-8-8.8-3.4-2.1-7.1-3.2-11.4-3.2-2.1 0-4.1.4-6 1.1-1.9.7-3.6 1.6-5 2.8-1.3 1-2.4 2-3.2 3.1v-.5c0-1.6-.5-2.9-1.5-3.9-1-1.1-2.3-1.6-3.9-1.6s-2.9.5-3.9 1.6-1.5 2.4-1.5 3.9v55.6c0 1.6.5 3 1.5 4s2.3 1.5 3.9 1.5 2.9-.5 3.9-1.6 1.5-2.4 1.5-3.9V78.3c.6.6 1.4 1.3 2.2 1.9 1.6 1.2 3.5 2.2 5.6 3 2.1.8 4.4 1.2 6.8 1.2 4.1 0 7.8-1.1 11.1-3.2s5.9-5.1 7.9-8.9c2-3.8 2.9-8.1 2.9-13.1s-1-9.3-2.9-13.1zm-9.2 20.8c-1.1 2.3-2.7 4.2-4.6 5.5-2 1.3-4.3 2-6.9 2s-5-.7-7-2-3.6-3.2-4.7-5.5-1.7-4.9-1.7-7.8c0-2.9.6-5.5 1.7-7.8s2.7-4.1 4.7-5.4c2-1.3 4.3-2 7-2s5 .7 6.9 2c2 1.3 3.5 3.1 4.6 5.4 1.1 2.3 1.7 4.8 1.7 7.8 0 2.9-.6 5.5-1.7 7.8zM380.4 61.6c1.1-.9 1.7-2.1 1.7-3.5 0-3.3-.6-6.3-1.9-9.2-1.2-2.9-2.9-5.5-5-7.7s-4.5-3.9-7.3-5.2c-2.8-1.3-5.7-1.9-8.7-1.9-4 0-7.8 1-11.3 3.1-3.6 2.1-6.5 5-8.7 8.8-2.2 3.8-3.3 8.5-3.3 13.9 0 4.7 1 8.8 3 12.5 2 3.7 4.9 6.6 8.7 8.7 3.8 2.1 8.2 3.2 13.4 3.2 3 0 6-.5 8.8-1.5 2.8-1 5-2.2 6.6-3.5 1.7-1.3 2.5-2.8 2.5-4.4 0-1.2-.4-2.3-1.3-3.2-.9-.9-2-1.4-3.3-1.4-1 0-2 .3-3.1.8-.7.4-1.4.8-2.2 1.3-.8.5-1.9 1-3.2 1.3-1.3.4-3.1.5-5.3.5-2.4 0-4.7-.6-6.8-1.8-2.1-1.2-3.9-2.9-5.3-5.2-.8-1.3-1.3-2.8-1.7-4.5h29.9c1.4.3 2.7-.2 3.8-1.1zM350 47.2c1.1-1.1 2.5-2 4.1-2.4 1.6-.5 3.3-.7 5.1-.7 1.9 0 3.6.4 5.3 1.2 1.7.8 3.1 1.9 4.2 3.3s1.7 3 1.9 4.7v.6h-23.7c.1-.7.3-1.5.5-2.1.5-1.9 1.5-3.4 2.6-4.6zM447.3 39.1c-1.5-3.9-3.6-7.4-6.4-10.4-2.8-3-6-5.3-9.8-7-3.8-1.7-7.9-2.5-12.4-2.5s-8.6.8-12.3 2.5c-3.7 1.7-7 4-9.7 7-2.8 3-4.9 6.5-6.4 10.4-1.5 3.9-2.3 8.2-2.3 12.7s.8 8.8 2.3 12.7c1.5 3.9 3.6 7.4 6.4 10.4 2.7 3 6 5.3 9.7 7 3.7 1.7 7.9 2.5 12.3 2.5 4.5 0 8.6-.8 12.4-2.5 3.8-1.7 7-4 9.8-7 2.8-3 4.9-6.5 6.4-10.4 1.5-3.9 2.3-8.2 2.3-12.7-.1-4.6-.8-8.8-2.3-12.7zm-12 23.7c-1.6 3.3-3.9 5.9-6.7 7.8-2.8 1.9-6.1 2.9-9.9 2.9-3.7 0-7-1-9.9-2.9-2.8-1.9-5.1-4.5-6.7-7.8-1.6-3.3-2.4-7-2.4-11 0-4.1.8-7.8 2.4-11.1 1.6-3.3 3.8-5.9 6.7-7.8 2.8-1.9 6.1-2.9 9.9-2.9 3.7 0 7 1 9.9 2.9 2.8 1.9 5.1 4.5 6.7 7.8 1.6 3.3 2.4 7 2.4 11 .1 4.1-.8 7.8-2.4 11.1zM468.4 18c-1-1.1-2.3-1.6-3.9-1.6s-2.9.5-3.9 1.6c-1.1 1.1-1.6 2.4-1.6 3.9v56c0 1.6.5 2.9 1.5 3.9 1 1.1 2.3 1.6 3.8 1.6 1.6 0 2.9-.5 3.9-1.6 1.1-1.1 1.6-2.4 1.6-3.9v-56c.1-1.5-.4-2.9-1.4-3.9zM520.2 36.6c-1-1.1-2.3-1.6-3.9-1.6s-2.9.5-3.9 1.6-1.5 2.4-1.5 3.9v23.2c0 2.3-.4 4.2-1.2 5.8-.8 1.6-1.9 2.8-3.4 3.6-1.4.8-3.2 1.2-5.3 1.2-3.1 0-5.5-.8-7.2-2.4-1.7-1.6-2.6-4.4-2.6-8.3V40.5c0-1.6-.5-2.9-1.5-3.9-1-1.1-2.3-1.6-3.9-1.6s-2.9.5-3.9 1.6-1.5 2.4-1.5 3.9V67c0 3.4.7 6.4 2 9 1.3 2.6 3.2 4.7 5.6 6.2 2.4 1.5 5.2 2.2 8.4 2.2 2.7 0 5.1-.3 7.3-1 2.1-.7 3.9-1.6 5.5-2.9.7-.6 1.3-1.3 1.9-2v1c0 3.1-.5 5.5-1.4 7.3-.9 1.8-2.3 3.1-4.2 3.8-1.8.8-4.2 1.1-6.9 1.1-2.1 0-3.9-.3-5.4-1-1.6-.6-2.8-1.1-3.8-1.4-1.3-.5-2.6-.4-3.8.2-1.2.6-2.1 1.8-2.6 3.6-.4 1.3-.3 2.6.4 3.8.7 1.2 1.9 2.2 3.8 2.9 1.4.6 3.2 1.1 5.3 1.4 2.2.3 4.2.5 6.2.5 4.4 0 8.3-.7 11.8-2.2 3.5-1.4 6.3-3.8 8.4-7.1 2.1-3.3 3.1-7.7 3.1-13.3V40.5c-.2-1.6-.7-2.9-1.8-3.9zM603.2 44.4c-.8-3.1-2.4-5.6-4.7-7.5s-5.6-2.8-9.9-2.8c-2.7 0-5.1.6-7.2 1.7-2.1 1.1-4 2.5-5.5 4.1-1.4 1.5-2.5 2.9-3.2 4.2-.8-2.6-2.1-4.7-3.9-6.5-2.3-2.3-5.9-3.5-10.7-3.5-2 0-3.8.3-5.5 1-1.7.6-3.2 1.5-4.6 2.5-1.4 1-2.6 2.1-3.5 3.3l-.9 1.2v-1.5c0-1.6-.5-2.9-1.5-3.9-1-1.1-2.3-1.6-3.9-1.6s-2.9.5-3.9 1.6-1.5 2.4-1.5 3.9V78c0 1.6.5 2.9 1.5 3.9 1 1.1 2.3 1.6 3.9 1.6s2.9-.5 3.9-1.6 1.5-2.4 1.5-3.9V54.7c0-2 .4-3.8 1.2-5.4.8-1.6 2-2.9 3.7-3.9 1.6-1 3.6-1.4 5.9-1.4 2.4 0 4.2.5 5.4 1.4 1.3 1 2.1 2.3 2.6 3.9s.7 3.4.7 5.4v23.2c0 1.6.5 2.9 1.5 3.9 1 1.1 2.3 1.6 3.9 1.6s2.9-.5 3.9-1.6 1.5-2.4 1.5-3.9V54.7c0-2 .4-3.8 1.2-5.4.8-1.6 2-2.9 3.7-3.9 1.6-1 3.6-1.4 5.9-1.4 2.4 0 4.2.5 5.4 1.4 1.3 1 2.1 2.3 2.6 3.9s.7 3.4.7 5.4v23.2c0 1.6.5 2.9 1.5 3.9 1 1.1 2.3 1.6 3.9 1.6s2.9-.5 3.9-1.6 1.5-2.4 1.5-3.9V54.7c.3-3.8-.2-7.2-1-10.3zM659.8 46.1c-2-3.7-4.6-6.7-8-8.8-3.4-2.1-7.1-3.2-11.4-3.2-2.1 0-4.1.4-6 1.1-1.9.7-3.6 1.6-5 2.8-1.3 1-2.4 2-3.2 3.1v-.5c0-1.6-.5-2.9-1.5-3.9-1-1.1-2.3-1.6-3.9-1.6s-2.9.5-3.9 1.6-1.5 2.4-1.5 3.9v55.6c0 1.6.5 3 1.5 4s2.3 1.5 3.9 1.5 2.9-.5 3.9-1.6 1.5-2.4 1.5-3.9V78.3c.6.6 1.4 1.3 2.2 1.9 1.6 1.2 3.5 2.2 5.6 3s4.4 1.2 6.8 1.2c4.1 0 7.8-1.1 11.1-3.2s5.9-5.1 7.9-8.9c2-3.8 2.9-8.1 2.9-13.1.1-5-.9-9.3-2.9-13.1zm-9.1 20.8c-1.1 2.3-2.7 4.2-4.6 5.5-2 1.3-4.3 2-6.9 2s-5-.7-7-2-3.5-3.2-4.7-5.5c-1.1-2.3-1.7-4.9-1.7-7.8 0-2.9.6-5.5 1.7-7.8s2.7-4.1 4.7-5.4c2-1.3 4.3-2 7-2s5 .7 6.9 2c2 1.3 3.5 3.1 4.6 5.4 1.1 2.3 1.7 4.8 1.7 7.8-.1 2.9-.6 5.5-1.7 7.8z" })] }))] }))); };
4596
4745
 
4597
- var Wrapper$7 = styled.div(templateObject_1$K || (templateObject_1$K = __makeTemplateObject$1(["\n width: ", ";\n"], ["\n width: ", ";\n"])), function (_a) {
4746
+ var Wrapper$7 = styled.div(templateObject_1$L || (templateObject_1$L = __makeTemplateObject$1(["\n width: ", ";\n"], ["\n width: ", ";\n"])), function (_a) {
4598
4747
  var size = _a.size;
4599
4748
  switch (size) {
4600
4749
  default:
@@ -4604,7 +4753,7 @@ var Wrapper$7 = styled.div(templateObject_1$K || (templateObject_1$K = __makeTem
4604
4753
  return "116px";
4605
4754
  }
4606
4755
  });
4607
- var templateObject_1$K;
4756
+ var templateObject_1$L;
4608
4757
 
4609
4758
  var medals = {
4610
4759
  small: {
@@ -4620,11 +4769,11 @@ var medals = {
4620
4769
  };
4621
4770
  var Medal = function (props) { return (jsx$1(Wrapper$7, __assign$2({}, props, { children: medals[props.size || "small"][props.type] }))); };
4622
4771
 
4623
- var Wrapper$6 = styled.div(templateObject_1$J || (templateObject_1$J = __makeTemplateObject$1(["\n width: fit-content;\n display: flex;\n\n button:first-child {\n border-radius: 6px 0 0 6px;\n border-width: 2px 1px 2px 2px;\n }\n\n button:last-child {\n border-radius: 0 6px 6px 0;\n border-width: 2px 2px 2px 1px;\n }\n\n button {\n width: ", ";\n }\n"], ["\n width: fit-content;\n display: flex;\n\n button:first-child {\n border-radius: 6px 0 0 6px;\n border-width: 2px 1px 2px 2px;\n }\n\n button:last-child {\n border-radius: 0 6px 6px 0;\n border-width: 2px 2px 2px 1px;\n }\n\n button {\n width: ", ";\n }\n"])), function (_a) {
4772
+ var Wrapper$6 = styled.div(templateObject_1$K || (templateObject_1$K = __makeTemplateObject$1(["\n width: fit-content;\n display: flex;\n\n button:first-child {\n border-radius: 6px 0 0 6px;\n border-width: 2px 1px 2px 2px;\n }\n\n button:last-child {\n border-radius: 0 6px 6px 0;\n border-width: 2px 2px 2px 1px;\n }\n\n button {\n width: ", ";\n }\n"], ["\n width: fit-content;\n display: flex;\n\n button:first-child {\n border-radius: 6px 0 0 6px;\n border-width: 2px 1px 2px 2px;\n }\n\n button:last-child {\n border-radius: 0 6px 6px 0;\n border-width: 2px 2px 2px 1px;\n }\n\n button {\n width: ", ";\n }\n"])), function (_a) {
4624
4773
  var disabled = _a.disabled;
4625
4774
  return (disabled ? "49.5px" : "");
4626
4775
  });
4627
- var StyledInputNumber = styled.input(templateObject_2$w || (templateObject_2$w = __makeTemplateObject$1(["\n width: 50px;\n height: 50px;\n background-color: ", ";\n border-width: 1px;\n border-style: solid;\n border-color: ", ";\n box-sizing: border-box;\n cursor: ", ";\n font-family: ", ";\n font-size: ", ";\n font-weight: 400;\n font-style: normal;\n line-height: ", ";\n color: ", ";\n text-align: center;\n -moz-appearance: textfield;\n\n ::-webkit-inner-spin-button {\n -webkit-appearance: none;\n }\n\n :focus {\n outline: 0;\n border-color: ", ";\n box-shadow: ", ";\n }\n"], ["\n width: 50px;\n height: 50px;\n background-color: ", ";\n border-width: 1px;\n border-style: solid;\n border-color: ", ";\n box-sizing: border-box;\n cursor: ", ";\n font-family: ", ";\n font-size: ", ";\n font-weight: 400;\n font-style: normal;\n line-height: ", ";\n color: ", ";\n text-align: center;\n -moz-appearance: textfield;\n\n ::-webkit-inner-spin-button {\n -webkit-appearance: none;\n }\n\n :focus {\n outline: 0;\n border-color: ", ";\n box-shadow: ", ";\n }\n"])), function (_a) {
4776
+ var StyledInputNumber = styled.input(templateObject_2$x || (templateObject_2$x = __makeTemplateObject$1(["\n width: 50px;\n height: 50px;\n background-color: ", ";\n border-width: 1px;\n border-style: solid;\n border-color: ", ";\n box-sizing: border-box;\n cursor: ", ";\n font-family: ", ";\n font-size: ", ";\n font-weight: 400;\n font-style: normal;\n line-height: ", ";\n color: ", ";\n text-align: center;\n -moz-appearance: textfield;\n\n ::-webkit-inner-spin-button {\n -webkit-appearance: none;\n }\n\n :focus {\n outline: 0;\n border-color: ", ";\n box-shadow: ", ";\n }\n"], ["\n width: 50px;\n height: 50px;\n background-color: ", ";\n border-width: 1px;\n border-style: solid;\n border-color: ", ";\n box-sizing: border-box;\n cursor: ", ";\n font-family: ", ";\n font-size: ", ";\n font-weight: 400;\n font-style: normal;\n line-height: ", ";\n color: ", ";\n text-align: center;\n -moz-appearance: textfield;\n\n ::-webkit-inner-spin-button {\n -webkit-appearance: none;\n }\n\n :focus {\n outline: 0;\n border-color: ", ";\n box-shadow: ", ";\n }\n"])), function (_a) {
4628
4777
  var disabled = _a.disabled;
4629
4778
  return disabled ? theme.colors.lightGray.base : theme.colors.lightGray.light;
4630
4779
  }, function (_a) {
@@ -4637,7 +4786,7 @@ var StyledInputNumber = styled.input(templateObject_2$w || (templateObject_2$w =
4637
4786
  var disabled = _a.disabled;
4638
4787
  return disabled ? theme.colors.darkGray.light : theme.colors.darkGray.base;
4639
4788
  }, theme.colors.blue.dark, "0 0 0 1px ".concat(theme.colors.blue.dark));
4640
- var templateObject_1$J, templateObject_2$w;
4789
+ var templateObject_1$K, templateObject_2$x;
4641
4790
 
4642
4791
  var Number$1 = function (props) {
4643
4792
  var inputRef = useRef(null);
@@ -4676,7 +4825,7 @@ var Number$1 = function (props) {
4676
4825
 
4677
4826
  var Paragraph = function (props) { return (jsx$1(StyledParagraph, __assign$2({}, props, { children: props.children }))); };
4678
4827
 
4679
- var StyledRadio = styled.div(templateObject_1$I || (templateObject_1$I = __makeTemplateObject$1(["\n min-height: 25px;\n max-height: 25px;\n min-width: 25px;\n max-width: 25px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 14px;\n border-width: 1px;\n border-style: solid;\n border-color: ", ";\n cursor: ", ";\n background-color: ", ";\n\n svg {\n margin-left: -1px;\n fill: ", ";\n }\n\n input {\n display: none;\n }\n\n :after {\n content: \"\";\n width: 15px;\n height: 15px;\n border-radius: 50%;\n background-color: ", ";\n position: absolute;\n }\n\n :focus {\n outline: 0;\n border-color: ", ";\n box-shadow: ", ";\n }\n"], ["\n min-height: 25px;\n max-height: 25px;\n min-width: 25px;\n max-width: 25px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 14px;\n border-width: 1px;\n border-style: solid;\n border-color: ", ";\n cursor: ", ";\n background-color: ", ";\n\n svg {\n margin-left: -1px;\n fill: ", ";\n }\n\n input {\n display: none;\n }\n\n :after {\n content: \"\";\n width: 15px;\n height: 15px;\n border-radius: 50%;\n background-color: ", ";\n position: absolute;\n }\n\n :focus {\n outline: 0;\n border-color: ", ";\n box-shadow: ", ";\n }\n"])), function (_a) {
4828
+ var StyledRadio = styled.div(templateObject_1$J || (templateObject_1$J = __makeTemplateObject$1(["\n min-height: 25px;\n max-height: 25px;\n min-width: 25px;\n max-width: 25px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 14px;\n border-width: 1px;\n border-style: solid;\n border-color: ", ";\n cursor: ", ";\n background-color: ", ";\n\n svg {\n margin-left: -1px;\n fill: ", ";\n }\n\n input {\n display: none;\n }\n\n :after {\n content: \"\";\n width: 15px;\n height: 15px;\n border-radius: 50%;\n background-color: ", ";\n position: absolute;\n }\n\n :focus {\n outline: 0;\n border-color: ", ";\n box-shadow: ", ";\n }\n"], ["\n min-height: 25px;\n max-height: 25px;\n min-width: 25px;\n max-width: 25px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 14px;\n border-width: 1px;\n border-style: solid;\n border-color: ", ";\n cursor: ", ";\n background-color: ", ";\n\n svg {\n margin-left: -1px;\n fill: ", ";\n }\n\n input {\n display: none;\n }\n\n :after {\n content: \"\";\n width: 15px;\n height: 15px;\n border-radius: 50%;\n background-color: ", ";\n position: absolute;\n }\n\n :focus {\n outline: 0;\n border-color: ", ";\n box-shadow: ", ";\n }\n"])), function (_a) {
4680
4829
  var checked = _a.checked, disabled = _a.disabled;
4681
4830
  if (disabled)
4682
4831
  return theme.colors.lightGray.darker;
@@ -4704,7 +4853,7 @@ var StyledRadio = styled.div(templateObject_1$I || (templateObject_1$I = __makeT
4704
4853
  return theme.colors.green.base;
4705
4854
  return "";
4706
4855
  }, theme.colors.blue.dark, "0 0 0 1px ".concat(theme.colors.blue.dark));
4707
- var templateObject_1$I;
4856
+ var templateObject_1$J;
4708
4857
 
4709
4858
  var Radio = function (props) {
4710
4859
  var _a, _b;
@@ -4736,7 +4885,7 @@ var Radio = function (props) {
4736
4885
  return (jsx$1(StyledRadio, __assign$2({ checked: checked, disabled: props.disabled, tabIndex: 0, onClick: toggle, onBlur: props.onBlur, onKeyPress: function (e) { return (e.key === "Enter" ? toggle() : null); }, ref: wrapperRef }, { children: jsx$1("input", { type: "radio", disabled: !!props.disabled, id: props.id, name: props.name, value: props.value, ref: inputRef }) })));
4737
4886
  };
4738
4887
 
4739
- var StyledRange = styled.div(templateObject_1$H || (templateObject_1$H = __makeTemplateObject$1(["\n input {\n appearance: none;\n width: 100%;\n height: 11px;\n border: ", ";\n border-radius: 8px;\n position: relative;\n background: ", ";\n\n ::-webkit-slider-thumb {\n appearance: none;\n width: 24px;\n height: 24px;\n background-color: ", ";\n border: ", ";\n border-radius: 50%;\n cursor: ", ";\n }\n }\n"], ["\n input {\n appearance: none;\n width: 100%;\n height: 11px;\n border: ", ";\n border-radius: 8px;\n position: relative;\n background: ", ";\n\n ::-webkit-slider-thumb {\n appearance: none;\n width: 24px;\n height: 24px;\n background-color: ", ";\n border: ", ";\n border-radius: 50%;\n cursor: ", ";\n }\n }\n"])), function () { return "2px solid ".concat(theme.colors.lightGray.dark); }, function (_a) {
4888
+ var StyledRange = styled.div(templateObject_1$I || (templateObject_1$I = __makeTemplateObject$1(["\n input {\n appearance: none;\n width: 100%;\n height: 11px;\n border: ", ";\n border-radius: 8px;\n position: relative;\n background: ", ";\n\n ::-webkit-slider-thumb {\n appearance: none;\n width: 24px;\n height: 24px;\n background-color: ", ";\n border: ", ";\n border-radius: 50%;\n cursor: ", ";\n }\n }\n"], ["\n input {\n appearance: none;\n width: 100%;\n height: 11px;\n border: ", ";\n border-radius: 8px;\n position: relative;\n background: ", ";\n\n ::-webkit-slider-thumb {\n appearance: none;\n width: 24px;\n height: 24px;\n background-color: ", ";\n border: ", ";\n border-radius: 50%;\n cursor: ", ";\n }\n }\n"])), function () { return "2px solid ".concat(theme.colors.lightGray.dark); }, function (_a) {
4740
4889
  var value = _a.value, disabled = _a.disabled;
4741
4890
  return "linear-gradient(90deg,\n ".concat(disabled ? theme.colors.lightGray.darker : theme.colors.green.base, " 0%,\n ").concat(disabled ? theme.colors.lightGray.darker : theme.colors.green.base, " ").concat(value, "%,\n ").concat(theme.colors.lightGray.dark, " ").concat(value, "%,\n ").concat(theme.colors.lightGray.dark, " 100%\n )");
4742
4891
  }, function () { return theme.colors.lightGray.light; }, function (_a) {
@@ -4746,7 +4895,7 @@ var StyledRange = styled.div(templateObject_1$H || (templateObject_1$H = __makeT
4746
4895
  var disabled = _a.disabled;
4747
4896
  return disabled ? "not-allowed" : "pointer";
4748
4897
  });
4749
- var templateObject_1$H;
4898
+ var templateObject_1$I;
4750
4899
 
4751
4900
  var Range = function (props) {
4752
4901
  var _a;
@@ -4775,11 +4924,11 @@ var Range = function (props) {
4775
4924
  return (jsx$1(StyledRange, __assign$2({ value: value, disabled: props.disabled }, { children: jsx$1("input", { type: "range", disabled: !!props.disabled, id: props.id, min: props.min || 0, max: props.max || 100, ref: rangeRef, defaultValue: props.defaultValue, onChange: onChange, onBlur: props.onBlur }) })));
4776
4925
  };
4777
4926
 
4778
- var Wrapper$5 = styled.div(templateObject_1$G || (templateObject_1$G = __makeTemplateObject$1(["\n position: relative;\n\n div {\n pointer-events: none;\n position: absolute;\n height: 24px;\n right: 12px;\n top: 14px;\n }\n\n svg {\n cursor: ", ";\n }\n"], ["\n position: relative;\n\n div {\n pointer-events: none;\n position: absolute;\n height: 24px;\n right: 12px;\n top: 14px;\n }\n\n svg {\n cursor: ", ";\n }\n"])), function (_a) {
4927
+ var Wrapper$5 = styled.div(templateObject_1$H || (templateObject_1$H = __makeTemplateObject$1(["\n position: relative;\n\n div {\n pointer-events: none;\n position: absolute;\n height: 24px;\n right: 12px;\n top: 14px;\n }\n\n svg {\n cursor: ", ";\n }\n"], ["\n position: relative;\n\n div {\n pointer-events: none;\n position: absolute;\n height: 24px;\n right: 12px;\n top: 14px;\n }\n\n svg {\n cursor: ", ";\n }\n"])), function (_a) {
4779
4928
  var disabled = _a.disabled;
4780
4929
  return (disabled ? "not-allowed" : "pointer");
4781
4930
  });
4782
- var StyledSelect = styled.select(templateObject_2$v || (templateObject_2$v = __makeTemplateObject$1(["\n width: 100%;\n height: 50px;\n background-color: ", ";\n border-width: 1px;\n border-style: solid;\n border-color: ", ";\n box-sizing: border-box;\n border-radius: 4px;\n padding: 13px 43px 15px 13px;\n cursor: ", ";\n font-family: ", ";\n font-size: ", ";\n font-weight: 500;\n font-style: normal;\n line-height: ", ";\n color: ", ";\n appearance: none;\n\n :focus {\n outline: 0;\n border-color: ", ";\n box-shadow: ", ";\n }\n"], ["\n width: 100%;\n height: 50px;\n background-color: ", ";\n border-width: 1px;\n border-style: solid;\n border-color: ", ";\n box-sizing: border-box;\n border-radius: 4px;\n padding: 13px 43px 15px 13px;\n cursor: ", ";\n font-family: ", ";\n font-size: ", ";\n font-weight: 500;\n font-style: normal;\n line-height: ", ";\n color: ", ";\n appearance: none;\n\n :focus {\n outline: 0;\n border-color: ", ";\n box-shadow: ", ";\n }\n"])), function (_a) {
4931
+ var StyledSelect = styled.select(templateObject_2$w || (templateObject_2$w = __makeTemplateObject$1(["\n width: 100%;\n height: 50px;\n background-color: ", ";\n border-width: 1px;\n border-style: solid;\n border-color: ", ";\n box-sizing: border-box;\n border-radius: 4px;\n padding: 13px 43px 15px 13px;\n cursor: ", ";\n font-family: ", ";\n font-size: ", ";\n font-weight: 500;\n font-style: normal;\n line-height: ", ";\n color: ", ";\n appearance: none;\n\n :focus {\n outline: 0;\n border-color: ", ";\n box-shadow: ", ";\n }\n"], ["\n width: 100%;\n height: 50px;\n background-color: ", ";\n border-width: 1px;\n border-style: solid;\n border-color: ", ";\n box-sizing: border-box;\n border-radius: 4px;\n padding: 13px 43px 15px 13px;\n cursor: ", ";\n font-family: ", ";\n font-size: ", ";\n font-weight: 500;\n font-style: normal;\n line-height: ", ";\n color: ", ";\n appearance: none;\n\n :focus {\n outline: 0;\n border-color: ", ";\n box-shadow: ", ";\n }\n"])), function (_a) {
4783
4932
  var disabled = _a.disabled;
4784
4933
  return disabled ? theme.colors.lightGray.dark : theme.colors.lightGray.light;
4785
4934
  }, function (_a) {
@@ -4792,7 +4941,7 @@ var StyledSelect = styled.select(templateObject_2$v || (templateObject_2$v = __m
4792
4941
  var isChanged = _a.isChanged;
4793
4942
  return isChanged ? theme.colors.darkGray.base : theme.colors.lightGray.darker;
4794
4943
  }, theme.colors.blue.dark, "0 0 0 1px ".concat(theme.colors.blue.dark));
4795
- var templateObject_1$G, templateObject_2$v;
4944
+ var templateObject_1$H, templateObject_2$w;
4796
4945
 
4797
4946
  var Select = function (props) {
4798
4947
  var _a;
@@ -4814,18 +4963,18 @@ var Select = function (props) {
4814
4963
  return (jsxs(Wrapper$5, { children: [jsx$1(Icon, { type: "chevronDown", color: "gray", size: "small" }), jsxs(StyledSelect, __assign$2({}, props, { onChange: onChange, isChanged: isChanged || props.defaultValue, ref: inputRef }, { children: [props.placeholder && jsx$1("option", __assign$2({ hidden: true }, { children: props.placeholder })), props.children] }))] }));
4815
4964
  };
4816
4965
 
4817
- var StyledSpacer = styled.div(templateObject_1$F || (templateObject_1$F = __makeTemplateObject$1(["\n width: ", ";\n height: ", ";\n"], ["\n width: ", ";\n height: ", ";\n"])), function (_a) {
4966
+ var StyledSpacer = styled.div(templateObject_1$G || (templateObject_1$G = __makeTemplateObject$1(["\n width: ", ";\n height: ", ";\n"], ["\n width: ", ";\n height: ", ";\n"])), function (_a) {
4818
4967
  var horizontal = _a.horizontal;
4819
4968
  return (horizontal ? "".concat(horizontal, "px") : "");
4820
4969
  }, function (_a) {
4821
4970
  var vertical = _a.vertical;
4822
4971
  return (vertical ? "".concat(vertical, "px") : "");
4823
4972
  });
4824
- var templateObject_1$F;
4973
+ var templateObject_1$G;
4825
4974
 
4826
4975
  var Spacer = function (props) { return (jsx$1(StyledSpacer, __assign$2({}, props))); };
4827
4976
 
4828
- var StyledSubheading = styled.p(templateObject_1$E || (templateObject_1$E = __makeTemplateObject$1(["\n font-family: ", ";\n font-style: normal;\n font-size: ", ";\n font-weight: ", ";\n line-height: ", ";\n text-align: ", ";\n margin: 0;\n color: ", ";\n"], ["\n font-family: ", ";\n font-style: normal;\n font-size: ", ";\n font-weight: ", ";\n line-height: ", ";\n text-align: ", ";\n margin: 0;\n color: ", ";\n"])), theme.fonts.paragraph, function (_a) {
4977
+ var StyledSubheading = styled.p(templateObject_1$F || (templateObject_1$F = __makeTemplateObject$1(["\n font-family: ", ";\n font-style: normal;\n font-size: ", ";\n font-weight: ", ";\n line-height: ", ";\n text-align: ", ";\n margin: 0;\n color: ", ";\n"], ["\n font-family: ", ";\n font-style: normal;\n font-size: ", ";\n font-weight: ", ";\n line-height: ", ";\n text-align: ", ";\n margin: 0;\n color: ", ";\n"])), theme.fonts.paragraph, function (_a) {
4829
4978
  var size = _a.size;
4830
4979
  return size ? theme.subheading[size].fontSize : theme.subheading.medium.fontSize;
4831
4980
  }, function (_a) {
@@ -4853,18 +5002,18 @@ var StyledSubheading = styled.p(templateObject_1$E || (templateObject_1$E = __ma
4853
5002
  return theme.colors.darkGray.dark;
4854
5003
  }
4855
5004
  });
4856
- var templateObject_1$E;
5005
+ var templateObject_1$F;
4857
5006
 
4858
5007
  var Subheading = function (props) { return (jsx$1(StyledSubheading, __assign$2({}, props, { children: props.children }))); };
4859
5008
 
4860
- var Container$l = styled.div(templateObject_1$D || (templateObject_1$D = __makeTemplateObject$1(["\n padding: 7px 10px;\n background-color: ", ";\n box-shadow: 0 2px 0 ", ";\n border: 1px solid ", ";\n border-radius: 4px;\n box-sizing: border-box;\n text-decoration: none;\n\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n font-style: normal;\n color: ", ";\n"], ["\n padding: 7px 10px;\n background-color: ", ";\n box-shadow: 0 2px 0 ", ";\n border: 1px solid ", ";\n border-radius: 4px;\n box-sizing: border-box;\n text-decoration: none;\n\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n font-style: normal;\n color: ", ";\n"])), theme.colors.lightGray.base, theme.colors.lightGray.darker, theme.colors.lightGray.darker, theme.fonts.paragraph, theme.subheading.small.fontSize, theme.subheading.small.fontWeight, theme.colors.darkGray.light);
4861
- var templateObject_1$D;
5009
+ var Container$m = styled.div(templateObject_1$E || (templateObject_1$E = __makeTemplateObject$1(["\n padding: 7px 10px;\n background-color: ", ";\n box-shadow: 0 2px 0 ", ";\n border: 1px solid ", ";\n border-radius: 4px;\n box-sizing: border-box;\n text-decoration: none;\n\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n font-style: normal;\n color: ", ";\n"], ["\n padding: 7px 10px;\n background-color: ", ";\n box-shadow: 0 2px 0 ", ";\n border: 1px solid ", ";\n border-radius: 4px;\n box-sizing: border-box;\n text-decoration: none;\n\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n font-style: normal;\n color: ", ";\n"])), theme.colors.lightGray.base, theme.colors.lightGray.darker, theme.colors.lightGray.darker, theme.fonts.paragraph, theme.subheading.small.fontSize, theme.subheading.small.fontWeight, theme.colors.darkGray.light);
5010
+ var templateObject_1$E;
4862
5011
 
4863
5012
  var Tag = function (props) {
4864
- return jsx$1(Container$l, { children: props.children });
5013
+ return jsx$1(Container$m, { children: props.children });
4865
5014
  };
4866
5015
 
4867
- var Container$k = styled.div(templateObject_1$C || (templateObject_1$C = __makeTemplateObject$1(["\n width: 46px;\n min-width: 46px;\n max-width: 46px;\n height: 27px;\n min-height: 27px;\n max-height: 27px;\n border-radius: 14px;\n cursor: ", ";\n position: relative;\n background-color: ", ";\n\n :after {\n content: \"\";\n width: 21px;\n height: 21px;\n border-radius: 50%;\n position: absolute;\n top: 3px;\n right: ", ";\n left: ", ";\n background-color: ", ";\n }\n\n input {\n display: none;\n }\n\n :focus {\n outline: 0;\n border-color: ", ";\n box-shadow: ", ";\n }\n"], ["\n width: 46px;\n min-width: 46px;\n max-width: 46px;\n height: 27px;\n min-height: 27px;\n max-height: 27px;\n border-radius: 14px;\n cursor: ", ";\n position: relative;\n background-color: ", ";\n\n :after {\n content: \"\";\n width: 21px;\n height: 21px;\n border-radius: 50%;\n position: absolute;\n top: 3px;\n right: ", ";\n left: ", ";\n background-color: ", ";\n }\n\n input {\n display: none;\n }\n\n :focus {\n outline: 0;\n border-color: ", ";\n box-shadow: ", ";\n }\n"])), function (_a) {
5016
+ var Container$l = styled.div(templateObject_1$D || (templateObject_1$D = __makeTemplateObject$1(["\n width: 46px;\n min-width: 46px;\n max-width: 46px;\n height: 27px;\n min-height: 27px;\n max-height: 27px;\n border-radius: 14px;\n cursor: ", ";\n position: relative;\n background-color: ", ";\n\n :after {\n content: \"\";\n width: 21px;\n height: 21px;\n border-radius: 50%;\n position: absolute;\n top: 3px;\n right: ", ";\n left: ", ";\n background-color: ", ";\n }\n\n input {\n display: none;\n }\n\n :focus {\n outline: 0;\n border-color: ", ";\n box-shadow: ", ";\n }\n"], ["\n width: 46px;\n min-width: 46px;\n max-width: 46px;\n height: 27px;\n min-height: 27px;\n max-height: 27px;\n border-radius: 14px;\n cursor: ", ";\n position: relative;\n background-color: ", ";\n\n :after {\n content: \"\";\n width: 21px;\n height: 21px;\n border-radius: 50%;\n position: absolute;\n top: 3px;\n right: ", ";\n left: ", ";\n background-color: ", ";\n }\n\n input {\n display: none;\n }\n\n :focus {\n outline: 0;\n border-color: ", ";\n box-shadow: ", ";\n }\n"])), function (_a) {
4868
5017
  var disabled = _a.disabled;
4869
5018
  return (disabled ? "not-allowed" : "pointer");
4870
5019
  }, function (_a) {
@@ -4882,7 +5031,7 @@ var Container$k = styled.div(templateObject_1$C || (templateObject_1$C = __makeT
4882
5031
  var disabled = _a.disabled;
4883
5032
  return disabled ? theme.colors.lightGray.darker : theme.colors.lightGray.light;
4884
5033
  }, theme.colors.blue.dark, "0 0 0 1px ".concat(theme.colors.blue.dark));
4885
- var templateObject_1$C;
5034
+ var templateObject_1$D;
4886
5035
 
4887
5036
  var Toggle = function (props) {
4888
5037
  var _a;
@@ -4910,10 +5059,10 @@ var Toggle = function (props) {
4910
5059
  props.onChange(newValue);
4911
5060
  }
4912
5061
  };
4913
- return (jsx$1(Container$k, __assign$2({ checked: checked, disabled: props.disabled, tabIndex: 0, onClick: toggle, onBlur: props.onBlur, onKeyPress: function (e) { return (e.key === "Enter" ? toggle() : null); }, ref: containerRef }, { children: jsx$1("input", { type: "checkbox", disabled: !!props.disabled, id: props.id, name: props.name, ref: inputRef }) })));
5062
+ return (jsx$1(Container$l, __assign$2({ checked: checked, disabled: props.disabled, tabIndex: 0, onClick: toggle, onBlur: props.onBlur, onKeyPress: function (e) { return (e.key === "Enter" ? toggle() : null); }, ref: containerRef }, { children: jsx$1("input", { type: "checkbox", disabled: !!props.disabled, id: props.id, name: props.name, ref: inputRef }) })));
4914
5063
  };
4915
5064
 
4916
- var Wrapper$4 = styled.div(templateObject_1$B || (templateObject_1$B = __makeTemplateObject$1(["\n display: flex;\n align-items: flex-end;\n\n > svg {\n height: ", ";\n }\n"], ["\n display: flex;\n align-items: flex-end;\n\n > svg {\n height: ", ";\n }\n"])), function (_a) {
5065
+ var Wrapper$4 = styled.div(templateObject_1$C || (templateObject_1$C = __makeTemplateObject$1(["\n display: flex;\n align-items: flex-end;\n\n > svg {\n height: ", ";\n }\n"], ["\n display: flex;\n align-items: flex-end;\n\n > svg {\n height: ", ";\n }\n"])), function (_a) {
4917
5066
  var level = _a.level;
4918
5067
  switch (level) {
4919
5068
  case 1:
@@ -4924,7 +5073,7 @@ var Wrapper$4 = styled.div(templateObject_1$B || (templateObject_1$B = __makeTem
4924
5073
  return "70px";
4925
5074
  }
4926
5075
  });
4927
- var templateObject_1$B;
5076
+ var templateObject_1$C;
4928
5077
 
4929
5078
  var trophies = {
4930
5079
  1: {
@@ -4960,7 +5109,7 @@ var trophies = {
4960
5109
  };
4961
5110
  var Trophy = function (props) { return (jsx$1(Wrapper$4, __assign$2({}, props, { children: trophies[props.variant][props.level] }))); };
4962
5111
 
4963
- var Container$j = styled.div(templateObject_1$A || (templateObject_1$A = __makeTemplateObject$1(["\n min-height: 44px;\n padding: 10px;\n background-color: ", ";\n box-sizing: border-box;\n border-radius: 4px;\n display: flex;\n align-items: center;\n gap: 10px;\n\n > div:first-child {\n min-width: 24px;\n min-height: 24px;\n }\n\n p {\n color: ", ";\n }\n"], ["\n min-height: 44px;\n padding: 10px;\n background-color: ", ";\n box-sizing: border-box;\n border-radius: 4px;\n display: flex;\n align-items: center;\n gap: 10px;\n\n > div:first-child {\n min-width: 24px;\n min-height: 24px;\n }\n\n p {\n color: ", ";\n }\n"])), function (_a) {
5112
+ var Container$k = styled.div(templateObject_1$B || (templateObject_1$B = __makeTemplateObject$1(["\n min-height: 44px;\n padding: 10px;\n background-color: ", ";\n box-sizing: border-box;\n border-radius: 4px;\n display: flex;\n align-items: center;\n gap: 10px;\n\n > div:first-child {\n min-width: 24px;\n min-height: 24px;\n }\n\n p {\n color: ", ";\n }\n"], ["\n min-height: 44px;\n padding: 10px;\n background-color: ", ";\n box-sizing: border-box;\n border-radius: 4px;\n display: flex;\n align-items: center;\n gap: 10px;\n\n > div:first-child {\n min-width: 24px;\n min-height: 24px;\n }\n\n p {\n color: ", ";\n }\n"])), function (_a) {
4964
5113
  var type = _a.type;
4965
5114
  switch (type) {
4966
5115
  case "success":
@@ -4977,11 +5126,11 @@ var Container$j = styled.div(templateObject_1$A || (templateObject_1$A = __makeT
4977
5126
  return theme.colors.red.base;
4978
5127
  }
4979
5128
  });
4980
- var templateObject_1$A;
5129
+ var templateObject_1$B;
4981
5130
 
4982
- var Alert = function (props) { return (jsxs(Container$j, __assign$2({}, props, { children: [jsx$1(Icon, { size: "small", type: props.type === "success" ? "check" : "warning", color: props.type === "success" ? "green" : "red" }), jsx$1(Paragraph, { children: props.message })] }))); };
5131
+ var Alert = function (props) { return (jsxs(Container$k, __assign$2({}, props, { children: [jsx$1(Icon, { size: "small", type: props.type === "success" ? "check" : "warning", color: props.type === "success" ? "green" : "red" }), jsx$1(Paragraph, { children: props.message })] }))); };
4983
5132
 
4984
- var StyledCard = styled.div(templateObject_1$z || (templateObject_1$z = __makeTemplateObject$1(["\n background-color: ", ";\n border: ", ";\n box-shadow: 0px 4px 0px rgba(0, 0, 0, 20%);\n border-radius: 6px;\n overflow: hidden;\n position: relative;\n\n ", "\n"], ["\n background-color: ", ";\n border: ", ";\n box-shadow: 0px 4px 0px rgba(0, 0, 0, 20%);\n border-radius: 6px;\n overflow: hidden;\n position: relative;\n\n ", "\n"])), theme.colors.lightGray.light, function (_a) {
5133
+ var StyledCard = styled.div(templateObject_1$A || (templateObject_1$A = __makeTemplateObject$1(["\n background-color: ", ";\n border: ", ";\n box-shadow: 0px 4px 0px rgba(0, 0, 0, 20%);\n border-radius: 6px;\n overflow: hidden;\n position: relative;\n\n ", "\n"], ["\n background-color: ", ";\n border: ", ";\n box-shadow: 0px 4px 0px rgba(0, 0, 0, 20%);\n border-radius: 6px;\n overflow: hidden;\n position: relative;\n\n ", "\n"])), theme.colors.lightGray.light, function (_a) {
4985
5134
  var bordered = _a.bordered;
4986
5135
  return bordered ? "1px solid ".concat(theme.colors.lightGray.dark) : "none";
4987
5136
  }, function (_a) {
@@ -4993,12 +5142,12 @@ var StyledCard = styled.div(templateObject_1$z || (templateObject_1$z = __makeTe
4993
5142
  }, ";\n\n > div:first-child {\n width: 175%;\n padding-bottom: 175%;\n top: -25%;\n right: -25%;\n }\n }")
4994
5143
  : "";
4995
5144
  });
4996
- var Ellipse = styled.div(templateObject_2$u || (templateObject_2$u = __makeTemplateObject$1(["\n width: 85%;\n height: 0;\n padding-bottom: 85%;\n border-radius: 50%;\n background-color: ", ";\n opacity: 0.3;\n position: absolute;\n top: -20%;\n right: -20%;\n transition: width 0.75s, padding-bottom 0.75s, top 0.75s, right 0.75s;\n"], ["\n width: 85%;\n height: 0;\n padding-bottom: 85%;\n border-radius: 50%;\n background-color: ", ";\n opacity: 0.3;\n position: absolute;\n top: -20%;\n right: -20%;\n transition: width 0.75s, padding-bottom 0.75s, top 0.75s, right 0.75s;\n"])), function (_a) {
5145
+ var Ellipse = styled.div(templateObject_2$v || (templateObject_2$v = __makeTemplateObject$1(["\n width: 85%;\n height: 0;\n padding-bottom: 85%;\n border-radius: 50%;\n background-color: ", ";\n opacity: 0.3;\n position: absolute;\n top: -20%;\n right: -20%;\n transition: width 0.75s, padding-bottom 0.75s, top 0.75s, right 0.75s;\n"], ["\n width: 85%;\n height: 0;\n padding-bottom: 85%;\n border-radius: 50%;\n background-color: ", ";\n opacity: 0.3;\n position: absolute;\n top: -20%;\n right: -20%;\n transition: width 0.75s, padding-bottom 0.75s, top 0.75s, right 0.75s;\n"])), function (_a) {
4997
5146
  var color = _a.color;
4998
5147
  return color ? theme.colors[color].light : "";
4999
5148
  });
5000
- var Content = styled.div(templateObject_3$a || (templateObject_3$a = __makeTemplateObject$1(["\n height: 100%;\n padding: 15px;\n position: inherit;\n top: 0;\n left: 0;\n"], ["\n height: 100%;\n padding: 15px;\n position: inherit;\n top: 0;\n left: 0;\n"])));
5001
- var templateObject_1$z, templateObject_2$u, templateObject_3$a;
5149
+ var Content = styled.div(templateObject_3$b || (templateObject_3$b = __makeTemplateObject$1(["\n height: 100%;\n padding: 15px;\n position: inherit;\n top: 0;\n left: 0;\n"], ["\n height: 100%;\n padding: 15px;\n position: inherit;\n top: 0;\n left: 0;\n"])));
5150
+ var templateObject_1$A, templateObject_2$v, templateObject_3$b;
5002
5151
 
5003
5152
  var Card = function (props) { return (jsxs(StyledCard, __assign$2({}, props, { children: [props.ellipse && jsx$1(Ellipse, { color: props.ellipse }), jsx$1(Content, { children: props.children })] }))); };
5004
5153
 
@@ -10146,15 +10295,15 @@ possibleStandardNamesOptimized$1.possibleStandardNames = {
10146
10295
 
10147
10296
  Object.defineProperty(lib, '__esModule', { value: true });
10148
10297
 
10149
- function _slicedToArray(arr, i) {
10150
- return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
10298
+ function _slicedToArray$2(arr, i) {
10299
+ return _arrayWithHoles$2(arr) || _iterableToArrayLimit$2(arr, i) || _unsupportedIterableToArray$2(arr, i) || _nonIterableRest$2();
10151
10300
  }
10152
10301
 
10153
- function _arrayWithHoles(arr) {
10302
+ function _arrayWithHoles$2(arr) {
10154
10303
  if (Array.isArray(arr)) return arr;
10155
10304
  }
10156
10305
 
10157
- function _iterableToArrayLimit(arr, i) {
10306
+ function _iterableToArrayLimit$2(arr, i) {
10158
10307
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
10159
10308
 
10160
10309
  if (_i == null) return;
@@ -10184,16 +10333,16 @@ function _iterableToArrayLimit(arr, i) {
10184
10333
  return _arr;
10185
10334
  }
10186
10335
 
10187
- function _unsupportedIterableToArray(o, minLen) {
10336
+ function _unsupportedIterableToArray$2(o, minLen) {
10188
10337
  if (!o) return;
10189
- if (typeof o === "string") return _arrayLikeToArray(o, minLen);
10338
+ if (typeof o === "string") return _arrayLikeToArray$2(o, minLen);
10190
10339
  var n = Object.prototype.toString.call(o).slice(8, -1);
10191
10340
  if (n === "Object" && o.constructor) n = o.constructor.name;
10192
10341
  if (n === "Map" || n === "Set") return Array.from(o);
10193
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
10342
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$2(o, minLen);
10194
10343
  }
10195
10344
 
10196
- function _arrayLikeToArray(arr, len) {
10345
+ function _arrayLikeToArray$2(arr, len) {
10197
10346
  if (len == null || len > arr.length) len = arr.length;
10198
10347
 
10199
10348
  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
@@ -10201,7 +10350,7 @@ function _arrayLikeToArray(arr, len) {
10201
10350
  return arr2;
10202
10351
  }
10203
10352
 
10204
- function _nonIterableRest() {
10353
+ function _nonIterableRest$2() {
10205
10354
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
10206
10355
  }
10207
10356
 
@@ -10265,7 +10414,7 @@ reservedProps.forEach(function (name) {
10265
10414
  // This is a mapping from React prop names to the attribute names.
10266
10415
 
10267
10416
  [['acceptCharset', 'accept-charset'], ['className', 'class'], ['htmlFor', 'for'], ['httpEquiv', 'http-equiv']].forEach(function (_ref) {
10268
- var _ref2 = _slicedToArray(_ref, 2),
10417
+ var _ref2 = _slicedToArray$2(_ref, 2),
10269
10418
  name = _ref2[0],
10270
10419
  attributeName = _ref2[1];
10271
10420
 
@@ -11247,14 +11396,14 @@ htmlReactParser.Element;
11247
11396
  htmlReactParser.ProcessingInstruction;
11248
11397
  htmlReactParser.Text;
11249
11398
 
11250
- var Fieldset$1 = styled.fieldset(templateObject_1$y || (templateObject_1$y = __makeTemplateObject$1(["\n border: 0;\n margin: 0;\n padding: 0;\n"], ["\n border: 0;\n margin: 0;\n padding: 0;\n"])));
11251
- var CheckboxContainer = styled.div(templateObject_2$t || (templateObject_2$t = __makeTemplateObject$1(["\n margin-top: 5px;\n"], ["\n margin-top: 5px;\n"])));
11252
- var CheckboxWrapper = styled.div(templateObject_3$9 || (templateObject_3$9 = __makeTemplateObject$1(["\n display: flex;\n align-items: center;\n\n > div:first-child {\n margin-right: 10px;\n }\n\n :not(:last-child) {\n margin-bottom: 20px;\n }\n"], ["\n display: flex;\n align-items: center;\n\n > div:first-child {\n margin-right: 10px;\n }\n\n :not(:last-child) {\n margin-bottom: 20px;\n }\n"])));
11399
+ var Fieldset$1 = styled.fieldset(templateObject_1$z || (templateObject_1$z = __makeTemplateObject$1(["\n border: 0;\n margin: 0;\n padding: 0;\n"], ["\n border: 0;\n margin: 0;\n padding: 0;\n"])));
11400
+ var CheckboxContainer = styled.div(templateObject_2$u || (templateObject_2$u = __makeTemplateObject$1(["\n margin-top: 5px;\n"], ["\n margin-top: 5px;\n"])));
11401
+ var CheckboxWrapper = styled.div(templateObject_3$a || (templateObject_3$a = __makeTemplateObject$1(["\n display: flex;\n align-items: center;\n\n > div:first-child {\n margin-right: 10px;\n }\n\n :not(:last-child) {\n margin-bottom: 20px;\n }\n"], ["\n display: flex;\n align-items: center;\n\n > div:first-child {\n margin-right: 10px;\n }\n\n :not(:last-child) {\n margin-bottom: 20px;\n }\n"])));
11253
11402
  var Label$9 = styled(StyledParagraph)(templateObject_4$6 || (templateObject_4$6 = __makeTemplateObject$1(["\n font-weight: ", ";\n color: ", ";\n display: flex;\n flex-wrap: wrap;\n gap: 0 6px;\n align-items: center;\n cursor: pointer;\n\n a {\n color: ", ";\n }\n"], ["\n font-weight: ", ";\n color: ", ";\n display: flex;\n flex-wrap: wrap;\n gap: 0 6px;\n align-items: center;\n cursor: pointer;\n\n a {\n color: ", ";\n }\n"])), function (_a) {
11254
11403
  var weight = _a.weight;
11255
11404
  return weight || 500;
11256
11405
  }, theme.colors.darkGray.base, theme.colors.blue.base);
11257
- var templateObject_1$y, templateObject_2$t, templateObject_3$9, templateObject_4$6;
11406
+ var templateObject_1$z, templateObject_2$u, templateObject_3$a, templateObject_4$6;
11258
11407
 
11259
11408
  var Checkboxes = function (props) {
11260
11409
  var _a = useState(props.defaultValue || []), values = _a[0], setValues = _a[1];
@@ -11277,12 +11426,12 @@ var Checkboxes = function (props) {
11277
11426
  }) })] }));
11278
11427
  };
11279
11428
 
11280
- var Container$i = styled.div(templateObject_1$x || (templateObject_1$x = __makeTemplateObject$1(["\n width: 100%;\n background-color: ", ";\n box-shadow: 0px 4px 0px rgba(0, 0, 0, 20%);\n border-radius: 6px;\n padding: 10px 20px;\n"], ["\n width: 100%;\n background-color: ", ";\n box-shadow: 0px 4px 0px rgba(0, 0, 0, 20%);\n border-radius: 6px;\n padding: 10px 20px;\n"])), theme.colors.lightGray.light);
11281
- var Item = styled.div(templateObject_2$s || (templateObject_2$s = __makeTemplateObject$1(["\n padding: 10px 0;\n cursor: pointer;\n\n > div:first-child {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 5px;\n }\n\n p, > div:last-child {\n display: ", ";\n margin: 0;\n }\n\n :not(:last-child) {\n border-bottom: 1px solid ", ";\n }\n"], ["\n padding: 10px 0;\n cursor: pointer;\n\n > div:first-child {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 5px;\n }\n\n p, > div:last-child {\n display: ", ";\n margin: 0;\n }\n\n :not(:last-child) {\n border-bottom: 1px solid ", ";\n }\n"])), function (_a) {
11429
+ var Container$j = styled.div(templateObject_1$y || (templateObject_1$y = __makeTemplateObject$1(["\n width: 100%;\n background-color: ", ";\n box-shadow: 0px 4px 0px rgba(0, 0, 0, 20%);\n border-radius: 6px;\n padding: 10px 20px;\n"], ["\n width: 100%;\n background-color: ", ";\n box-shadow: 0px 4px 0px rgba(0, 0, 0, 20%);\n border-radius: 6px;\n padding: 10px 20px;\n"])), theme.colors.lightGray.light);
11430
+ var Item = styled.div(templateObject_2$t || (templateObject_2$t = __makeTemplateObject$1(["\n padding: 10px 0;\n cursor: pointer;\n\n > div:first-child {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 5px;\n }\n\n p, > div:last-child {\n display: ", ";\n margin: 0;\n }\n\n :not(:last-child) {\n border-bottom: 1px solid ", ";\n }\n"], ["\n padding: 10px 0;\n cursor: pointer;\n\n > div:first-child {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 5px;\n }\n\n p, > div:last-child {\n display: ", ";\n margin: 0;\n }\n\n :not(:last-child) {\n border-bottom: 1px solid ", ";\n }\n"])), function (_a) {
11282
11431
  var isOpen = _a.isOpen;
11283
11432
  return (isOpen ? "" : "none");
11284
11433
  }, theme.colors.lightGray.dark);
11285
- var templateObject_1$x, templateObject_2$s;
11434
+ var templateObject_1$y, templateObject_2$t;
11286
11435
 
11287
11436
  var Collapse = function (props) {
11288
11437
  var _a = useState([]), openItems = _a[0], setOpenItems = _a[1];
@@ -11294,18 +11443,18 @@ var Collapse = function (props) {
11294
11443
  setOpenItems(function (prevState) { return __spreadArray(__spreadArray([], prevState, true), [index], false); });
11295
11444
  }
11296
11445
  };
11297
- return (jsx$1(Container$i, __assign$2({}, props, { children: props.items.map(function (item, index) {
11446
+ return (jsx$1(Container$j, __assign$2({}, props, { children: props.items.map(function (item, index) {
11298
11447
  var isOpen = openItems.includes(index);
11299
11448
  return (jsxs(Item, __assign$2({ isOpen: isOpen, onClick: function () { return onClickItem(index, isOpen); } }, { children: [jsxs("div", { children: [jsx$1(Heading, __assign$2({ type: "h6" }, { children: item.title })), jsx$1(Icon, { type: isOpen ? "chevronUp" : "chevronDown", color: "blue" })] }), jsx$1(Paragraph, __assign$2({ weight: "regular", as: typeof item.content !== "string" ? "div" : undefined }, { children: item.content }))] }), "".concat(item.title, "-").concat(index)));
11300
11449
  }) })));
11301
11450
  };
11302
11451
 
11303
- var Wrapper$3 = styled.div(templateObject_1$w || (templateObject_1$w = __makeTemplateObject$1(["\n display: flex;\n"], ["\n display: flex;\n"])));
11304
- var Value = styled.div(templateObject_2$r || (templateObject_2$r = __makeTemplateObject$1(["\n width: 40px;\n height: 32px;\n background-color: ", ";\n border-radius: 6px;\n display: flex;\n align-items: center;\n justify-content: center;\n margin: 0 6px;\n\n h5 {\n color: ", ";\n }\n\n :first-child {\n margin-left: 0;\n }\n"], ["\n width: 40px;\n height: 32px;\n background-color: ", ";\n border-radius: 6px;\n display: flex;\n align-items: center;\n justify-content: center;\n margin: 0 6px;\n\n h5 {\n color: ", ";\n }\n\n :first-child {\n margin-left: 0;\n }\n"])), function (_a) {
11452
+ var Wrapper$3 = styled.div(templateObject_1$x || (templateObject_1$x = __makeTemplateObject$1(["\n display: flex;\n"], ["\n display: flex;\n"])));
11453
+ var Value = styled.div(templateObject_2$s || (templateObject_2$s = __makeTemplateObject$1(["\n width: 40px;\n height: 32px;\n background-color: ", ";\n border-radius: 6px;\n display: flex;\n align-items: center;\n justify-content: center;\n margin: 0 6px;\n\n h5 {\n color: ", ";\n }\n\n :first-child {\n margin-left: 0;\n }\n"], ["\n width: 40px;\n height: 32px;\n background-color: ", ";\n border-radius: 6px;\n display: flex;\n align-items: center;\n justify-content: center;\n margin: 0 6px;\n\n h5 {\n color: ", ";\n }\n\n :first-child {\n margin-left: 0;\n }\n"])), function (_a) {
11305
11454
  var contrast = _a.contrast;
11306
11455
  return contrast ? theme.colors.lightGray.dark : theme.colors.lightGray.light;
11307
11456
  }, theme.colors.darkGray.base);
11308
- var templateObject_1$w, templateObject_2$r;
11457
+ var templateObject_1$x, templateObject_2$s;
11309
11458
 
11310
11459
  var Countdown = function (_a) {
11311
11460
  var till = _a.till, contrast = _a.contrast;
@@ -11332,9 +11481,9 @@ var Countdown = function (_a) {
11332
11481
  return (jsxs(Wrapper$3, { children: [jsx$1(Value, __assign$2({ contrast: contrast }, { children: jsx$1(Heading, __assign$2({ type: "h5" }, { children: HH })) })), jsx$1(Heading, __assign$2({ type: "h5", color: color }, { children: ":" })), jsx$1(Value, __assign$2({ contrast: contrast }, { children: jsx$1(Heading, __assign$2({ type: "h5" }, { children: MM })) })), jsx$1(Heading, __assign$2({ type: "h5", color: color }, { children: ":" })), jsx$1(Value, __assign$2({ contrast: contrast }, { children: jsx$1(Heading, __assign$2({ type: "h5" }, { children: SS })) }))] }));
11333
11482
  };
11334
11483
 
11335
- var Container$h = styled.div(templateObject_1$v || (templateObject_1$v = __makeTemplateObject$1(["\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n flex-wrap: wrap;\n"], ["\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n flex-wrap: wrap;\n"])));
11336
- var Label$8 = styled(StyledParagraph)(templateObject_2$q || (templateObject_2$q = __makeTemplateObject$1(["\n font-weight: 500;\n color: ", ";\n"], ["\n font-weight: 500;\n color: ", ";\n"])), theme.colors.darkGray.base);
11337
- var templateObject_1$v, templateObject_2$q;
11484
+ var Container$i = styled.div(templateObject_1$w || (templateObject_1$w = __makeTemplateObject$1(["\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n flex-wrap: wrap;\n"], ["\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n flex-wrap: wrap;\n"])));
11485
+ var Label$8 = styled(StyledParagraph)(templateObject_2$r || (templateObject_2$r = __makeTemplateObject$1(["\n font-weight: 500;\n color: ", ";\n"], ["\n font-weight: 500;\n color: ", ";\n"])), theme.colors.darkGray.base);
11486
+ var templateObject_1$w, templateObject_2$r;
11338
11487
 
11339
11488
  var DateInputField = function (props) {
11340
11489
  var onChange = function (value) {
@@ -11345,7 +11494,2565 @@ var DateInputField = function (props) {
11345
11494
  if (props.onBlur)
11346
11495
  props.onBlur(props.name);
11347
11496
  };
11348
- return (jsxs(Container$h, { children: [jsx$1(Label$8, __assign$2({ as: "label", htmlFor: props.name }, { children: props.label })), jsx$1(Spacer, { vertical: 5 }), jsx$1(Input.Date, { defaultValue: props.defaultValue, min: props.min, max: props.max, autoComplete: props.autoComplete, autoFocus: props.autoFocus, disabled: props.disabled, id: props.name, onChange: onChange, onBlur: onBlur })] }));
11497
+ return (jsxs(Container$i, { children: [jsx$1(Label$8, __assign$2({ as: "label", htmlFor: props.name }, { children: props.label })), jsx$1(Spacer, { vertical: 5 }), jsx$1(Input.Date, { defaultValue: props.defaultValue, min: props.min, max: props.max, autoComplete: props.autoComplete, autoFocus: props.autoFocus, disabled: props.disabled, id: props.name, onChange: onChange, onBlur: onBlur })] }));
11498
+ };
11499
+
11500
+ var propTypes = {exports: {}};
11501
+
11502
+ /*
11503
+ object-assign
11504
+ (c) Sindre Sorhus
11505
+ @license MIT
11506
+ */
11507
+ /* eslint-disable no-unused-vars */
11508
+ var getOwnPropertySymbols = Object.getOwnPropertySymbols;
11509
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
11510
+ var propIsEnumerable = Object.prototype.propertyIsEnumerable;
11511
+
11512
+ function toObject(val) {
11513
+ if (val === null || val === undefined) {
11514
+ throw new TypeError('Object.assign cannot be called with null or undefined');
11515
+ }
11516
+
11517
+ return Object(val);
11518
+ }
11519
+
11520
+ function shouldUseNative() {
11521
+ try {
11522
+ if (!Object.assign) {
11523
+ return false;
11524
+ }
11525
+
11526
+ // Detect buggy property enumeration order in older V8 versions.
11527
+
11528
+ // https://bugs.chromium.org/p/v8/issues/detail?id=4118
11529
+ var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
11530
+ test1[5] = 'de';
11531
+ if (Object.getOwnPropertyNames(test1)[0] === '5') {
11532
+ return false;
11533
+ }
11534
+
11535
+ // https://bugs.chromium.org/p/v8/issues/detail?id=3056
11536
+ var test2 = {};
11537
+ for (var i = 0; i < 10; i++) {
11538
+ test2['_' + String.fromCharCode(i)] = i;
11539
+ }
11540
+ var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
11541
+ return test2[n];
11542
+ });
11543
+ if (order2.join('') !== '0123456789') {
11544
+ return false;
11545
+ }
11546
+
11547
+ // https://bugs.chromium.org/p/v8/issues/detail?id=3056
11548
+ var test3 = {};
11549
+ 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
11550
+ test3[letter] = letter;
11551
+ });
11552
+ if (Object.keys(Object.assign({}, test3)).join('') !==
11553
+ 'abcdefghijklmnopqrst') {
11554
+ return false;
11555
+ }
11556
+
11557
+ return true;
11558
+ } catch (err) {
11559
+ // We don't expect any of the above to throw, but better to be safe.
11560
+ return false;
11561
+ }
11562
+ }
11563
+
11564
+ var objectAssign = shouldUseNative() ? Object.assign : function (target, source) {
11565
+ var from;
11566
+ var to = toObject(target);
11567
+ var symbols;
11568
+
11569
+ for (var s = 1; s < arguments.length; s++) {
11570
+ from = Object(arguments[s]);
11571
+
11572
+ for (var key in from) {
11573
+ if (hasOwnProperty.call(from, key)) {
11574
+ to[key] = from[key];
11575
+ }
11576
+ }
11577
+
11578
+ if (getOwnPropertySymbols) {
11579
+ symbols = getOwnPropertySymbols(from);
11580
+ for (var i = 0; i < symbols.length; i++) {
11581
+ if (propIsEnumerable.call(from, symbols[i])) {
11582
+ to[symbols[i]] = from[symbols[i]];
11583
+ }
11584
+ }
11585
+ }
11586
+ }
11587
+
11588
+ return to;
11589
+ };
11590
+
11591
+ /**
11592
+ * Copyright (c) 2013-present, Facebook, Inc.
11593
+ *
11594
+ * This source code is licensed under the MIT license found in the
11595
+ * LICENSE file in the root directory of this source tree.
11596
+ */
11597
+
11598
+ var ReactPropTypesSecret$3 = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
11599
+
11600
+ var ReactPropTypesSecret_1 = ReactPropTypesSecret$3;
11601
+
11602
+ var has$2 = Function.call.bind(Object.prototype.hasOwnProperty);
11603
+
11604
+ /**
11605
+ * Copyright (c) 2013-present, Facebook, Inc.
11606
+ *
11607
+ * This source code is licensed under the MIT license found in the
11608
+ * LICENSE file in the root directory of this source tree.
11609
+ */
11610
+
11611
+ var printWarning$1 = function() {};
11612
+
11613
+ if (process.env.NODE_ENV !== 'production') {
11614
+ var ReactPropTypesSecret$2 = ReactPropTypesSecret_1;
11615
+ var loggedTypeFailures = {};
11616
+ var has$1 = has$2;
11617
+
11618
+ printWarning$1 = function(text) {
11619
+ var message = 'Warning: ' + text;
11620
+ if (typeof console !== 'undefined') {
11621
+ console.error(message);
11622
+ }
11623
+ try {
11624
+ // --- Welcome to debugging React ---
11625
+ // This error was thrown as a convenience so that you can use this stack
11626
+ // to find the callsite that caused this warning to fire.
11627
+ throw new Error(message);
11628
+ } catch (x) { /**/ }
11629
+ };
11630
+ }
11631
+
11632
+ /**
11633
+ * Assert that the values match with the type specs.
11634
+ * Error messages are memorized and will only be shown once.
11635
+ *
11636
+ * @param {object} typeSpecs Map of name to a ReactPropType
11637
+ * @param {object} values Runtime values that need to be type-checked
11638
+ * @param {string} location e.g. "prop", "context", "child context"
11639
+ * @param {string} componentName Name of the component for error messages.
11640
+ * @param {?Function} getStack Returns the component stack.
11641
+ * @private
11642
+ */
11643
+ function checkPropTypes$1(typeSpecs, values, location, componentName, getStack) {
11644
+ if (process.env.NODE_ENV !== 'production') {
11645
+ for (var typeSpecName in typeSpecs) {
11646
+ if (has$1(typeSpecs, typeSpecName)) {
11647
+ var error;
11648
+ // Prop type validation may throw. In case they do, we don't want to
11649
+ // fail the render phase where it didn't fail before. So we log it.
11650
+ // After these have been cleaned up, we'll let them throw.
11651
+ try {
11652
+ // This is intentionally an invariant that gets caught. It's the same
11653
+ // behavior as without this statement except with a better message.
11654
+ if (typeof typeSpecs[typeSpecName] !== 'function') {
11655
+ var err = Error(
11656
+ (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +
11657
+ 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +
11658
+ 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'
11659
+ );
11660
+ err.name = 'Invariant Violation';
11661
+ throw err;
11662
+ }
11663
+ error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret$2);
11664
+ } catch (ex) {
11665
+ error = ex;
11666
+ }
11667
+ if (error && !(error instanceof Error)) {
11668
+ printWarning$1(
11669
+ (componentName || 'React class') + ': type specification of ' +
11670
+ location + ' `' + typeSpecName + '` is invalid; the type checker ' +
11671
+ 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +
11672
+ 'You may have forgotten to pass an argument to the type checker ' +
11673
+ 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +
11674
+ 'shape all require an argument).'
11675
+ );
11676
+ }
11677
+ if (error instanceof Error && !(error.message in loggedTypeFailures)) {
11678
+ // Only monitor this failure once because there tends to be a lot of the
11679
+ // same error.
11680
+ loggedTypeFailures[error.message] = true;
11681
+
11682
+ var stack = getStack ? getStack() : '';
11683
+
11684
+ printWarning$1(
11685
+ 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')
11686
+ );
11687
+ }
11688
+ }
11689
+ }
11690
+ }
11691
+ }
11692
+
11693
+ /**
11694
+ * Resets warning cache when testing.
11695
+ *
11696
+ * @private
11697
+ */
11698
+ checkPropTypes$1.resetWarningCache = function() {
11699
+ if (process.env.NODE_ENV !== 'production') {
11700
+ loggedTypeFailures = {};
11701
+ }
11702
+ };
11703
+
11704
+ var checkPropTypes_1 = checkPropTypes$1;
11705
+
11706
+ /**
11707
+ * Copyright (c) 2013-present, Facebook, Inc.
11708
+ *
11709
+ * This source code is licensed under the MIT license found in the
11710
+ * LICENSE file in the root directory of this source tree.
11711
+ */
11712
+
11713
+ var ReactIs$1 = reactIs$1.exports;
11714
+ var assign = objectAssign;
11715
+
11716
+ var ReactPropTypesSecret$1 = ReactPropTypesSecret_1;
11717
+ var has = has$2;
11718
+ var checkPropTypes = checkPropTypes_1;
11719
+
11720
+ var printWarning = function() {};
11721
+
11722
+ if (process.env.NODE_ENV !== 'production') {
11723
+ printWarning = function(text) {
11724
+ var message = 'Warning: ' + text;
11725
+ if (typeof console !== 'undefined') {
11726
+ console.error(message);
11727
+ }
11728
+ try {
11729
+ // --- Welcome to debugging React ---
11730
+ // This error was thrown as a convenience so that you can use this stack
11731
+ // to find the callsite that caused this warning to fire.
11732
+ throw new Error(message);
11733
+ } catch (x) {}
11734
+ };
11735
+ }
11736
+
11737
+ function emptyFunctionThatReturnsNull() {
11738
+ return null;
11739
+ }
11740
+
11741
+ var factoryWithTypeCheckers = function(isValidElement, throwOnDirectAccess) {
11742
+ /* global Symbol */
11743
+ var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
11744
+ var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.
11745
+
11746
+ /**
11747
+ * Returns the iterator method function contained on the iterable object.
11748
+ *
11749
+ * Be sure to invoke the function with the iterable as context:
11750
+ *
11751
+ * var iteratorFn = getIteratorFn(myIterable);
11752
+ * if (iteratorFn) {
11753
+ * var iterator = iteratorFn.call(myIterable);
11754
+ * ...
11755
+ * }
11756
+ *
11757
+ * @param {?object} maybeIterable
11758
+ * @return {?function}
11759
+ */
11760
+ function getIteratorFn(maybeIterable) {
11761
+ var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);
11762
+ if (typeof iteratorFn === 'function') {
11763
+ return iteratorFn;
11764
+ }
11765
+ }
11766
+
11767
+ /**
11768
+ * Collection of methods that allow declaration and validation of props that are
11769
+ * supplied to React components. Example usage:
11770
+ *
11771
+ * var Props = require('ReactPropTypes');
11772
+ * var MyArticle = React.createClass({
11773
+ * propTypes: {
11774
+ * // An optional string prop named "description".
11775
+ * description: Props.string,
11776
+ *
11777
+ * // A required enum prop named "category".
11778
+ * category: Props.oneOf(['News','Photos']).isRequired,
11779
+ *
11780
+ * // A prop named "dialog" that requires an instance of Dialog.
11781
+ * dialog: Props.instanceOf(Dialog).isRequired
11782
+ * },
11783
+ * render: function() { ... }
11784
+ * });
11785
+ *
11786
+ * A more formal specification of how these methods are used:
11787
+ *
11788
+ * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)
11789
+ * decl := ReactPropTypes.{type}(.isRequired)?
11790
+ *
11791
+ * Each and every declaration produces a function with the same signature. This
11792
+ * allows the creation of custom validation functions. For example:
11793
+ *
11794
+ * var MyLink = React.createClass({
11795
+ * propTypes: {
11796
+ * // An optional string or URI prop named "href".
11797
+ * href: function(props, propName, componentName) {
11798
+ * var propValue = props[propName];
11799
+ * if (propValue != null && typeof propValue !== 'string' &&
11800
+ * !(propValue instanceof URI)) {
11801
+ * return new Error(
11802
+ * 'Expected a string or an URI for ' + propName + ' in ' +
11803
+ * componentName
11804
+ * );
11805
+ * }
11806
+ * }
11807
+ * },
11808
+ * render: function() {...}
11809
+ * });
11810
+ *
11811
+ * @internal
11812
+ */
11813
+
11814
+ var ANONYMOUS = '<<anonymous>>';
11815
+
11816
+ // Important!
11817
+ // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.
11818
+ var ReactPropTypes = {
11819
+ array: createPrimitiveTypeChecker('array'),
11820
+ bigint: createPrimitiveTypeChecker('bigint'),
11821
+ bool: createPrimitiveTypeChecker('boolean'),
11822
+ func: createPrimitiveTypeChecker('function'),
11823
+ number: createPrimitiveTypeChecker('number'),
11824
+ object: createPrimitiveTypeChecker('object'),
11825
+ string: createPrimitiveTypeChecker('string'),
11826
+ symbol: createPrimitiveTypeChecker('symbol'),
11827
+
11828
+ any: createAnyTypeChecker(),
11829
+ arrayOf: createArrayOfTypeChecker,
11830
+ element: createElementTypeChecker(),
11831
+ elementType: createElementTypeTypeChecker(),
11832
+ instanceOf: createInstanceTypeChecker,
11833
+ node: createNodeChecker(),
11834
+ objectOf: createObjectOfTypeChecker,
11835
+ oneOf: createEnumTypeChecker,
11836
+ oneOfType: createUnionTypeChecker,
11837
+ shape: createShapeTypeChecker,
11838
+ exact: createStrictShapeTypeChecker,
11839
+ };
11840
+
11841
+ /**
11842
+ * inlined Object.is polyfill to avoid requiring consumers ship their own
11843
+ * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
11844
+ */
11845
+ /*eslint-disable no-self-compare*/
11846
+ function is(x, y) {
11847
+ // SameValue algorithm
11848
+ if (x === y) {
11849
+ // Steps 1-5, 7-10
11850
+ // Steps 6.b-6.e: +0 != -0
11851
+ return x !== 0 || 1 / x === 1 / y;
11852
+ } else {
11853
+ // Step 6.a: NaN == NaN
11854
+ return x !== x && y !== y;
11855
+ }
11856
+ }
11857
+ /*eslint-enable no-self-compare*/
11858
+
11859
+ /**
11860
+ * We use an Error-like object for backward compatibility as people may call
11861
+ * PropTypes directly and inspect their output. However, we don't use real
11862
+ * Errors anymore. We don't inspect their stack anyway, and creating them
11863
+ * is prohibitively expensive if they are created too often, such as what
11864
+ * happens in oneOfType() for any type before the one that matched.
11865
+ */
11866
+ function PropTypeError(message, data) {
11867
+ this.message = message;
11868
+ this.data = data && typeof data === 'object' ? data: {};
11869
+ this.stack = '';
11870
+ }
11871
+ // Make `instanceof Error` still work for returned errors.
11872
+ PropTypeError.prototype = Error.prototype;
11873
+
11874
+ function createChainableTypeChecker(validate) {
11875
+ if (process.env.NODE_ENV !== 'production') {
11876
+ var manualPropTypeCallCache = {};
11877
+ var manualPropTypeWarningCount = 0;
11878
+ }
11879
+ function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {
11880
+ componentName = componentName || ANONYMOUS;
11881
+ propFullName = propFullName || propName;
11882
+
11883
+ if (secret !== ReactPropTypesSecret$1) {
11884
+ if (throwOnDirectAccess) {
11885
+ // New behavior only for users of `prop-types` package
11886
+ var err = new Error(
11887
+ 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
11888
+ 'Use `PropTypes.checkPropTypes()` to call them. ' +
11889
+ 'Read more at http://fb.me/use-check-prop-types'
11890
+ );
11891
+ err.name = 'Invariant Violation';
11892
+ throw err;
11893
+ } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {
11894
+ // Old behavior for people using React.PropTypes
11895
+ var cacheKey = componentName + ':' + propName;
11896
+ if (
11897
+ !manualPropTypeCallCache[cacheKey] &&
11898
+ // Avoid spamming the console because they are often not actionable except for lib authors
11899
+ manualPropTypeWarningCount < 3
11900
+ ) {
11901
+ printWarning(
11902
+ 'You are manually calling a React.PropTypes validation ' +
11903
+ 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +
11904
+ 'and will throw in the standalone `prop-types` package. ' +
11905
+ 'You may be seeing this warning due to a third-party PropTypes ' +
11906
+ 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'
11907
+ );
11908
+ manualPropTypeCallCache[cacheKey] = true;
11909
+ manualPropTypeWarningCount++;
11910
+ }
11911
+ }
11912
+ }
11913
+ if (props[propName] == null) {
11914
+ if (isRequired) {
11915
+ if (props[propName] === null) {
11916
+ return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));
11917
+ }
11918
+ return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));
11919
+ }
11920
+ return null;
11921
+ } else {
11922
+ return validate(props, propName, componentName, location, propFullName);
11923
+ }
11924
+ }
11925
+
11926
+ var chainedCheckType = checkType.bind(null, false);
11927
+ chainedCheckType.isRequired = checkType.bind(null, true);
11928
+
11929
+ return chainedCheckType;
11930
+ }
11931
+
11932
+ function createPrimitiveTypeChecker(expectedType) {
11933
+ function validate(props, propName, componentName, location, propFullName, secret) {
11934
+ var propValue = props[propName];
11935
+ var propType = getPropType(propValue);
11936
+ if (propType !== expectedType) {
11937
+ // `propValue` being instance of, say, date/regexp, pass the 'object'
11938
+ // check, but we can offer a more precise error message here rather than
11939
+ // 'of type `object`'.
11940
+ var preciseType = getPreciseType(propValue);
11941
+
11942
+ return new PropTypeError(
11943
+ 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),
11944
+ {expectedType: expectedType}
11945
+ );
11946
+ }
11947
+ return null;
11948
+ }
11949
+ return createChainableTypeChecker(validate);
11950
+ }
11951
+
11952
+ function createAnyTypeChecker() {
11953
+ return createChainableTypeChecker(emptyFunctionThatReturnsNull);
11954
+ }
11955
+
11956
+ function createArrayOfTypeChecker(typeChecker) {
11957
+ function validate(props, propName, componentName, location, propFullName) {
11958
+ if (typeof typeChecker !== 'function') {
11959
+ return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');
11960
+ }
11961
+ var propValue = props[propName];
11962
+ if (!Array.isArray(propValue)) {
11963
+ var propType = getPropType(propValue);
11964
+ return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));
11965
+ }
11966
+ for (var i = 0; i < propValue.length; i++) {
11967
+ var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret$1);
11968
+ if (error instanceof Error) {
11969
+ return error;
11970
+ }
11971
+ }
11972
+ return null;
11973
+ }
11974
+ return createChainableTypeChecker(validate);
11975
+ }
11976
+
11977
+ function createElementTypeChecker() {
11978
+ function validate(props, propName, componentName, location, propFullName) {
11979
+ var propValue = props[propName];
11980
+ if (!isValidElement(propValue)) {
11981
+ var propType = getPropType(propValue);
11982
+ return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));
11983
+ }
11984
+ return null;
11985
+ }
11986
+ return createChainableTypeChecker(validate);
11987
+ }
11988
+
11989
+ function createElementTypeTypeChecker() {
11990
+ function validate(props, propName, componentName, location, propFullName) {
11991
+ var propValue = props[propName];
11992
+ if (!ReactIs$1.isValidElementType(propValue)) {
11993
+ var propType = getPropType(propValue);
11994
+ return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));
11995
+ }
11996
+ return null;
11997
+ }
11998
+ return createChainableTypeChecker(validate);
11999
+ }
12000
+
12001
+ function createInstanceTypeChecker(expectedClass) {
12002
+ function validate(props, propName, componentName, location, propFullName) {
12003
+ if (!(props[propName] instanceof expectedClass)) {
12004
+ var expectedClassName = expectedClass.name || ANONYMOUS;
12005
+ var actualClassName = getClassName(props[propName]);
12006
+ return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));
12007
+ }
12008
+ return null;
12009
+ }
12010
+ return createChainableTypeChecker(validate);
12011
+ }
12012
+
12013
+ function createEnumTypeChecker(expectedValues) {
12014
+ if (!Array.isArray(expectedValues)) {
12015
+ if (process.env.NODE_ENV !== 'production') {
12016
+ if (arguments.length > 1) {
12017
+ printWarning(
12018
+ 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +
12019
+ 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'
12020
+ );
12021
+ } else {
12022
+ printWarning('Invalid argument supplied to oneOf, expected an array.');
12023
+ }
12024
+ }
12025
+ return emptyFunctionThatReturnsNull;
12026
+ }
12027
+
12028
+ function validate(props, propName, componentName, location, propFullName) {
12029
+ var propValue = props[propName];
12030
+ for (var i = 0; i < expectedValues.length; i++) {
12031
+ if (is(propValue, expectedValues[i])) {
12032
+ return null;
12033
+ }
12034
+ }
12035
+
12036
+ var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {
12037
+ var type = getPreciseType(value);
12038
+ if (type === 'symbol') {
12039
+ return String(value);
12040
+ }
12041
+ return value;
12042
+ });
12043
+ return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));
12044
+ }
12045
+ return createChainableTypeChecker(validate);
12046
+ }
12047
+
12048
+ function createObjectOfTypeChecker(typeChecker) {
12049
+ function validate(props, propName, componentName, location, propFullName) {
12050
+ if (typeof typeChecker !== 'function') {
12051
+ return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');
12052
+ }
12053
+ var propValue = props[propName];
12054
+ var propType = getPropType(propValue);
12055
+ if (propType !== 'object') {
12056
+ return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));
12057
+ }
12058
+ for (var key in propValue) {
12059
+ if (has(propValue, key)) {
12060
+ var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret$1);
12061
+ if (error instanceof Error) {
12062
+ return error;
12063
+ }
12064
+ }
12065
+ }
12066
+ return null;
12067
+ }
12068
+ return createChainableTypeChecker(validate);
12069
+ }
12070
+
12071
+ function createUnionTypeChecker(arrayOfTypeCheckers) {
12072
+ if (!Array.isArray(arrayOfTypeCheckers)) {
12073
+ process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;
12074
+ return emptyFunctionThatReturnsNull;
12075
+ }
12076
+
12077
+ for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
12078
+ var checker = arrayOfTypeCheckers[i];
12079
+ if (typeof checker !== 'function') {
12080
+ printWarning(
12081
+ 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +
12082
+ 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'
12083
+ );
12084
+ return emptyFunctionThatReturnsNull;
12085
+ }
12086
+ }
12087
+
12088
+ function validate(props, propName, componentName, location, propFullName) {
12089
+ var expectedTypes = [];
12090
+ for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
12091
+ var checker = arrayOfTypeCheckers[i];
12092
+ var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret$1);
12093
+ if (checkerResult == null) {
12094
+ return null;
12095
+ }
12096
+ if (checkerResult.data && has(checkerResult.data, 'expectedType')) {
12097
+ expectedTypes.push(checkerResult.data.expectedType);
12098
+ }
12099
+ }
12100
+ var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';
12101
+ return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));
12102
+ }
12103
+ return createChainableTypeChecker(validate);
12104
+ }
12105
+
12106
+ function createNodeChecker() {
12107
+ function validate(props, propName, componentName, location, propFullName) {
12108
+ if (!isNode(props[propName])) {
12109
+ return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));
12110
+ }
12111
+ return null;
12112
+ }
12113
+ return createChainableTypeChecker(validate);
12114
+ }
12115
+
12116
+ function invalidValidatorError(componentName, location, propFullName, key, type) {
12117
+ return new PropTypeError(
12118
+ (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +
12119
+ 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'
12120
+ );
12121
+ }
12122
+
12123
+ function createShapeTypeChecker(shapeTypes) {
12124
+ function validate(props, propName, componentName, location, propFullName) {
12125
+ var propValue = props[propName];
12126
+ var propType = getPropType(propValue);
12127
+ if (propType !== 'object') {
12128
+ return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
12129
+ }
12130
+ for (var key in shapeTypes) {
12131
+ var checker = shapeTypes[key];
12132
+ if (typeof checker !== 'function') {
12133
+ return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));
12134
+ }
12135
+ var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret$1);
12136
+ if (error) {
12137
+ return error;
12138
+ }
12139
+ }
12140
+ return null;
12141
+ }
12142
+ return createChainableTypeChecker(validate);
12143
+ }
12144
+
12145
+ function createStrictShapeTypeChecker(shapeTypes) {
12146
+ function validate(props, propName, componentName, location, propFullName) {
12147
+ var propValue = props[propName];
12148
+ var propType = getPropType(propValue);
12149
+ if (propType !== 'object') {
12150
+ return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
12151
+ }
12152
+ // We need to check all keys in case some are required but missing from props.
12153
+ var allKeys = assign({}, props[propName], shapeTypes);
12154
+ for (var key in allKeys) {
12155
+ var checker = shapeTypes[key];
12156
+ if (has(shapeTypes, key) && typeof checker !== 'function') {
12157
+ return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));
12158
+ }
12159
+ if (!checker) {
12160
+ return new PropTypeError(
12161
+ 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +
12162
+ '\nBad object: ' + JSON.stringify(props[propName], null, ' ') +
12163
+ '\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')
12164
+ );
12165
+ }
12166
+ var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret$1);
12167
+ if (error) {
12168
+ return error;
12169
+ }
12170
+ }
12171
+ return null;
12172
+ }
12173
+
12174
+ return createChainableTypeChecker(validate);
12175
+ }
12176
+
12177
+ function isNode(propValue) {
12178
+ switch (typeof propValue) {
12179
+ case 'number':
12180
+ case 'string':
12181
+ case 'undefined':
12182
+ return true;
12183
+ case 'boolean':
12184
+ return !propValue;
12185
+ case 'object':
12186
+ if (Array.isArray(propValue)) {
12187
+ return propValue.every(isNode);
12188
+ }
12189
+ if (propValue === null || isValidElement(propValue)) {
12190
+ return true;
12191
+ }
12192
+
12193
+ var iteratorFn = getIteratorFn(propValue);
12194
+ if (iteratorFn) {
12195
+ var iterator = iteratorFn.call(propValue);
12196
+ var step;
12197
+ if (iteratorFn !== propValue.entries) {
12198
+ while (!(step = iterator.next()).done) {
12199
+ if (!isNode(step.value)) {
12200
+ return false;
12201
+ }
12202
+ }
12203
+ } else {
12204
+ // Iterator will provide entry [k,v] tuples rather than values.
12205
+ while (!(step = iterator.next()).done) {
12206
+ var entry = step.value;
12207
+ if (entry) {
12208
+ if (!isNode(entry[1])) {
12209
+ return false;
12210
+ }
12211
+ }
12212
+ }
12213
+ }
12214
+ } else {
12215
+ return false;
12216
+ }
12217
+
12218
+ return true;
12219
+ default:
12220
+ return false;
12221
+ }
12222
+ }
12223
+
12224
+ function isSymbol(propType, propValue) {
12225
+ // Native Symbol.
12226
+ if (propType === 'symbol') {
12227
+ return true;
12228
+ }
12229
+
12230
+ // falsy value can't be a Symbol
12231
+ if (!propValue) {
12232
+ return false;
12233
+ }
12234
+
12235
+ // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'
12236
+ if (propValue['@@toStringTag'] === 'Symbol') {
12237
+ return true;
12238
+ }
12239
+
12240
+ // Fallback for non-spec compliant Symbols which are polyfilled.
12241
+ if (typeof Symbol === 'function' && propValue instanceof Symbol) {
12242
+ return true;
12243
+ }
12244
+
12245
+ return false;
12246
+ }
12247
+
12248
+ // Equivalent of `typeof` but with special handling for array and regexp.
12249
+ function getPropType(propValue) {
12250
+ var propType = typeof propValue;
12251
+ if (Array.isArray(propValue)) {
12252
+ return 'array';
12253
+ }
12254
+ if (propValue instanceof RegExp) {
12255
+ // Old webkits (at least until Android 4.0) return 'function' rather than
12256
+ // 'object' for typeof a RegExp. We'll normalize this here so that /bla/
12257
+ // passes PropTypes.object.
12258
+ return 'object';
12259
+ }
12260
+ if (isSymbol(propType, propValue)) {
12261
+ return 'symbol';
12262
+ }
12263
+ return propType;
12264
+ }
12265
+
12266
+ // This handles more types than `getPropType`. Only used for error messages.
12267
+ // See `createPrimitiveTypeChecker`.
12268
+ function getPreciseType(propValue) {
12269
+ if (typeof propValue === 'undefined' || propValue === null) {
12270
+ return '' + propValue;
12271
+ }
12272
+ var propType = getPropType(propValue);
12273
+ if (propType === 'object') {
12274
+ if (propValue instanceof Date) {
12275
+ return 'date';
12276
+ } else if (propValue instanceof RegExp) {
12277
+ return 'regexp';
12278
+ }
12279
+ }
12280
+ return propType;
12281
+ }
12282
+
12283
+ // Returns a string that is postfixed to a warning about an invalid type.
12284
+ // For example, "undefined" or "of type array"
12285
+ function getPostfixForTypeWarning(value) {
12286
+ var type = getPreciseType(value);
12287
+ switch (type) {
12288
+ case 'array':
12289
+ case 'object':
12290
+ return 'an ' + type;
12291
+ case 'boolean':
12292
+ case 'date':
12293
+ case 'regexp':
12294
+ return 'a ' + type;
12295
+ default:
12296
+ return type;
12297
+ }
12298
+ }
12299
+
12300
+ // Returns class name of the object, if any.
12301
+ function getClassName(propValue) {
12302
+ if (!propValue.constructor || !propValue.constructor.name) {
12303
+ return ANONYMOUS;
12304
+ }
12305
+ return propValue.constructor.name;
12306
+ }
12307
+
12308
+ ReactPropTypes.checkPropTypes = checkPropTypes;
12309
+ ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;
12310
+ ReactPropTypes.PropTypes = ReactPropTypes;
12311
+
12312
+ return ReactPropTypes;
12313
+ };
12314
+
12315
+ /**
12316
+ * Copyright (c) 2013-present, Facebook, Inc.
12317
+ *
12318
+ * This source code is licensed under the MIT license found in the
12319
+ * LICENSE file in the root directory of this source tree.
12320
+ */
12321
+
12322
+ var ReactPropTypesSecret = ReactPropTypesSecret_1;
12323
+
12324
+ function emptyFunction() {}
12325
+ function emptyFunctionWithReset() {}
12326
+ emptyFunctionWithReset.resetWarningCache = emptyFunction;
12327
+
12328
+ var factoryWithThrowingShims = function() {
12329
+ function shim(props, propName, componentName, location, propFullName, secret) {
12330
+ if (secret === ReactPropTypesSecret) {
12331
+ // It is still safe when called from React.
12332
+ return;
12333
+ }
12334
+ var err = new Error(
12335
+ 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
12336
+ 'Use PropTypes.checkPropTypes() to call them. ' +
12337
+ 'Read more at http://fb.me/use-check-prop-types'
12338
+ );
12339
+ err.name = 'Invariant Violation';
12340
+ throw err;
12341
+ } shim.isRequired = shim;
12342
+ function getShim() {
12343
+ return shim;
12344
+ } // Important!
12345
+ // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.
12346
+ var ReactPropTypes = {
12347
+ array: shim,
12348
+ bigint: shim,
12349
+ bool: shim,
12350
+ func: shim,
12351
+ number: shim,
12352
+ object: shim,
12353
+ string: shim,
12354
+ symbol: shim,
12355
+
12356
+ any: shim,
12357
+ arrayOf: getShim,
12358
+ element: shim,
12359
+ elementType: shim,
12360
+ instanceOf: getShim,
12361
+ node: shim,
12362
+ objectOf: getShim,
12363
+ oneOf: getShim,
12364
+ oneOfType: getShim,
12365
+ shape: getShim,
12366
+ exact: getShim,
12367
+
12368
+ checkPropTypes: emptyFunctionWithReset,
12369
+ resetWarningCache: emptyFunction
12370
+ };
12371
+
12372
+ ReactPropTypes.PropTypes = ReactPropTypes;
12373
+
12374
+ return ReactPropTypes;
12375
+ };
12376
+
12377
+ /**
12378
+ * Copyright (c) 2013-present, Facebook, Inc.
12379
+ *
12380
+ * This source code is licensed under the MIT license found in the
12381
+ * LICENSE file in the root directory of this source tree.
12382
+ */
12383
+
12384
+ if (process.env.NODE_ENV !== 'production') {
12385
+ var ReactIs = reactIs$1.exports;
12386
+
12387
+ // By explicitly using `prop-types` you are opting into new development behavior.
12388
+ // http://fb.me/prop-types-in-prod
12389
+ var throwOnDirectAccess = true;
12390
+ propTypes.exports = factoryWithTypeCheckers(ReactIs.isElement, throwOnDirectAccess);
12391
+ } else {
12392
+ // By explicitly using `prop-types` you are opting into new production behavior.
12393
+ // http://fb.me/prop-types-in-prod
12394
+ propTypes.exports = factoryWithThrowingShims();
12395
+ }
12396
+
12397
+ var PropTypes = propTypes.exports;
12398
+
12399
+ var COMMON_MIME_TYPES = new Map([
12400
+ // https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types
12401
+ ['aac', 'audio/aac'],
12402
+ ['abw', 'application/x-abiword'],
12403
+ ['arc', 'application/x-freearc'],
12404
+ ['avif', 'image/avif'],
12405
+ ['avi', 'video/x-msvideo'],
12406
+ ['azw', 'application/vnd.amazon.ebook'],
12407
+ ['bin', 'application/octet-stream'],
12408
+ ['bmp', 'image/bmp'],
12409
+ ['bz', 'application/x-bzip'],
12410
+ ['bz2', 'application/x-bzip2'],
12411
+ ['cda', 'application/x-cdf'],
12412
+ ['csh', 'application/x-csh'],
12413
+ ['css', 'text/css'],
12414
+ ['csv', 'text/csv'],
12415
+ ['doc', 'application/msword'],
12416
+ ['docx', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'],
12417
+ ['eot', 'application/vnd.ms-fontobject'],
12418
+ ['epub', 'application/epub+zip'],
12419
+ ['gz', 'application/gzip'],
12420
+ ['gif', 'image/gif'],
12421
+ ['heic', 'image/heic'],
12422
+ ['heif', 'image/heif'],
12423
+ ['htm', 'text/html'],
12424
+ ['html', 'text/html'],
12425
+ ['ico', 'image/vnd.microsoft.icon'],
12426
+ ['ics', 'text/calendar'],
12427
+ ['jar', 'application/java-archive'],
12428
+ ['jpeg', 'image/jpeg'],
12429
+ ['jpg', 'image/jpeg'],
12430
+ ['js', 'text/javascript'],
12431
+ ['json', 'application/json'],
12432
+ ['jsonld', 'application/ld+json'],
12433
+ ['mid', 'audio/midi'],
12434
+ ['midi', 'audio/midi'],
12435
+ ['mjs', 'text/javascript'],
12436
+ ['mp3', 'audio/mpeg'],
12437
+ ['mp4', 'video/mp4'],
12438
+ ['mpeg', 'video/mpeg'],
12439
+ ['mpkg', 'application/vnd.apple.installer+xml'],
12440
+ ['odp', 'application/vnd.oasis.opendocument.presentation'],
12441
+ ['ods', 'application/vnd.oasis.opendocument.spreadsheet'],
12442
+ ['odt', 'application/vnd.oasis.opendocument.text'],
12443
+ ['oga', 'audio/ogg'],
12444
+ ['ogv', 'video/ogg'],
12445
+ ['ogx', 'application/ogg'],
12446
+ ['opus', 'audio/opus'],
12447
+ ['otf', 'font/otf'],
12448
+ ['png', 'image/png'],
12449
+ ['pdf', 'application/pdf'],
12450
+ ['php', 'application/x-httpd-php'],
12451
+ ['ppt', 'application/vnd.ms-powerpoint'],
12452
+ ['pptx', 'application/vnd.openxmlformats-officedocument.presentationml.presentation'],
12453
+ ['rar', 'application/vnd.rar'],
12454
+ ['rtf', 'application/rtf'],
12455
+ ['sh', 'application/x-sh'],
12456
+ ['svg', 'image/svg+xml'],
12457
+ ['swf', 'application/x-shockwave-flash'],
12458
+ ['tar', 'application/x-tar'],
12459
+ ['tif', 'image/tiff'],
12460
+ ['tiff', 'image/tiff'],
12461
+ ['ts', 'video/mp2t'],
12462
+ ['ttf', 'font/ttf'],
12463
+ ['txt', 'text/plain'],
12464
+ ['vsd', 'application/vnd.visio'],
12465
+ ['wav', 'audio/wav'],
12466
+ ['weba', 'audio/webm'],
12467
+ ['webm', 'video/webm'],
12468
+ ['webp', 'image/webp'],
12469
+ ['woff', 'font/woff'],
12470
+ ['woff2', 'font/woff2'],
12471
+ ['xhtml', 'application/xhtml+xml'],
12472
+ ['xls', 'application/vnd.ms-excel'],
12473
+ ['xlsx', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'],
12474
+ ['xml', 'application/xml'],
12475
+ ['xul', 'application/vnd.mozilla.xul+xml'],
12476
+ ['zip', 'application/zip'],
12477
+ ['7z', 'application/x-7z-compressed'],
12478
+ // Others
12479
+ ['mkv', 'video/x-matroska'],
12480
+ ['mov', 'video/quicktime'],
12481
+ ['msg', 'application/vnd.ms-outlook']
12482
+ ]);
12483
+ function toFileWithPath(file, path) {
12484
+ var f = withMimeType(file);
12485
+ if (typeof f.path !== 'string') { // on electron, path is already set to the absolute path
12486
+ var webkitRelativePath = file.webkitRelativePath;
12487
+ Object.defineProperty(f, 'path', {
12488
+ value: typeof path === 'string'
12489
+ ? path
12490
+ // If <input webkitdirectory> is set,
12491
+ // the File will have a {webkitRelativePath} property
12492
+ // https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/webkitdirectory
12493
+ : typeof webkitRelativePath === 'string' && webkitRelativePath.length > 0
12494
+ ? webkitRelativePath
12495
+ : file.name,
12496
+ writable: false,
12497
+ configurable: false,
12498
+ enumerable: true
12499
+ });
12500
+ }
12501
+ return f;
12502
+ }
12503
+ function withMimeType(file) {
12504
+ var name = file.name;
12505
+ var hasExtension = name && name.lastIndexOf('.') !== -1;
12506
+ if (hasExtension && !file.type) {
12507
+ var ext = name.split('.')
12508
+ .pop().toLowerCase();
12509
+ var type = COMMON_MIME_TYPES.get(ext);
12510
+ if (type) {
12511
+ Object.defineProperty(file, 'type', {
12512
+ value: type,
12513
+ writable: false,
12514
+ configurable: false,
12515
+ enumerable: true
12516
+ });
12517
+ }
12518
+ }
12519
+ return file;
12520
+ }
12521
+
12522
+ var FILES_TO_IGNORE = [
12523
+ // Thumbnail cache files for macOS and Windows
12524
+ '.DS_Store',
12525
+ 'Thumbs.db' // Windows
12526
+ ];
12527
+ /**
12528
+ * Convert a DragEvent's DataTrasfer object to a list of File objects
12529
+ * NOTE: If some of the items are folders,
12530
+ * everything will be flattened and placed in the same list but the paths will be kept as a {path} property.
12531
+ *
12532
+ * EXPERIMENTAL: A list of https://developer.mozilla.org/en-US/docs/Web/API/FileSystemHandle objects can also be passed as an arg
12533
+ * and a list of File objects will be returned.
12534
+ *
12535
+ * @param evt
12536
+ */
12537
+ function fromEvent(evt) {
12538
+ return __awaiter(this, void 0, void 0, function () {
12539
+ return __generator(this, function (_a) {
12540
+ if (isObject(evt) && isDataTransfer(evt.dataTransfer)) {
12541
+ return [2 /*return*/, getDataTransferFiles(evt.dataTransfer, evt.type)];
12542
+ }
12543
+ else if (isChangeEvt(evt)) {
12544
+ return [2 /*return*/, getInputFiles(evt)];
12545
+ }
12546
+ else if (Array.isArray(evt) && evt.every(function (item) { return 'getFile' in item && typeof item.getFile === 'function'; })) {
12547
+ return [2 /*return*/, getFsHandleFiles(evt)];
12548
+ }
12549
+ return [2 /*return*/, []];
12550
+ });
12551
+ });
12552
+ }
12553
+ function isDataTransfer(value) {
12554
+ return isObject(value);
12555
+ }
12556
+ function isChangeEvt(value) {
12557
+ return isObject(value) && isObject(value.target);
12558
+ }
12559
+ function isObject(v) {
12560
+ return typeof v === 'object' && v !== null;
12561
+ }
12562
+ function getInputFiles(evt) {
12563
+ return fromList(evt.target.files).map(function (file) { return toFileWithPath(file); });
12564
+ }
12565
+ // Ee expect each handle to be https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileHandle
12566
+ function getFsHandleFiles(handles) {
12567
+ return __awaiter(this, void 0, void 0, function () {
12568
+ var files;
12569
+ return __generator(this, function (_a) {
12570
+ switch (_a.label) {
12571
+ case 0: return [4 /*yield*/, Promise.all(handles.map(function (h) { return h.getFile(); }))];
12572
+ case 1:
12573
+ files = _a.sent();
12574
+ return [2 /*return*/, files.map(function (file) { return toFileWithPath(file); })];
12575
+ }
12576
+ });
12577
+ });
12578
+ }
12579
+ function getDataTransferFiles(dt, type) {
12580
+ return __awaiter(this, void 0, void 0, function () {
12581
+ var items, files;
12582
+ return __generator(this, function (_a) {
12583
+ switch (_a.label) {
12584
+ case 0:
12585
+ if (!dt.items) return [3 /*break*/, 2];
12586
+ items = fromList(dt.items)
12587
+ .filter(function (item) { return item.kind === 'file'; });
12588
+ // According to https://html.spec.whatwg.org/multipage/dnd.html#dndevents,
12589
+ // only 'dragstart' and 'drop' has access to the data (source node)
12590
+ if (type !== 'drop') {
12591
+ return [2 /*return*/, items];
12592
+ }
12593
+ return [4 /*yield*/, Promise.all(items.map(toFilePromises))];
12594
+ case 1:
12595
+ files = _a.sent();
12596
+ return [2 /*return*/, noIgnoredFiles(flatten(files))];
12597
+ case 2: return [2 /*return*/, noIgnoredFiles(fromList(dt.files)
12598
+ .map(function (file) { return toFileWithPath(file); }))];
12599
+ }
12600
+ });
12601
+ });
12602
+ }
12603
+ function noIgnoredFiles(files) {
12604
+ return files.filter(function (file) { return FILES_TO_IGNORE.indexOf(file.name) === -1; });
12605
+ }
12606
+ // IE11 does not support Array.from()
12607
+ // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from#Browser_compatibility
12608
+ // https://developer.mozilla.org/en-US/docs/Web/API/FileList
12609
+ // https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItemList
12610
+ function fromList(items) {
12611
+ if (items === null) {
12612
+ return [];
12613
+ }
12614
+ var files = [];
12615
+ // tslint:disable: prefer-for-of
12616
+ for (var i = 0; i < items.length; i++) {
12617
+ var file = items[i];
12618
+ files.push(file);
12619
+ }
12620
+ return files;
12621
+ }
12622
+ // https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItem
12623
+ function toFilePromises(item) {
12624
+ if (typeof item.webkitGetAsEntry !== 'function') {
12625
+ return fromDataTransferItem(item);
12626
+ }
12627
+ var entry = item.webkitGetAsEntry();
12628
+ // Safari supports dropping an image node from a different window and can be retrieved using
12629
+ // the DataTransferItem.getAsFile() API
12630
+ // NOTE: FileSystemEntry.file() throws if trying to get the file
12631
+ if (entry && entry.isDirectory) {
12632
+ return fromDirEntry(entry);
12633
+ }
12634
+ return fromDataTransferItem(item);
12635
+ }
12636
+ function flatten(items) {
12637
+ return items.reduce(function (acc, files) { return __spreadArray(__spreadArray([], __read(acc), false), __read((Array.isArray(files) ? flatten(files) : [files])), false); }, []);
12638
+ }
12639
+ function fromDataTransferItem(item) {
12640
+ var file = item.getAsFile();
12641
+ if (!file) {
12642
+ return Promise.reject("".concat(item, " is not a File"));
12643
+ }
12644
+ var fwp = toFileWithPath(file);
12645
+ return Promise.resolve(fwp);
12646
+ }
12647
+ // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemEntry
12648
+ function fromEntry(entry) {
12649
+ return __awaiter(this, void 0, void 0, function () {
12650
+ return __generator(this, function (_a) {
12651
+ return [2 /*return*/, entry.isDirectory ? fromDirEntry(entry) : fromFileEntry(entry)];
12652
+ });
12653
+ });
12654
+ }
12655
+ // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryEntry
12656
+ function fromDirEntry(entry) {
12657
+ var reader = entry.createReader();
12658
+ return new Promise(function (resolve, reject) {
12659
+ var entries = [];
12660
+ function readEntries() {
12661
+ var _this = this;
12662
+ // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryEntry/createReader
12663
+ // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryReader/readEntries
12664
+ reader.readEntries(function (batch) { return __awaiter(_this, void 0, void 0, function () {
12665
+ var files, err_1, items;
12666
+ return __generator(this, function (_a) {
12667
+ switch (_a.label) {
12668
+ case 0:
12669
+ if (!!batch.length) return [3 /*break*/, 5];
12670
+ _a.label = 1;
12671
+ case 1:
12672
+ _a.trys.push([1, 3, , 4]);
12673
+ return [4 /*yield*/, Promise.all(entries)];
12674
+ case 2:
12675
+ files = _a.sent();
12676
+ resolve(files);
12677
+ return [3 /*break*/, 4];
12678
+ case 3:
12679
+ err_1 = _a.sent();
12680
+ reject(err_1);
12681
+ return [3 /*break*/, 4];
12682
+ case 4: return [3 /*break*/, 6];
12683
+ case 5:
12684
+ items = Promise.all(batch.map(fromEntry));
12685
+ entries.push(items);
12686
+ // Continue reading
12687
+ readEntries();
12688
+ _a.label = 6;
12689
+ case 6: return [2 /*return*/];
12690
+ }
12691
+ });
12692
+ }); }, function (err) {
12693
+ reject(err);
12694
+ });
12695
+ }
12696
+ readEntries();
12697
+ });
12698
+ }
12699
+ // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileEntry
12700
+ function fromFileEntry(entry) {
12701
+ return __awaiter(this, void 0, void 0, function () {
12702
+ return __generator(this, function (_a) {
12703
+ return [2 /*return*/, new Promise(function (resolve, reject) {
12704
+ entry.file(function (file) {
12705
+ var fwp = toFileWithPath(file, entry.fullPath);
12706
+ resolve(fwp);
12707
+ }, function (err) {
12708
+ reject(err);
12709
+ });
12710
+ })];
12711
+ });
12712
+ });
12713
+ }
12714
+
12715
+ var _default = function (file, acceptedFiles) {
12716
+ if (file && acceptedFiles) {
12717
+ var acceptedFilesArray = Array.isArray(acceptedFiles) ? acceptedFiles : acceptedFiles.split(',');
12718
+ var fileName = file.name || '';
12719
+ var mimeType = (file.type || '').toLowerCase();
12720
+ var baseMimeType = mimeType.replace(/\/.*$/, '');
12721
+ return acceptedFilesArray.some(function (type) {
12722
+ var validType = type.trim().toLowerCase();
12723
+
12724
+ if (validType.charAt(0) === '.') {
12725
+ return fileName.toLowerCase().endsWith(validType);
12726
+ } else if (validType.endsWith('/*')) {
12727
+ // This is something like a image/* mime type
12728
+ return baseMimeType === validType.replace(/\/.*$/, '');
12729
+ }
12730
+
12731
+ return mimeType === validType;
12732
+ });
12733
+ }
12734
+
12735
+ return true;
12736
+ };
12737
+
12738
+ function _toConsumableArray$1(arr) { return _arrayWithoutHoles$1(arr) || _iterableToArray$1(arr) || _unsupportedIterableToArray$1(arr) || _nonIterableSpread$1(); }
12739
+
12740
+ function _nonIterableSpread$1() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
12741
+
12742
+ function _iterableToArray$1(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
12743
+
12744
+ function _arrayWithoutHoles$1(arr) { if (Array.isArray(arr)) return _arrayLikeToArray$1(arr); }
12745
+
12746
+ function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
12747
+
12748
+ function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { _defineProperty$1(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
12749
+
12750
+ function _defineProperty$1(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; }
12751
+
12752
+ function _slicedToArray$1(arr, i) { return _arrayWithHoles$1(arr) || _iterableToArrayLimit$1(arr, i) || _unsupportedIterableToArray$1(arr, i) || _nonIterableRest$1(); }
12753
+
12754
+ function _nonIterableRest$1() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
12755
+
12756
+ function _unsupportedIterableToArray$1(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$1(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$1(o, minLen); }
12757
+
12758
+ function _arrayLikeToArray$1(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; }
12759
+
12760
+ function _iterableToArrayLimit$1(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_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"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
12761
+
12762
+ function _arrayWithHoles$1(arr) { if (Array.isArray(arr)) return arr; }
12763
+
12764
+ var FILE_INVALID_TYPE = "file-invalid-type";
12765
+ var FILE_TOO_LARGE = "file-too-large";
12766
+ var FILE_TOO_SMALL = "file-too-small";
12767
+ var TOO_MANY_FILES = "too-many-files";
12768
+
12769
+ var getInvalidTypeRejectionErr = function getInvalidTypeRejectionErr(accept) {
12770
+ accept = Array.isArray(accept) && accept.length === 1 ? accept[0] : accept;
12771
+ var messageSuffix = Array.isArray(accept) ? "one of ".concat(accept.join(", ")) : accept;
12772
+ return {
12773
+ code: FILE_INVALID_TYPE,
12774
+ message: "File type must be ".concat(messageSuffix)
12775
+ };
12776
+ };
12777
+ var getTooLargeRejectionErr = function getTooLargeRejectionErr(maxSize) {
12778
+ return {
12779
+ code: FILE_TOO_LARGE,
12780
+ message: "File is larger than ".concat(maxSize, " ").concat(maxSize === 1 ? "byte" : "bytes")
12781
+ };
12782
+ };
12783
+ var getTooSmallRejectionErr = function getTooSmallRejectionErr(minSize) {
12784
+ return {
12785
+ code: FILE_TOO_SMALL,
12786
+ message: "File is smaller than ".concat(minSize, " ").concat(minSize === 1 ? "byte" : "bytes")
12787
+ };
12788
+ };
12789
+ var TOO_MANY_FILES_REJECTION = {
12790
+ code: TOO_MANY_FILES,
12791
+ message: "Too many files"
12792
+ }; // Firefox versions prior to 53 return a bogus MIME type for every file drag, so dragovers with
12793
+ // that MIME type will always be accepted
12794
+
12795
+ function fileAccepted(file, accept) {
12796
+ var isAcceptable = file.type === "application/x-moz-file" || _default(file, accept);
12797
+ return [isAcceptable, isAcceptable ? null : getInvalidTypeRejectionErr(accept)];
12798
+ }
12799
+ function fileMatchSize(file, minSize, maxSize) {
12800
+ if (isDefined(file.size)) {
12801
+ if (isDefined(minSize) && isDefined(maxSize)) {
12802
+ if (file.size > maxSize) return [false, getTooLargeRejectionErr(maxSize)];
12803
+ if (file.size < minSize) return [false, getTooSmallRejectionErr(minSize)];
12804
+ } else if (isDefined(minSize) && file.size < minSize) return [false, getTooSmallRejectionErr(minSize)];else if (isDefined(maxSize) && file.size > maxSize) return [false, getTooLargeRejectionErr(maxSize)];
12805
+ }
12806
+
12807
+ return [true, null];
12808
+ }
12809
+
12810
+ function isDefined(value) {
12811
+ return value !== undefined && value !== null;
12812
+ }
12813
+ /**
12814
+ *
12815
+ * @param {object} options
12816
+ * @param {File[]} options.files
12817
+ * @param {string|string[]} [options.accept]
12818
+ * @param {number} [options.minSize]
12819
+ * @param {number} [options.maxSize]
12820
+ * @param {boolean} [options.multiple]
12821
+ * @param {number} [options.maxFiles]
12822
+ * @param {(f: File) => FileError|FileError[]|null} [options.validator]
12823
+ * @returns
12824
+ */
12825
+
12826
+
12827
+ function allFilesAccepted(_ref) {
12828
+ var files = _ref.files,
12829
+ accept = _ref.accept,
12830
+ minSize = _ref.minSize,
12831
+ maxSize = _ref.maxSize,
12832
+ multiple = _ref.multiple,
12833
+ maxFiles = _ref.maxFiles,
12834
+ validator = _ref.validator;
12835
+
12836
+ if (!multiple && files.length > 1 || multiple && maxFiles >= 1 && files.length > maxFiles) {
12837
+ return false;
12838
+ }
12839
+
12840
+ return files.every(function (file) {
12841
+ var _fileAccepted = fileAccepted(file, accept),
12842
+ _fileAccepted2 = _slicedToArray$1(_fileAccepted, 1),
12843
+ accepted = _fileAccepted2[0];
12844
+
12845
+ var _fileMatchSize = fileMatchSize(file, minSize, maxSize),
12846
+ _fileMatchSize2 = _slicedToArray$1(_fileMatchSize, 1),
12847
+ sizeMatch = _fileMatchSize2[0];
12848
+
12849
+ var customErrors = validator ? validator(file) : null;
12850
+ return accepted && sizeMatch && !customErrors;
12851
+ });
12852
+ } // React's synthetic events has event.isPropagationStopped,
12853
+ // but to remain compatibility with other libs (Preact) fall back
12854
+ // to check event.cancelBubble
12855
+
12856
+ function isPropagationStopped(event) {
12857
+ if (typeof event.isPropagationStopped === "function") {
12858
+ return event.isPropagationStopped();
12859
+ } else if (typeof event.cancelBubble !== "undefined") {
12860
+ return event.cancelBubble;
12861
+ }
12862
+
12863
+ return false;
12864
+ }
12865
+ function isEvtWithFiles(event) {
12866
+ if (!event.dataTransfer) {
12867
+ return !!event.target && !!event.target.files;
12868
+ } // https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/types
12869
+ // https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API/Recommended_drag_types#file
12870
+
12871
+
12872
+ return Array.prototype.some.call(event.dataTransfer.types, function (type) {
12873
+ return type === "Files" || type === "application/x-moz-file";
12874
+ });
12875
+ }
12876
+
12877
+ function onDocumentDragOver(event) {
12878
+ event.preventDefault();
12879
+ }
12880
+
12881
+ function isIe(userAgent) {
12882
+ return userAgent.indexOf("MSIE") !== -1 || userAgent.indexOf("Trident/") !== -1;
12883
+ }
12884
+
12885
+ function isEdge(userAgent) {
12886
+ return userAgent.indexOf("Edge/") !== -1;
12887
+ }
12888
+
12889
+ function isIeOrEdge() {
12890
+ var userAgent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window.navigator.userAgent;
12891
+ return isIe(userAgent) || isEdge(userAgent);
12892
+ }
12893
+ /**
12894
+ * This is intended to be used to compose event handlers
12895
+ * They are executed in order until one of them calls `event.isPropagationStopped()`.
12896
+ * Note that the check is done on the first invoke too,
12897
+ * meaning that if propagation was stopped before invoking the fns,
12898
+ * no handlers will be executed.
12899
+ *
12900
+ * @param {Function} fns the event hanlder functions
12901
+ * @return {Function} the event handler to add to an element
12902
+ */
12903
+
12904
+ function composeEventHandlers() {
12905
+ for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {
12906
+ fns[_key] = arguments[_key];
12907
+ }
12908
+
12909
+ return function (event) {
12910
+ for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
12911
+ args[_key2 - 1] = arguments[_key2];
12912
+ }
12913
+
12914
+ return fns.some(function (fn) {
12915
+ if (!isPropagationStopped(event) && fn) {
12916
+ fn.apply(void 0, [event].concat(args));
12917
+ }
12918
+
12919
+ return isPropagationStopped(event);
12920
+ });
12921
+ };
12922
+ }
12923
+ /**
12924
+ * canUseFileSystemAccessAPI checks if the [File System Access API](https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API)
12925
+ * is supported by the browser.
12926
+ * @returns {boolean}
12927
+ */
12928
+
12929
+ function canUseFileSystemAccessAPI() {
12930
+ return "showOpenFilePicker" in window;
12931
+ }
12932
+ /**
12933
+ * Convert the `{accept}` dropzone prop to the
12934
+ * `{types}` option for https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker
12935
+ *
12936
+ * @param {AcceptProp} accept
12937
+ * @returns {{accept: string[]}[]}
12938
+ */
12939
+
12940
+ function pickerOptionsFromAccept(accept) {
12941
+ if (isDefined(accept)) {
12942
+ var acceptForPicker = Object.entries(accept).filter(function (_ref2) {
12943
+ var _ref3 = _slicedToArray$1(_ref2, 2),
12944
+ mimeType = _ref3[0],
12945
+ ext = _ref3[1];
12946
+
12947
+ var ok = true;
12948
+
12949
+ if (!isMIMEType(mimeType)) {
12950
+ console.warn("Skipped \"".concat(mimeType, "\" because it is not a valid MIME type. Check https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types for a list of valid MIME types."));
12951
+ ok = false;
12952
+ }
12953
+
12954
+ if (!Array.isArray(ext) || !ext.every(isExt)) {
12955
+ console.warn("Skipped \"".concat(mimeType, "\" because an invalid file extension was provided."));
12956
+ ok = false;
12957
+ }
12958
+
12959
+ return ok;
12960
+ }).reduce(function (agg, _ref4) {
12961
+ var _ref5 = _slicedToArray$1(_ref4, 2),
12962
+ mimeType = _ref5[0],
12963
+ ext = _ref5[1];
12964
+
12965
+ return _objectSpread$1(_objectSpread$1({}, agg), {}, _defineProperty$1({}, mimeType, ext));
12966
+ }, {});
12967
+ return [{
12968
+ // description is required due to https://crbug.com/1264708
12969
+ description: "Files",
12970
+ accept: acceptForPicker
12971
+ }];
12972
+ }
12973
+
12974
+ return accept;
12975
+ }
12976
+ /**
12977
+ * Convert the `{accept}` dropzone prop to an array of MIME types/extensions.
12978
+ * @param {AcceptProp} accept
12979
+ * @returns {string}
12980
+ */
12981
+
12982
+ function acceptPropAsAcceptAttr(accept) {
12983
+ if (isDefined(accept)) {
12984
+ return Object.entries(accept).reduce(function (a, _ref6) {
12985
+ var _ref7 = _slicedToArray$1(_ref6, 2),
12986
+ mimeType = _ref7[0],
12987
+ ext = _ref7[1];
12988
+
12989
+ return [].concat(_toConsumableArray$1(a), [mimeType], _toConsumableArray$1(ext));
12990
+ }, []) // Silently discard invalid entries as pickerOptionsFromAccept warns about these
12991
+ .filter(function (v) {
12992
+ return isMIMEType(v) || isExt(v);
12993
+ }).join(",");
12994
+ }
12995
+
12996
+ return undefined;
12997
+ }
12998
+ /**
12999
+ * Check if v is an exception caused by aborting a request (e.g window.showOpenFilePicker()).
13000
+ *
13001
+ * See https://developer.mozilla.org/en-US/docs/Web/API/DOMException.
13002
+ * @param {any} v
13003
+ * @returns {boolean} True if v is an abort exception.
13004
+ */
13005
+
13006
+ function isAbort(v) {
13007
+ return v instanceof DOMException && (v.name === "AbortError" || v.code === v.ABORT_ERR);
13008
+ }
13009
+ /**
13010
+ * Check if v is a security error.
13011
+ *
13012
+ * See https://developer.mozilla.org/en-US/docs/Web/API/DOMException.
13013
+ * @param {any} v
13014
+ * @returns {boolean} True if v is a security error.
13015
+ */
13016
+
13017
+ function isSecurityError(v) {
13018
+ return v instanceof DOMException && (v.name === "SecurityError" || v.code === v.SECURITY_ERR);
13019
+ }
13020
+ /**
13021
+ * Check if v is a MIME type string.
13022
+ *
13023
+ * See accepted format: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#unique_file_type_specifiers.
13024
+ *
13025
+ * @param {string} v
13026
+ */
13027
+
13028
+ function isMIMEType(v) {
13029
+ return v === "audio/*" || v === "video/*" || v === "image/*" || v === "text/*" || /\w+\/[-+.\w]+/g.test(v);
13030
+ }
13031
+ /**
13032
+ * Check if v is a file extension.
13033
+ * @param {string} v
13034
+ */
13035
+
13036
+ function isExt(v) {
13037
+ return /^.*\.[\w]+$/.test(v);
13038
+ }
13039
+ /**
13040
+ * @typedef {Object.<string, string[]>} AcceptProp
13041
+ */
13042
+
13043
+ /**
13044
+ * @typedef {object} FileError
13045
+ * @property {string} message
13046
+ * @property {ErrorCode|string} code
13047
+ */
13048
+
13049
+ /**
13050
+ * @typedef {"file-invalid-type"|"file-too-large"|"file-too-small"|"too-many-files"} ErrorCode
13051
+ */
13052
+
13053
+ var _excluded = ["children"],
13054
+ _excluded2 = ["open"],
13055
+ _excluded3 = ["refKey", "role", "onKeyDown", "onFocus", "onBlur", "onClick", "onDragEnter", "onDragOver", "onDragLeave", "onDrop"],
13056
+ _excluded4 = ["refKey", "onChange", "onClick"];
13057
+
13058
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
13059
+
13060
+ 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."); }
13061
+
13062
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
13063
+
13064
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
13065
+
13066
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
13067
+
13068
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
13069
+
13070
+ 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); }
13071
+
13072
+ 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; }
13073
+
13074
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_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"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
13075
+
13076
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
13077
+
13078
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
13079
+
13080
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
13081
+
13082
+ 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; }
13083
+
13084
+ 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; }
13085
+
13086
+ 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; }
13087
+ /**
13088
+ * Convenience wrapper component for the `useDropzone` hook
13089
+ *
13090
+ * ```jsx
13091
+ * <Dropzone>
13092
+ * {({getRootProps, getInputProps}) => (
13093
+ * <div {...getRootProps()}>
13094
+ * <input {...getInputProps()} />
13095
+ * <p>Drag 'n' drop some files here, or click to select files</p>
13096
+ * </div>
13097
+ * )}
13098
+ * </Dropzone>
13099
+ * ```
13100
+ */
13101
+
13102
+ var Dropzone = /*#__PURE__*/forwardRef(function (_ref, ref) {
13103
+ var children = _ref.children,
13104
+ params = _objectWithoutProperties(_ref, _excluded);
13105
+
13106
+ var _useDropzone = useDropzone(params),
13107
+ open = _useDropzone.open,
13108
+ props = _objectWithoutProperties(_useDropzone, _excluded2);
13109
+
13110
+ useImperativeHandle(ref, function () {
13111
+ return {
13112
+ open: open
13113
+ };
13114
+ }, [open]); // TODO: Figure out why react-styleguidist cannot create docs if we don't return a jsx element
13115
+
13116
+ return /*#__PURE__*/React__default.createElement(Fragment, null, children(_objectSpread(_objectSpread({}, props), {}, {
13117
+ open: open
13118
+ })));
13119
+ });
13120
+ Dropzone.displayName = "Dropzone"; // Add default props for react-docgen
13121
+
13122
+ var defaultProps = {
13123
+ disabled: false,
13124
+ getFilesFromEvent: fromEvent,
13125
+ maxSize: Infinity,
13126
+ minSize: 0,
13127
+ multiple: true,
13128
+ maxFiles: 0,
13129
+ preventDropOnDocument: true,
13130
+ noClick: false,
13131
+ noKeyboard: false,
13132
+ noDrag: false,
13133
+ noDragEventsBubbling: false,
13134
+ validator: null,
13135
+ useFsAccessApi: true,
13136
+ autoFocus: false
13137
+ };
13138
+ Dropzone.defaultProps = defaultProps;
13139
+ Dropzone.propTypes = {
13140
+ /**
13141
+ * Render function that exposes the dropzone state and prop getter fns
13142
+ *
13143
+ * @param {object} params
13144
+ * @param {Function} params.getRootProps Returns the props you should apply to the root drop container you render
13145
+ * @param {Function} params.getInputProps Returns the props you should apply to hidden file input you render
13146
+ * @param {Function} params.open Open the native file selection dialog
13147
+ * @param {boolean} params.isFocused Dropzone area is in focus
13148
+ * @param {boolean} params.isFileDialogActive File dialog is opened
13149
+ * @param {boolean} params.isDragActive Active drag is in progress
13150
+ * @param {boolean} params.isDragAccept Dragged files are accepted
13151
+ * @param {boolean} params.isDragReject Some dragged files are rejected
13152
+ * @param {File[]} params.acceptedFiles Accepted files
13153
+ * @param {FileRejection[]} params.fileRejections Rejected files and why they were rejected
13154
+ */
13155
+ children: PropTypes.func,
13156
+
13157
+ /**
13158
+ * Set accepted file types.
13159
+ * Checkout https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker types option for more information.
13160
+ * Keep in mind that mime type determination is not reliable across platforms. CSV files,
13161
+ * for example, are reported as text/plain under macOS but as application/vnd.ms-excel under
13162
+ * Windows. In some cases there might not be a mime type set at all (https://github.com/react-dropzone/react-dropzone/issues/276).
13163
+ */
13164
+ accept: PropTypes.objectOf(PropTypes.arrayOf(PropTypes.string)),
13165
+
13166
+ /**
13167
+ * Allow drag 'n' drop (or selection from the file dialog) of multiple files
13168
+ */
13169
+ multiple: PropTypes.bool,
13170
+
13171
+ /**
13172
+ * If false, allow dropped items to take over the current browser window
13173
+ */
13174
+ preventDropOnDocument: PropTypes.bool,
13175
+
13176
+ /**
13177
+ * If true, disables click to open the native file selection dialog
13178
+ */
13179
+ noClick: PropTypes.bool,
13180
+
13181
+ /**
13182
+ * If true, disables SPACE/ENTER to open the native file selection dialog.
13183
+ * Note that it also stops tracking the focus state.
13184
+ */
13185
+ noKeyboard: PropTypes.bool,
13186
+
13187
+ /**
13188
+ * If true, disables drag 'n' drop
13189
+ */
13190
+ noDrag: PropTypes.bool,
13191
+
13192
+ /**
13193
+ * If true, stops drag event propagation to parents
13194
+ */
13195
+ noDragEventsBubbling: PropTypes.bool,
13196
+
13197
+ /**
13198
+ * Minimum file size (in bytes)
13199
+ */
13200
+ minSize: PropTypes.number,
13201
+
13202
+ /**
13203
+ * Maximum file size (in bytes)
13204
+ */
13205
+ maxSize: PropTypes.number,
13206
+
13207
+ /**
13208
+ * Maximum accepted number of files
13209
+ * The default value is 0 which means there is no limitation to how many files are accepted.
13210
+ */
13211
+ maxFiles: PropTypes.number,
13212
+
13213
+ /**
13214
+ * Enable/disable the dropzone
13215
+ */
13216
+ disabled: PropTypes.bool,
13217
+
13218
+ /**
13219
+ * Use this to provide a custom file aggregator
13220
+ *
13221
+ * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)
13222
+ */
13223
+ getFilesFromEvent: PropTypes.func,
13224
+
13225
+ /**
13226
+ * Cb for when closing the file dialog with no selection
13227
+ */
13228
+ onFileDialogCancel: PropTypes.func,
13229
+
13230
+ /**
13231
+ * Cb for when opening the file dialog
13232
+ */
13233
+ onFileDialogOpen: PropTypes.func,
13234
+
13235
+ /**
13236
+ * Set to true to use the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API
13237
+ * to open the file picker instead of using an `<input type="file">` click event.
13238
+ */
13239
+ useFsAccessApi: PropTypes.bool,
13240
+
13241
+ /**
13242
+ * Set to true to focus the root element on render
13243
+ */
13244
+ autoFocus: PropTypes.bool,
13245
+
13246
+ /**
13247
+ * Cb for when the `dragenter` event occurs.
13248
+ *
13249
+ * @param {DragEvent} event
13250
+ */
13251
+ onDragEnter: PropTypes.func,
13252
+
13253
+ /**
13254
+ * Cb for when the `dragleave` event occurs
13255
+ *
13256
+ * @param {DragEvent} event
13257
+ */
13258
+ onDragLeave: PropTypes.func,
13259
+
13260
+ /**
13261
+ * Cb for when the `dragover` event occurs
13262
+ *
13263
+ * @param {DragEvent} event
13264
+ */
13265
+ onDragOver: PropTypes.func,
13266
+
13267
+ /**
13268
+ * Cb for when the `drop` event occurs.
13269
+ * Note that this callback is invoked after the `getFilesFromEvent` callback is done.
13270
+ *
13271
+ * Files are accepted or rejected based on the `accept`, `multiple`, `minSize` and `maxSize` props.
13272
+ * `accept` must be a valid [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml) according to [input element specification](https://www.w3.org/wiki/HTML/Elements/input/file) or a valid file extension.
13273
+ * If `multiple` is set to false and additional files are dropped,
13274
+ * all files besides the first will be rejected.
13275
+ * Any file which does not have a size in the [`minSize`, `maxSize`] range, will be rejected as well.
13276
+ *
13277
+ * Note that the `onDrop` callback will always be invoked regardless if the dropped files were accepted or rejected.
13278
+ * If you'd like to react to a specific scenario, use the `onDropAccepted`/`onDropRejected` props.
13279
+ *
13280
+ * `onDrop` will provide you with an array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects which you can then process and send to a server.
13281
+ * For example, with [SuperAgent](https://github.com/visionmedia/superagent) as a http/ajax library:
13282
+ *
13283
+ * ```js
13284
+ * function onDrop(acceptedFiles) {
13285
+ * const req = request.post('/upload')
13286
+ * acceptedFiles.forEach(file => {
13287
+ * req.attach(file.name, file)
13288
+ * })
13289
+ * req.end(callback)
13290
+ * }
13291
+ * ```
13292
+ *
13293
+ * @param {File[]} acceptedFiles
13294
+ * @param {FileRejection[]} fileRejections
13295
+ * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)
13296
+ */
13297
+ onDrop: PropTypes.func,
13298
+
13299
+ /**
13300
+ * Cb for when the `drop` event occurs.
13301
+ * Note that if no files are accepted, this callback is not invoked.
13302
+ *
13303
+ * @param {File[]} files
13304
+ * @param {(DragEvent|Event)} event
13305
+ */
13306
+ onDropAccepted: PropTypes.func,
13307
+
13308
+ /**
13309
+ * Cb for when the `drop` event occurs.
13310
+ * Note that if no files are rejected, this callback is not invoked.
13311
+ *
13312
+ * @param {FileRejection[]} fileRejections
13313
+ * @param {(DragEvent|Event)} event
13314
+ */
13315
+ onDropRejected: PropTypes.func,
13316
+
13317
+ /**
13318
+ * Cb for when there's some error from any of the promises.
13319
+ *
13320
+ * @param {Error} error
13321
+ */
13322
+ onError: PropTypes.func,
13323
+
13324
+ /**
13325
+ * Custom validation function. It must return null if there's no errors.
13326
+ * @param {File} file
13327
+ * @returns {FileError|FileError[]|null}
13328
+ */
13329
+ validator: PropTypes.func
13330
+ };
13331
+ /**
13332
+ * A function that is invoked for the `dragenter`,
13333
+ * `dragover` and `dragleave` events.
13334
+ * It is not invoked if the items are not files (such as link, text, etc.).
13335
+ *
13336
+ * @callback dragCb
13337
+ * @param {DragEvent} event
13338
+ */
13339
+
13340
+ /**
13341
+ * A function that is invoked for the `drop` or input change event.
13342
+ * It is not invoked if the items are not files (such as link, text, etc.).
13343
+ *
13344
+ * @callback dropCb
13345
+ * @param {File[]} acceptedFiles List of accepted files
13346
+ * @param {FileRejection[]} fileRejections List of rejected files and why they were rejected
13347
+ * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)
13348
+ */
13349
+
13350
+ /**
13351
+ * A function that is invoked for the `drop` or input change event.
13352
+ * It is not invoked if the items are files (such as link, text, etc.).
13353
+ *
13354
+ * @callback dropAcceptedCb
13355
+ * @param {File[]} files List of accepted files that meet the given criteria
13356
+ * (`accept`, `multiple`, `minSize`, `maxSize`)
13357
+ * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)
13358
+ */
13359
+
13360
+ /**
13361
+ * A function that is invoked for the `drop` or input change event.
13362
+ *
13363
+ * @callback dropRejectedCb
13364
+ * @param {File[]} files List of rejected files that do not meet the given criteria
13365
+ * (`accept`, `multiple`, `minSize`, `maxSize`)
13366
+ * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)
13367
+ */
13368
+
13369
+ /**
13370
+ * A function that is used aggregate files,
13371
+ * in a asynchronous fashion, from drag or input change events.
13372
+ *
13373
+ * @callback getFilesFromEvent
13374
+ * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)
13375
+ * @returns {(File[]|Promise<File[]>)}
13376
+ */
13377
+
13378
+ /**
13379
+ * An object with the current dropzone state.
13380
+ *
13381
+ * @typedef {object} DropzoneState
13382
+ * @property {boolean} isFocused Dropzone area is in focus
13383
+ * @property {boolean} isFileDialogActive File dialog is opened
13384
+ * @property {boolean} isDragActive Active drag is in progress
13385
+ * @property {boolean} isDragAccept Dragged files are accepted
13386
+ * @property {boolean} isDragReject Some dragged files are rejected
13387
+ * @property {File[]} acceptedFiles Accepted files
13388
+ * @property {FileRejection[]} fileRejections Rejected files and why they were rejected
13389
+ */
13390
+
13391
+ /**
13392
+ * An object with the dropzone methods.
13393
+ *
13394
+ * @typedef {object} DropzoneMethods
13395
+ * @property {Function} getRootProps Returns the props you should apply to the root drop container you render
13396
+ * @property {Function} getInputProps Returns the props you should apply to hidden file input you render
13397
+ * @property {Function} open Open the native file selection dialog
13398
+ */
13399
+
13400
+ var initialState = {
13401
+ isFocused: false,
13402
+ isFileDialogActive: false,
13403
+ isDragActive: false,
13404
+ isDragAccept: false,
13405
+ isDragReject: false,
13406
+ acceptedFiles: [],
13407
+ fileRejections: []
13408
+ };
13409
+ /**
13410
+ * A React hook that creates a drag 'n' drop area.
13411
+ *
13412
+ * ```jsx
13413
+ * function MyDropzone(props) {
13414
+ * const {getRootProps, getInputProps} = useDropzone({
13415
+ * onDrop: acceptedFiles => {
13416
+ * // do something with the File objects, e.g. upload to some server
13417
+ * }
13418
+ * });
13419
+ * return (
13420
+ * <div {...getRootProps()}>
13421
+ * <input {...getInputProps()} />
13422
+ * <p>Drag and drop some files here, or click to select files</p>
13423
+ * </div>
13424
+ * )
13425
+ * }
13426
+ * ```
13427
+ *
13428
+ * @function useDropzone
13429
+ *
13430
+ * @param {object} props
13431
+ * @param {import("./utils").AcceptProp} [props.accept] Set accepted file types.
13432
+ * Checkout https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker types option for more information.
13433
+ * Keep in mind that mime type determination is not reliable across platforms. CSV files,
13434
+ * for example, are reported as text/plain under macOS but as application/vnd.ms-excel under
13435
+ * Windows. In some cases there might not be a mime type set at all (https://github.com/react-dropzone/react-dropzone/issues/276).
13436
+ * @param {boolean} [props.multiple=true] Allow drag 'n' drop (or selection from the file dialog) of multiple files
13437
+ * @param {boolean} [props.preventDropOnDocument=true] If false, allow dropped items to take over the current browser window
13438
+ * @param {boolean} [props.noClick=false] If true, disables click to open the native file selection dialog
13439
+ * @param {boolean} [props.noKeyboard=false] If true, disables SPACE/ENTER to open the native file selection dialog.
13440
+ * Note that it also stops tracking the focus state.
13441
+ * @param {boolean} [props.noDrag=false] If true, disables drag 'n' drop
13442
+ * @param {boolean} [props.noDragEventsBubbling=false] If true, stops drag event propagation to parents
13443
+ * @param {number} [props.minSize=0] Minimum file size (in bytes)
13444
+ * @param {number} [props.maxSize=Infinity] Maximum file size (in bytes)
13445
+ * @param {boolean} [props.disabled=false] Enable/disable the dropzone
13446
+ * @param {getFilesFromEvent} [props.getFilesFromEvent] Use this to provide a custom file aggregator
13447
+ * @param {Function} [props.onFileDialogCancel] Cb for when closing the file dialog with no selection
13448
+ * @param {boolean} [props.useFsAccessApi] Set to true to use the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API
13449
+ * to open the file picker instead of using an `<input type="file">` click event.
13450
+ * @param {boolean} autoFocus Set to true to auto focus the root element.
13451
+ * @param {Function} [props.onFileDialogOpen] Cb for when opening the file dialog
13452
+ * @param {dragCb} [props.onDragEnter] Cb for when the `dragenter` event occurs.
13453
+ * @param {dragCb} [props.onDragLeave] Cb for when the `dragleave` event occurs
13454
+ * @param {dragCb} [props.onDragOver] Cb for when the `dragover` event occurs
13455
+ * @param {dropCb} [props.onDrop] Cb for when the `drop` event occurs.
13456
+ * Note that this callback is invoked after the `getFilesFromEvent` callback is done.
13457
+ *
13458
+ * Files are accepted or rejected based on the `accept`, `multiple`, `minSize` and `maxSize` props.
13459
+ * `accept` must be an object with keys as a valid [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml) according to [input element specification](https://www.w3.org/wiki/HTML/Elements/input/file) and the value an array of file extensions (optional).
13460
+ * If `multiple` is set to false and additional files are dropped,
13461
+ * all files besides the first will be rejected.
13462
+ * Any file which does not have a size in the [`minSize`, `maxSize`] range, will be rejected as well.
13463
+ *
13464
+ * Note that the `onDrop` callback will always be invoked regardless if the dropped files were accepted or rejected.
13465
+ * If you'd like to react to a specific scenario, use the `onDropAccepted`/`onDropRejected` props.
13466
+ *
13467
+ * `onDrop` will provide you with an array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects which you can then process and send to a server.
13468
+ * For example, with [SuperAgent](https://github.com/visionmedia/superagent) as a http/ajax library:
13469
+ *
13470
+ * ```js
13471
+ * function onDrop(acceptedFiles) {
13472
+ * const req = request.post('/upload')
13473
+ * acceptedFiles.forEach(file => {
13474
+ * req.attach(file.name, file)
13475
+ * })
13476
+ * req.end(callback)
13477
+ * }
13478
+ * ```
13479
+ * @param {dropAcceptedCb} [props.onDropAccepted]
13480
+ * @param {dropRejectedCb} [props.onDropRejected]
13481
+ * @param {(error: Error) => void} [props.onError]
13482
+ *
13483
+ * @returns {DropzoneState & DropzoneMethods}
13484
+ */
13485
+
13486
+ function useDropzone() {
13487
+ var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
13488
+
13489
+ var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props),
13490
+ accept = _defaultProps$props.accept,
13491
+ disabled = _defaultProps$props.disabled,
13492
+ getFilesFromEvent = _defaultProps$props.getFilesFromEvent,
13493
+ maxSize = _defaultProps$props.maxSize,
13494
+ minSize = _defaultProps$props.minSize,
13495
+ multiple = _defaultProps$props.multiple,
13496
+ maxFiles = _defaultProps$props.maxFiles,
13497
+ onDragEnter = _defaultProps$props.onDragEnter,
13498
+ onDragLeave = _defaultProps$props.onDragLeave,
13499
+ onDragOver = _defaultProps$props.onDragOver,
13500
+ onDrop = _defaultProps$props.onDrop,
13501
+ onDropAccepted = _defaultProps$props.onDropAccepted,
13502
+ onDropRejected = _defaultProps$props.onDropRejected,
13503
+ onFileDialogCancel = _defaultProps$props.onFileDialogCancel,
13504
+ onFileDialogOpen = _defaultProps$props.onFileDialogOpen,
13505
+ useFsAccessApi = _defaultProps$props.useFsAccessApi,
13506
+ autoFocus = _defaultProps$props.autoFocus,
13507
+ preventDropOnDocument = _defaultProps$props.preventDropOnDocument,
13508
+ noClick = _defaultProps$props.noClick,
13509
+ noKeyboard = _defaultProps$props.noKeyboard,
13510
+ noDrag = _defaultProps$props.noDrag,
13511
+ noDragEventsBubbling = _defaultProps$props.noDragEventsBubbling,
13512
+ onError = _defaultProps$props.onError,
13513
+ validator = _defaultProps$props.validator;
13514
+
13515
+ var acceptAttr = useMemo(function () {
13516
+ return acceptPropAsAcceptAttr(accept);
13517
+ }, [accept]);
13518
+ var pickerTypes = useMemo(function () {
13519
+ return pickerOptionsFromAccept(accept);
13520
+ }, [accept]);
13521
+ var onFileDialogOpenCb = useMemo(function () {
13522
+ return typeof onFileDialogOpen === "function" ? onFileDialogOpen : noop;
13523
+ }, [onFileDialogOpen]);
13524
+ var onFileDialogCancelCb = useMemo(function () {
13525
+ return typeof onFileDialogCancel === "function" ? onFileDialogCancel : noop;
13526
+ }, [onFileDialogCancel]);
13527
+ /**
13528
+ * @constant
13529
+ * @type {React.MutableRefObject<HTMLElement>}
13530
+ */
13531
+
13532
+ var rootRef = useRef(null);
13533
+ var inputRef = useRef(null);
13534
+
13535
+ var _useReducer = useReducer(reducer, initialState),
13536
+ _useReducer2 = _slicedToArray(_useReducer, 2),
13537
+ state = _useReducer2[0],
13538
+ dispatch = _useReducer2[1];
13539
+
13540
+ var isFocused = state.isFocused,
13541
+ isFileDialogActive = state.isFileDialogActive;
13542
+ var fsAccessApiWorksRef = useRef(typeof window !== "undefined" && window.isSecureContext && useFsAccessApi && canUseFileSystemAccessAPI()); // Update file dialog active state when the window is focused on
13543
+
13544
+ var onWindowFocus = function onWindowFocus() {
13545
+ // Execute the timeout only if the file dialog is opened in the browser
13546
+ if (!fsAccessApiWorksRef.current && isFileDialogActive) {
13547
+ setTimeout(function () {
13548
+ if (inputRef.current) {
13549
+ var files = inputRef.current.files;
13550
+
13551
+ if (!files.length) {
13552
+ dispatch({
13553
+ type: "closeDialog"
13554
+ });
13555
+ onFileDialogCancelCb();
13556
+ }
13557
+ }
13558
+ }, 300);
13559
+ }
13560
+ };
13561
+
13562
+ useEffect(function () {
13563
+ window.addEventListener("focus", onWindowFocus, false);
13564
+ return function () {
13565
+ window.removeEventListener("focus", onWindowFocus, false);
13566
+ };
13567
+ }, [inputRef, isFileDialogActive, onFileDialogCancelCb, fsAccessApiWorksRef]);
13568
+ var dragTargetsRef = useRef([]);
13569
+
13570
+ var onDocumentDrop = function onDocumentDrop(event) {
13571
+ if (rootRef.current && rootRef.current.contains(event.target)) {
13572
+ // If we intercepted an event for our instance, let it propagate down to the instance's onDrop handler
13573
+ return;
13574
+ }
13575
+
13576
+ event.preventDefault();
13577
+ dragTargetsRef.current = [];
13578
+ };
13579
+
13580
+ useEffect(function () {
13581
+ if (preventDropOnDocument) {
13582
+ document.addEventListener("dragover", onDocumentDragOver, false);
13583
+ document.addEventListener("drop", onDocumentDrop, false);
13584
+ }
13585
+
13586
+ return function () {
13587
+ if (preventDropOnDocument) {
13588
+ document.removeEventListener("dragover", onDocumentDragOver);
13589
+ document.removeEventListener("drop", onDocumentDrop);
13590
+ }
13591
+ };
13592
+ }, [rootRef, preventDropOnDocument]); // Auto focus the root when autoFocus is true
13593
+
13594
+ useEffect(function () {
13595
+ if (!disabled && autoFocus && rootRef.current) {
13596
+ rootRef.current.focus();
13597
+ }
13598
+
13599
+ return function () {};
13600
+ }, [rootRef, autoFocus, disabled]);
13601
+ var onErrCb = useCallback(function (e) {
13602
+ if (onError) {
13603
+ onError(e);
13604
+ } else {
13605
+ // Let the user know something's gone wrong if they haven't provided the onError cb.
13606
+ console.error(e);
13607
+ }
13608
+ }, [onError]);
13609
+ var onDragEnterCb = useCallback(function (event) {
13610
+ event.preventDefault(); // Persist here because we need the event later after getFilesFromEvent() is done
13611
+
13612
+ event.persist();
13613
+ stopPropagation(event);
13614
+ dragTargetsRef.current = [].concat(_toConsumableArray(dragTargetsRef.current), [event.target]);
13615
+
13616
+ if (isEvtWithFiles(event)) {
13617
+ Promise.resolve(getFilesFromEvent(event)).then(function (files) {
13618
+ if (isPropagationStopped(event) && !noDragEventsBubbling) {
13619
+ return;
13620
+ }
13621
+
13622
+ var fileCount = files.length;
13623
+ var isDragAccept = fileCount > 0 && allFilesAccepted({
13624
+ files: files,
13625
+ accept: acceptAttr,
13626
+ minSize: minSize,
13627
+ maxSize: maxSize,
13628
+ multiple: multiple,
13629
+ maxFiles: maxFiles,
13630
+ validator: validator
13631
+ });
13632
+ var isDragReject = fileCount > 0 && !isDragAccept;
13633
+ dispatch({
13634
+ isDragAccept: isDragAccept,
13635
+ isDragReject: isDragReject,
13636
+ isDragActive: true,
13637
+ type: "setDraggedFiles"
13638
+ });
13639
+
13640
+ if (onDragEnter) {
13641
+ onDragEnter(event);
13642
+ }
13643
+ }).catch(function (e) {
13644
+ return onErrCb(e);
13645
+ });
13646
+ }
13647
+ }, [getFilesFromEvent, onDragEnter, onErrCb, noDragEventsBubbling, acceptAttr, minSize, maxSize, multiple, maxFiles, validator]);
13648
+ var onDragOverCb = useCallback(function (event) {
13649
+ event.preventDefault();
13650
+ event.persist();
13651
+ stopPropagation(event);
13652
+ var hasFiles = isEvtWithFiles(event);
13653
+
13654
+ if (hasFiles && event.dataTransfer) {
13655
+ try {
13656
+ event.dataTransfer.dropEffect = "copy";
13657
+ } catch (_unused) {}
13658
+ /* eslint-disable-line no-empty */
13659
+
13660
+ }
13661
+
13662
+ if (hasFiles && onDragOver) {
13663
+ onDragOver(event);
13664
+ }
13665
+
13666
+ return false;
13667
+ }, [onDragOver, noDragEventsBubbling]);
13668
+ var onDragLeaveCb = useCallback(function (event) {
13669
+ event.preventDefault();
13670
+ event.persist();
13671
+ stopPropagation(event); // Only deactivate once the dropzone and all children have been left
13672
+
13673
+ var targets = dragTargetsRef.current.filter(function (target) {
13674
+ return rootRef.current && rootRef.current.contains(target);
13675
+ }); // Make sure to remove a target present multiple times only once
13676
+ // (Firefox may fire dragenter/dragleave multiple times on the same element)
13677
+
13678
+ var targetIdx = targets.indexOf(event.target);
13679
+
13680
+ if (targetIdx !== -1) {
13681
+ targets.splice(targetIdx, 1);
13682
+ }
13683
+
13684
+ dragTargetsRef.current = targets;
13685
+
13686
+ if (targets.length > 0) {
13687
+ return;
13688
+ }
13689
+
13690
+ dispatch({
13691
+ type: "setDraggedFiles",
13692
+ isDragActive: false,
13693
+ isDragAccept: false,
13694
+ isDragReject: false
13695
+ });
13696
+
13697
+ if (isEvtWithFiles(event) && onDragLeave) {
13698
+ onDragLeave(event);
13699
+ }
13700
+ }, [rootRef, onDragLeave, noDragEventsBubbling]);
13701
+ var setFiles = useCallback(function (files, event) {
13702
+ var acceptedFiles = [];
13703
+ var fileRejections = [];
13704
+ files.forEach(function (file) {
13705
+ var _fileAccepted = fileAccepted(file, acceptAttr),
13706
+ _fileAccepted2 = _slicedToArray(_fileAccepted, 2),
13707
+ accepted = _fileAccepted2[0],
13708
+ acceptError = _fileAccepted2[1];
13709
+
13710
+ var _fileMatchSize = fileMatchSize(file, minSize, maxSize),
13711
+ _fileMatchSize2 = _slicedToArray(_fileMatchSize, 2),
13712
+ sizeMatch = _fileMatchSize2[0],
13713
+ sizeError = _fileMatchSize2[1];
13714
+
13715
+ var customErrors = validator ? validator(file) : null;
13716
+
13717
+ if (accepted && sizeMatch && !customErrors) {
13718
+ acceptedFiles.push(file);
13719
+ } else {
13720
+ var errors = [acceptError, sizeError];
13721
+
13722
+ if (customErrors) {
13723
+ errors = errors.concat(customErrors);
13724
+ }
13725
+
13726
+ fileRejections.push({
13727
+ file: file,
13728
+ errors: errors.filter(function (e) {
13729
+ return e;
13730
+ })
13731
+ });
13732
+ }
13733
+ });
13734
+
13735
+ if (!multiple && acceptedFiles.length > 1 || multiple && maxFiles >= 1 && acceptedFiles.length > maxFiles) {
13736
+ // Reject everything and empty accepted files
13737
+ acceptedFiles.forEach(function (file) {
13738
+ fileRejections.push({
13739
+ file: file,
13740
+ errors: [TOO_MANY_FILES_REJECTION]
13741
+ });
13742
+ });
13743
+ acceptedFiles.splice(0);
13744
+ }
13745
+
13746
+ dispatch({
13747
+ acceptedFiles: acceptedFiles,
13748
+ fileRejections: fileRejections,
13749
+ type: "setFiles"
13750
+ });
13751
+
13752
+ if (onDrop) {
13753
+ onDrop(acceptedFiles, fileRejections, event);
13754
+ }
13755
+
13756
+ if (fileRejections.length > 0 && onDropRejected) {
13757
+ onDropRejected(fileRejections, event);
13758
+ }
13759
+
13760
+ if (acceptedFiles.length > 0 && onDropAccepted) {
13761
+ onDropAccepted(acceptedFiles, event);
13762
+ }
13763
+ }, [dispatch, multiple, acceptAttr, minSize, maxSize, maxFiles, onDrop, onDropAccepted, onDropRejected, validator]);
13764
+ var onDropCb = useCallback(function (event) {
13765
+ event.preventDefault(); // Persist here because we need the event later after getFilesFromEvent() is done
13766
+
13767
+ event.persist();
13768
+ stopPropagation(event);
13769
+ dragTargetsRef.current = [];
13770
+
13771
+ if (isEvtWithFiles(event)) {
13772
+ Promise.resolve(getFilesFromEvent(event)).then(function (files) {
13773
+ if (isPropagationStopped(event) && !noDragEventsBubbling) {
13774
+ return;
13775
+ }
13776
+
13777
+ setFiles(files, event);
13778
+ }).catch(function (e) {
13779
+ return onErrCb(e);
13780
+ });
13781
+ }
13782
+
13783
+ dispatch({
13784
+ type: "reset"
13785
+ });
13786
+ }, [getFilesFromEvent, setFiles, onErrCb, noDragEventsBubbling]); // Fn for opening the file dialog programmatically
13787
+
13788
+ var openFileDialog = useCallback(function () {
13789
+ // No point to use FS access APIs if context is not secure
13790
+ // https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts#feature_detection
13791
+ if (fsAccessApiWorksRef.current) {
13792
+ dispatch({
13793
+ type: "openDialog"
13794
+ });
13795
+ onFileDialogOpenCb(); // https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker
13796
+
13797
+ var opts = {
13798
+ multiple: multiple,
13799
+ types: pickerTypes
13800
+ };
13801
+ window.showOpenFilePicker(opts).then(function (handles) {
13802
+ return getFilesFromEvent(handles);
13803
+ }).then(function (files) {
13804
+ setFiles(files, null);
13805
+ dispatch({
13806
+ type: "closeDialog"
13807
+ });
13808
+ }).catch(function (e) {
13809
+ // AbortError means the user canceled
13810
+ if (isAbort(e)) {
13811
+ onFileDialogCancelCb(e);
13812
+ dispatch({
13813
+ type: "closeDialog"
13814
+ });
13815
+ } else if (isSecurityError(e)) {
13816
+ fsAccessApiWorksRef.current = false; // CORS, so cannot use this API
13817
+ // Try using the input
13818
+
13819
+ if (inputRef.current) {
13820
+ inputRef.current.value = null;
13821
+ inputRef.current.click();
13822
+ } else {
13823
+ onErrCb(new Error("Cannot open the file picker because the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API is not supported and no <input> was provided."));
13824
+ }
13825
+ } else {
13826
+ onErrCb(e);
13827
+ }
13828
+ });
13829
+ return;
13830
+ }
13831
+
13832
+ if (inputRef.current) {
13833
+ dispatch({
13834
+ type: "openDialog"
13835
+ });
13836
+ onFileDialogOpenCb();
13837
+ inputRef.current.value = null;
13838
+ inputRef.current.click();
13839
+ }
13840
+ }, [dispatch, onFileDialogOpenCb, onFileDialogCancelCb, useFsAccessApi, setFiles, onErrCb, pickerTypes, multiple]); // Cb to open the file dialog when SPACE/ENTER occurs on the dropzone
13841
+
13842
+ var onKeyDownCb = useCallback(function (event) {
13843
+ // Ignore keyboard events bubbling up the DOM tree
13844
+ if (!rootRef.current || !rootRef.current.isEqualNode(event.target)) {
13845
+ return;
13846
+ }
13847
+
13848
+ if (event.key === " " || event.key === "Enter" || event.keyCode === 32 || event.keyCode === 13) {
13849
+ event.preventDefault();
13850
+ openFileDialog();
13851
+ }
13852
+ }, [rootRef, openFileDialog]); // Update focus state for the dropzone
13853
+
13854
+ var onFocusCb = useCallback(function () {
13855
+ dispatch({
13856
+ type: "focus"
13857
+ });
13858
+ }, []);
13859
+ var onBlurCb = useCallback(function () {
13860
+ dispatch({
13861
+ type: "blur"
13862
+ });
13863
+ }, []); // Cb to open the file dialog when click occurs on the dropzone
13864
+
13865
+ var onClickCb = useCallback(function () {
13866
+ if (noClick) {
13867
+ return;
13868
+ } // In IE11/Edge the file-browser dialog is blocking, therefore, use setTimeout()
13869
+ // to ensure React can handle state changes
13870
+ // See: https://github.com/react-dropzone/react-dropzone/issues/450
13871
+
13872
+
13873
+ if (isIeOrEdge()) {
13874
+ setTimeout(openFileDialog, 0);
13875
+ } else {
13876
+ openFileDialog();
13877
+ }
13878
+ }, [noClick, openFileDialog]);
13879
+
13880
+ var composeHandler = function composeHandler(fn) {
13881
+ return disabled ? null : fn;
13882
+ };
13883
+
13884
+ var composeKeyboardHandler = function composeKeyboardHandler(fn) {
13885
+ return noKeyboard ? null : composeHandler(fn);
13886
+ };
13887
+
13888
+ var composeDragHandler = function composeDragHandler(fn) {
13889
+ return noDrag ? null : composeHandler(fn);
13890
+ };
13891
+
13892
+ var stopPropagation = function stopPropagation(event) {
13893
+ if (noDragEventsBubbling) {
13894
+ event.stopPropagation();
13895
+ }
13896
+ };
13897
+
13898
+ var getRootProps = useMemo(function () {
13899
+ return function () {
13900
+ var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
13901
+ _ref2$refKey = _ref2.refKey,
13902
+ refKey = _ref2$refKey === void 0 ? "ref" : _ref2$refKey,
13903
+ role = _ref2.role,
13904
+ onKeyDown = _ref2.onKeyDown,
13905
+ onFocus = _ref2.onFocus,
13906
+ onBlur = _ref2.onBlur,
13907
+ onClick = _ref2.onClick,
13908
+ onDragEnter = _ref2.onDragEnter,
13909
+ onDragOver = _ref2.onDragOver,
13910
+ onDragLeave = _ref2.onDragLeave,
13911
+ onDrop = _ref2.onDrop,
13912
+ rest = _objectWithoutProperties(_ref2, _excluded3);
13913
+
13914
+ return _objectSpread(_objectSpread(_defineProperty({
13915
+ onKeyDown: composeKeyboardHandler(composeEventHandlers(onKeyDown, onKeyDownCb)),
13916
+ onFocus: composeKeyboardHandler(composeEventHandlers(onFocus, onFocusCb)),
13917
+ onBlur: composeKeyboardHandler(composeEventHandlers(onBlur, onBlurCb)),
13918
+ onClick: composeHandler(composeEventHandlers(onClick, onClickCb)),
13919
+ onDragEnter: composeDragHandler(composeEventHandlers(onDragEnter, onDragEnterCb)),
13920
+ onDragOver: composeDragHandler(composeEventHandlers(onDragOver, onDragOverCb)),
13921
+ onDragLeave: composeDragHandler(composeEventHandlers(onDragLeave, onDragLeaveCb)),
13922
+ onDrop: composeDragHandler(composeEventHandlers(onDrop, onDropCb)),
13923
+ role: typeof role === "string" && role !== "" ? role : "presentation"
13924
+ }, refKey, rootRef), !disabled && !noKeyboard ? {
13925
+ tabIndex: 0
13926
+ } : {}), rest);
13927
+ };
13928
+ }, [rootRef, onKeyDownCb, onFocusCb, onBlurCb, onClickCb, onDragEnterCb, onDragOverCb, onDragLeaveCb, onDropCb, noKeyboard, noDrag, disabled]);
13929
+ var onInputElementClick = useCallback(function (event) {
13930
+ event.stopPropagation();
13931
+ }, []);
13932
+ var getInputProps = useMemo(function () {
13933
+ return function () {
13934
+ var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
13935
+ _ref3$refKey = _ref3.refKey,
13936
+ refKey = _ref3$refKey === void 0 ? "ref" : _ref3$refKey,
13937
+ onChange = _ref3.onChange,
13938
+ onClick = _ref3.onClick,
13939
+ rest = _objectWithoutProperties(_ref3, _excluded4);
13940
+
13941
+ var inputProps = _defineProperty({
13942
+ accept: acceptAttr,
13943
+ multiple: multiple,
13944
+ type: "file",
13945
+ style: {
13946
+ display: "none"
13947
+ },
13948
+ onChange: composeHandler(composeEventHandlers(onChange, onDropCb)),
13949
+ onClick: composeHandler(composeEventHandlers(onClick, onInputElementClick)),
13950
+ tabIndex: -1
13951
+ }, refKey, inputRef);
13952
+
13953
+ return _objectSpread(_objectSpread({}, inputProps), rest);
13954
+ };
13955
+ }, [inputRef, accept, multiple, onDropCb, disabled]);
13956
+ return _objectSpread(_objectSpread({}, state), {}, {
13957
+ isFocused: isFocused && !disabled,
13958
+ getRootProps: getRootProps,
13959
+ getInputProps: getInputProps,
13960
+ rootRef: rootRef,
13961
+ inputRef: inputRef,
13962
+ open: composeHandler(openFileDialog)
13963
+ });
13964
+ }
13965
+ /**
13966
+ * @param {DropzoneState} state
13967
+ * @param {{type: string} & DropzoneState} action
13968
+ * @returns {DropzoneState}
13969
+ */
13970
+
13971
+ function reducer(state, action) {
13972
+ /* istanbul ignore next */
13973
+ switch (action.type) {
13974
+ case "focus":
13975
+ return _objectSpread(_objectSpread({}, state), {}, {
13976
+ isFocused: true
13977
+ });
13978
+
13979
+ case "blur":
13980
+ return _objectSpread(_objectSpread({}, state), {}, {
13981
+ isFocused: false
13982
+ });
13983
+
13984
+ case "openDialog":
13985
+ return _objectSpread(_objectSpread({}, initialState), {}, {
13986
+ isFileDialogActive: true
13987
+ });
13988
+
13989
+ case "closeDialog":
13990
+ return _objectSpread(_objectSpread({}, state), {}, {
13991
+ isFileDialogActive: false
13992
+ });
13993
+
13994
+ case "setDraggedFiles":
13995
+ return _objectSpread(_objectSpread({}, state), {}, {
13996
+ isDragActive: action.isDragActive,
13997
+ isDragAccept: action.isDragAccept,
13998
+ isDragReject: action.isDragReject
13999
+ });
14000
+
14001
+ case "setFiles":
14002
+ return _objectSpread(_objectSpread({}, state), {}, {
14003
+ acceptedFiles: action.acceptedFiles,
14004
+ fileRejections: action.fileRejections
14005
+ });
14006
+
14007
+ case "reset":
14008
+ return _objectSpread({}, initialState);
14009
+
14010
+ default:
14011
+ return state;
14012
+ }
14013
+ }
14014
+
14015
+ function noop() {}
14016
+
14017
+ var Container$h = styled.div(templateObject_1$v || (templateObject_1$v = __makeTemplateObject$1(["\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: 15px;\n"], ["\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: 15px;\n"])));
14018
+ var DropZone = styled.div(templateObject_2$q || (templateObject_2$q = __makeTemplateObject$1(["\n min-height: 250px;\n border-width: 2px;\n border-style: dashed;\n border-color: ", ";\n box-sizing: border-box;\n border-radius: 4px;\n background-color: ", ";\n padding: 25px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n"], ["\n min-height: 250px;\n border-width: 2px;\n border-style: dashed;\n border-color: ", ";\n box-sizing: border-box;\n border-radius: 4px;\n background-color: ", ";\n padding: 25px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n"])), function (_a) {
14019
+ _a.isDragActive; var isDragAccept = _a.isDragAccept, isDragReject = _a.isDragReject;
14020
+ // if (isDragActive) return theme.colors.blue.base;
14021
+ if (isDragAccept)
14022
+ return theme.colors.green.base;
14023
+ else if (isDragReject)
14024
+ return theme.colors.red.base;
14025
+ else
14026
+ return theme.colors.lightGray.darker;
14027
+ }, function (_a) {
14028
+ _a.isDragActive; var isDragAccept = _a.isDragAccept, isDragReject = _a.isDragReject;
14029
+ // if (isDragActive) return `${theme.colors.blue.light}25`;
14030
+ if (isDragAccept)
14031
+ return "".concat(theme.colors.green.light, "25");
14032
+ else if (isDragReject)
14033
+ return "".concat(theme.colors.red.light, "25");
14034
+ else
14035
+ return theme.colors.lightGray.base;
14036
+ });
14037
+ var FileList = styled.div(templateObject_3$9 || (templateObject_3$9 = __makeTemplateObject$1(["\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: 10px;\n"], ["\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: 10px;\n"])));
14038
+ var templateObject_1$v, templateObject_2$q, templateObject_3$9;
14039
+
14040
+ var FileUpload = function (_a) {
14041
+ var locale = _a.locale, accept = _a.accept, onDrop = _a.onDrop, files = _a.files;
14042
+ var _b = useDropzone({
14043
+ onDrop: onDrop,
14044
+ accept: accept,
14045
+ // Max file size: 2MB
14046
+ maxSize: 1048576 * 2,
14047
+ minSize: 0,
14048
+ // Max number of files: 1
14049
+ maxFiles: 1,
14050
+ }), getRootProps = _b.getRootProps, getInputProps = _b.getInputProps, isDragActive = _b.isDragActive, isDragAccept = _b.isDragAccept, isDragReject = _b.isDragReject;
14051
+ return (jsx$1(Fragment$1, { children: jsxs(Container$h, { children: [jsxs(DropZone, __assign$2({}, getRootProps({
14052
+ isDragActive: isDragActive,
14053
+ isDragAccept: isDragAccept,
14054
+ isDragReject: isDragReject,
14055
+ }), { children: [jsx$1("input", __assign$2({}, getInputProps())), jsx$1(Icon, { type: "file", size: "large" }), jsx$1(Spacer, { vertical: 15 }), !isDragActive && (jsxs(Fragment$1, { children: [jsx$1(Heading, __assign$2({ type: "h6" }, { children: translations[locale]["Drag file(s) here..."] })), jsx$1(Spacer, { vertical: 5 }), jsx$1(Paragraph, { children: translations[locale]["or"] }), jsx$1(Spacer, { vertical: 10 }), jsx$1(Button, { label: translations[locale]["Select file(s)"], size: "small" })] })), isDragActive && !isDragReject && (jsx$1(Heading, __assign$2({ type: "h6" }, { children: translations[locale]["Upload file(s)..."] }))), isDragReject && (jsx$1(Heading, __assign$2({ type: "h6" }, { children: translations[locale]["File type not allowed"] })))] })), files && files.length > 0 && (jsx$1(FileList, { children: files.map(function (file, index) { return (jsx$1(Alert, { type: "success", message: file.name }, "".concat(file.name, "-").concat(index))); }) }))] }) }));
11349
14056
  };
11350
14057
 
11351
14058
  var StyledIconButton = styled(StyledButton)(templateObject_1$u || (templateObject_1$u = __makeTemplateObject$1(["\n min-width: ", ";\n max-width: ", ";\n min-height: ", ";\n max-height: ", ";\n padding: 2px 0 0 0;\n\n > div:first-child {\n margin-top: -2px;\n }\n\n :active {\n min-height: ", ";\n max-height: ", ";\n margin-top: 2px;\n }\n"], ["\n min-width: ", ";\n max-width: ", ";\n min-height: ", ";\n max-height: ", ";\n padding: 2px 0 0 0;\n\n > div:first-child {\n margin-top: -2px;\n }\n\n :active {\n min-height: ", ";\n max-height: ", ";\n margin-top: 2px;\n }\n"])), function (_a) {
@@ -11488,7 +14195,7 @@ var Container$e = styled.div(templateObject_1$q || (templateObject_1$q = __makeT
11488
14195
  });
11489
14196
  var templateObject_1$q;
11490
14197
 
11491
- var Loading = function (props) { return (jsxs(Container$e, __assign$2({}, props, { children: [jsx$1(_default, { color: theme.colors[props.color].base, speedMultiplier: 0.5 }), props.text && (jsxs(Fragment$1, { children: [jsx$1(Spacer, { vertical: 20 }), jsx$1(Heading, __assign$2({ type: "h6", color: props.textColor || "black" }, { children: props.text }))] }))] }))); };
14198
+ var Loading = function (props) { return (jsxs(Container$e, __assign$2({}, props, { children: [jsx$1(_default$1, { color: theme.colors[props.color].base, speedMultiplier: 0.5 }), props.text && (jsxs(Fragment$1, { children: [jsx$1(Spacer, { vertical: 20 }), jsx$1(Heading, __assign$2({ type: "h6", color: props.textColor || "black" }, { children: props.text }))] }))] }))); };
11492
14199
 
11493
14200
  var Container$d = styled.div(templateObject_1$p || (templateObject_1$p = __makeTemplateObject$1(["\n padding: 15px;\n background-color: ", ";\n border-radius: 6px 6px 0 0;\n position: relative;\n cursor: pointer;\n"], ["\n padding: 15px;\n background-color: ", ";\n border-radius: 6px 6px 0 0;\n position: relative;\n cursor: pointer;\n"])), function (_a) {
11494
14201
  var dropdownIsVisible = _a.dropdownIsVisible, color = _a.color;
@@ -12487,5 +15194,5 @@ var Transfer = function (props) {
12487
15194
  }) }) }, selectedTargetKeys)] }))] }));
12488
15195
  };
12489
15196
 
12490
- export { Alert, Button, Card, Checkbox, Checkboxes, Collapse, Countdown, DateInputField, Flag, Form, Heading, Icon, IconButton, Illustration, Input, InputField, Key$1 as Key, Keyboard, Link, Loading, LocaleSelect, Logo, Medal, Medals, Modal, Notification, Number$1 as Number, NumberField, Paragraph, PasswordInputField, Popup, ProgressBar, Radio, RadioGroup, Range, Result, Select, SelectField, Spacer, Steps, Subheading, Table, Tabs, Tag, Toggle, ToggleField, Tooltip, Transfer, Trophy, theme };
15197
+ export { Alert, Button, Card, Checkbox, Checkboxes, Collapse, Countdown, DateInputField, FileUpload, Flag, Form, Heading, Icon, IconButton, Illustration, Input, InputField, Key$1 as Key, Keyboard, Link, Loading, LocaleSelect, Logo, Medal, Medals, Modal, Notification, Number$1 as Number, NumberField, Paragraph, PasswordInputField, Popup, ProgressBar, Radio, RadioGroup, Range, Result, Select, SelectField, Spacer, Steps, Subheading, Table, Tabs, Tag, Toggle, ToggleField, Tooltip, Transfer, Trophy, theme };
12491
15198
  //# sourceMappingURL=index.es.js.map